Browse Source

根据文档进行优化

temp
fks-xuxinyue 3 months ago
parent
commit
6ba03df551
  1. BIN
      hx-ai-intelligent/public/asset/file/emissionSource.xlsx
  2. BIN
      hx-ai-intelligent/public/asset/file/energyConsumption.xlsx
  3. 5
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
  4. 3
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/carbonEmissions/index.vue
  5. 8
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/config.ts
  6. 4
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue
  7. 80
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue
  8. 16
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
  9. 37
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue
  10. 8
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/categoryDeatil.vue
  11. 2
      hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue
  12. 4
      lib/util/xlsx-util.ts

BIN
hx-ai-intelligent/public/asset/file/emissionSource.xlsx

Binary file not shown.

BIN
hx-ai-intelligent/public/asset/file/energyConsumption.xlsx

Binary file not shown.

5
hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue

@ -48,7 +48,7 @@
</a-form> </a-form>
</a-card> </a-card>
</div> </div>
<div style="display: flex; margin-top: 20px; height: calc(84% - 20px)"> <div style="display: flex; margin-top: 20px; height: calc(85% - 20px)">
<div class="detailTable"> <div class="detailTable">
<ns-view-list-table v-bind="tableConfig" :model="data" ref="mainRef" :scroll="{ x: 1280 }"> <ns-view-list-table v-bind="tableConfig" :model="data" ref="mainRef" :scroll="{ x: 1280 }">
<template #bodyCell="{ column, text, record }"> <template #bodyCell="{ column, text, record }">
@ -523,6 +523,7 @@
{ {
title: '更新时间', title: '更新时间',
width: 150, width: 150,
ellipsis: true,
dataIndex: 'updateTime', dataIndex: 'updateTime',
}, },
], ],
@ -826,7 +827,7 @@
padding: 16px; padding: 16px;
} }
.search { .search {
height: 16%; height: 15%;
} }
.detailTable { .detailTable {
width: 70%; width: 70%;

3
hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/carbonEmissions/index.vue

@ -13,6 +13,9 @@
<a-button type="primary" ghost style="margin-left: 6px" @click="reset">重置</a-button> <a-button type="primary" ghost style="margin-left: 6px" @click="reset">重置</a-button>
</span> </span>
</template> </template>
<template #bodyCell="{ column, text }">
<span>{{ text || '-' }}</span>
</template>
</a-table> </a-table>
<!-- <a-pagination <!-- <a-pagination
:current="queryParams.pageNum" :current="queryParams.pageNum"

8
hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/config.ts

@ -146,7 +146,7 @@ export const drawerColumns = [
dataIndex: 'dataSources', dataIndex: 'dataSources',
}, },
]; ];
export const setFactorConfig = (orgId) => { export const setFactorConfig = (orgId, treeId, tableId) => {
return ref({ return ref({
api: carbonEmissionFactorLibrary.getTableList, api: carbonEmissionFactorLibrary.getTableList,
params: { orgId, pageNum: 1, pageSize: 9999, emissionList: [0] }, params: { orgId, pageNum: 1, pageSize: 9999, emissionList: [0] },
@ -155,6 +155,7 @@ export const setFactorConfig = (orgId) => {
icon: 'deviceType', icon: 'deviceType',
title: '排放分类', title: '排放分类',
}, },
selectedKeys: treeId,
params: { orgId }, params: { orgId },
dynamicParams: { emissionList: 'id[]' }, dynamicParams: { emissionList: 'id[]' },
defaultExpandAll: true, defaultExpandAll: true,
@ -175,7 +176,10 @@ export const setFactorConfig = (orgId) => {
], ],
}, },
}, },
rowSelection: { type: 'radio' }, rowSelection: {
type: 'radio',
selectedRowKeys: tableId,
},
columns: [ columns: [
{ {
title: '序号', title: '序号',

4
hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/energyConsumption/index.vue

@ -297,9 +297,7 @@
indexName: '能源种类', // indexName: '能源种类', //
message: [ message: [
{ label: '1、若必填项未填写,则不能进行导入操作' }, { label: '1、若必填项未填写,则不能进行导入操作' },
{ label: `2、当重复时,则更新数据。` }, { label: '2、文件导入勿超过5MB。' },
{ label: '3、数据将从模版的第五行进行导入。' },
{ label: '4、文件导入勿超过5MB。' },
], ],
}, },
}, },

80
hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionStatistics/quickCalculation/index.vue

