From 008f73c706cecfe87002955e8316cf4bb0d39581 Mon Sep 17 00:00:00 2001
From: xuziqiang <1344691446@qq.com>
Date: Fri, 26 Jul 2024 13:51:45 +0800
Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E8=8A=82=E7=82=B9=E5=90=8D=E7=A7=B0?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=95=BF=E5=BA=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hx-ai-intelligent/src/view/equipmentManage/group/config.ts | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts
index 9cfd69c..d1c0c36 100644
--- a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts
+++ b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts
@@ -1,11 +1,6 @@
-import { NsSelect } from './../../../../../lib/component/form/select/index';
-import { dateUtil } from '/nerv-lib/util/date-util';
-import data from './mock.json';
import { http } from '/nerv-lib/util';
-import { ref } from 'vue';
-import { device, group } from '/@/api/deviceManage';
+import { group } from '/@/api/deviceManage';
import { dict } from '/@/api';
-import { origanizemanage } from '/@/api/origanizemanage';
const tableCalKeyMap = [
{
title: '来源企业',
@@ -103,7 +98,8 @@ export const formSchema = [
field: 'pointName',
component: 'NsInput',
componentProps: {
- placeholder: '请输入节点名称(必填)',
+ placeholder: '请输入',
+ maxLength: 32,
},
rules: [
{
@@ -117,7 +113,7 @@ export const formSchema = [
field: 'pointType',
component: 'NsSelectApi',
componentProps: {
- placeholder: '请选择节点类型(必填)',
+ placeholder: '请选择',
api: () => dict({ params: { dicKey: 'COUNT_POINT' } }),
// params: { dicKey: 'COUNT_POINT' },
immediate: true,
From e05a813a1e26ca1f5515135c3eb54031e77bef37 Mon Sep 17 00:00:00 2001
From: xuziqiang <1344691446@qq.com>
Date: Fri, 26 Jul 2024 13:56:39 +0800
Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BF=9D=E7=95=99=E9=80=89=E4=B8=AD?=
=?UTF-8?q?treenode?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lib/component/tree/tree-api.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/component/tree/tree-api.vue b/lib/component/tree/tree-api.vue
index 510a152..7faf1ee 100644
--- a/lib/component/tree/tree-api.vue
+++ b/lib/component/tree/tree-api.vue
@@ -71,7 +71,7 @@
});
const formFinish = debounce((data: object) => {
- selectedKeys.value = [];
+ // selectedKeys.value = [];
getData(data);
}, 200);
From 744aae1bba27878713f3bfcde534671d3523aaf2 Mon Sep 17 00:00:00 2001
From: fks-xuxinyue <2822784518@qq.com>
Date: Fri, 26 Jul 2024 15:12:56 +0800
Subject: [PATCH 3/4] taskid:110 remark:'commit'
---
.../src/api/carbonEmissionFactorLibrary.ts | 2 +
hx-ai-intelligent/src/icon/carbonAssetsAdd.svg | 4 +
hx-ai-intelligent/src/icon/carbonAssetsEqual.svg | 6 +
.../src/icon/carbonAssetsIncrease.svg | 4 +
hx-ai-intelligent/src/icon/carbonAssetsLower.svg | 4 +
hx-ai-intelligent/src/icon/carbonAssetsMoney-1.svg | 26 ++
hx-ai-intelligent/src/icon/carbonAssetsMoney-2.svg | 26 ++
hx-ai-intelligent/src/icon/carbonAssetsMoney-3.svg | 26 ++
hx-ai-intelligent/src/icon/carbonAssetsMoney-4.svg | 26 ++
hx-ai-intelligent/src/icon/carbonAssetsReduce.svg | 4 +
.../src/icon/carbonAssetsSearch-1.svg | 6 +
.../src/icon/carbonAssetsSearch-2.svg | 6 +
.../src/icon/carbonAssetsSearch-3.svg | 6 +
hx-ai-intelligent/src/icon/carbonAssetsTitle-1.svg | 10 +
hx-ai-intelligent/src/icon/carbonAssetsTitle-2.svg | 10 +
hx-ai-intelligent/src/icon/carbonAssetsTitle-3.svg | 10 +
.../src/router/carbonEmissionManage.ts | 10 +-
.../carbonAssets/carbonAssetsDetail/index.vue | 28 ++
.../carbonEmissionManage/carbonAssets/index.vue | 319 +++++++++++++++++++++
.../carbonEmissionFactorLibrary/index.vue | 6 +-
.../carbonInventoryCheck/fillInPage/index.vue | 54 +++-
.../carbonInventoryCheck/index.vue | 2 +-
22 files changed, 580 insertions(+), 15 deletions(-)
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsAdd.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsEqual.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsIncrease.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsLower.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsMoney-1.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsMoney-2.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsMoney-3.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsMoney-4.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsReduce.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsSearch-1.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsSearch-2.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsSearch-3.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsTitle-1.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsTitle-2.svg
create mode 100644 hx-ai-intelligent/src/icon/carbonAssetsTitle-3.svg
create mode 100644 hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
create mode 100644 hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/index.vue
diff --git a/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts b/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
index 2d5f06f..67568c2 100644
--- a/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
+++ b/hx-ai-intelligent/src/api/carbonEmissionFactorLibrary.ts
@@ -57,4 +57,6 @@ export enum carbonInventoryCheck {
updateTable = '/carbon-smart/api/carbon/inventory/details/update',
// 排放统计接口
emissionStatistic = '/carbon-smart/api/carbon/inventory/emissionStatistic',
+ // 碳排流向
+ carbonFlowDirection = '/carbon-smart/api/carbon/inventory/carbonFlowDirection',
}
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsAdd.svg b/hx-ai-intelligent/src/icon/carbonAssetsAdd.svg
new file mode 100644
index 0000000..4089903
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsAdd.svg
@@ -0,0 +1,4 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsEqual.svg b/hx-ai-intelligent/src/icon/carbonAssetsEqual.svg
new file mode 100644
index 0000000..02fdc0f
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsEqual.svg
@@ -0,0 +1,6 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsIncrease.svg b/hx-ai-intelligent/src/icon/carbonAssetsIncrease.svg
new file mode 100644
index 0000000..c5eaf6d
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsIncrease.svg
@@ -0,0 +1,4 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsLower.svg b/hx-ai-intelligent/src/icon/carbonAssetsLower.svg
new file mode 100644
index 0000000..bc8755a
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsLower.svg
@@ -0,0 +1,4 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsMoney-1.svg b/hx-ai-intelligent/src/icon/carbonAssetsMoney-1.svg
new file mode 100644
index 0000000..2c7300d
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsMoney-1.svg
@@ -0,0 +1,26 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsMoney-2.svg b/hx-ai-intelligent/src/icon/carbonAssetsMoney-2.svg
new file mode 100644
index 0000000..180961a
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsMoney-2.svg
@@ -0,0 +1,26 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsMoney-3.svg b/hx-ai-intelligent/src/icon/carbonAssetsMoney-3.svg
new file mode 100644
index 0000000..262a936
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsMoney-3.svg
@@ -0,0 +1,26 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsMoney-4.svg b/hx-ai-intelligent/src/icon/carbonAssetsMoney-4.svg
new file mode 100644
index 0000000..c5616a1
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsMoney-4.svg
@@ -0,0 +1,26 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsReduce.svg b/hx-ai-intelligent/src/icon/carbonAssetsReduce.svg
new file mode 100644
index 0000000..845ea03
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsReduce.svg
@@ -0,0 +1,4 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsSearch-1.svg b/hx-ai-intelligent/src/icon/carbonAssetsSearch-1.svg
new file mode 100644
index 0000000..babbb9e
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsSearch-1.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsSearch-2.svg b/hx-ai-intelligent/src/icon/carbonAssetsSearch-2.svg
new file mode 100644
index 0000000..2a1bcfa
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsSearch-2.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsSearch-3.svg b/hx-ai-intelligent/src/icon/carbonAssetsSearch-3.svg
new file mode 100644
index 0000000..0ddbb21
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsSearch-3.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsTitle-1.svg b/hx-ai-intelligent/src/icon/carbonAssetsTitle-1.svg
new file mode 100644
index 0000000..e418bdf
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsTitle-1.svg
@@ -0,0 +1,10 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsTitle-2.svg b/hx-ai-intelligent/src/icon/carbonAssetsTitle-2.svg
new file mode 100644
index 0000000..78bbe69
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsTitle-2.svg
@@ -0,0 +1,10 @@
+
diff --git a/hx-ai-intelligent/src/icon/carbonAssetsTitle-3.svg b/hx-ai-intelligent/src/icon/carbonAssetsTitle-3.svg
new file mode 100644
index 0000000..9eb9a43
--- /dev/null
+++ b/hx-ai-intelligent/src/icon/carbonAssetsTitle-3.svg
@@ -0,0 +1,10 @@
+
diff --git a/hx-ai-intelligent/src/router/carbonEmissionManage.ts b/hx-ai-intelligent/src/router/carbonEmissionManage.ts
index 2d0e6d4..46bf216 100644
--- a/hx-ai-intelligent/src/router/carbonEmissionManage.ts
+++ b/hx-ai-intelligent/src/router/carbonEmissionManage.ts
@@ -66,17 +66,17 @@ const equipment = {
],
},
{
- path: 'carbonInventoryCheck',
- name: 'CarbonInventoryCheck',
+ path: 'carbonAssets',
+ name: 'CbonAssets',
meta: { title: '碳资产', hideChildren: true, icon: 'tanpaiguanli' },
component: Base,
- redirect: { name: 'CarbonInventoryCheckIndex' },
+ redirect: { name: 'CarbonAssetsIndex' },
children: [
{
path: 'index',
- name: 'CarbonInventoryCheckIndex',
+ name: 'CarbonAssetsIndex',
// component: () => import('/nerv-lib/saas/view/menuManage/index.vue'),
- component: () => import('/@/view/carbonEmissionManage/carbonInventoryCheck/index.vue'),
+ component: () => import('/@/view/carbonEmissionManage/carbonAssets/index.vue'),
meta: {
title: '碳资产',
keepAlive: false,
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
new file mode 100644
index 0000000..aa5ea2e
--- /dev/null
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/carbonAssetsDetail/index.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/index.vue
new file mode 100644
index 0000000..df55258
--- /dev/null
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonAssets/index.vue
@@ -0,0 +1,319 @@
+
+
+
+
+
+
全国碳账户估值(CNY)
+
300,000.00
+
+
+
+
+
全国碳账户余额
+
+
+
+
75,000.00
+
期初余额(tCO2)
+
+
+
+
20,000.00
+
+
+ 增加(tCO2)
+
+
+
+
+
20,000.00
+
+
+ 减少(tCO2)
+
+
+
+
+
75,000.00
+
期末余额(tCO2)
+
+
+
+
+
+
+
地方碳账户估值(CNY)
+
300,000.00
+
+
+
+
+
地方碳账户余额
+
+
+
+
75,000.00
+
期初余额(tCO2)
+
+
+
+
20,000.00
+
+
+ 增加(tCO2)
+
+
+
+
+
20,000.00
+
+
+ 减少(tCO2)
+
+
+
+
+
75,000.00
+
期末余额(tCO2)
+
+
+
+
+
+
+
CCER资产估值(CNY)
+
300,000.00
+
+
+
+
+
全国碳账户余额
+
+
+
+
75,000.00
+
期初余额(tCO2)
+
+
+
+
20,000.00
+
+
+ 增加(tCO2)
+
+
+
+
+
20,000.00
+
+
+ 减少(tCO2)
+
+
+
+
+
75,000.00
+
期末余额(tCO2)
+
+
+
+
+
+
+
全国碳账户估值(CNY)
+
300,000.00
+
+
+
+
+
+
+
300,000.00
+
全国碳账户资产估值
+
+
+
+
300,000.00
+
地方碳账户资产估值
+
+
+
+
300,000.00
+
CCER碳资产估值
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
index 49a4221..feec1a2 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonEmissionFactorLibrary/index.vue
@@ -466,6 +466,7 @@
const addTreeNode = ref();
const handleOk = (e: MouseEvent) => {
editTreeNode.value.emissionName = addTreeNode.value;
+ editTreeNode.value.orgId = orgId.value;
http.post(carbonEmissionFactorLibrary.creat, editTreeNode.value).then(() => {
getOrgTree();
NsMessage.success('操作成功');
@@ -550,7 +551,9 @@
const onClose = () => {
visible.value = false;
- formData.value = {};
+ formData.value = {
+ orgId: orgId.value,
+ };
userAuthList.value.splice(0);
};
const closeUnitManag = () => {
@@ -588,6 +591,7 @@
formData.value = {
carbonEmissionPrefix: 't',
numberOfReferences: '10',
+ orgId: orgId.value,
};
userAuthList.value.splice(0);
});
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
index 92e2c41..f7ba68f 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/fillInPage/index.vue
@@ -355,7 +355,7 @@
carbonInventoryCheck,
} from '/@/api/carbonEmissionFactorLibrary';
import { group } from '/@/api/deviceManage';
- import { debug } from 'node:console';
+ import { debug, log } from 'node:console';
defineOptions({
energyType: 'fillInPage', // 与页面路由name一致缓存才可生效
components: {
@@ -474,6 +474,8 @@
queryEmissionData.value.categoryId = info.node.conId;
getEmissionStatistic();
} else if (isClickedTplx.value) {
+ queryFlowDirection.value.categoryId = info.node.conId;
+ getCarbonFlowDirection();
}
};
// 获取碳盘查报告树
@@ -488,6 +490,7 @@
categoryId.value = res.data[0].children[0].conId;
formState.value.categoryId = categoryId.value;
queryEmissionData.value.categoryId = categoryId.value;
+ queryFlowDirection.value.categoryId = categoryId.value;
selectedIds.value = getAllIds(gData.value);
}
getEmissionSourceTree();
@@ -602,6 +605,7 @@
// 类别配置树点击确定
const queryConfigure = ref({
orgId: orgId.value,
+ reportId: props.reportId,
});
const submitCategory = () => {
fetch(carbonInventoryCheck.updateCategoryTree, queryConfigure.value).then((res) => {
@@ -957,8 +961,13 @@
.validate()
.then(() => {
console.log('values', editFormState, toRaw(editFormState));
- editFormState.value.factorId = editFormState.value.factorId.join(',');
- if (editFormState.value.collectionNode.value) {
+ if (editFormState.value.factorId.length > 0) {
+ editFormState.value.factorId = editFormState.value.factorId.join(',');
+ }
+ if (editFormState.value.dataSources.value) {
+ editFormState.value.dataSources = editFormState.value.dataSources.value;
+ }
+ if (editFormState.value.collectionNode) {
editFormState.value.collectionNode = editFormState.value.collectionNode.value;
}
fetch(carbonInventoryCheck.updateTable, editFormState.value).then((res) => {
@@ -1000,10 +1009,23 @@
fillInPage.value = false;
isClickedPftj.value = false;
isClickedTplx.value = true;
+ getCarbonFlowDirection();
setTimeout(() => {
drawEcharts();
}, 500);
};
+ // 获取碳排流向数据
+ const queryFlowDirection = ref({
+ orgId: orgId.value,
+ reportId: props.reportId,
+ year: props.year,
+ categoryId: categoryId.value,
+ });
+ const getCarbonFlowDirection = () => {
+ fetch(carbonInventoryCheck.carbonFlowDirection, queryFlowDirection.value).then((res) => {
+ console.log(res);
+ });
+ };
// 获取排放统计数据
const queryEmissionData = ref({
orgId: orgId.value,
@@ -1015,13 +1037,30 @@
const getEmissionStatistic = () => {
fetch(carbonInventoryCheck.emissionStatistic, queryEmissionData.value).then((res) => {
pftjData.value = res.data.body;
- const data = res.data.title;
+ // 将数据表头数据按顺序组织
+ const orderedKeys = res.data.title.map((obj) => Object.keys(obj)[0]); // 获取原始键的顺序
+ const result: { [key: string]: string } = {};
+
+ res.data.title.forEach((obj) => {
+ const key = Object.keys(obj)[0];
+ result[key] = obj[key];
+ });
+
+ // 确保按照原始顺序返回结果
+ const orderedResult: { [key: string]: string } = {};
+ orderedKeys.forEach((key) => {
+ if (result[key] !== undefined) {
+ orderedResult[key] = result[key];
+ }
+ });
+
+ const data = orderedResult;
// 将数据转换为 DataItem 数组
tableHeader.value = [];
pftjColumn.value = [
{
title: '排放分类',
- dataIndex: 'emissionCategory',
+ dataIndex: 'emissionClassify',
customCell: (record, rowIndex) => {
if (rowIndex == undefined) {
return {
@@ -1029,10 +1068,10 @@
colSpan: 0,
};
}
- const rowSpan = getRowSpan('emissionCategory', record, pftjData.value);
+ const rowSpan = getRowSpan('emissionClassify', record, pftjData.value);
if (
rowIndex != 0 &&
- pftjData.value[rowIndex - 1].emissionCategory == record.emissionCategory
+ pftjData.value[rowIndex - 1].emissionClassify == record.emissionClassify
) {
return {
rowSpan: 0,
@@ -1431,7 +1470,6 @@
min-width: fit-content;
> div {
background-color: @white;
- flex: 1;
}
display: flex;
diff --git a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue
index a58a17e..7376e9b 100644
--- a/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue
+++ b/hx-ai-intelligent/src/view/carbonEmissionManage/carbonInventoryCheck/index.vue
@@ -4,7 +4,7 @@
-
+
From e14bd35fac4614d96ed8079fed9c872c019d8406 Mon Sep 17 00:00:00 2001
From: chenpingsen
Date: Fri, 26 Jul 2024 15:15:32 +0800
Subject: [PATCH 4/4] =?UTF-8?q?add:=E7=85=A7=E6=98=8E=E7=B3=BB=E7=BB=9F?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=8E=E9=80=BB=E8=BE=91=E8=A1=A5=E5=85=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hx-ai-intelligent/src/api/index.ts | 2 +-
.../lightingManage/dialogStyle.less | 9 +-
.../view/equipmentControl/lightingManage/tabs1.vue | 243 +++++++++++----------
3 files changed, 138 insertions(+), 116 deletions(-)
diff --git a/hx-ai-intelligent/src/api/index.ts b/hx-ai-intelligent/src/api/index.ts
index cab3c80..0349a92 100644
--- a/hx-ai-intelligent/src/api/index.ts
+++ b/hx-ai-intelligent/src/api/index.ts
@@ -40,7 +40,7 @@ export const dict = async ({
};
/**
- * 获取所有枚举(无需传参)
+ * 获取所有枚举(参数为数组,可以不传参)
*/
export const getAllEnum = async ({
api = `${BASE_URL}/operation/enum/getAllEnum`,
diff --git a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/dialogStyle.less b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/dialogStyle.less
index b3bf2f3..382533c 100644
--- a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/dialogStyle.less
+++ b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/dialogStyle.less
@@ -3,7 +3,7 @@
right: 496px;
width: 500px;
height: 100%;
- z-index: 99;
+ z-index: 0;
top: 0;
bottom: 0;
margin: auto;
@@ -44,6 +44,9 @@
border-radius: 12px;
border: 2px solid transparent;
border-image: linear-gradient(to bottom, #0077ff, #00f6ff, #000000) 1;
+ .title-img {
+ padding-top: 6px;
+ }
}
.imgText {
display: flex;
@@ -68,6 +71,7 @@
rgba(255, 112, 3, 1) 91.21%,
rgba(255, 129, 3, 1) 100%
);
+ cursor: pointer;
}
}
.btn-box {
@@ -97,6 +101,9 @@
width: 140px;
height: 35px;
line-height: 35px;
+ :first-child {
+ color: white;
+ }
span {
vertical-align: middle;
}
diff --git a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue
index a370239..55d6756 100644
--- a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue
+++ b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue
@@ -121,6 +121,9 @@
@@ -135,15 +138,20 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -153,7 +161,7 @@
变更内容
-
+
@@ -161,10 +169,17 @@
{{ item.name }}{{ item.regionName + ' > ' + item.deviceGroupName }}
-
+
+
+
@@ -178,25 +193,38 @@
亮度
-
100lux
+
+
{{
+ item?.stateBefore?.brightness != undefined ? item.stateBefore.brightness : '--'
+ }}
-
30lux
+
{{
+ item?.stateAfter?.brightness != undefined ? item.stateAfter.brightness : '--'
+ }}
控制场景
-
手动
+
{{
+ item?.stateBefore?.scene?.label ? item.stateBefore.scene.label : '--'
+ }}
-
自动
+
{{
+ item?.stateAfter?.scene?.label ? item.stateAfter.scene.label : '--'
+ }}
色温
-
4000k
+
{{
+ item?.stateBefore?.color != undefined ? item.stateBefore.color : '--'
+ }}
-
3800k
+
+ {{ item?.stateAfter?.color != undefined ? item.stateAfter.color : '--' }}
+
@@ -206,7 +234,7 @@
-
+
@@ -239,7 +267,7 @@
controlScene.value = data.IlluminationScene;
});
};
- // 以 1-1 作为默认线路
+ // 以 1-1 作为默认回路
const setArea = () => {
const data = props.treeData[0];
buttons2.value = data.childList;
@@ -272,14 +300,14 @@
// 按钮区展开与收起状态
const showAllButtonsArea = ref(false);
- // 被选中的分区 默认为1
+ // 被选中的分区 默认为1 用于选中样式渲染
const selectedButton = ref
('1');
// 分区切换
const changeArea = (button: any) => {
// 当前选中按钮
selectedButton.value = button.id;
- // 设置当前选中的线路
+ // 设置当前选中的回路
buttons2.value = button.childList;
// 重置按钮状态
emit('reset');
@@ -287,7 +315,7 @@
button.selected = true;
// 改变俯视图样式
emit('changeArea', button.id);
- // 当前选中线路 - 置空
+ // 当前选中回路 - 置空
resetMode();
// 最近交互过的按钮 - 置空
handleButton.value = '';
@@ -299,7 +327,6 @@
// 最近交互过的按钮id,用于禁用和启用
const handleButton = ref('');
-
// 面板启用/禁用状态
const isPlanEnabled2 = ref(true);
// 面板启用/禁用切换事件
@@ -309,7 +336,7 @@
return message.info('请选择照明回路');
}
// 获取最近交互过的按钮
- const btn: any = buttons2.value.find((button) => button.id === handleButton.value);
+ const btn: any = buttons2.value.find((button: any) => button.id === handleButton.value);
let panel = +!btn.ctrlStatus;
isLoading.value = true;
http
@@ -334,11 +361,12 @@
// 多选与单选切换事件
const selectAll = () => {
selectAllCheckbox.value = false;
- buttons2.value.forEach((button) => {
+ // 切换时清空当前所有选项
+ buttons2.value.forEach((button: any) => {
button.selected = false;
});
singleSelection.value = !singleSelection.value;
- // 当前选中线路 - 置空
+ // 当前选中回路 - 置空
resetMode();
// 改变俯视图样式
emit('changeArea', [selectedButton.value]);
@@ -351,8 +379,8 @@
let arr = [selectedButton.value];
// 全选
if (selectAllCheckbox.value) {
- buttons2.value.forEach((item, index) => {
- // 全选时,默认展示第一条线路的模式-场景按钮
+ buttons2.value.forEach((item: any, index: number) => {
+ // 全选时,默认展示第一条回路的模式-场景按钮
if (index == 0) {
thisButton2.value = item;
}
@@ -361,7 +389,7 @@
});
// 全不选
} else {
- buttons2.value.forEach((item) => {
+ buttons2.value.forEach((item: any) => {
item.selected = false;
});
// 全不选时,隐藏模式-场景按钮
@@ -370,9 +398,11 @@
emit('changeArea', arr);
};
- // 储存当前选中的线路
+ // 储存当前选中的回路
const thisButton2 = ref({
code: '',
+ name: '',
+ pcode: '',
mode: {
value: -1,
},
@@ -390,13 +420,12 @@
} else {
isPlanEnabled2.value = false;
}
-
// 选择时反控俯视图
let level1 = selectedButton.value;
let level2 = button.id;
// 单选模式,需将所有其他按钮设为false
if (singleSelection.value) {
- buttons2.value.forEach((item) => {
+ buttons2.value.forEach((item: any) => {
item.selected = false;
});
button.selected = !button.selected;
@@ -405,7 +434,7 @@
// 多选模式传值
button.selected = !button.selected;
const arr = [level1];
- buttons2.value.forEach((item) => {
+ buttons2.value.forEach((item: any) => {
if (item.selected) {
arr.push(item.id);
}
@@ -433,7 +462,7 @@
// 控制模式业务 ====================================================================
// 控制模式 - 按钮切换
- const selectButton3 = (button3) => {
+ const selectButton3 = (button3: any) => {
let checked = thisButton2.value.mode;
console.log(button3.value, '---', checked.value);
// 如果点击了相同的按钮,则未作出修改
@@ -449,11 +478,9 @@
const controlMode = ref([]);
// 场景枚举
const controlScene = ref([]);
- // 控制场景 - 当前选择按钮
- const selectedButton4 = ref(null);
// 控制场景 - 按钮切换
const selectButton4 = (button4) => {
- // 当前选中的线路数据
+ // 当前选中的回路数据
const data = thisButton2.value;
// 修改前的数据
let before = data.scene.value;
@@ -461,12 +488,12 @@
let after = button4.value;
// 如果没有产生实质性的修改(修改前后相同,则跳出)
if (before === after) {
- return;
+ return message.info('未产生实际修改');
// 产生了修改
} else {
thisButton2.value.scene.value = after;
// 查询之前是否修改过
- const result = changeList.value.find((item, index) => {
+ const result = changeList.value.find((item: any, index: number) => {
item.index = index;
return item.deviceGroup == data.code;
});
@@ -484,7 +511,7 @@
// 如果未产生过修改
} else {
changeList.value.push({
- // 线路
+ // 回路
deviceGroup: data.code,
deviceGroupName: data.name,
// 分区
@@ -498,112 +525,100 @@
}
console.log(changeList.value, 'changeList');
}
-
thisButton2.value.scene.value = after;
- console.log(thisButton2, '222222');
- console.log(button4, '44444');
};
- // 内侧弹窗 ========================================================================
-
- // 需要修改的内容
- const changeList: any = ref([]);
- // 需要向后端提交的修改内容
- const submitList = ref([]);
- const cxList = ref([
- {
- id: '1',
- name: '站厅照明 1区',
- manual: '手动',
- automatic: '自动',
- brightness: '100lux',
- brightness2: '30lux',
- manual2: '手动',
- automatic2: '自动',
- brightness3: '4000k',
- brightness4: '3800k',
- },
- {
- id: '2',
- name: '站厅照明 2区',
- manual: '手动',
- automatic: '自动',
- brightness: '100lux',
- brightness2: '30lux',
- manual2: '手动',
- automatic2: '自动',
- brightness3: '4000k',
- brightness4: '3800k',
- },
- {
- id: '3',
- name: '站厅照明 3区',
- manual: '手动',
- automatic: '自动',
- brightness: '100lux',
- brightness2: '30lux',
- manual2: '手动',
- automatic2: '自动',
- brightness3: '4000k',
- brightness4: '3800k',
- },
- ]);
- //撤销
- const delBtn = () => {
- cxList.value.pop();
- console.log(cxList.value.length);
-
- if (cxList.value.length === 0) {
- executeVisible.value = false;
- }
- };
-
- // 其他业务 ========================================================================
+ // 底部按钮区 ======================================================================
const isLoading = ref(false);
+ // 执行按钮loading
+ const buttonLoading = ref(false);
// 刷新
const refresh = () => {
// 关闭执行弹窗
executeVisible.value = false;
// 设置当前选中的序列
selectedButton.value = '1';
+ // 重置选中样式 和 按钮选中状态
emit('changeArea', ['1']);
emit('reset');
+ // 默认选择第一个楼层
let data = props.treeData[0];
+ // 清空保存的修改
+ changeList.value = [];
// 默认选中
data.selected = true;
+ // 默认选中 1-1 分区 回路
buttons2.value = data.childList;
- selectedButton4.value = null;
resetMode();
};
- // 执行确认
- const executeVisible = ref(false);
+ // 右下角的执行事件
const showModal = () => {
+ if (!changeList.value.length) {
+ return message.info('未产生任何修改');
+ }
+ buttonLoading.value = true;
http
.post(lightingManage.getChangeList, { infoList: changeList.value, projectId: 'HLlmTZp8' })
.then((res) => {
if (res.msg === 'success') {
- isLoading.value = true;
- console.log(res);
+ diffList.value = res.data;
+ executeVisible.value = true;
} else {
- isLoading.value = false;
+ message.warning('获取修改内容失败');
}
+ buttonLoading.value = false;
+ })
+ .catch(() => {
+ buttonLoading.value = false;
});
- executeVisible.value = true;
};
+ // 通用取消
+ const changeCancel = () => {};
+
+ // 内侧弹窗 ========================================================================
- // 确定
- const changeConfirm = () => {
- refresh();
+ // 内侧弹窗显隐
+ const executeVisible = ref(false);
+ // 修改模式 需要向后端提交的内容
+ const changeList: any = ref([]);
+ // 展示修改前后差异的内容
+ const diffList = ref([]);
+ //撤销
+ const delBtn = (obj: any) => {
+ console.log(obj, '当前选择的修改内容');
+ // 将treeData对应回路的数据改回,数据以后端为准
+ const area = props.treeData.find((item: any) => {
+ return item.code == obj.region;
+ });
+ const line = area.childList.find((item: any) => {
+ return item.code == obj.deviceGroup;
+ });
+ line.scene.value = obj.stateBefore.scene.value;
+ // 将 changeList 与 diffList 中记录的修改移除 (排除极端情况)
+ changeList.value = changeList.value.filter((item: any) => {
+ return item.deviceGroup !== obj.deviceGroup;
+ });
+ diffList.value = diffList.value.filter((item: any) => {
+ return item.deviceGroup !== obj.deviceGroup;
+ });
+ console.log(changeList, 'changeList');
+ console.log(diffList, 'diffList');
+ // 如果移除后不再有修改内容,则隐藏弹出框
+ if (changeList.value.length == 0) {
+ executeVisible.value = false;
+ }
};
+ const submitChangeList = () => {};
- // 取消
- const changeCancel = () => {};
+ // 其他业务 ========================================================================
- // 将当前选择的线路置空
+ // 将当前选择的回路置空
const resetMode = () => {
thisButton2.value = {
code: '',
+ name: '',
+ pcode: '',
mode: {
value: -1,
},
@@ -613,11 +628,11 @@
};
};
- // 暴露
+ // 向外暴露方法
defineExpose({
// 分区切换
changeArea,
- // 线路切换
+ // 回路切换
changeLine,
});