From c4d7573cbbff7f1c32f357ef89af29ac04687dd8 Mon Sep 17 00:00:00 2001
From: xuziqiang <1344691446@qq.com>
Date: Wed, 29 May 2024 10:18:12 +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
---
hx-ai-intelligent/src/router/equipmentManage.ts | 19 ++
.../src/view/equipmentManage/group/config.ts | 209 +++++++++++++++++++++
.../src/view/equipmentManage/group/index.vue | 7 +
.../src/view/equipmentManage/group/mock.json | 90 +++++++++
.../src/view/equipmentManage/ledger/config.ts | 6 +-
5 files changed, 327 insertions(+), 4 deletions(-)
create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/config.ts
create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/index.vue
create mode 100644 hx-ai-intelligent/src/view/equipmentManage/group/mock.json
diff --git a/hx-ai-intelligent/src/router/equipmentManage.ts b/hx-ai-intelligent/src/router/equipmentManage.ts
index 08cb000..cd52e10 100644
--- a/hx-ai-intelligent/src/router/equipmentManage.ts
+++ b/hx-ai-intelligent/src/router/equipmentManage.ts
@@ -24,6 +24,25 @@ const equipment = {
},
],
},
+ {
+ path: 'group',
+ name: 'Group',
+ meta: { title: '分组管理', hideChildren: true, icon: 'dicizhishou' },
+ component: Base,
+ redirect: { name: 'GroupIndex' },
+ children: [
+ {
+ path: 'index',
+ name: 'GroupIndex',
+ component: () => import('/@/view/equipmentManage/group/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
new file mode 100644
index 0000000..b0bcc78
--- /dev/null
+++ b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts
@@ -0,0 +1,209 @@
+import { dateUtil } from '/nerv-lib/util/date-util';
+import data from './mock.json';
+import { http } from '/nerv-lib/util';
+import { ref } from 'vue';
+const tableKeyMap = [
+ {
+ title: '来源企业',
+ dataIndex: 'id',
+ },
+ {
+ title: '设备id',
+ dataIndex: 'deviceCode',
+ },
+ {
+ title: '设备编号',
+ dataIndex: 'deviceName',
+ textNumber: 8,
+ textEllipsis: true,
+ },
+ {
+ title: '分组名称',
+ dataIndex: 'position',
+ },
+ {
+ title: '设备品牌/型号',
+ dataIndex: 'position',
+ },
+ {
+ title: '设备状态',
+ dataIndex: 'position',
+ },
+];
+const doWnload = (url) => {
+ const a = document.createElement('a');
+ document.body.appendChild(a);
+ a.href = encodeURI(url);
+ //设置下载的文件名
+ // a.download = fileName.value;
+ //触发a标签的点击事件,进行下载
+ a.click();
+};
+
+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。' },
+ ],
+ },
+ },
+
+ {
+ 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: [
+ {
+ 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',
+};
diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/index.vue b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue
new file mode 100644
index 0000000..c680905
--- /dev/null
+++ b/hx-ai-intelligent/src/view/equipmentManage/group/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/mock.json b/hx-ai-intelligent/src/view/equipmentManage/group/mock.json
new file mode 100644
index 0000000..33e85ea
--- /dev/null
+++ b/hx-ai-intelligent/src/view/equipmentManage/group/mock.json
@@ -0,0 +1,90 @@
+{
+ "data":[
+ {
+ "title": "1号楼",
+ "key": "A001",
+ "children": [
+ {
+ "title": "1号楼空调用电",
+ "key": "A002"
+ },
+ {
+ "title": "1号楼照明用电",
+ "key": "A003"
+ }
+ ]
+ },
+ {
+ "title": "2号楼(A005)",
+ "key": "A004",
+ "children": [
+ {
+ "title": "2号楼空调用电(A007)",
+ "key": "A006"
+ }
+ ]
+ },
+ {
+ "title": "3号楼",
+ "key": "A008",
+ "children": [
+ {
+ "title": "3号楼空调用电",
+ "key": "A009"
+ },
+ {
+ "title": "3号楼照明用电",
+ "key": "A010"
+ }
+ ]
+ }
+ ],
+ "listData":[
+ {
+ "id": "d4",
+ "isDel": "0",
+ "officesId": "84",
+ "deviceCode": "37430200143",
+ "deviceName": "地听测试电表",
+ "category": "1",
+ "type": "1001",
+ "energyCount": "1",
+ "serialNumber": "69",
+ "pidCode": null,
+ "brand": "",
+ "types": "",
+ "manufacturer": "elit non in",
+ "contacts": "ad reprehenderit",
+ "phonenumber": "34",
+ "position": "in esse commodo",
+ "activeState": "1",
+ "measurementDirection": "1",
+ "deviceMagnification": 62,
+ "deviceAccuracy": "89",
+ "frequency": "anim consequat irure",
+ "standardFrequency": "ut elit",
+ "deviceHead": "pariatur ex velit",
+ "constructor": "84566",
+ "voltageType": "cillum aliquip reprehenderit",
+ "pt": 61,
+ "ct": 64,
+ "communicationProtocol": "cupidatat nisi ea ad",
+ "ip": "",
+ "port": "",
+ "com": "",
+ "slaveAddress": "",
+ "dlt": "",
+ "conversionIdentifier": "48",
+ "multiplicationAdjustment": "1",
+ "accessMethod": "1",
+ "replacementFrequency": "0",
+ "dataDetail": "sit",
+ "insertTime": null,
+ "children": null,
+ "devicePointList": null,
+ "insertUser": null
+ }
+
+ ]
+
+}
\ No newline at end of file
diff --git a/hx-ai-intelligent/src/view/equipmentManage/ledger/config.ts b/hx-ai-intelligent/src/view/equipmentManage/ledger/config.ts
index e0f7412..930df23 100644
--- a/hx-ai-intelligent/src/view/equipmentManage/ledger/config.ts
+++ b/hx-ai-intelligent/src/view/equipmentManage/ledger/config.ts
@@ -1,11 +1,9 @@
import { dateUtil } from '/nerv-lib/util/date-util';
-import { data } from './mock.json';
-import { origanizemanage } from '/@/api/origanizemanage';
+import data from './mock.json';
export const tableConfig = {
title: '设备台账',
- // api: '/carbon_emission/device/getDeviceList',
- api: origanizemanage.list,
+ api: '/carbon_emission/device/getDeviceList',
treeConfig: {
defaultExpandAll: true,
api: () => {