根据文档进行优化
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -48,7 +48,7 @@
|
||||
</a-form>
|
||||
</a-card>
|
||||
</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">
|
||||
<ns-view-list-table v-bind="tableConfig" :model="data" ref="mainRef" :scroll="{ x: 1280 }">
|
||||
<template #bodyCell="{ column, text, record }">
|
||||
@@ -523,6 +523,7 @@
|
||||
{
|
||||
title: '更新时间',
|
||||
width: 150,
|
||||
ellipsis: true,
|
||||
dataIndex: 'updateTime',
|
||||
},
|
||||
],
|
||||
@@ -826,7 +827,7 @@
|
||||
padding: 16px;
|
||||
}
|
||||
.search {
|
||||
height: 16%;
|
||||
height: 15%;
|
||||
}
|
||||
.detailTable {
|
||||
width: 70%;
|
||||
|
@@ -13,6 +13,9 @@
|
||||
<a-button type="primary" ghost style="margin-left: 6px" @click="reset">重置</a-button>
|
||||
</span>
|
||||
</template>
|
||||
<template #bodyCell="{ column, text }">
|
||||
<span>{{ text || '-' }}</span>
|
||||
</template>
|
||||
</a-table>
|
||||
<!-- <a-pagination
|
||||
:current="queryParams.pageNum"
|
||||
|
@@ -146,7 +146,7 @@ export const drawerColumns = [
|
||||
dataIndex: 'dataSources',
|
||||
},
|
||||
];
|
||||
export const setFactorConfig = (orgId) => {
|
||||
export const setFactorConfig = (orgId, treeId, tableId) => {
|
||||
return ref({
|
||||
api: carbonEmissionFactorLibrary.getTableList,
|
||||
params: { orgId, pageNum: 1, pageSize: 9999, emissionList: [0] },
|
||||
@@ -155,7 +155,8 @@ export const setFactorConfig = (orgId) => {
|
||||
icon: 'deviceType',
|
||||
title: '排放分类',
|
||||
},
|
||||
params: { orgId},
|
||||
selectedKeys: treeId,
|
||||
params: { orgId },
|
||||
dynamicParams: { emissionList: 'id[]' },
|
||||
defaultExpandAll: true,
|
||||
// checkable:true,
|
||||
@@ -175,7 +176,10 @@ export const setFactorConfig = (orgId) => {
|
||||
],
|
||||
},
|
||||
},
|
||||
rowSelection: { type: 'radio' },
|
||||
rowSelection: {
|
||||
type: 'radio',
|
||||
selectedRowKeys: tableId,
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: '序号',
|
||||
|
@@ -297,9 +297,7 @@
|
||||
indexName: '能源种类', // 匹配类型字段
|
||||
message: [
|
||||
{ label: '1、若必填项未填写,则不能进行导入操作' },
|
||||
{ label: `2、当重复时,则更新数据。` },
|
||||
{ label: '3、数据将从模版的第五行进行导入。' },
|
||||
{ label: '4、文件导入勿超过5MB。' },
|
||||
{ label: '2、文件导入勿超过5MB。' },
|
||||
],
|
||||
},
|
||||
},
|
||||
|
@@ -21,20 +21,22 @@
|
||||
:auto-expand-parent="autoExpandParent"
|
||||
:selectedKeys="selectedKeys"
|
||||
:tree-data="gData"
|
||||
:show-line="{ showLeafIcon: false }"
|
||||
show-line
|
||||
@expand="onExpand"
|
||||
@select="onSelect"
|
||||
style="padding: 0 16px !important">
|
||||
<template #title="data">
|
||||
<span
|
||||
<!-- <span
|
||||
v-if="data.energyType && searchValue && data.energyType.indexOf(searchValue) > -1">
|
||||
{{ data.energyType.substring(0, data.energyType.indexOf(searchValue)) }}
|
||||
<span style="color: #f50">{{ searchValue }}</span>
|
||||
{{
|
||||
data.energyType.substring(data.energyType.indexOf(searchValue) + searchValue.length)
|
||||
}}
|
||||
</span>
|
||||
<span v-else>{{ data.energyType }}</span>
|
||||
</span> -->
|
||||
<span v-if="data.code">{{ truncatedName(data.energyType + data.code) }}</span>
|
||||
<span v-else>{{ truncatedName(data.energyType) }}</span>
|
||||
</template>
|
||||
</a-tree>
|
||||
</div>
|
||||
@@ -130,8 +132,8 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, watch, toRaw, defineExpose } from 'vue';
|
||||
import type { TreeProps } from 'ant-design-vue';
|
||||
import { ref, watch, toRaw, defineExpose, nextTick } from 'vue';
|
||||
import { message, TreeProps } from 'ant-design-vue';
|
||||
import { Pagination, Modal } from 'ant-design-vue';
|
||||
import { columns, drawerColumns } from '../config';
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
@@ -225,6 +227,12 @@
|
||||
expandedKeys.value = keys;
|
||||
autoExpandParent.value = false;
|
||||
};
|
||||
const truncatedName = (name) => {
|
||||
if (name.length > 8) {
|
||||
return name.substring(0, 8) + '...';
|
||||
}
|
||||
return name;
|
||||
};
|
||||
// 被选中的树节点
|
||||
const energyType = ref();
|
||||
const onSelect = (selectedKey: string[], info: any) => {
|
||||
@@ -245,16 +253,22 @@
|
||||
return null;
|
||||
})
|
||||
.filter((item, i, self) => item && self.indexOf(item) === i);
|
||||
expandedKeys.value = expanded;
|
||||
// expandedKeys.value = expanded;
|
||||
searchValue.value = value;
|
||||
autoExpandParent.value = true;
|
||||
});
|
||||
// 查询因子分类树数据
|
||||
const onSearchTreeData = () => {};
|
||||
const getTreeQuery = ref({
|
||||
orgId: orgId.value,
|
||||
});
|
||||
const onSearchTreeData = () => {
|
||||
getTreeQuery.value.energyType = searchValue.value;
|
||||
getTreeData();
|
||||
};
|
||||
const statsId = ref();
|
||||
// 获取因子分类树数据
|
||||
const getTreeData = () => {
|
||||
fetch(quickCalculation.carbonQuickTree, { orgId: orgId.value }).then((res) => {
|
||||
fetch(quickCalculation.carbonQuickTree, getTreeQuery.value).then((res) => {
|
||||
gData.value = res.data;
|
||||
energyType.value = gData.value[0].children[0].id;
|
||||
statsId.value = gData.value[0].children[0].id;
|
||||
@@ -271,9 +285,12 @@
|
||||
});
|
||||
const tableData = ref([]);
|
||||
const emissionSources = ref();
|
||||
const treeId = ref([]);
|
||||
const tableId = ref([]);
|
||||
const tableConfig = ref({
|
||||
title: '排放因子库',
|
||||
api: quickCalculation.queryCarbonEmissionPage,
|
||||
rowSelection: null,
|
||||
params: {
|
||||
orgId,
|
||||
energyType,
|
||||
@@ -306,12 +323,6 @@
|
||||
className: 'carbonEmissionSuffix',
|
||||
dataIndex: 'carbonEmissionSuffix',
|
||||
},
|
||||
{
|
||||
title: '更新时间',
|
||||
className: 'updateTime',
|
||||
dataIndex: 'updateTime',
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '启用时间',
|
||||
className: 'startTime',
|
||||
@@ -327,6 +338,12 @@
|
||||
className: 'dataSources',
|
||||
dataIndex: 'dataSources',
|
||||
},
|
||||
{
|
||||
title: '更新时间',
|
||||
className: 'updateTime',
|
||||
dataIndex: 'updateTime',
|
||||
ellipsis: true,
|
||||
},
|
||||
],
|
||||
columnActions: {
|
||||
title: '操作',
|
||||
@@ -342,8 +359,10 @@
|
||||
formState.value.factorId = record.factorId;
|
||||
text.value = '编辑';
|
||||
visible.value = true;
|
||||
emissionSources.value = record.factorId; //todo
|
||||
queryData.value.factorId = emissionSources.value; //todo
|
||||
emissionSources.value = record.factorId;
|
||||
queryData.value.factorId = emissionSources.value;
|
||||
treeId.value = [record.treeId];
|
||||
tableId.value = [record.factorId];
|
||||
getNewTable();
|
||||
},
|
||||
},
|
||||
@@ -450,6 +469,7 @@
|
||||
selectedRowKeys.value = [];
|
||||
formState.value = {};
|
||||
formRef.value.resetFields();
|
||||
message.success('操作成功!');
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
} else {
|
||||
@@ -458,6 +478,7 @@
|
||||
selectedRowKeys.value = [];
|
||||
formState.value = {};
|
||||
formRef.value.resetFields();
|
||||
message.success('操作成功!');
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
}
|
||||
@@ -487,9 +508,15 @@
|
||||
};
|
||||
const openVisible = ref(false);
|
||||
const setFactorRef = ref();
|
||||
const config = setFactorConfig(orgId.value);
|
||||
const config = setFactorConfig(orgId.value, treeId.value, tableId.value);
|
||||
const selectFactor = () => {
|
||||
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 = () => {
|
||||
let selectRowKeys = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
|
||||
@@ -624,6 +651,25 @@
|
||||
:deep(.ant-modal-footer) {
|
||||
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 scoped>
|
||||
th.column-money,
|
||||
|
@@ -1193,11 +1193,11 @@
|
||||
return regex.test(filename);
|
||||
};
|
||||
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
|
||||
const filename = file.name;
|
||||
if (!isValidFileName(filename)) {
|
||||
message.error('文件名不符合规则');
|
||||
return Upload.LIST_IGNORE; // 阻止文件上传
|
||||
}
|
||||
// const filename = file.name;
|
||||
// if (!isValidFileName(filename)) {
|
||||
// message.error('文件名不符合规则');
|
||||
// return Upload.LIST_IGNORE; // 阻止文件上传
|
||||
// }
|
||||
return false;
|
||||
};
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
@@ -1284,14 +1284,16 @@
|
||||
NsMessage.warn('请选择因子');
|
||||
return;
|
||||
} else {
|
||||
if (newTableData.value.emissionFactorUnits === carbonEmission.value) {
|
||||
if (newTableData.value[0].emissionFactorUnits === carbonEmission.value) {
|
||||
newTableData.value = setFactorRef.value?.nsTableRef.tableState.selectedRows;
|
||||
selectedRowKeysEdit.value = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
|
||||
editFormState.value.emissionFactors = newTableData.value[0].emissionFactors;
|
||||
editFormState.value.factorId = selectedRowKeysEdit.value[0];
|
||||
openVisible.value = false;
|
||||
} else {
|
||||
NsMessage.warn('因子值单位不统一,请重新选择!');
|
||||
NsMessage.warn(
|
||||
'因子值单位与当前因子值单位(' + carbonEmission.value + ')不统一,请重新选择!',
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@@ -39,11 +39,7 @@
|
||||
placeholder="请输入报告名称" />
|
||||
</a-form-item>
|
||||
<a-form-item ref="name" label="报告年度" name="reportYear">
|
||||
<a-date-picker
|
||||
v-model:value="formState.reportYear"
|
||||
@openChange="openChange"
|
||||
picker="year"
|
||||
valueFormat="YYYY" />
|
||||
<a-date-picker v-model:value="formState.reportYear" picker="year" valueFormat="YYYY" />
|
||||
</a-form-item>
|
||||
<a-form-item ref="name" label="适用标准" name="genericStandard">
|
||||
<a-input
|
||||
@@ -64,7 +60,6 @@
|
||||
<a-form-item ref="name" label="报告范围" name="reportScope">
|
||||
<a-range-picker
|
||||
v-model:value="formState.reportScope"
|
||||
:defaultPickerValue="defaultPickerValue"
|
||||
picker="month"
|
||||
:disabledDate="disabledDate"
|
||||
valueFormat="YYYY-MM" />
|
||||
@@ -111,20 +106,22 @@
|
||||
const selectChange = (value) => {
|
||||
formState.value.reportScope = '';
|
||||
};
|
||||
const defaultPickerValue = ref([
|
||||
dayjs('2020'), // 默认开始日期
|
||||
dayjs('2020'), // 默认结束日期
|
||||
]);
|
||||
const openChange = (status) => {
|
||||
if (status === false) {
|
||||
if (formState.value.reportYear) {
|
||||
defaultPickerValue.value = [
|
||||
dayjs(formState.value.reportYear),
|
||||
dayjs(formState.value.reportYear),
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
// const defaultPickerValue = ref([]);
|
||||
// const open = ref(false);
|
||||
// const openChange = (status) => {
|
||||
// debugger;
|
||||
// open.value = status;
|
||||
// if (formState.value.reportYear) {
|
||||
// defaultPickerValue.value = [
|
||||
// dayjs(formState.value.reportYear),
|
||||
// dayjs(formState.value.reportYear),
|
||||
// ];
|
||||
// open.value = false;
|
||||
// nextTick(() => {
|
||||
// open.value = status; // 重新打开日期选择框
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
// 定义form表单的必填
|
||||
const rules: Record<string, Rule[]> = {
|
||||
reportName: [{ required: true, message: '请输入报告名称', trigger: 'change' }],
|
||||
|
@@ -417,7 +417,6 @@
|
||||
const editData = (record) => {
|
||||
open.value = true;
|
||||
if (record.isLastYear !== undefined) {
|
||||
formState.value.ids = [record.id];
|
||||
if (record.lastYear === '是') {
|
||||
formState.value.isLastYear = 1;
|
||||
disabled.value = false;
|
||||
@@ -425,10 +424,12 @@
|
||||
formState.value.isLastYear = 0;
|
||||
disabled.value = true;
|
||||
}
|
||||
formState.value.conversionRate = record.conversionRate;
|
||||
formState.value.lastYearList = [record.lastYearActualUsage];
|
||||
formState.value.budget = record.budget;
|
||||
}
|
||||
formState.value.ids = [record.id];
|
||||
formState.value.conversionRate = record.conversionRate;
|
||||
formState.value.lastYearList = [record.lastYearActualUsage];
|
||||
formState.value.ids = [record.id];
|
||||
formState.value.budget = record.budget;
|
||||
};
|
||||
const disabled = ref(true);
|
||||
const selectChange = (value) => {
|
||||
@@ -995,6 +996,9 @@
|
||||
:deep(.ant-card-bordered) {
|
||||
border: unset;
|
||||
}
|
||||
:deep(.ant-input-number-handler-wrap){
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.editable-row-operations a {
|
||||
|
@@ -674,7 +674,7 @@
|
||||
}
|
||||
.contant {
|
||||
width: 100%;
|
||||
height: calc(94% - 5vh);
|
||||
height: calc(94% - 5vh - 24px);
|
||||
overflow-y: auto;
|
||||
padding: 12px;
|
||||
.chartsPart {
|
||||
|
Reference in New Issue
Block a user