@ -21,20 +21,22 @@
:auto-expand-parent="autoExpandParent" :auto-expand-parent="autoExpandParent"
:selectedKeys="selectedKeys" :selectedKeys="selectedKeys"
:tree-data="gData" :tree-data="gData"
:show-line="{ showLeafIcon: false }"
show-line show-line
@expand="onExpand" @expand="onExpand"
@select="onSelect" @select="onSelect"
style="padding: 0 16px !important"> style="padding: 0 16px !important">
<template #title="data"> <template #title="data">
<span <!-- <span
v-if="data.energyType && searchValue && data.energyType.indexOf(searchValue) > -1"> v-if="data.energyType && searchValue && data.energyType.indexOf(searchValue) > -1">
{{ data.energyType.substring(0, data.energyType.indexOf(searchValue)) }} {{ data.energyType.substring(0, data.energyType.indexOf(searchValue)) }}
<span style="color: #f50">{{ searchValue }}</span> <span style="color: #f50">{{ searchValue }}</span>
{{ {{
data.energyType.substring(data.energyType.indexOf(searchValue) + searchValue.length) data.energyType.substring(data.energyType.indexOf(searchValue) + searchValue.length)
}} }}
</span> </span> -->
<span v-else>{{ data.energyType }}</span> <span v-if="data.code">{{ truncatedName(data.energyType + data.code) }}</span>
<span v-else>{{ truncatedName(data.energyType) }}</span>
</template> </template>
</a-tree> </a-tree>
</div> </div>
@ -130,8 +132,8 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, watch, toRaw, defineExpose } from 'vue'; import { ref, watch, toRaw, defineExpose, nextTick } from 'vue';
import type { TreeProps } from 'ant-design-vue'; import { message, TreeProps } from 'ant-design-vue';
import { Pagination, Modal } from 'ant-design-vue'; import { Pagination, Modal } from 'ant-design-vue';
import { columns, drawerColumns } from '../config'; import { columns, drawerColumns } from '../config';
import { http } from '/nerv-lib/util/http'; import { http } from '/nerv-lib/util/http';
@ -225,6 +227,12 @@
expandedKeys.value = keys; expandedKeys.value = keys;
autoExpandParent.value = false; autoExpandParent.value = false;
}; };
const truncatedName = (name) => {
if (name.length > 8) {
return name.substring(0, 8) + '...';
}
return name;
};
// //
const energyType = ref(); const energyType = ref();
const onSelect = (selectedKey: string[], info: any) => { const onSelect = (selectedKey: string[], info: any) => {
@ -245,16 +253,22 @@
return null; return null;
}) })
.filter((item, i, self) => item && self.indexOf(item) === i); .filter((item, i, self) => item && self.indexOf(item) === i);
expandedKeys.value = expanded; // expandedKeys.value = expanded;
searchValue.value = value; searchValue.value = value;
autoExpandParent.value = true; autoExpandParent.value = true;
}); });
// //
const onSearchTreeData = () => {}; const getTreeQuery = ref({
orgId: orgId.value,
});
const onSearchTreeData = () => {
getTreeQuery.value.energyType = searchValue.value;
getTreeData();
};
const statsId = ref(); const statsId = ref();
// //
const getTreeData = () => { const getTreeData = () => {
fetch(quickCalculation.carbonQuickTree, { orgId: orgId.value }).then((res) => { fetch(quickCalculation.carbonQuickTree, getTreeQuery.value).then((res) => {
gData.value = res.data; gData.value = res.data;
energyType.value = gData.value[0].children[0].id; energyType.value = gData.value[0].children[0].id;
statsId.value = gData.value[0].children[0].id; statsId.value = gData.value[0].children[0].id;
@ -271,9 +285,12 @@
}); });
const tableData = ref([]); const tableData = ref([]);
const emissionSources = ref(); const emissionSources = ref();
const treeId = ref([]);
const tableId = ref([]);
const tableConfig = ref({ const tableConfig = ref({
title: '排放因子库', title: '排放因子库',
api: quickCalculation.queryCarbonEmissionPage, api: quickCalculation.queryCarbonEmissionPage,
rowSelection: null,
params: { params: {
orgId, orgId,
energyType, energyType,
@ -307,12 +324,6 @@
dataIndex: 'carbonEmissionSuffix', dataIndex: 'carbonEmissionSuffix',
}, },
{ {
title: '更新时间',
className: 'updateTime',
dataIndex: 'updateTime',
ellipsis: true,
},
{
title: '启用时间', title: '启用时间',
className: 'startTime', className: 'startTime',
dataIndex: 'startTime', dataIndex: 'startTime',
@ -327,6 +338,12 @@
className: 'dataSources', className: 'dataSources',
dataIndex: 'dataSources', dataIndex: 'dataSources',
}, },
{
title: '更新时间',
className: 'updateTime',
dataIndex: 'updateTime',
ellipsis: true,
},
], ],
columnActions: { columnActions: {
title: '操作', title: '操作',
@ -342,8 +359,10 @@
formState.value.factorId = record.factorId; formState.value.factorId = record.factorId;
text.value = '编辑'; text.value = '编辑';
visible.value = true; visible.value = true;
emissionSources.value = record.factorId; //todo emissionSources.value = record.factorId;
queryData.value.factorId = emissionSources.value; //todo queryData.value.factorId = emissionSources.value;
treeId.value = [record.treeId];
tableId.value = [record.factorId];
getNewTable(); getNewTable();
}, },
}, },
@ -450,6 +469,7 @@
selectedRowKeys.value = []; selectedRowKeys.value = [];
formState.value = {}; formState.value = {};
formRef.value.resetFields(); formRef.value.resetFields();
message.success('操作成功!');
mainRef.value?.nsTableRef.reload(); mainRef.value?.nsTableRef.reload();
}); });
} else { } else {
@ -458,6 +478,7 @@
selectedRowKeys.value = []; selectedRowKeys.value = [];
formState.value = {}; formState.value = {};
formRef.value.resetFields(); formRef.value.resetFields();
message.success('操作成功!');
mainRef.value?.nsTableRef.reload(); mainRef.value?.nsTableRef.reload();
}); });
} }
@ -487,9 +508,15 @@
}; };
const openVisible = ref(false); const openVisible = ref(false);
const setFactorRef = ref(); const setFactorRef = ref();
const config = setFactorConfig(orgId.value); const config = setFactorConfig(orgId.value, treeId.value, tableId.value);
const selectFactor = () => { const selectFactor = () => {
openVisible.value = true; openVisible.value = true;
nextTick(() => {
setFactorRef.value.nsTableRef.params.emissionList = treeId.value;
setFactorRef.value.nsTableRef.treeElRef.selectedKeys = treeId.value;
setFactorRef.value.nsTableRef.rowSelection.selectedRowKeys = tableId.value;
setFactorRef.value.nsTableRef.reload();
});
}; };
const btnClick = () => { const btnClick = () => {
let selectRowKeys = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys; let selectRowKeys = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
@ -624,6 +651,25 @@
:deep(.ant-modal-footer) { :deep(.ant-modal-footer) {
border-top: 10px solid #f0f0f0 !important; border-top: 10px solid #f0f0f0 !important;
} }
:deep(.ns-table-container) {
background: white;
}
:deep(.ns-part-tree) {
border-radius: 8px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
}
:deep(.ns-table-search) {
border-radius: 8px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
}
:deep(.ns-table-main) {
margin-top: 20px !important;
border-radius: 8px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
}
</style> </style>
<style scoped> <style scoped>
th.column-money, th.column-money,

16
hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue

@ -1193,11 +1193,11 @@
return regex.test(filename); return regex.test(filename);
}; };
const beforeUpload: UploadProps['beforeUpload'] = (file) => { const beforeUpload: UploadProps['beforeUpload'] = (file) => {
const filename = file.name; // const filename = file.name;
if (!isValidFileName(filename)) { // if (!isValidFileName(filename)) {
message.error('文件名不符合规则'); // message.error('');
return Upload.LIST_IGNORE; // // return Upload.LIST_IGNORE; //
} // }
return false; return false;
}; };
const handleChange = (info: UploadChangeParam) => { const handleChange = (info: UploadChangeParam) => {
@ -1284,14 +1284,16 @@
NsMessage.warn('请选择因子'); NsMessage.warn('请选择因子');
return; return;
} else { } else {
if (newTableData.value.emissionFactorUnits === carbonEmission.value) { if (newTableData.value[0].emissionFactorUnits === carbonEmission.value) {
newTableData.value = setFactorRef.value?.nsTableRef.tableState.selectedRows; newTableData.value = setFactorRef.value?.nsTableRef.tableState.selectedRows;
selectedRowKeysEdit.value = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys; selectedRowKeysEdit.value = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
editFormState.value.emissionFactors = newTableData.value[0].emissionFactors; editFormState.value.emissionFactors = newTableData.value[0].emissionFactors;
editFormState.value.factorId = selectedRowKeysEdit.value[0]; editFormState.value.factorId = selectedRowKeysEdit.value[0];
openVisible.value = false; openVisible.value = false;
} else { } else {
NsMessage.warn('因子值单位不统一,请重新选择!'); NsMessage.warn(
'因子值单位与当前因子值单位(' + carbonEmission.value + ')不统一,请重新选择!',
);
} }
} }
}; };

