taskid:099 remark:'commit'
This commit is contained in:
@@ -51,4 +51,8 @@ export enum carbonInventoryCheck {
|
||||
create = '/carbon-smart/api/carbon/inventory/create',
|
||||
update = '/carbon-smart/api/carbon/inventory/update',
|
||||
del = '/carbon-smart/api/carbon/inventory/del',
|
||||
// 获取排放源表格数据
|
||||
findUnitById = '/carbon-smartapi/carbon/inventory/findById',
|
||||
getDetailsList = '/carbon-smart/api/carbon/inventory/details/getDetailsList',
|
||||
updateTable = '/carbon-smart/api/carbon/inventory/details/update',
|
||||
}
|
@@ -66,7 +66,7 @@
|
||||
};
|
||||
}
|
||||
const rowSpan = getRowSpan('cnValue', record, data.value);
|
||||
if (rowIndex != 0 && data.value[rowIndex - 1].name == record.name) {
|
||||
if (rowIndex != 0 && data.value[rowIndex - 1].cnValue == record.cnValue) {
|
||||
return {
|
||||
rowSpan: 0,
|
||||
colSpan: 0,
|
||||
|
@@ -1,59 +1,3 @@
|
||||
// 填报页表头
|
||||
export const columns = [
|
||||
{
|
||||
title: '日期',
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
width: 100,
|
||||
fixed: 'left',
|
||||
},
|
||||
{
|
||||
title: '消耗量',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'companyAddress',
|
||||
key: 'companyAddress',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'companyName',
|
||||
key: 'companyName',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '碳排因子',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'companyAddress',
|
||||
key: 'companyAddress',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'companyName',
|
||||
key: 'companyName',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '排放量',
|
||||
dataIndex: 'gender',
|
||||
key: 'gender',
|
||||
width: 80,
|
||||
fixed: 'right',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
key: 'action',
|
||||
width: 80,
|
||||
fixed: 'right',
|
||||
},
|
||||
];
|
||||
// 凭证弹窗表头
|
||||
export const voucherColumns = [
|
||||
{
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<div class="top">
|
||||
<a-form style="width: 100%;margin: 0 auto;">
|
||||
<div class="ns-form-title">
|
||||
<div class="title">2024年济阳站碳盘查报告</div>
|
||||
<div class="title">{{props.year}}年济阳站碳盘查报告</div>
|
||||
<div class="standard">
|
||||
<span>适用标准:ISO 14064-1</span>
|
||||
<a-button type="primary" style="margin-left: 12px;" @click="openCategoryConfig">类别配置</a-button>
|
||||
@@ -54,7 +54,7 @@
|
||||
<div class="right">
|
||||
<div style="display:flex;">
|
||||
<div class="ns-table-title ns-title-extra-box">排放源</div>
|
||||
<a-button type="primary" style="margin-left: 12px;">返回</a-button>
|
||||
<a-button type="primary" style="margin-left: 12px;" @click="changeParentData">返回</a-button>
|
||||
</div>
|
||||
<div style="display: flex;" v-if="fillInPage">
|
||||
<div class="mainLeft">
|
||||
@@ -95,6 +95,12 @@
|
||||
<a-button type="primary" @click="downLoadVoucher">凭证</a-button>
|
||||
</template>
|
||||
<template #bodyCell="{ column, text, record }">
|
||||
<template v-if="column.dataIndex === 'dataSources'">
|
||||
<span v-if="record.dataSources">{{ record.dataSources.label }}</span>
|
||||
</template>
|
||||
<template v-if="column.dataIndex === 'carbonSource'">
|
||||
<span v-if="record.carbonSource">{{ record.carbonSource.label }}</span>
|
||||
</template>
|
||||
<template v-if="column.key === 'action'">
|
||||
<span>
|
||||
<a @click="edit(record)">编辑</a>
|
||||
@@ -249,41 +255,40 @@
|
||||
>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item ref="name" label="数据来源" name="dateRange">
|
||||
<a-form-item ref="name" label="数据来源" name="dataSources">
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="editFormState.dateRange"
|
||||
@change="handleChange"
|
||||
v-model:value="editFormState.dataSources"
|
||||
@change="changeSelect"
|
||||
>
|
||||
<a-select-option value="jack">Jack</a-select-option>
|
||||
<a-select-option value="lucy">Lucy</a-select-option>
|
||||
<a-select-option value="1">自行推估</a-select-option>
|
||||
<a-select-option value="2">定期量测</a-select-option>
|
||||
<a-select-option value="3">自动测量</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item ref="name" label="消耗量" name="emissionFactors">
|
||||
<ns-input v-model:value="editFormState.emissionFactors" disabled />
|
||||
<a-form-item ref="name" label="消耗量" name="consumption">
|
||||
<ns-input v-model:value="editFormState.consumption" :disabled="canEdit" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row v-if="automatic">
|
||||
<a-col :span="12">
|
||||
<a-form-item ref="name" label="采集节点" name="collectionNode">
|
||||
<a-tree-select
|
||||
v-model:value="editFormState.collectionNode"
|
||||
:tree-line="true"
|
||||
:tree-data="collectingNodes"
|
||||
>
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item ref="name" label="采集节点" name="dateRange">
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="editFormState.dateRange"
|
||||
@change="handleChange"
|
||||
>
|
||||
<a-select-option value="jack">Jack</a-select-option>
|
||||
<a-select-option value="lucy">Lucy</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item ref="name" label="因子值" name="emissionFactors">
|
||||
<ns-input v-model:value="editFormState.emissionFactors" disabled />
|
||||
<a-form-item ref="name" label="因子值" name="factorId">
|
||||
<ns-input v-model:value="editFormState.factorId" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -300,7 +305,7 @@
|
||||
rowKey="id"
|
||||
:scroll="{ y: 400 }"
|
||||
style="margin-bottom: 10px;"
|
||||
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectionChange, type: 'radio' }"
|
||||
:rowSelection="{ selectedRowKeys: selectedRowKeysEdit, onChange: onSelectionChangeEdit, type: 'radio' }"
|
||||
:pagination="false">
|
||||
</a-table>
|
||||
<a-pagination
|
||||
@@ -333,20 +338,32 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, watch, toRaw } from 'vue';
|
||||
import { ref, watch, toRaw, defineEmits } from 'vue';
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
import { Pagination, Modal, message } from 'ant-design-vue';
|
||||
import type { TreeProps,TableColumnsType,UploadChangeParam } from 'ant-design-vue';
|
||||
import { EditOutlined,PlusCircleOutlined,MinusCircleOutlined,UploadOutlined } from '@ant-design/icons-vue';
|
||||
import * as echarts from 'echarts';
|
||||
import { columns,voucherColumns,drawerColumns } from '../config';
|
||||
import { voucherColumns,drawerColumns } from '../config';
|
||||
import { energyConsumption,carbonEmissionFactorLibrary,carbonInventoryCheck } from '/@/api/carbonEmissionFactorLibrary';
|
||||
import { group } from '/@/api/deviceManage';
|
||||
defineOptions({
|
||||
energyType: 'fillInPage', // 与页面路由name一致缓存才可生效
|
||||
components: {
|
||||
'a-pagination': Pagination,
|
||||
},
|
||||
});
|
||||
// 父组件id和年份
|
||||
const props = defineProps({
|
||||
reportId: {
|
||||
type: Number
|
||||
},
|
||||
year: {
|
||||
type: String
|
||||
}
|
||||
})
|
||||
console.log(props,'xxy');
|
||||
|
||||
const orgId = ref('');
|
||||
const result = JSON.parse(sessionStorage.getItem('ORGID')!);
|
||||
orgId.value = result;
|
||||
@@ -440,16 +457,17 @@
|
||||
const categoryId = ref()
|
||||
const onSelectL = (selectedKey: string[], info: any) => {
|
||||
selectedKeysL.value = selectedKey;
|
||||
categoryId.value = info.node.id
|
||||
categoryId.value = info.node.conId
|
||||
formState.value.categoryId = categoryId.value
|
||||
getEmissionSourceTree()
|
||||
};
|
||||
// 获取碳盘查报告树
|
||||
const selectedIds = ref([]);
|
||||
const getReportTree = () => {
|
||||
fetch(carbonInventoryCheck.getCategoryTree).then((res) => {
|
||||
fetch(carbonInventoryCheck.getCategoryTree,{reportId:props.reportId,orgId:orgId.value}).then((res) => {
|
||||
gData.value = res.data
|
||||
if(res.data.length > 0){
|
||||
categoryId.value = res.data[0].id
|
||||
categoryId.value = res.data[0].conId
|
||||
formState.value.categoryId = categoryId.value
|
||||
selectedIds.value = getAllIds(gData.value);
|
||||
}
|
||||
@@ -460,29 +478,41 @@
|
||||
const getAllIds = (nodes: TreeNode[]): number[] => {
|
||||
return nodes.flatMap(node => [node.id, ...(node.children ? getAllIds(node.children) : [])]);
|
||||
};
|
||||
// 填报表格数据
|
||||
const data = [...Array(12)].map((_, i) => ({
|
||||
key: i,
|
||||
name: 'John Brown',
|
||||
age: i + 1,
|
||||
street: 'Lake Park',
|
||||
building: 'C',
|
||||
number: 2035,
|
||||
companyAddress: 'Lake Street 42',
|
||||
companyName: 'SoftLake Co',
|
||||
gender: 'M',
|
||||
}));
|
||||
// 右侧树数据
|
||||
const treeData = ref<TreeProps['treeData']>(genData);
|
||||
// 获取数据
|
||||
const getTableId = ref()
|
||||
const getEmissionSourceTree = () => {
|
||||
fetch(carbonInventoryCheck.getInventoryTree, { categoryId: categoryId.value }).then((res) => {
|
||||
treeData.value = res.data
|
||||
getTableId.value = res.data[0].id
|
||||
if(res.data.length != 0){
|
||||
getPFYTableList(getTableId.value)
|
||||
getTableHeardUnit(getTableId.value)
|
||||
}else{
|
||||
data.value = []
|
||||
columns.value[1].title = '消耗量'
|
||||
columns.value[2].title = '碳排因子'
|
||||
columns.value[3].title = '排放量'
|
||||
}
|
||||
});
|
||||
};
|
||||
// 排放源树中被选中的树节点
|
||||
const onSelectR = (selectedKey: string[], info: any) => {
|
||||
selectedKeysR.value = selectedKey;
|
||||
getTableId.value = info.selectedNodes[0].id
|
||||
getPFYTableList(getTableId.value)
|
||||
getTableHeardUnit(getTableId.value)
|
||||
};
|
||||
// 获取表头单位
|
||||
const getTableHeardUnit = (id) => {
|
||||
fetch(carbonInventoryCheck.findUnitById, { id: id }).then((res) => {
|
||||
if (res.data) {
|
||||
columns.value[1].title = '消耗量【' + res.data.unit + '】'
|
||||
columns.value[2].title = '碳排因子【' + res.data.carbonEmission + '】'
|
||||
columns.value[3].title = '排放量【' + res.data.carbonUnits + '】'
|
||||
}
|
||||
});
|
||||
};
|
||||
const expandedKeysR = ref<string[]>([]);
|
||||
const selectedKeysR = ref<string[]>(['0-0']);
|
||||
@@ -550,7 +580,8 @@
|
||||
const labelCol = { span: 5 };
|
||||
const wrapperCol = { span: 19 };
|
||||
const formState = ref({
|
||||
orgId: orgId.value
|
||||
orgId: orgId.value,
|
||||
year: props.year
|
||||
})
|
||||
// 计量单位的变量
|
||||
const measurementUnit = ref([])
|
||||
@@ -628,6 +659,7 @@
|
||||
}
|
||||
message.success('操作成功!');
|
||||
getEmissionSourceTree();
|
||||
getPFYTableList(res.data.id)
|
||||
});
|
||||
}
|
||||
})
|
||||
@@ -635,6 +667,65 @@
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
// 填报表格数据
|
||||
const data = ref([])
|
||||
// 填报页表头
|
||||
const columns = ref([
|
||||
{
|
||||
title: '日期',
|
||||
dataIndex: 'acquisitionDate',
|
||||
key: 'acquisitionDate',
|
||||
},
|
||||
{
|
||||
title: '消耗量',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'dataSources',
|
||||
key: 'dataSources',
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'consumption',
|
||||
key: 'consumption',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '碳排因子',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'carbonSource',
|
||||
key: 'carbonSource',
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'emissionFactors',
|
||||
key: 'emissionFactors',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '排放量',
|
||||
dataIndex: 'emissions',
|
||||
key: 'emissions',
|
||||
fixed: 'right',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
key: 'action',
|
||||
width: 80,
|
||||
fixed: 'right',
|
||||
}
|
||||
]);
|
||||
// 获取table数据
|
||||
const getPFYTableList = (id) => {
|
||||
fetch(carbonInventoryCheck.getDetailsList , {inventoryId:id}).then((res) => {
|
||||
data.value = res.data
|
||||
});
|
||||
};
|
||||
const editUnit = (data) => {
|
||||
getDictData()
|
||||
addTreeNodeVisible.value = true;
|
||||
@@ -734,6 +825,11 @@
|
||||
})
|
||||
const newTableData = ref([])
|
||||
const total = ref<number>()
|
||||
const selectedRowKeysEdit = ref([]);
|
||||
const onSelectionChangeEdit = (selectedKeys, selectedRows) => {
|
||||
selectedRowKeysEdit.value = selectedKeys;
|
||||
editFormState.value.factorId = selectedKeys
|
||||
};
|
||||
const queryParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
@@ -744,8 +840,14 @@
|
||||
pageNum: 1,
|
||||
pageSize: 999
|
||||
})
|
||||
const edit = () => {
|
||||
const edit = (record) => {
|
||||
getDictList()
|
||||
getNewTable()
|
||||
editFormState.value.id = record.id
|
||||
editFormState.value.dataSources = record.dataSources.value
|
||||
editFormState.value.consumption = record.emissions
|
||||
editFormState.value.collectionNode = record.carbonSource.value
|
||||
editFormState.value.factorId = record.emissionFactors
|
||||
editData.value = true
|
||||
};
|
||||
const getNewTable = () => {
|
||||
@@ -754,6 +856,32 @@
|
||||
total.value = res.data.total
|
||||
});
|
||||
};
|
||||
// 数据来源选择框改变
|
||||
const canEdit = ref(false);
|
||||
const automatic = ref(false);
|
||||
const changeSelect = (value) => {
|
||||
if(value === '3'){
|
||||
canEdit.value = true
|
||||
automatic.value = true
|
||||
}
|
||||
};
|
||||
// 定义采集节点数的变量
|
||||
const collectingNodes = ref<TreeSelectProps['treeData']>([]);
|
||||
const getDictList = () => {
|
||||
// 获取自动采集节点的数据
|
||||
fetch(group.queryDeviceGroupTree, { energyType: 'ELECTRICITY_USAGE',orgId: orgId.value }).then((res) => {
|
||||
collectingNodes.value = res.data
|
||||
collectingNodes.value = collectingNodes.value.map(item => ({
|
||||
value: item.id,
|
||||
label: item.pointName,
|
||||
children: item.children ? item.children.map(child => ({
|
||||
value: child.id,
|
||||
label: child.pointName
|
||||
})) : []
|
||||
}));
|
||||
});
|
||||
};
|
||||
// 上传附件
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList);
|
||||
@@ -769,8 +897,30 @@
|
||||
const headers = {
|
||||
authorization: 'authorization-text',
|
||||
};
|
||||
// 编辑数据提交
|
||||
const submitEditData = () => {
|
||||
editFormRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
console.log('values', editFormState, toRaw(editFormState));
|
||||
editFormState.value.factorId = editFormState.value.factorId.join(',')
|
||||
fetch(carbonInventoryCheck.updateTable, editFormState.value).then((res) => {
|
||||
editData.value = false
|
||||
getPFYTableList(getTableId.value)
|
||||
})
|
||||
})
|
||||
.catch(error => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
const onCloseEditData = () => {
|
||||
editData.value = false
|
||||
editFormState.value = {
|
||||
orgId: orgId.value,
|
||||
}
|
||||
selectedRowKeysEdit.value = []
|
||||
canEdit.value = false
|
||||
automatic.value = false
|
||||
};
|
||||
// 分页器
|
||||
const onChange = (pageNumber: number,size: number) => {
|
||||
@@ -1179,6 +1329,11 @@
|
||||
chartInstance = echarts.init(tplxChart.value);
|
||||
chartInstance.setOption(option);
|
||||
};
|
||||
// 点击返回
|
||||
const emit = defineEmits(['change-data'])
|
||||
const changeParentData = () => {
|
||||
emit('change-data', true,false);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
@@ -5,7 +5,7 @@
|
||||
</div>
|
||||
<!-- 填报页 -->
|
||||
<div v-if="fillInPage">
|
||||
<fillIn />
|
||||
<fillIn :reportId="reportId" :year="year" @change-data="updateData" />
|
||||
</div>
|
||||
<!-- 新增报告弹窗 -->
|
||||
<a-drawer
|
||||
@@ -61,8 +61,8 @@
|
||||
return http.post(api, params);
|
||||
};
|
||||
// 判断展示哪个页面
|
||||
const isMainPage = ref(false);
|
||||
const fillInPage = ref(true);
|
||||
const isMainPage = ref(true);
|
||||
const fillInPage = ref(false);
|
||||
// 新增相关数据
|
||||
const visible = ref(false);
|
||||
const formState = ref({})
|
||||
@@ -104,6 +104,8 @@
|
||||
// 表格相关数据
|
||||
const data = ref([]);
|
||||
const mainRef = ref();
|
||||
const reportId = ref();
|
||||
const year = ref();
|
||||
const tableConfig = ref({
|
||||
title: '数据库',
|
||||
api: carbonInventoryCheck.carbonInventoryList,
|
||||
@@ -172,6 +174,8 @@
|
||||
handle: (record: any) => {
|
||||
isMainPage.value = false
|
||||
fillInPage.value = true
|
||||
reportId.value = record.id
|
||||
year.value = record.reportYear
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -217,7 +221,11 @@
|
||||
},
|
||||
rowKey: 'id',
|
||||
});
|
||||
// 填报页
|
||||
// 填报页点击返回
|
||||
const updateData = (newDataOne,newDataTwo) => {
|
||||
isMainPage.value = newDataOne
|
||||
fillInPage.value = newDataTwo
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
Reference in New Issue
Block a user