diff --git a/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts b/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
index 349d256..2fbfe1b 100644
--- a/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
+++ b/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
@@ -80,6 +80,7 @@ export enum uploadPic {
select = '/carbon-smart/api/common/file/select',
uploadfile = '/carbon-smart/api/common/file/uploadfile',
download = '/carbon-smart/api/common/file/download',
+ downloadZip = '/carbon-smart/api/common/file/downloadZip',
}
// 碳规划
export enum carbonPlanning {
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
index 4a3fef0..c99a2f6 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
@@ -295,6 +295,7 @@
uid: item.id.toString(), // 使用文件的id作为唯一标识
name: item.fileName, // 文件名
status: 'done', // 设置默认状态为已完成
+ type: 'done',
url: item.filePath, // 文件的URL,这里假设用示例的URL格式
}));
});
@@ -415,7 +416,9 @@
message.error(`${info.file.name} 文件上传失败`);
}
};
+ const delIds = ref([]);
const handleFileRemove = (file) => {
+ delIds.value.push(file.uid);
const newFileList = [];
fileList.value.forEach((item) => {
if (item.uid !== file.uid) {
@@ -440,14 +443,20 @@
// uploadQuery.value.bizId = res.data.id;
const formData = ref(new FormData());
fileList.value.forEach((file) => {
- formData.value.append('files', file.originFileObj);
+ if (file.type !== 'done') {
+ formData.value.append('files', file.originFileObj);
+ }
});
formData.value.append('bizType', 1);
formData.value.append('bizId', res.data.id);
+ delIds.value.forEach((item) => {
+ formData.value.append('deleteList', item);
+ });
fetch(uploadPic.uploadfiles, formData.value)
.then((res) => {
message.success('操作成功!');
visible.value = false;
+ delIds.value = [];
getDetailList();
})
.catch((error) => {
@@ -456,6 +465,7 @@
} else {
message.success('操作成功!');
visible.value = false;
+ delIds.value = [];
getDetailList();
}
});
@@ -476,6 +486,7 @@
// 关闭新增抽屉
const onClose = () => {
visible.value = false;
+ delIds.value = [];
formState.value = {};
fileList.value = [];
formRef.value.resetFields();
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
index a571d30..9be85b4 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
@@ -641,6 +641,9 @@
name: 'carbonEmissionFactorLibraryImport',
extra: {
api: carbonEmissionFactorLibrary.excel, // 导入接口名
+ params: {
+ orgId,
+ },
title: '设备信息', // 弹窗title
templateName: 'whiteListUser', // 所使用的文件名称
indexName: '设备id', // 匹配类型字段
@@ -1035,10 +1038,18 @@
onOk() {
fetch(carbonEmissionFactorLibrary.delDictionary, formState.value).then((res) => {
message.success('操作成功!');
+ formState.value = {
+ grp: 'MEASUREMENT_UNIT',
+ grpDesc: '计量单位',
+ };
getUnitTree();
});
},
onCancel() {
+ formState.value = {
+ grp: 'MEASUREMENT_UNIT',
+ grpDesc: '计量单位',
+ };
console.log('Cancel');
},
});
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue
index 368a56e..3b2bc53 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue
@@ -274,7 +274,7 @@
:columns="downLoadColumns"
:data-source="downLoadData"
bordered
- :rowKey="(record, index) => index"
+ rowKey="id"
:rowSelection="{
selectedRowKeys: selectedRowKeysSet,
onChange: onSelectionChangeSet,
@@ -534,6 +534,7 @@
uid: item.id.toString(), // 使用文件的id作为唯一标识
name: item.fileName, // 文件名
status: 'done', // 设置默认状态为已完成
+ type: 'done',
url: item.filePath, // 文件的URL,这里假设用示例的URL格式
}));
});
@@ -623,14 +624,20 @@
if (fileList.value.length !== 0) {
const formData = ref(new FormData());
fileList.value.forEach((file) => {
- formData.value.append('files', file.originFileObj);
+ if (file.type !== 'done') {
+ formData.value.append('files', file.originFileObj);
+ }
});
formData.value.append('bizType', 3);
formData.value.append('bizId', formState.value.id);
+ delIds.value.forEach((item) => {
+ formData.value.append('deleteList', item);
+ });
fetch(uploadPic.uploadfiles, formData.value)
.then((res) => {
message.success('操作成功!');
visible.value = false;
+ delIds.value = [];
formState.value = {
orgId: orgId.value,
};
@@ -641,6 +648,7 @@
});
} else {
visible.value = false;
+ delIds.value = [];
formState.value = {
orgId: orgId.value,
};
@@ -652,6 +660,7 @@
fetch(energyConsumption.creat, formState.value).then((res) => {
if (res.data === '新增数据已存在') {
visible.value = false;
+ delIds.value = [];
NsMessage.warning(res.data);
} else {
if (fileList.value.length !== 0) {
@@ -665,6 +674,7 @@
.then((res) => {
message.success('操作成功!');
visible.value = false;
+ delIds.value = [];
formState.value = {
orgId: orgId.value,
};
@@ -675,6 +685,7 @@
});
} else {
visible.value = false;
+ delIds.value = [];
formState.value = {
orgId: orgId.value,
};
@@ -766,6 +777,7 @@
// 关闭新增抽屉
const onClose = () => {
visible.value = false;
+ delIds.value = [];
formState.value = {
orgId: orgId.value,
};
@@ -796,7 +808,9 @@
message.error(`${info.file.name} 文件上传失败`);
}
};
+ const delIds = ref([]);
const handleFileRemove = (file) => {
+ delIds.value.push(file.uid);
const newFileList = [];
fileList.value.forEach((item) => {
if (item.uid !== file.uid) {
@@ -840,12 +854,50 @@
const downLoad = (record) => {
const deleteId = ref(new FormData());
deleteId.value.append('id', record.id);
- fetch(uploadPic.download, deleteId.value).then((res) => {
- console.log(res);
+ fetch(uploadPic.download, deleteId.value)
+ .then((res) => {
+ // 创建一个 URL 对象,指向图片数据的 blob
+ const url = window.URL.createObjectURL(new Blob([res.data]));
+ // 创建一个 标签,用于触发下载
+ const link = document.createElement('a');
+ link.href = url;
+ link.setAttribute('download', record.fileName); // 设置下载的文件名
+ document.body.appendChild(link);
+ link.click();
+
+ // 清理 URL 对象
+ window.URL.revokeObjectURL(url);
+ })
+ .catch((error) => {
+ console.error('下载图片失败:', error);
+ });
+ };
+ const onSubmitDownLoad = () => {
+ const deleteIds = ref(new FormData());
+ selectedRowKeysSet.value.forEach((item) => {
+ deleteIds.value.append('ids', item);
});
+ fetch(uploadPic.downloadZip, deleteIds.value)
+ .then((res) => {
+ // 创建一个 URL 对象,指向图片数据的 blob
+ const url = window.URL.createObjectURL(new Blob([res.data]));
+ // 创建一个 标签,用于触发下载
+ const link = document.createElement('a');
+ link.href = url;
+ debugger
+ link.setAttribute('download', ''); // 设置下载的文件名
+ document.body.appendChild(link);
+ link.click();
+
+ // 清理 URL 对象
+ window.URL.revokeObjectURL(url);
+ })
+ .catch((error) => {
+ console.error('下载图片失败:', error);
+ });
};
- const onSubmitDownLoad = () => {};
const onCloseDownLoad = () => {
+ selectedRowKeysSet.value = []
downLoadVisible.value = false;
};
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue
index f49bd40..a39353a 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue
@@ -102,7 +102,7 @@
-
+
@@ -281,7 +281,7 @@
type: 'primary',
handle: () => {
visible.value = true;
- getNewTable();
+ // getNewTable();
},
},
],
@@ -384,7 +384,7 @@
// 点击新增按钮
const addNewData = () => {
visible.value = true;
- getNewTable();
+ // getNewTable();
};
// 获取新增页面的列表
const selectedRowKeys = ref([]);
@@ -404,6 +404,11 @@
newTableData.value = res.data.records;
});
};
+ const selectData = ref();
+ const keyChange = () => {
+ queryData.value.emissionSources = selectData.value;
+ getNewTable();
+ };
// 点击编辑按钮
const editData = (record) => {
selectedRowKeys.value = [record.factorId];
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
index 457306a..c85cfb3 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
@@ -291,6 +291,7 @@
@@ -848,7 +849,7 @@
const openVoucher = ref(false);
const downLoadVoucher = () => {
fetch(carbonInventoryCheck.voucherDownloadList, { bizType: 2 }).then((res) => {
- voucherData.value = res.data
+ voucherData.value = res.data;
});
openVoucher.value = true;
};
@@ -898,6 +899,7 @@
uid: item.id.toString(), // 使用文件的id作为唯一标识
name: item.fileName, // 文件名
status: 'done', // 设置默认状态为已完成
+ type: 'done',
url: item.filePath, // 文件的URL,这里假设用示例的URL格式
}));
});
@@ -909,6 +911,10 @@
total.value = res.data.total;
});
};
+ const searchKey = () => {
+ queryData.value.emissionSources = editFormState.value.emissionFactors;
+ getNewTable();
+ };
// 数据来源选择框改变
const canEdit = ref(false);
const automatic = ref(false);
@@ -957,7 +963,9 @@
message.error(`${info.file.name} 文件上传失败`);
}
};
+ const delIds = ref([]);
const handleFileRemove = (file) => {
+ delIds.value.push(file.uid);
const newFileList = [];
fileList.value.forEach((item) => {
if (item.uid !== file.uid) {
@@ -985,14 +993,20 @@
if (fileList.value.length !== 0) {
const formData = ref(new FormData());
fileList.value.forEach((file) => {
- formData.value.append('files', file.originFileObj);
+ if (file.type !== 'done') {
+ formData.value.append('files', file.originFileObj);
+ }
});
formData.value.append('bizType', 2);
formData.value.append('bizId', editFormState.value.id);
+ delIds.value.forEach((item) => {
+ formData.value.append('deleteList', item);
+ });
fetch(uploadPic.uploadfiles, formData.value)
.then((res) => {
message.success('操作成功!');
editData.value = false;
+ delIds.value = [];
getPFYTableList(getTableId.value);
})
.catch((error) => {
@@ -1000,6 +1014,7 @@
});
} else {
editData.value = false;
+ delIds.value = [];
getPFYTableList(getTableId.value);
}
});
@@ -1010,6 +1025,7 @@
};
const onCloseEditData = () => {
editData.value = false;
+ delIds.value = [];
editFormState.value = {
orgId: orgId.value,
};
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue
index efa4496..6d2d2d1 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue
@@ -48,7 +48,12 @@
-
+
@@ -159,7 +164,7 @@
};
const getMonthPillarData = () => {
fetch(carbonPlanning.electricityUsageBackThen, getPillarQuery.value).then((res) => {
- xAxisData.value = res.data.year;
+ xAxisData.value = res.data.yearMonth;
referenceValue.value = res.data.referenceValue;
budget.value = res.data.budget;
actualUsage.value = res.data.actualUsage;
@@ -286,6 +291,7 @@
type: props.tabId,
year: selectYearValue.value.format('YYYY'),
yearAndMonth: 'year',
+ yearMonth: selectMonthValue.value.format('YYYY-DD'),
});
const ballValue = ref();
const getBallData = () => {
@@ -447,7 +453,7 @@
fetch(carbonPlanning.searchListByYear, yearQueryParams.value).then((res) => {
data.value = res.data;
res.data.forEach((item) => {
- treeCheckedKeys.value.push((item.itemizeId).toString());
+ treeCheckedKeys.value.push(item.itemizeId.toString());
});
});
};
@@ -460,7 +466,9 @@
});
const changeMonth = () => {
monthQueryParams.value.yearMonth = selectMonthValue.value;
+ getBallQuery.value.yearMonth = selectMonthValue.value;
getMonthData();
+ getBallData();
};
const getMonthData = () => {
fetch(carbonPlanning.searchListByMonth, monthQueryParams.value).then((res) => {
diff --git a/lib/util/xlsx-util.ts b/lib/util/xlsx-util.ts
index 83a459b..1c2086b 100644
--- a/lib/util/xlsx-util.ts
+++ b/lib/util/xlsx-util.ts
@@ -1,10 +1,9 @@
-
-
import { utils, write } from 'xlsx';
import { dateUtil } from '/nerv-lib/util/date-util';
import { NsMessage } from '/nerv-lib/component/message';
import axios from 'axios';
import { createVNode, h, render as vueRender } from 'vue';
+import { Cookies } from '/nerv-lib/util/cookie';
import { NsXlsxImport } from '/nerv-lib/component/xlsx';
import { NsModal } from '/nerv-lib/component/modal';
@@ -126,7 +125,9 @@ export const importFile = (
});
formData.append('file', event);
axios
- .post(api, formData)
+ .post(api, formData, {
+ headers: { token: Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) },
+ })
.then((res) => {
if (res) {
NsMessage.success('导入成功', 1, () => {