From d49456b413bfb912aa2dc82d6aa294363f9548e5 Mon Sep 17 00:00:00 2001 From: userName Date: Fri, 18 Apr 2025 09:17:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddressDetails/components/map.vue | 2 +- src/components/AddressDetails/index.vue | 10 +- .../Upload/src/components/ImageUpload.vue | 13 ++- .../VFormDesign/components/ComponentProps.vue | 4 +- .../demo/form-design/core/formItemConfig.ts | 4 + src/views/demo/onlineform/formCall/index.vue | 107 ++++++++++++++---- .../demo/onlineform/formdesign/FormModal.vue | 2 +- .../exception/Converge/SearchComponent.vue | 51 ++++++++- src/views/sys/exception/Converge/index.vue | 39 ++++++- .../exception/mapComponent/layers/index.vue | 5 + ....timestamp-1744880880233-8211e8f7af377.mjs | 66 +++++++++++ 11 files changed, 262 insertions(+), 41 deletions(-) create mode 100644 vite.config.ts.timestamp-1744880880233-8211e8f7af377.mjs diff --git a/src/components/AddressDetails/components/map.vue b/src/components/AddressDetails/components/map.vue index 6584dec..d172858 100644 --- a/src/components/AddressDetails/components/map.vue +++ b/src/components/AddressDetails/components/map.vue @@ -50,7 +50,7 @@ const searchAddress = ()=>{ axios({ method: 'get', - url: `https://restapi.amap.com/v3/geocode/geo?key=4f992c089f9496201f6e4ea39ff3ab60&address=`+address.value, + url: `https://restapi.amap.com/v3/geocode/geo?key=ed310f0b1f6cfd93edfba42f1a09d4d9&address=`+address.value, }).then((res) => { if(res.data){ let location = res.data.geocodes[0].location.split(',') diff --git a/src/components/AddressDetails/index.vue b/src/components/AddressDetails/index.vue index 3527ed5..2d899e5 100644 --- a/src/components/AddressDetails/index.vue +++ b/src/components/AddressDetails/index.vue @@ -1,7 +1,7 @@ @@ -291,13 +291,14 @@ // return props.multiple ? list : list.length > 0 ? list[0] : ''; } - const globalImagePreviewUrl = ref(); + const globalImagePreviewUrl = ref(); function handlerPreviewImage(item,index): void { + console.log('aaaa', ) const { azimuth} = props; // if(azimuth){ - globalImagePreviewUrl.value = index - + globalImagePreviewUrl.value = item.url + previewOpen.value = true // } // globalImagePreviewUrl.value = url + '?' + Math.random(); formFileStore.setUrl(item.url); diff --git a/src/views/demo/form-design/components/VFormDesign/components/ComponentProps.vue b/src/views/demo/form-design/components/VFormDesign/components/ComponentProps.vue index 1ff3f5a..7ab9567 100644 --- a/src/views/demo/form-design/components/VFormDesign/components/ComponentProps.vue +++ b/src/views/demo/form-design/components/VFormDesign/components/ComponentProps.vue @@ -108,8 +108,6 @@ label="选项" v-if=" [ - 'CheckboxGroup', - 'RadioGroup', 'TreeSelect', 'Cascader', 'Transfer', @@ -121,7 +119,7 @@ > - +
静态数据 diff --git a/src/views/demo/form-design/core/formItemConfig.ts b/src/views/demo/form-design/core/formItemConfig.ts index 85eae4b..c69ab9c 100644 --- a/src/views/demo/form-design/core/formItemConfig.ts +++ b/src/views/demo/form-design/core/formItemConfig.ts @@ -195,6 +195,8 @@ export const commonComponents: IVFormComponent[] = [ label: '单选框-组', icon: 'bi:ui-radios-grid', field: '', + dataType:"1", + dataCode: '', colProps: { span: 24 }, componentProps: { options: [ @@ -222,6 +224,8 @@ export const commonComponents: IVFormComponent[] = [ label: '复选框-组', icon: 'bi:ui-checks-grid', field: '', + dataType:"1", + dataCode: '', colProps: { span: 24 }, componentProps: { options: [ diff --git a/src/views/demo/onlineform/formCall/index.vue b/src/views/demo/onlineform/formCall/index.vue index 0b3730b..3c0bf32 100644 --- a/src/views/demo/onlineform/formCall/index.vue +++ b/src/views/demo/onlineform/formCall/index.vue @@ -32,15 +32,27 @@ + + @@ -165,6 +177,7 @@ { label: '删除', prop: 'Delete', class: 'error' }, { label: '详情', prop: 'Details', class: 'default' }, ]); + const linebtnArr = ref([]) const mapSetData = ref({ width: 100, }); @@ -309,7 +322,7 @@ const [registerMapFormModal, { openModal: openMapFormModal }] = useModal(); - const [registerTable, { reload, setColumns, getSelectRows, clearSelectedRowKeys }] = useTable({ + const [registerTable, { reload, setColumns,setProps, getSelectRows, clearSelectedRowKeys }] = useTable({ title: '表单列表', api: getFormsPageData, // rowKey: 'f_Id', @@ -326,6 +339,12 @@ useSearchForm: true, showTableSetting: true, bordered: true, + actionColumn: { + ifShow: false, + width: 200, + title: '操作', + dataIndex: 'action', + }, beforeFetch: (data) => { // 接口请求前 参数处理 const querys = JSON.parse(JSON.stringify(data)); @@ -455,9 +474,15 @@ FiledValue: Array; } - const handleClickForm = (status) => { + const handleClickForm = (status,record) => { + console.log('aaaa', record) const config = cloneDeep(formConfig.value); - const rows = getSelectRows(); + const rows = ref([]) + if(record){ + rows.value.push(record) + }else{ + rows.value = getSelectRows() + } const query: any = ref({ id: paramsId.value, key: designData.value.primaryKey, @@ -472,8 +497,8 @@ } }); - if (rows.length > 0) { - query.value.keyValue = rows[0][str.value]; + if (rows.value.length > 0) { + query.value.keyValue = rows.value[0][str.value]; } console.log('config', config); switch (status) { @@ -514,10 +539,9 @@ break; case 'Edit': - if (rows.length == 0) { + if (rows.value.length == 0) { return createMessage.warn('请选择一条数据进行编辑'); } - // console.log('rowsrows',formConfig,rows); btnList.value.forEach((element) => { if (element.prop === 'Edit' && element.isWFlow) { @@ -529,7 +553,7 @@ isDetail: false, isUpdate: true, tab: config.schemas, - record: rows[0], + record: rows.value[0], recordChildren: formData.value, query: query.value, btnList: btnList.value, @@ -553,7 +577,7 @@ // ); // openModal(true, toProps); // previewOpen.value = true; - // flowFormData.value = rows[0]; + // flowFormData.value = rows.value[0]; // isUpdate.value = true; openModal(true, toProps); } else { @@ -561,12 +585,12 @@ } } else { previewOpen.value = true; - flowFormData.value = rows[0]; + flowFormData.value = rows.value[0]; isUpdate.value = true; } break; case 'Delete': - if (rows.length == 0) { + if (rows.value.length == 0) { return createMessage.warn('请选择一条数据进行删除'); } createConfirm({ @@ -589,14 +613,14 @@ }); break; case 'Details': - if (rows.length == 0) { + if (rows.value.length == 0) { return createMessage.warn('请选择一条数据查看详情'); } let toProps = { isDetail: true, isUpdate: false, tab: config.schemas, - record: rows[0], + record: rows.value[0], recordChildren: formData.value, query: query.value, btnList: btnList.value, @@ -610,11 +634,9 @@ // showFormModalData.value = toProps; // openShowFormModal.value = true; // 根据ids获取图斑 - console.log(rows); - console.log("formConfig"); try { console.log('formConfig', formConfig); - handlerShowGeomtrys(formConfig, rows[0]); + handlerShowGeomtrys(formConfig, rows.value[0]); } catch (e) { createMessage.error('当前数据没有图斑!'); } @@ -778,7 +800,7 @@ // 为使用字典字段的下拉组件的options赋值 formObj.formInfo.tabList.forEach((childTab) => { childTab.schemas.forEach(async (item) => { - if (item.component === 'Select' && item.dataType === '2') { + if (item.component === 'Select' || item.component === 'CheckboxGroup' || item.component === 'RadioGroup' && item.dataType === '2') { item.componentProps.options = await formCallStore.getDictionaryOptions(item.dataCode); } }); @@ -831,6 +853,22 @@ paramsId.value = res.formScheme.id; btnList.value = columnObj.table.btns; btnArr.value = columnObj.table.btns; + linebtnArr.value = [] + columnObj.table.btns.forEach(item =>{ + if(item.isRowBtn){ + linebtnArr.value.push(item) + } + }) + if(linebtnArr.value.length>0){ + setProps({ + actionColumn: { + ifShow: true, + width: 200, + title: '操作', + dataIndex: 'action', + } + }) + } if (columnObj.table.columns) { columnObj.table.columns.forEach((item) => { callColumns.push({ @@ -865,6 +903,12 @@ } }); } + searchFormSchema.forEach(item =>{ + if(item.component == 'Input'){ + item.componentProps.disabled = false + } + }) + console.log('searchFormSchema',searchFormSchema) callColumns.forEach((item) => { formObj.formInfo.schemas.forEach((val) => { if (item.dataIndex == val.field && val.componentProps.options) { @@ -1033,7 +1077,16 @@ }else{ return null } - + } + const checkFroupModification = (column, record) => { + let arr = JSON.parse( + record[column.dataIndex]?.replace(/\r\n/g, '') || '[]', + ); + if(arr){ + return arr.join(',') + }else{ + return null + } } // 表单列表数据修饰 @@ -1120,10 +1173,6 @@ } }); } else { - // console.log(1080); - // console.log(column); - // console.log(record); - // console.log(searchFormSchema); res = record[column.dataIndex]; } return res; @@ -1199,4 +1248,16 @@ height: 750px; overflow: auto; } + .ai-c{ + align-items: center; + } + .jc-c{ + justify-content: center; + } + .linebtnbox{ + flex-wrap: wrap; + } + .linebtnboxli{ + margin: 0 3px; + } diff --git a/src/views/demo/onlineform/formdesign/FormModal.vue b/src/views/demo/onlineform/formdesign/FormModal.vue index 136bfef..b0ba474 100644 --- a/src/views/demo/onlineform/formdesign/FormModal.vue +++ b/src/views/demo/onlineform/formdesign/FormModal.vue @@ -299,7 +299,7 @@ if (schems) { schems.formInfo.tabList.forEach((childTab) => { childTab.schemas.forEach(async (item) => { - if (item.component === 'Select' && item.dataType === '2') { + if (item.component === 'Select' || item.component === 'CheckboxGroup' || item.component === 'RadioGroup' && item.dataType === '2') { item.componentProps.options = await formCallStore.getDictionaryOptions(item.dataCode); } }); diff --git a/src/views/sys/exception/Converge/SearchComponent.vue b/src/views/sys/exception/Converge/SearchComponent.vue index ec0110d..8c06fe5 100644 --- a/src/views/sys/exception/Converge/SearchComponent.vue +++ b/src/views/sys/exception/Converge/SearchComponent.vue @@ -1,4 +1,16 @@