From 4614c8699faed4e95d7605abcdf6eb32279d0423 Mon Sep 17 00:00:00 2001 From: xuziqiang <1344691446@qq.com> Date: Wed, 29 May 2024 16:29:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=86=E7=BB=84=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/view/equipmentManage/group/config.ts | 289 +++++++++++---------- .../src/view/equipmentManage/group/edit.vue | 96 +++++++ .../src/view/equipmentManage/group/editFormula.vue | 116 +++++++++ .../src/view/equipmentManage/group/editGroup.vue | 145 +++++++++++ .../src/view/equipmentManage/group/groupEdit.vue | 0 .../src/view/equipmentManage/group/index.vue | 18 +- .../src/view/equipmentManage/group/mock.json | 33 ++- lib/component/drawer/drawer.vue | 11 +- lib/component/form/form/child-form.vue | 2 +- lib/component/form/form/form-item.vue | 3 +- lib/component/form/form/form.d.ts | 4 +- lib/component/table/table.vue | 4 +- lib/component/tree/tree-api.vue | 6 +- lib/saas/config/table.config.ts | 2 +- 14 files changed, 578 insertions(+), 151 deletions(-) create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/edit.vue create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/editFormula.vue create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/editGroup.vue create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/groupEdit.vue diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts index b0bcc78..6433ccb 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts +++ b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts @@ -41,169 +41,182 @@ const doWnload = (url) => { }; const mockData = ref(data.listData); -export const tableConfig = { - title: '设备台账', - // api: '/carbon_emission/device/getDeviceList', - value: mockData.value, - treeConfig: { - defaultExpandAll: true, - api: () => { - return Promise.resolve(data); - }, - }, - rowSelection: () => { - return { - columnWidth: 30, - }; - }, - headerActions: [ - { - label: '编辑', - name: 'groupEdit', - type: 'primary', - handle: (a, b) => { - console.log(a, b); - }, - }, - { - label: '批量删除', - name: 'groupTemDownload', - type: 'primary', - dynamicDisabled: (data: any) => { - return data.list.length === 0; - }, - handle: () => { - mockData.value.splice(0, 2); - }, - }, - { - label: '批量导出', - name: 'groupExports', - type: 'primary', - dynamicDisabled: (data: any) => { - return data.list.length === 0; - }, - extra: { - xlsxMap: tableKeyMap, - xlsxName: '分组信息YYYY-MM-DD', - }, - }, - { - label: '批量导入', - name: 'groupImport', - type: 'primary', - extra: { - // api: props.postImportApi, // 导入接口名 - title: '设备信息', // 弹窗title - templateName: 'whiteListUser', // 所使用的文件名称 - indexName: '设备id', // 匹配类型字段 - message: [ - { label: '1、若必填项未填写,则不能进行导入操作' }, - { label: `2、当重复时,则更新数据。` }, - { label: '3、数据将从模版的第五行进行导入。' }, - { label: '4、文件导入勿超过5MB。' }, - ], +export const tableConfig = (el, elGroup, elFormula) => { + return { + title: '设备台账', + // api: '/carbon_emission/device/getDeviceList', + value: mockData.value, + treeConfig: { + defaultExpandAll: true, + api: () => { + return Promise.resolve(data); }, }, - { - label: '模板下载', - name: 'groupTemDownload', - type: 'primary', - handle: () => { - // http.get('/asset/file/whiteListUser.xlsx'); - doWnload('/hx-ai-intelligent/asset/file/whiteListUser.xlsx'); - }, - }, - - { - label: '批量分组', - name: 'groupTemDownload', - type: 'primary', - }, - { - label: '公式编辑', - name: 'groupTemDownload', - type: 'primary', - }, - ], - columns: tableKeyMap, - columnActions: { - title: '操作', - actions: [ + headerActions: [ { - label: '删除', - name: 'FeedBackDetail', - dynamicParams: ['uuid', 'appealType'], - confirm: true, - handle: () => { - mockData.value.splice(0, 1); + label: '编辑', + name: 'groupEdit', + type: 'primary', + handle: (a, b) => { + el.value.toggle(); }, }, - ], - }, - - formConfig: { - schemas: [ { - field: 'name', - label: '设备名称', - component: 'NsInput', - componentProps: { - placeholder: '请输入', + label: '批量删除', + name: 'groupTemDownload', + type: 'primary', + dynamicDisabled: (data: any) => { + return data.list.length === 0; + }, + handle: () => { + mockData.value.splice(0, 2); }, }, { - field: 'provider', - label: '设备厂商', - component: 'NsInput', - componentProps: { - placeholder: '请输入', + label: '批量导出', + name: 'groupExports', + type: 'primary', + dynamicDisabled: (data: any) => { + return data.list.length === 0; + }, + extra: { + xlsxMap: tableKeyMap, + xlsxName: '分组信息YYYY-MM-DD', }, }, { - field: 'payWay', - label: '设备区域', - component: 'NsSelect', - componentProps: { - placeholder: '请选择', - options: [ - { - label: '全部', - value: '', - }, + label: '批量导入', + name: 'groupImport', + type: 'primary', + extra: { + // api: props.postImportApi, // 导入接口名 + title: '设备信息', // 弹窗title + templateName: 'whiteListUser', // 所使用的文件名称 + indexName: '设备id', // 匹配类型字段 + message: [ + { label: '1、若必填项未填写,则不能进行导入操作' }, + { label: `2、当重复时,则更新数据。` }, + { label: '3、数据将从模版的第五行进行导入。' }, + { label: '4、文件导入勿超过5MB。' }, ], }, }, + { - field: 'createTime', - label: '生产日期', - component: 'NsRangePicker', - fieldMap: ['queryStartDate', 'queryEndDate'], - componentProps: { - valueFormat: 'YYYY-MM-DD', + label: '模板下载', + name: 'groupTemDownload', + type: 'primary', + handle: () => { + // http.get('/asset/file/whiteListUser.xlsx'); + doWnload('/hx-ai-intelligent/asset/file/whiteListUser.xlsx'); }, }, + { - field: 'createTime1', - label: '采购日期', - component: 'NsRangePicker', - fieldMap: ['queryStartDate', 'queryEndDate'], - componentProps: { - valueFormat: 'YYYY-MM-DD', + label: '批量分组', + name: 'groupTemDownload', + type: 'primary', + handle: () => { + elGroup.value.toggle(); }, }, { - field: 'createTime2', - label: '启用日期', - component: 'NsRangePicker', - fieldMap: ['queryStartDate', 'queryEndDate'], - componentProps: { - valueFormat: 'YYYY-MM-DD', + label: '公式编辑', + name: 'groupTemDownload', + type: 'primary', + handle: () => { + elFormula.value.toggle(); }, }, ], + columns: tableKeyMap, + columnActions: { + title: '操作', + actions: [ + { + label: '删除', + name: 'FeedBackDetail', + dynamicParams: ['uuid', 'appealType'], + confirm: true, + handle: () => { + mockData.value.splice(0, 1); + }, + }, + ], + }, + + formConfig: { + schemas: [ + { + field: 'name', + label: '设备名称', + component: 'NsInput', + componentProps: { + placeholder: '请输入', + }, + }, + { + field: 'provider', + label: '设备厂商', + component: 'NsInput', + componentProps: { + placeholder: '请输入', + }, + }, + { + field: 'payWay', + label: '设备区域', + component: 'NsSelect', + componentProps: { + placeholder: '请选择', + options: [ + { + label: '全部', + value: '', + }, + ], + }, + }, + { + field: 'createTime', + label: '生产日期', + component: 'NsRangePicker', + fieldMap: ['queryStartDate', 'queryEndDate'], + componentProps: { + valueFormat: 'YYYY-MM-DD', + }, + }, + { + field: 'createTime1', + label: '采购日期', + component: 'NsRangePicker', + fieldMap: ['queryStartDate', 'queryEndDate'], + componentProps: { + valueFormat: 'YYYY-MM-DD', + }, + }, + { + field: 'createTime2', + label: '启用日期', + component: 'NsRangePicker', + fieldMap: ['queryStartDate', 'queryEndDate'], + componentProps: { + valueFormat: 'YYYY-MM-DD', + }, + }, + ], + }, + // pagination: { pageSizeOptions: false }, + rowKey: 'id', + }; +}; + +export const treeConfig = { + defaultExpandAll: true, + defaultSelectedKeys: ['A008'], + resultField: 'insertData', + api: () => { + return Promise.resolve(data); }, - // pagination: { pageSizeOptions: false }, - rowKey: 'id', }; diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/edit.vue b/hx-ai-intelligent/src/view/equipmentManage/group/edit.vue new file mode 100644 index 0000000..669dc6b --- /dev/null +++ b/hx-ai-intelligent/src/view/equipmentManage/group/edit.vue @@ -0,0 +1,96 @@ + + + diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/editFormula.vue b/hx-ai-intelligent/src/view/equipmentManage/group/editFormula.vue new file mode 100644 index 0000000..1db40f2 --- /dev/null +++ b/hx-ai-intelligent/src/view/equipmentManage/group/editFormula.vue @@ -0,0 +1,116 @@ + + + diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/editGroup.vue b/hx-ai-intelligent/src/view/equipmentManage/group/editGroup.vue new file mode 100644 index 0000000..afba0cc --- /dev/null +++ b/hx-ai-intelligent/src/view/equipmentManage/group/editGroup.vue @@ -0,0 +1,145 @@ + + + diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/groupEdit.vue b/hx-ai-intelligent/src/view/equipmentManage/group/groupEdit.vue new file mode 100644 index 0000000..e69de29 diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/index.vue b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue index c680905..4f4135b 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/index.vue +++ b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue @@ -1,7 +1,21 @@ diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/mock.json b/hx-ai-intelligent/src/view/equipmentManage/group/mock.json index 33e85ea..05811ba 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/mock.json +++ b/hx-ai-intelligent/src/view/equipmentManage/group/mock.json @@ -39,6 +39,38 @@ ] } ], + "insertData":[ + { + "title": "北京公司", + "key": "A001" + }, + { + "title": "广州公司", + "key": "A002" + }, + { + "title": "南京公司", + "key": "A004" + }, + { + "title": "上海公司", + "key": "A008", + "children": [ + { + "title": "上海长宁", + "key": "A009" + }, + { + "title": "上海徐汇", + "key": "A010" + }, + { + "title": "上海浦东", + "key": "A011" + } + ] + } +], "listData":[ { "id": "d4", @@ -84,7 +116,6 @@ "devicePointList": null, "insertUser": null } - ] } \ No newline at end of file diff --git a/lib/component/drawer/drawer.vue b/lib/component/drawer/drawer.vue index 1f2d2bb..e902b32 100644 --- a/lib/component/drawer/drawer.vue +++ b/lib/component/drawer/drawer.vue @@ -6,22 +6,27 @@