Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp
This commit is contained in:
@@ -9,6 +9,13 @@ export enum lightingManage {
|
|||||||
// 修改线路的可用/禁用状态
|
// 修改线路的可用/禁用状态
|
||||||
setDisable = '/carbon-smart/IlluminationInfo/revisePanel',
|
setDisable = '/carbon-smart/IlluminationInfo/revisePanel',
|
||||||
|
|
||||||
|
// 控制面板tab页 ================================================
|
||||||
|
|
||||||
|
// 获取当前修改的内容对比数据
|
||||||
|
getChangeList = '/carbon-smart/IlluminationInfo/getLightSceneChangeInfo',
|
||||||
|
// 提交当前修改
|
||||||
|
submitChangeList = '/carbon-smart/IlluminationInfo/changeLightScene',
|
||||||
|
|
||||||
// 计划列表tab页 ================================================
|
// 计划列表tab页 ================================================
|
||||||
|
|
||||||
// 获得计划列表tab页的表格数据
|
// 获得计划列表tab页的表格数据
|
||||||
|
@@ -51,4 +51,8 @@ export enum carbonInventoryCheck {
|
|||||||
create = '/carbon-smart/api/carbon/inventory/create',
|
create = '/carbon-smart/api/carbon/inventory/create',
|
||||||
update = '/carbon-smart/api/carbon/inventory/update',
|
update = '/carbon-smart/api/carbon/inventory/update',
|
||||||
del = '/carbon-smart/api/carbon/inventory/del',
|
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);
|
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 {
|
return {
|
||||||
rowSpan: 0,
|
rowSpan: 0,
|
||||||
colSpan: 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 = [
|
export const voucherColumns = [
|
||||||
{
|
{
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<div class="top">
|
<div class="top">
|
||||||
<a-form style="width: 100%;margin: 0 auto;">
|
<a-form style="width: 100%;margin: 0 auto;">
|
||||||
<div class="ns-form-title">
|
<div class="ns-form-title">
|
||||||
<div class="title">2024年济阳站碳盘查报告</div>
|
<div class="title">{{props.year}}年济阳站碳盘查报告</div>
|
||||||
<div class="standard">
|
<div class="standard">
|
||||||
<span>适用标准:ISO 14064-1</span>
|
<span>适用标准:ISO 14064-1</span>
|
||||||
<a-button type="primary" style="margin-left: 12px;" @click="openCategoryConfig">类别配置</a-button>
|
<a-button type="primary" style="margin-left: 12px;" @click="openCategoryConfig">类别配置</a-button>
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
<div class="right">
|
<div class="right">
|
||||||
<div style="display:flex;">
|
<div style="display:flex;">
|
||||||
<div class="ns-table-title ns-title-extra-box">排放源</div>
|
<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>
|
||||||
<div style="display: flex;" v-if="fillInPage">
|
<div style="display: flex;" v-if="fillInPage">
|
||||||
<div class="mainLeft">
|
<div class="mainLeft">
|
||||||
@@ -95,6 +95,12 @@
|
|||||||
<a-button type="primary" @click="downLoadVoucher">凭证</a-button>
|
<a-button type="primary" @click="downLoadVoucher">凭证</a-button>
|
||||||
</template>
|
</template>
|
||||||
<template #bodyCell="{ column, text, record }">
|
<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'">
|
<template v-if="column.key === 'action'">
|
||||||
<span>
|
<span>
|
||||||
<a @click="edit(record)">编辑</a>
|
<a @click="edit(record)">编辑</a>
|
||||||
@@ -249,41 +255,40 @@
|
|||||||
>
|
>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item ref="name" label="数据来源" name="dateRange">
|
<a-form-item ref="name" label="数据来源" name="dataSources">
|
||||||
<a-select
|
<a-select
|
||||||
ref="select"
|
ref="select"
|
||||||
v-model:value="editFormState.dateRange"
|
v-model:value="editFormState.dataSources"
|
||||||
@change="handleChange"
|
@change="changeSelect"
|
||||||
>
|
>
|
||||||
<a-select-option value="jack">Jack</a-select-option>
|
<a-select-option value="1">自行推估</a-select-option>
|
||||||
<a-select-option value="lucy">Lucy</a-select-option>
|
<a-select-option value="2">定期量测</a-select-option>
|
||||||
|
<a-select-option value="3">自动测量</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item ref="name" label="消耗量" name="emissionFactors">
|
<a-form-item ref="name" label="消耗量" name="consumption">
|
||||||
<ns-input v-model:value="editFormState.emissionFactors" disabled />
|
<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-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item ref="name" label="采集节点" name="dateRange">
|
<a-form-item ref="name" label="因子值" name="factorId">
|
||||||
<a-select
|
<ns-input v-model:value="editFormState.factorId" disabled />
|
||||||
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>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -300,7 +305,7 @@
|
|||||||
rowKey="id"
|
rowKey="id"
|
||||||
:scroll="{ y: 400 }"
|
:scroll="{ y: 400 }"
|
||||||
style="margin-bottom: 10px;"
|
style="margin-bottom: 10px;"
|
||||||
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectionChange, type: 'radio' }"
|
:rowSelection="{ selectedRowKeys: selectedRowKeysEdit, onChange: onSelectionChangeEdit, type: 'radio' }"
|
||||||
:pagination="false">
|
:pagination="false">
|
||||||
</a-table>
|
</a-table>
|
||||||
<a-pagination
|
<a-pagination
|
||||||
@@ -333,20 +338,32 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<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 { http } from '/nerv-lib/util/http';
|
||||||
import { Pagination, Modal, message } from 'ant-design-vue';
|
import { Pagination, Modal, message } from 'ant-design-vue';
|
||||||
import type { TreeProps,TableColumnsType,UploadChangeParam } from 'ant-design-vue';
|
import type { TreeProps,TableColumnsType,UploadChangeParam } from 'ant-design-vue';
|
||||||
import { EditOutlined,PlusCircleOutlined,MinusCircleOutlined,UploadOutlined } from '@ant-design/icons-vue';
|
import { EditOutlined,PlusCircleOutlined,MinusCircleOutlined,UploadOutlined } from '@ant-design/icons-vue';
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
import { columns,voucherColumns,drawerColumns } from '../config';
|
import { voucherColumns,drawerColumns } from '../config';
|
||||||
import { energyConsumption,carbonEmissionFactorLibrary,carbonInventoryCheck } from '/@/api/carbonEmissionFactorLibrary';
|
import { energyConsumption,carbonEmissionFactorLibrary,carbonInventoryCheck } from '/@/api/carbonEmissionFactorLibrary';
|
||||||
|
import { group } from '/@/api/deviceManage';
|
||||||
defineOptions({
|
defineOptions({
|
||||||
energyType: 'fillInPage', // 与页面路由name一致缓存才可生效
|
energyType: 'fillInPage', // 与页面路由name一致缓存才可生效
|
||||||
components: {
|
components: {
|
||||||
'a-pagination': Pagination,
|
'a-pagination': Pagination,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
// 父组件id和年份
|
||||||
|
const props = defineProps({
|
||||||
|
reportId: {
|
||||||
|
type: Number
|
||||||
|
},
|
||||||
|
year: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(props,'xxy');
|
||||||
|
|
||||||
const orgId = ref('');
|
const orgId = ref('');
|
||||||
const result = JSON.parse(sessionStorage.getItem('ORGID')!);
|
const result = JSON.parse(sessionStorage.getItem('ORGID')!);
|
||||||
orgId.value = result;
|
orgId.value = result;
|
||||||
@@ -440,16 +457,17 @@
|
|||||||
const categoryId = ref()
|
const categoryId = ref()
|
||||||
const onSelectL = (selectedKey: string[], info: any) => {
|
const onSelectL = (selectedKey: string[], info: any) => {
|
||||||
selectedKeysL.value = selectedKey;
|
selectedKeysL.value = selectedKey;
|
||||||
categoryId.value = info.node.id
|
categoryId.value = info.node.conId
|
||||||
formState.value.categoryId = categoryId.value
|
formState.value.categoryId = categoryId.value
|
||||||
|
getEmissionSourceTree()
|
||||||
};
|
};
|
||||||
// 获取碳盘查报告树
|
// 获取碳盘查报告树
|
||||||
const selectedIds = ref([]);
|
const selectedIds = ref([]);
|
||||||
const getReportTree = () => {
|
const getReportTree = () => {
|
||||||
fetch(carbonInventoryCheck.getCategoryTree).then((res) => {
|
fetch(carbonInventoryCheck.getCategoryTree,{reportId:props.reportId,orgId:orgId.value}).then((res) => {
|
||||||
gData.value = res.data
|
gData.value = res.data
|
||||||
if(res.data.length > 0){
|
if(res.data.length > 0){
|
||||||
categoryId.value = res.data[0].id
|
categoryId.value = res.data[0].conId
|
||||||
formState.value.categoryId = categoryId.value
|
formState.value.categoryId = categoryId.value
|
||||||
selectedIds.value = getAllIds(gData.value);
|
selectedIds.value = getAllIds(gData.value);
|
||||||
}
|
}
|
||||||
@@ -460,29 +478,41 @@
|
|||||||
const getAllIds = (nodes: TreeNode[]): number[] => {
|
const getAllIds = (nodes: TreeNode[]): number[] => {
|
||||||
return nodes.flatMap(node => [node.id, ...(node.children ? getAllIds(node.children) : [])]);
|
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 treeData = ref<TreeProps['treeData']>(genData);
|
||||||
// 获取数据
|
// 获取数据
|
||||||
|
const getTableId = ref()
|
||||||
const getEmissionSourceTree = () => {
|
const getEmissionSourceTree = () => {
|
||||||
fetch(carbonInventoryCheck.getInventoryTree, { categoryId: categoryId.value }).then((res) => {
|
fetch(carbonInventoryCheck.getInventoryTree, { categoryId: categoryId.value }).then((res) => {
|
||||||
treeData.value = res.data
|
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) => {
|
const onSelectR = (selectedKey: string[], info: any) => {
|
||||||
selectedKeysR.value = selectedKey;
|
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 expandedKeysR = ref<string[]>([]);
|
||||||
const selectedKeysR = ref<string[]>(['0-0']);
|
const selectedKeysR = ref<string[]>(['0-0']);
|
||||||
@@ -550,7 +580,8 @@
|
|||||||
const labelCol = { span: 5 };
|
const labelCol = { span: 5 };
|
||||||
const wrapperCol = { span: 19 };
|
const wrapperCol = { span: 19 };
|
||||||
const formState = ref({
|
const formState = ref({
|
||||||
orgId: orgId.value
|
orgId: orgId.value,
|
||||||
|
year: props.year
|
||||||
})
|
})
|
||||||
// 计量单位的变量
|
// 计量单位的变量
|
||||||
const measurementUnit = ref([])
|
const measurementUnit = ref([])
|
||||||
@@ -628,6 +659,7 @@
|
|||||||
}
|
}
|
||||||
message.success('操作成功!');
|
message.success('操作成功!');
|
||||||
getEmissionSourceTree();
|
getEmissionSourceTree();
|
||||||
|
getPFYTableList(res.data.id)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -635,6 +667,65 @@
|
|||||||
console.log('error', error);
|
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) => {
|
const editUnit = (data) => {
|
||||||
getDictData()
|
getDictData()
|
||||||
addTreeNodeVisible.value = true;
|
addTreeNodeVisible.value = true;
|
||||||
@@ -734,6 +825,11 @@
|
|||||||
})
|
})
|
||||||
const newTableData = ref([])
|
const newTableData = ref([])
|
||||||
const total = ref<number>()
|
const total = ref<number>()
|
||||||
|
const selectedRowKeysEdit = ref([]);
|
||||||
|
const onSelectionChangeEdit = (selectedKeys, selectedRows) => {
|
||||||
|
selectedRowKeysEdit.value = selectedKeys;
|
||||||
|
editFormState.value.factorId = selectedKeys
|
||||||
|
};
|
||||||
const queryParams = ref({
|
const queryParams = ref({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -744,8 +840,14 @@
|
|||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 999
|
pageSize: 999
|
||||||
})
|
})
|
||||||
const edit = () => {
|
const edit = (record) => {
|
||||||
|
getDictList()
|
||||||
getNewTable()
|
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
|
editData.value = true
|
||||||
};
|
};
|
||||||
const getNewTable = () => {
|
const getNewTable = () => {
|
||||||
@@ -754,6 +856,32 @@
|
|||||||
total.value = res.data.total
|
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) => {
|
const handleChange = (info: UploadChangeParam) => {
|
||||||
if (info.file.status !== 'uploading') {
|
if (info.file.status !== 'uploading') {
|
||||||
console.log(info.file, info.fileList);
|
console.log(info.file, info.fileList);
|
||||||
@@ -769,8 +897,30 @@
|
|||||||
const headers = {
|
const headers = {
|
||||||
authorization: 'authorization-text',
|
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 = () => {
|
const onCloseEditData = () => {
|
||||||
editData.value = false
|
editData.value = false
|
||||||
|
editFormState.value = {
|
||||||
|
orgId: orgId.value,
|
||||||
|
}
|
||||||
|
selectedRowKeysEdit.value = []
|
||||||
|
canEdit.value = false
|
||||||
|
automatic.value = false
|
||||||
};
|
};
|
||||||
// 分页器
|
// 分页器
|
||||||
const onChange = (pageNumber: number,size: number) => {
|
const onChange = (pageNumber: number,size: number) => {
|
||||||
@@ -1179,6 +1329,11 @@
|
|||||||
chartInstance = echarts.init(tplxChart.value);
|
chartInstance = echarts.init(tplxChart.value);
|
||||||
chartInstance.setOption(option);
|
chartInstance.setOption(option);
|
||||||
};
|
};
|
||||||
|
// 点击返回
|
||||||
|
const emit = defineEmits(['change-data'])
|
||||||
|
const changeParentData = () => {
|
||||||
|
emit('change-data', true,false);
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 填报页 -->
|
<!-- 填报页 -->
|
||||||
<div v-if="fillInPage">
|
<div v-if="fillInPage">
|
||||||
<fillIn />
|
<fillIn :reportId="reportId" :year="year" @change-data="updateData" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 新增报告弹窗 -->
|
<!-- 新增报告弹窗 -->
|
||||||
<a-drawer
|
<a-drawer
|
||||||
@@ -61,8 +61,8 @@
|
|||||||
return http.post(api, params);
|
return http.post(api, params);
|
||||||
};
|
};
|
||||||
// 判断展示哪个页面
|
// 判断展示哪个页面
|
||||||
const isMainPage = ref(false);
|
const isMainPage = ref(true);
|
||||||
const fillInPage = ref(true);
|
const fillInPage = ref(false);
|
||||||
// 新增相关数据
|
// 新增相关数据
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const formState = ref({})
|
const formState = ref({})
|
||||||
@@ -104,6 +104,8 @@
|
|||||||
// 表格相关数据
|
// 表格相关数据
|
||||||
const data = ref([]);
|
const data = ref([]);
|
||||||
const mainRef = ref();
|
const mainRef = ref();
|
||||||
|
const reportId = ref();
|
||||||
|
const year = ref();
|
||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
title: '数据库',
|
title: '数据库',
|
||||||
api: carbonInventoryCheck.carbonInventoryList,
|
api: carbonInventoryCheck.carbonInventoryList,
|
||||||
@@ -172,6 +174,8 @@
|
|||||||
handle: (record: any) => {
|
handle: (record: any) => {
|
||||||
isMainPage.value = false
|
isMainPage.value = false
|
||||||
fillInPage.value = true
|
fillInPage.value = true
|
||||||
|
reportId.value = record.id
|
||||||
|
year.value = record.reportYear
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -217,7 +221,11 @@
|
|||||||
},
|
},
|
||||||
rowKey: 'id',
|
rowKey: 'id',
|
||||||
});
|
});
|
||||||
// 填报页
|
// 填报页点击返回
|
||||||
|
const updateData = (newDataOne,newDataTwo) => {
|
||||||
|
isMainPage.value = newDataOne
|
||||||
|
fillInPage.value = newDataTwo
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
class="drawer-item"
|
class="drawer-item"
|
||||||
width="496"
|
width="496"
|
||||||
|
:forceRender="preload"
|
||||||
placement="right"
|
placement="right"
|
||||||
:body-style="{ background: 'rgba(0, 0, 0)', opacity: 0.8 }"
|
:body-style="{ background: 'rgba(0, 0, 0)', opacity: 0.8 }"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
@@ -54,7 +55,6 @@
|
|||||||
@changeArea="changeArea"
|
@changeArea="changeArea"
|
||||||
@reset="reset"
|
@reset="reset"
|
||||||
:treeData="treeData"
|
:treeData="treeData"
|
||||||
:nowArea="nowArea"
|
|
||||||
></tabs1>
|
></tabs1>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="计划列表" force-render>
|
<a-tab-pane key="2" tab="计划列表" force-render>
|
||||||
@@ -93,6 +93,10 @@ onMounted(() => {
|
|||||||
getAllArea()
|
getAllArea()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 预加载flag,获得分区数据后,预加载抽屉,防止获取ref报错
|
||||||
|
const preload = ref(false)
|
||||||
|
|
||||||
|
|
||||||
// 分层业务 =====================================================
|
// 分层业务 =====================================================
|
||||||
|
|
||||||
// 所有楼层的数据
|
// 所有楼层的数据
|
||||||
@@ -109,13 +113,12 @@ const changeFloor = (area: any) => {
|
|||||||
treeData.value[0].selected = true
|
treeData.value[0].selected = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 分区业务 =====================================================
|
// 分区业务 =====================================================
|
||||||
|
|
||||||
// 分区结构树
|
// 分区结构树
|
||||||
const treeData = ref([])
|
const treeData = ref([])
|
||||||
// 当前选中的分区id
|
// 当前选中的分区序列 - 用于样式渲染
|
||||||
const nowArea = ref('1')
|
|
||||||
// 当前选中的分区序号 - 用于样式渲染
|
|
||||||
const area = ref(['1'])
|
const area = ref(['1'])
|
||||||
// 线路内小灯泡 - 此处位置需前端写死
|
// 线路内小灯泡 - 此处位置需前端写死
|
||||||
const bulbs = ref([
|
const bulbs = ref([
|
||||||
@@ -182,15 +185,18 @@ const changeArea = (result: any) => {
|
|||||||
}
|
}
|
||||||
// 由当前组件控制的分区切换
|
// 由当前组件控制的分区切换
|
||||||
const changeThisArea = (result: any) => {
|
const changeThisArea = (result: any) => {
|
||||||
tabs1Ref.value.changeCancel()
|
|
||||||
console.log(result, 'changeThisArea')
|
console.log(result, 'changeThisArea')
|
||||||
// 修改前,将所有选项置空
|
// 修改前,将所有选项置空
|
||||||
reset()
|
reset()
|
||||||
let level1 = result[0];
|
let level1 = result[0];
|
||||||
area.value.length = 0
|
area.value.length = 0
|
||||||
|
// 只选择了分区
|
||||||
if (result.length === 1) {
|
if (result.length === 1) {
|
||||||
result[0].selected = true
|
result[0].selected = true
|
||||||
area.value.push(result[0].id)
|
area.value.push(result[0].id)
|
||||||
|
// 控制子组件按钮区
|
||||||
|
tabs1Ref.value.changeArea(result[0])
|
||||||
|
// 选择了分区 + 线路
|
||||||
} else if (result.length === 2) {
|
} else if (result.length === 2) {
|
||||||
// 如果没有分区,默认选择第一个
|
// 如果没有分区,默认选择第一个
|
||||||
if (!level1) {
|
if (!level1) {
|
||||||
@@ -199,8 +205,10 @@ const changeThisArea = (result: any) => {
|
|||||||
// 选中状态都设为true
|
// 选中状态都设为true
|
||||||
level1.selected = result[1].selected = true
|
level1.selected = result[1].selected = true
|
||||||
area.value.splice(0, 0, level1.id, result[1].id)
|
area.value.splice(0, 0, level1.id, result[1].id)
|
||||||
|
// 控制子组件按钮区
|
||||||
|
tabs1Ref.value.changeArea(result[0])
|
||||||
|
tabs1Ref.value.changeLine(result[1])
|
||||||
}
|
}
|
||||||
nowArea.value = level1.id
|
|
||||||
}
|
}
|
||||||
// 重置分区树所有当前选项
|
// 重置分区树所有当前选项
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
@@ -220,6 +228,7 @@ const computedClass = (string: string) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获得所有分区
|
||||||
const getAllArea = () => {
|
const getAllArea = () => {
|
||||||
http.get(lightingManage.getArea, { projectId: 'HLlmTZp8' }).then(res => {
|
http.get(lightingManage.getArea, { projectId: 'HLlmTZp8' }).then(res => {
|
||||||
const data = res.data
|
const data = res.data
|
||||||
@@ -242,7 +251,10 @@ const getAllArea = () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
// 默认展示 线路 1-1
|
||||||
treeData.value = data[0].childList
|
treeData.value = data[0].childList
|
||||||
|
// 开始预加载
|
||||||
|
preload.value = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,6 +268,7 @@ let visible = ref(false);
|
|||||||
const toggleDrawer = () => {
|
const toggleDrawer = () => {
|
||||||
visible.value = !visible.value;
|
visible.value = !visible.value;
|
||||||
};
|
};
|
||||||
|
// 抽屉tab1组件的引用
|
||||||
const tabs1Ref = ref()
|
const tabs1Ref = ref()
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
<div class="area">
|
<div class="area">
|
||||||
<template v-if="!showAllButtonsArea">
|
<template v-if="!showAllButtonsArea">
|
||||||
<button v-for="(button, index) in limitedButtons1" :key="index"
|
<button v-for="(button, index) in limitedButtons1" :key="index"
|
||||||
:class="{ btn: true, selected: button.selected }" @click="selectButton(button)">
|
:class="{ btn: true, selected: button.selected }" @click="changeArea(button)">
|
||||||
{{ button.name }}
|
{{ button.name }}
|
||||||
</button>
|
</button>
|
||||||
<div style="margin-top: 10px">
|
<div style="margin-top: 10px">
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<button v-for="(button, index) in props.treeData" :key="index" :class="{ btn: true, selected: button.selected }"
|
<button v-for="(button, index) in props.treeData" :key="index" :class="{ btn: true, selected: button.selected }"
|
||||||
@click="selectButton(button)">
|
@click="changeArea(button)">
|
||||||
{{ button.name }}
|
{{ button.name }}
|
||||||
</button>
|
</button>
|
||||||
<div style="margin-top: 10px">
|
<div style="margin-top: 10px">
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<div class="btnArea">
|
<div class="btnArea">
|
||||||
<template v-if="!showAllButtons">
|
<template v-if="!showAllButtons">
|
||||||
<button v-for="(button, index) in limitedButtons2" :key="index"
|
<button v-for="(button, index) in limitedButtons2" :key="index"
|
||||||
:class="{ btn: true, selected: button.selected }" class="zmhlbtn" @click="toggleSelection(button)">
|
:class="{ btn: true, selected: button.selected }" class="zmhlbtn" @click="changeLine(button)">
|
||||||
<stop-outlined v-if="button.ctrlStatus" />
|
<stop-outlined v-if="button.ctrlStatus" />
|
||||||
{{ button.name }}
|
{{ button.name }}
|
||||||
</button>
|
</button>
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<button v-for="(button, index) in buttons2" :key="index"
|
<button v-for="(button, index) in buttons2" :key="index"
|
||||||
:class="{ btn: true, selected: button.selected }" class="zmhlbtn" @click="toggleSelection(button)">
|
:class="{ btn: true, selected: button.selected }" class="zmhlbtn" @click="changeLine(button)">
|
||||||
<stop-outlined v-if="button.ctrlStatus" />
|
<stop-outlined v-if="button.ctrlStatus" />
|
||||||
{{ button.name }}
|
{{ button.name }}
|
||||||
</button>
|
</button>
|
||||||
@@ -91,14 +91,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 控制场景部分 -->
|
<!-- 控制场景部分 -->
|
||||||
<div>
|
<div>
|
||||||
<div class="control-scene-area" v-show="thisButton2.mode.value == '3'">
|
<div class="control-scene-area" v-show="thisButton2.mode.value == 3">
|
||||||
<div class="control-scene-tab"></div>
|
<div class="control-scene-tab"></div>
|
||||||
<span class="control-scene-text"> 控制场景 </span>
|
<span class="control-scene-text"> 控制场景 </span>
|
||||||
</div>
|
</div>
|
||||||
<!-- 控制场景按钮部分 -->
|
<!-- 控制场景按钮部分 -->
|
||||||
<div class="control-scene-btn-area" v-show="thisButton2.mode.value == '3'">
|
<div class="control-scene-btn-area" v-show="thisButton2.mode.value == 3">
|
||||||
<button v-for="(button4, index) in controlScene" :key="index"
|
<button v-for="(button4, index) in controlScene" :key="index"
|
||||||
:class="{ btn: true, selected: thisButton2.mode.value == button4.value }" @click="selectButton4(button4)">
|
:class="{ btn: true, selected: thisButton2.scene.value == button4.value }" @click="selectButton4(button4)">
|
||||||
{{ button4.label }}
|
{{ button4.label }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -186,7 +186,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onMounted, watch } from 'vue';
|
import { ref, computed, onMounted } from 'vue';
|
||||||
import {
|
import {
|
||||||
DownOutlined,
|
DownOutlined,
|
||||||
UpOutlined,
|
UpOutlined,
|
||||||
@@ -201,47 +201,25 @@ import { getAllEnum } from '/@/api/index'
|
|||||||
// 初始化 =========================================================================
|
// 初始化 =========================================================================
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 设置分区
|
// 默认选项
|
||||||
setArea(0)
|
setArea()
|
||||||
// 获得枚举
|
// 获得枚举
|
||||||
getEnum(['IlluminationMode', 'IlluminationScene'])
|
getEnum(['IlluminationMode', 'IlluminationScene'])
|
||||||
})
|
})
|
||||||
|
// 获得枚举
|
||||||
// 获得枚举,初始化
|
|
||||||
const getEnum = (arr: any) => {
|
const getEnum = (arr: any) => {
|
||||||
getAllEnum({ params: arr }).then(res => {
|
getAllEnum({ params: arr }).then(res => {
|
||||||
const data = res.data
|
const data = res.data
|
||||||
|
// 控制模式
|
||||||
controlMode.value = data.IlluminationMode
|
controlMode.value = data.IlluminationMode
|
||||||
|
// 控制场景
|
||||||
controlScene.value = data.IlluminationScene
|
controlScene.value = data.IlluminationScene
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 父组件点击俯视图切换分区时,子组件切换线路
|
// 以 1-1 作为默认线路
|
||||||
const setArea = (isHandle: number) => {
|
const setArea = () => {
|
||||||
const data = props.treeData.find((item: any) => {
|
const data = props.treeData[0]
|
||||||
return item.id == props.nowArea
|
|
||||||
})
|
|
||||||
// 默认选中第一个分区
|
|
||||||
data.selected = true
|
|
||||||
// 修改当前选中的分区
|
|
||||||
selectedButton.value = props.nowArea
|
|
||||||
// 设置当前显示的回路
|
|
||||||
buttons2.value = data.childList
|
buttons2.value = data.childList
|
||||||
|
|
||||||
// 如果非初始化触发(点击俯视图)
|
|
||||||
if (isHandle) {
|
|
||||||
// 如果选中了线路则children中的某个selected为true
|
|
||||||
const button2 = data.childList.find((item: any) => {
|
|
||||||
return item.selected == true
|
|
||||||
})
|
|
||||||
// 如果选中了线路
|
|
||||||
if (button2) {
|
|
||||||
thisButton2.value = button2;
|
|
||||||
console.log(button2,'2222222222')
|
|
||||||
|
|
||||||
} else {
|
|
||||||
resetMode()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 与父组件的交互 ===================================================================
|
// 与父组件的交互 ===================================================================
|
||||||
@@ -251,10 +229,6 @@ const props = defineProps({
|
|||||||
treeData: {
|
treeData: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: []
|
||||||
},
|
|
||||||
// 父组件选中的分区ID
|
|
||||||
nowArea: {
|
|
||||||
type: String,
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 向上传递修改选择样式
|
// 向上传递修改选择样式
|
||||||
@@ -263,12 +237,6 @@ const props = defineProps({
|
|||||||
* @method reset 用于重置按钮区
|
* @method reset 用于重置按钮区
|
||||||
*/
|
*/
|
||||||
const emit = defineEmits(['changeArea','reset']);
|
const emit = defineEmits(['changeArea','reset']);
|
||||||
// 监听父组件选中的分区,并实时修改分区
|
|
||||||
watch(() => props.nowArea, () => {
|
|
||||||
setArea(1)
|
|
||||||
// 分区产生了切换, 线路的选中状态置空
|
|
||||||
handleButton.value = ''
|
|
||||||
})
|
|
||||||
|
|
||||||
// 照明区域业务 =======================================================================
|
// 照明区域业务 =======================================================================
|
||||||
|
|
||||||
@@ -283,15 +251,22 @@ const togglePlan = () => {
|
|||||||
const showAllButtonsArea = ref(false);
|
const showAllButtonsArea = ref(false);
|
||||||
// 被选中的分区 默认为1
|
// 被选中的分区 默认为1
|
||||||
const selectedButton = ref<string | undefined>('1');
|
const selectedButton = ref<string | undefined>('1');
|
||||||
// 区域切换(按钮点击-单选)事件
|
|
||||||
const selectButton = (button: any) => {
|
// 分区切换
|
||||||
|
const changeArea = (button: any) => {
|
||||||
// 当前选中按钮
|
// 当前选中按钮
|
||||||
selectedButton.value = button.id;
|
selectedButton.value = button.id;
|
||||||
initMenu(1)
|
// 设置当前选中的线路
|
||||||
button.selected = true
|
|
||||||
buttons2.value = button.childList
|
buttons2.value = button.childList
|
||||||
|
// 重置按钮状态
|
||||||
|
emit('reset')
|
||||||
|
// 设置选中按钮状态
|
||||||
|
button.selected = true
|
||||||
|
// 改变俯视图样式
|
||||||
emit('changeArea', button.id);
|
emit('changeArea', button.id);
|
||||||
|
// 当前选中线路 - 置空
|
||||||
resetMode()
|
resetMode()
|
||||||
|
// 最近交互过的按钮 - 置空
|
||||||
handleButton.value = ''
|
handleButton.value = ''
|
||||||
};
|
};
|
||||||
// 默认最多展示8个按钮
|
// 默认最多展示8个按钮
|
||||||
@@ -335,7 +310,9 @@ const selectAll = () => {
|
|||||||
button.selected = false;
|
button.selected = false;
|
||||||
});
|
});
|
||||||
singleSelection.value = !singleSelection.value;
|
singleSelection.value = !singleSelection.value;
|
||||||
|
// 当前选中线路 - 置空
|
||||||
resetMode()
|
resetMode()
|
||||||
|
// 改变俯视图样式
|
||||||
emit('changeArea', [selectedButton.value])
|
emit('changeArea', [selectedButton.value])
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -346,7 +323,11 @@ const toggleAllSelection = () => {
|
|||||||
let arr = [selectedButton.value]
|
let arr = [selectedButton.value]
|
||||||
// 全选
|
// 全选
|
||||||
if (selectAllCheckbox.value) {
|
if (selectAllCheckbox.value) {
|
||||||
buttons2.value.forEach((item) => {
|
buttons2.value.forEach((item, index) => {
|
||||||
|
// 全选时,默认展示第一条线路的模式-场景按钮
|
||||||
|
if (index == 0) {
|
||||||
|
thisButton2.value = item
|
||||||
|
}
|
||||||
item.selected = true;
|
item.selected = true;
|
||||||
arr.push(item.id)
|
arr.push(item.id)
|
||||||
});
|
});
|
||||||
@@ -355,12 +336,24 @@ const toggleAllSelection = () => {
|
|||||||
buttons2.value.forEach((item) => {
|
buttons2.value.forEach((item) => {
|
||||||
item.selected = false;
|
item.selected = false;
|
||||||
});
|
});
|
||||||
|
// 全不选时,隐藏模式-场景按钮
|
||||||
|
resetMode()
|
||||||
}
|
}
|
||||||
emit('changeArea', arr)
|
emit('changeArea', arr)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 储存当前选中的线路
|
||||||
|
const thisButton2 = ref({
|
||||||
|
code: '',
|
||||||
|
mode: {
|
||||||
|
value: -1
|
||||||
|
},
|
||||||
|
scene: {
|
||||||
|
value: -1
|
||||||
|
}
|
||||||
|
})
|
||||||
// 照明回路的按钮切换
|
// 照明回路的按钮切换
|
||||||
const toggleSelection = (button: any) => {
|
const changeLine = (button: any) => {
|
||||||
// 存储一次按钮ID,用于禁用/启用交互
|
// 存储一次按钮ID,用于禁用/启用交互
|
||||||
handleButton.value = button.id
|
handleButton.value = button.id
|
||||||
// 根据按钮状态,展示禁用/启用按钮文本
|
// 根据按钮状态,展示禁用/启用按钮文本
|
||||||
@@ -373,13 +366,13 @@ const toggleSelection = (button: any) => {
|
|||||||
// 选择时反控俯视图
|
// 选择时反控俯视图
|
||||||
let level1 = selectedButton.value
|
let level1 = selectedButton.value
|
||||||
let level2 = button.id
|
let level2 = button.id
|
||||||
// 单选模式,需将所有按钮设为false
|
// 单选模式,需将所有其他按钮设为false
|
||||||
if (singleSelection.value) {
|
if (singleSelection.value) {
|
||||||
buttons2.value.forEach(item => {
|
buttons2.value.forEach(item => {
|
||||||
item.selected = false;
|
item.selected = false;
|
||||||
});
|
});
|
||||||
emit('changeArea', [level1, level2])
|
|
||||||
button.selected = !button.selected;
|
button.selected = !button.selected;
|
||||||
|
emit('changeArea', [level1, level2])
|
||||||
} else {
|
} else {
|
||||||
// 多选模式传值
|
// 多选模式传值
|
||||||
button.selected = !button.selected;
|
button.selected = !button.selected;
|
||||||
@@ -396,7 +389,7 @@ const toggleSelection = (button: any) => {
|
|||||||
// 发生了选中事件
|
// 发生了选中事件
|
||||||
thisButton2.value = button
|
thisButton2.value = button
|
||||||
} else {
|
} else {
|
||||||
// 未发生选中 或 多选被取消
|
// 未发生选中 或 多选的其中一个按钮被取消
|
||||||
resetMode()
|
resetMode()
|
||||||
}
|
}
|
||||||
console.log(thisButton2,'button')
|
console.log(thisButton2,'button')
|
||||||
@@ -411,28 +404,17 @@ const limitedButtons2 = computed(() => buttons2.value.slice(0, 8));
|
|||||||
|
|
||||||
// 控制模式业务 ====================================================================
|
// 控制模式业务 ====================================================================
|
||||||
|
|
||||||
const thisButton2 = ref({
|
|
||||||
code: '',
|
|
||||||
mode: {
|
|
||||||
value: '0'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// 控制模式 - 按钮切换
|
// 控制模式 - 按钮切换
|
||||||
const selectButton3 = (button3) => {
|
const selectButton3 = (button3) => {
|
||||||
let checked = thisButton2.value.mode
|
let checked = thisButton2.value.mode
|
||||||
console.log(button3.value,'---', checked.value)
|
console.log(button3.value,'---', checked.value)
|
||||||
// 如果点击了相同的按钮,未作出修改
|
// 如果点击了相同的按钮,则未作出修改
|
||||||
if (checked.value === button3.value) {
|
if (checked.value === button3.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
checked.value = button3.value
|
checked.value = button3.value
|
||||||
selectedButton4.value = null; // 清空选中的控制场景按钮
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const diff = () => {
|
|
||||||
console.log(thisButton2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 控制场景业务 =====================================================================
|
// 控制场景业务 =====================================================================
|
||||||
|
|
||||||
// 控制模式枚举
|
// 控制模式枚举
|
||||||
@@ -443,13 +425,63 @@ const controlScene = ref([])
|
|||||||
const selectedButton4 = ref(null);
|
const selectedButton4 = ref(null);
|
||||||
// 控制场景 - 按钮切换
|
// 控制场景 - 按钮切换
|
||||||
const selectButton4 = (button4) => {
|
const selectButton4 = (button4) => {
|
||||||
selectedButton4.value = button4.label;
|
// 当前选中的线路数据
|
||||||
|
const data = thisButton2.value
|
||||||
|
// 修改前的数据
|
||||||
|
let before = data.scene.value
|
||||||
|
// 修改后的数据
|
||||||
|
let after = button4.value
|
||||||
|
// 如果没有产生实质性的修改(修改前后相同,则跳出)
|
||||||
|
if (before === after) {
|
||||||
|
return
|
||||||
|
// 产生了修改
|
||||||
|
} else {
|
||||||
|
thisButton2.value.scene.value = after
|
||||||
|
// 查询之前是否修改过
|
||||||
|
const result = changeList.value.find((item, index) => {
|
||||||
|
item.index = index
|
||||||
|
return item.deviceGroup == data.code
|
||||||
|
})
|
||||||
|
// 如果已产生过修改
|
||||||
|
if (result) {
|
||||||
|
// 改回了原有的值,则从数组中移除
|
||||||
|
if (after == result.before) {
|
||||||
|
changeList.value.splice(result.index, 1)
|
||||||
|
// 修改为新值,则只修改after
|
||||||
|
} else {
|
||||||
|
result.scene = after
|
||||||
|
// 临时flag,用后移除
|
||||||
|
delete result.index
|
||||||
|
}
|
||||||
|
// 如果未产生过修改
|
||||||
|
} else {
|
||||||
|
changeList.value.push({
|
||||||
|
// 线路
|
||||||
|
deviceGroup: data.code,
|
||||||
|
deviceGroupName: data.name,
|
||||||
|
// 分区
|
||||||
|
region: data.pcode,
|
||||||
|
regionName: '',
|
||||||
|
// 修改前
|
||||||
|
before: before,
|
||||||
|
// 修改后
|
||||||
|
scene: after
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log(changeList.value, 'changeList')
|
||||||
|
}
|
||||||
|
|
||||||
|
thisButton2.value.scene.value = after
|
||||||
|
console.log(thisButton2,'222222')
|
||||||
|
console.log(button4,'44444')
|
||||||
};
|
};
|
||||||
|
|
||||||
// 内侧弹窗 ========================================================================
|
// 内侧弹窗 ========================================================================
|
||||||
|
|
||||||
|
// 需要修改的内容
|
||||||
|
const changeList: any = ref([])
|
||||||
// 需要向后端提交的修改内容
|
// 需要向后端提交的修改内容
|
||||||
const submitArray = ref([])
|
const submitList = ref([])
|
||||||
const cxList = ref([
|
const cxList = ref([
|
||||||
{
|
{
|
||||||
id: '1',
|
id: '1',
|
||||||
@@ -489,7 +521,7 @@ const cxList = ref([
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
//撤销
|
//撤销
|
||||||
const delBtn = (id: any) => {
|
const delBtn = () => {
|
||||||
cxList.value.pop();
|
cxList.value.pop();
|
||||||
console.log(cxList.value.length);
|
console.log(cxList.value.length);
|
||||||
|
|
||||||
@@ -501,19 +533,6 @@ const delBtn = (id: any) => {
|
|||||||
// 其他业务 ========================================================================
|
// 其他业务 ========================================================================
|
||||||
|
|
||||||
const isLoading = ref(false)
|
const isLoading = ref(false)
|
||||||
|
|
||||||
// 用于初始化5级联动的菜单
|
|
||||||
const initMenu = (tier: number) => {
|
|
||||||
// 1 = 照明区域 - 切换时,重置以下所有菜单
|
|
||||||
if (tier == 1) {
|
|
||||||
emit('reset')
|
|
||||||
// 灯具参数 隐藏
|
|
||||||
selectedButton4.value = null;
|
|
||||||
} else if (tier == 2) {
|
|
||||||
// 灯具参数 隐藏
|
|
||||||
selectedButton4.value = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 刷新
|
// 刷新
|
||||||
const refresh = () => {
|
const refresh = () => {
|
||||||
// 关闭执行弹窗
|
// 关闭执行弹窗
|
||||||
@@ -532,7 +551,16 @@ const refresh = () => {
|
|||||||
// 执行确认
|
// 执行确认
|
||||||
const executeVisible = ref<boolean>(false);
|
const executeVisible = ref<boolean>(false);
|
||||||
const showModal = () => {
|
const showModal = () => {
|
||||||
|
http.post(lightingManage.getChangeList, { infoList: changeList.value, projectId: 'HLlmTZp8' }).then(res => {
|
||||||
|
if (res.msg === 'success') {
|
||||||
|
isLoading.value = true
|
||||||
|
console.log(res)
|
||||||
|
} else {
|
||||||
|
isLoading.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
executeVisible.value = true;
|
executeVisible.value = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 确定
|
// 确定
|
||||||
@@ -549,13 +577,20 @@ const resetMode = () => {
|
|||||||
thisButton2.value = {
|
thisButton2.value = {
|
||||||
code: '',
|
code: '',
|
||||||
mode: {
|
mode: {
|
||||||
value: '0'
|
value: -1
|
||||||
|
},
|
||||||
|
scene: {
|
||||||
|
value: -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 暴露
|
||||||
defineExpose({
|
defineExpose({
|
||||||
changeCancel
|
// 分区切换
|
||||||
|
changeArea,
|
||||||
|
// 线路切换
|
||||||
|
changeLine
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
Reference in New Issue
Block a user