From 8f25d2293c245fe15fcfb87bbefe5155b1814e74 Mon Sep 17 00:00:00 2001 From: xuziqiang <1344691446@qq.com> Date: Thu, 27 Jun 2024 15:21:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=86=E7=BB=84=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hx-ai-intelligent/src/router/equipmentManage.ts | 38 ++-- .../src/view/equipmentManage/group/config.ts | 216 ++++++++++++++++----- .../src/view/equipmentManage/group/index.vue | 43 +++- lib/component/tree/tree-api.vue | 2 + 4 files changed, 226 insertions(+), 73 deletions(-) diff --git a/hx-ai-intelligent/src/router/equipmentManage.ts b/hx-ai-intelligent/src/router/equipmentManage.ts index 7433199..576e048 100644 --- a/hx-ai-intelligent/src/router/equipmentManage.ts +++ b/hx-ai-intelligent/src/router/equipmentManage.ts @@ -44,25 +44,25 @@ const equipment = { }, ], }, - { - path: 'energyMapping', - name: 'EnergyMapping', - meta: { title: '能耗映射', hideChildren: true, icon: 'shebeiguanli' }, - component: Base, - redirect: { name: 'EnergyMappingIndex' }, - children: [ - { - path: 'index', - name: 'EnergyMappingIndex', - component: () => import('/@/view/equipmentManage/energyMapping/index.vue'), - meta: { - title: '能耗映射', - keepAlive: true, - // backApi: [], - }, - }, - ], - }, + // { + // path: 'energyMapping', + // name: 'EnergyMapping', + // meta: { title: '能耗映射', hideChildren: true, icon: 'shebeiguanli' }, + // component: Base, + // redirect: { name: 'EnergyMappingIndex' }, + // children: [ + // { + // path: 'index', + // name: 'EnergyMappingIndex', + // component: () => import('/@/view/equipmentManage/energyMapping/index.vue'), + // meta: { + // title: '能耗映射', + // keepAlive: true, + // // backApi: [], + // }, + // }, + // ], + // }, ], }; export default equipment; diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts index 2212a37..c45b566 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts +++ b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts @@ -30,6 +30,22 @@ const tableKeyMap = [ dataIndex: 'position', }, ]; +const tableCalKeyMap = [ + { + title: '来源企业', + dataIndex: 'id', + }, + { + title: '节点编号', + dataIndex: 'deviceName', + textNumber: 8, + textEllipsis: true, + }, + { + title: '节点路径', + dataIndex: 'position', + }, +]; const doWnload = (url) => { const a = document.createElement('a'); document.body.appendChild(a); @@ -41,54 +57,55 @@ const doWnload = (url) => { }; const mockData = ref(data.listData); +export const treeConfig = { + defaultExpandAll: true, + header: { + icon: 'orgLink', + title: '能耗分组', + }, + + api: () => { + return new Promise((resolve) => { + setTimeout(() => { + resolve(data); + }, 100); + }); + }, + formConfig: { + schemas: [ + { + field: 'type', + label: '', + component: 'NsSelect', + autoSubmit: true, + defaultValue: 1, + componentProps: { + options: [ + { label: '碳排', value: 1 }, + { label: '用电量', value: 2 }, + { label: '用水量', value: 3 }, + { label: '燃气量', value: 4 }, + { label: '供热量', value: 5 }, + ], + }, + }, + { + field: 'name', + label: '', + component: 'NsInput', + autoSubmit: true, + componentProps: { + placeholder: '请输入', + }, + }, + ], + }, +}; export const tableConfig = (el, elGroup, elFormula) => { return { - title: '设备台账', + title: '点位信息', // api: '/carbon_emission/device/getDeviceList', value: mockData.value, - treeConfig: { - defaultExpandAll: true, - header: { - icon: 'orgLink', - title: '分组管理', - }, - api: () => { - return new Promise((resolve) => { - setTimeout(() => { - resolve(data); - }, 100); - }); - }, - formConfig: { - schemas: [ - { - field: 'type', - label: '', - component: 'NsRadioGroup', - autoSubmit: true, - defaultValue: 1, - componentProps: { - options: [ - { label: '碳排', value: 1 }, - { label: '用电量', value: 2 }, - { label: '用水量', value: 3 }, - { label: '燃气量', value: 4 }, - { label: '供热量', value: 5 }, - ], - }, - }, - { - field: 'name', - label: '', - component: 'NsInput', - autoSubmit: true, - componentProps: { - placeholder: '请输入', - }, - }, - ], - }, - }, headerActions: [ { @@ -249,11 +266,108 @@ export const tableConfig = (el, elGroup, elFormula) => { }; }; -export const treeConfig = { - defaultExpandAll: true, - defaultSelectedKeys: ['A008'], - resultField: 'insertData', - api: () => { - return Promise.resolve(data); - }, +export const tableConfigCal = (el, elGroup, elFormula) => { + return { + title: '点位信息', + // api: '/carbon_emission/device/getDeviceList', + value: mockData.value, + + headerActions: [ + { + label: '编辑', + name: 'groupEdit', + type: 'primary', + handle: (a, b) => { + el.value.toggle(); + }, + }, + { + 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。' }, + ], + }, + }, + + { + label: '模板下载', + name: 'groupTemDownload', + type: 'primary', + handle: () => { + // http.get('/asset/file/whiteListUser.xlsx'); + doWnload('/hx-ai-intelligent/asset/file/whiteListUser.xlsx'); + }, + }, + ], + columns: tableCalKeyMap, + 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', + component: 'NsInput', + componentProps: { + placeholder: '请输入节点编号', + }, + }, + ], + }, + // pagination: { pageSizeOptions: false }, + rowKey: 'id', + }; }; diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/index.vue b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue index 4f4135b..d88f11e 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/index.vue +++ b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue @@ -2,11 +2,17 @@ - +
+
+ +
+ + +
- + diff --git a/lib/component/tree/tree-api.vue b/lib/component/tree/tree-api.vue index f49296c..f644c24 100644 --- a/lib/component/tree/tree-api.vue +++ b/lib/component/tree/tree-api.vue @@ -31,6 +31,8 @@ }); const props = defineProps(treeProps); + console.log(props); + const treeData = ref([]); const selectedKeys = ref(props.selectedKeys || []); const { httpRequest } = useApi();