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 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); a.href = encodeURI(url); //设置下载的文件名 // a.download = fileName.value; //触发a标签的点击事件,进行下载 a.click(); }; 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: '点位信息', // 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'); }, }, { label: '批量分组', name: 'groupTemDownload', type: 'primary', handle: () => { elGroup.value.toggle(); }, }, { 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 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', }; };