37
hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue

@ -39,11 +39,7 @@
placeholder="请输入报告名称" /> placeholder="请输入报告名称" />
</a-form-item> </a-form-item>
<a-form-item ref="name" label="报告年度" name="reportYear"> <a-form-item ref="name" label="报告年度" name="reportYear">
<a-date-picker <a-date-picker v-model:value="formState.reportYear" picker="year" valueFormat="YYYY" />
v-model:value="formState.reportYear"
@openChange="openChange"
picker="year"
valueFormat="YYYY" />
</a-form-item> </a-form-item>
<a-form-item ref="name" label="适用标准" name="genericStandard"> <a-form-item ref="name" label="适用标准" name="genericStandard">
<a-input <a-input
@ -64,7 +60,6 @@
<a-form-item ref="name" label="报告范围" name="reportScope"> <a-form-item ref="name" label="报告范围" name="reportScope">
<a-range-picker <a-range-picker
v-model:value="formState.reportScope" v-model:value="formState.reportScope"
:defaultPickerValue="defaultPickerValue"
picker="month" picker="month"
:disabledDate="disabledDate" :disabledDate="disabledDate"
valueFormat="YYYY-MM" /> valueFormat="YYYY-MM" />
@ -111,20 +106,22 @@
const selectChange = (value) => { const selectChange = (value) => {
formState.value.reportScope = ''; formState.value.reportScope = '';
}; };
const defaultPickerValue = ref([ // const defaultPickerValue = ref([]);
dayjs('2020'), // // const open = ref(false);
dayjs('2020'), // // const openChange = (status) => {
]); // debugger;
const openChange = (status) => { // open.value = status;
if (status === false) { // if (formState.value.reportYear) {
if (formState.value.reportYear) { // defaultPickerValue.value = [
defaultPickerValue.value = [ // dayjs(formState.value.reportYear),
dayjs(formState.value.reportYear), // dayjs(formState.value.reportYear),
dayjs(formState.value.reportYear), // ];
]; // open.value = false;
} // nextTick(() => {
} // open.value = status; //
}; // });
// }
// };
// form // form
const rules: Record<string, Rule[]> = { const rules: Record<string, Rule[]> = {
reportName: [{ required: true, message: '请输入报告名称', trigger: 'change' }], reportName: [{ required: true, message: '请输入报告名称', trigger: 'change' }],

8
hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/categoryDeatil.vue

@ -417,7 +417,6 @@
const editData = (record) => { const editData = (record) => {
open.value = true; open.value = true;
if (record.isLastYear !== undefined) { if (record.isLastYear !== undefined) {
formState.value.ids = [record.id];
if (record.lastYear === '是') { if (record.lastYear === '是') {
formState.value.isLastYear = 1; formState.value.isLastYear = 1;
disabled.value = false; disabled.value = false;
@ -425,10 +424,12 @@
formState.value.isLastYear = 0; formState.value.isLastYear = 0;
disabled.value = true; disabled.value = true;
} }
}
formState.value.ids = [record.id];
formState.value.conversionRate = record.conversionRate; formState.value.conversionRate = record.conversionRate;
formState.value.lastYearList = [record.lastYearActualUsage]; formState.value.lastYearList = [record.lastYearActualUsage];
formState.value.ids = [record.id];
formState.value.budget = record.budget; formState.value.budget = record.budget;
}
}; };
const disabled = ref(true); const disabled = ref(true);
const selectChange = (value) => { const selectChange = (value) => {
@ -995,6 +996,9 @@
:deep(.ant-card-bordered) { :deep(.ant-card-bordered) {
border: unset; border: unset;
} }
:deep(.ant-input-number-handler-wrap){
display: none;
}
</style> </style>
<style scoped> <style scoped>
.editable-row-operations a { .editable-row-operations a {

2
hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/category/index.vue

@ -674,7 +674,7 @@
} }
.contant { .contant {
width: 100%; width: 100%;
height: calc(94% - 5vh); height: calc(94% - 5vh - 24px);
overflow-y: auto; overflow-y: auto;
padding: 12px; padding: 12px;
.chartsPart { .chartsPart {

4
lib/util/xlsx-util.ts

@ -129,11 +129,13 @@ export const importFile = (
headers: { token: Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) }, headers: { token: Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) },
}) })
.then((res) => { .then((res) => {
if (res) { if (res.data.data) {
NsMessage.success('导入成功', 1, () => { NsMessage.success('导入成功', 1, () => {
reload && reload(); reload && reload();
successBack && successBack(res); successBack && successBack(res);
}); });
} else {
NsMessage.error(res.data.msg || '导入失败');
} }
}) })
.catch((err) => { .catch((err) => {

Loading…
Cancel
Save