From b55304ef7f8af1050f4b57c2cc4e3cb53fe2fda4 Mon Sep 17 00:00:00 2001 From: chenpingsen Date: Mon, 29 Jul 2024 17:03:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E7=85=A7=E6=98=8E=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=A4=9A=E9=80=89=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=EF=BC=8C?= =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=85=A8=E5=B1=80=E5=8F=98=E9=87=8FprojectId?= =?UTF-8?q?=EF=BC=8C=E9=83=A8=E5=88=86=E4=BA=A4=E4=BA=92=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hx-ai-intelligent/src/api/IlluminationInfo.ts | 6 +- hx-ai-intelligent/src/store/item.ts | 9 +- .../equipmentControl/lightingManage/indexs.vue | 37 +++++- .../lightingManage/lightPosition.ts | 3 + .../view/equipmentControl/lightingManage/tabs1.vue | 128 +++++++++++++-------- 5 files changed, 127 insertions(+), 56 deletions(-) create mode 100644 hx-ai-intelligent/src/view/equipmentControl/lightingManage/lightPosition.ts diff --git a/hx-ai-intelligent/src/api/IlluminationInfo.ts b/hx-ai-intelligent/src/api/IlluminationInfo.ts index 0a8015e..113f7fa 100644 --- a/hx-ai-intelligent/src/api/IlluminationInfo.ts +++ b/hx-ai-intelligent/src/api/IlluminationInfo.ts @@ -1,13 +1,13 @@ - // 照明系统及相关接口 export enum lightingManage { - // 主页 ======================================================== // 获得分区与线路 getArea = '/carbon-smart/IlluminationInfo/region', // 修改线路的可用/禁用状态 - setDisable = '/carbon-smart/IlluminationInfo/revisePanel', + setDisable = '/carbon-smart/IlluminationInfo/changePanelStatus', + // 获得设备 - 小灯泡 + getBulbs = '/carbon-smart/IlluminationInfo/getLightState', // 控制面板tab页 ================================================ diff --git a/hx-ai-intelligent/src/store/item.ts b/hx-ai-intelligent/src/store/item.ts index 2b518c4..f3c2b57 100644 --- a/hx-ai-intelligent/src/store/item.ts +++ b/hx-ai-intelligent/src/store/item.ts @@ -3,7 +3,14 @@ import { defineStore } from 'pinia'; export const items = defineStore({ id: 'items', state() { - return { list: [], count: 10 }; + return { + list: [], + count: 10, + // 当前项目ID + projectId: 'HLlmTZp8', + // 站点ID + siteId: undefined, + }; }, getters: { double: (state: any) => state.count * 2, diff --git a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/indexs.vue b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/indexs.vue index e03748d..39fafd4 100644 --- a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/indexs.vue +++ b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/indexs.vue @@ -3,9 +3,13 @@
- +
@@ -77,14 +81,20 @@ import { lightingManage } from '/@/api/IlluminationInfo'; // ICON import { DoubleLeftOutlined, DoubleRightOutlined } from '@ant-design/icons-vue'; + // 全局变量 + import { items } from '/@/store/item'; // 初始化 ======================================================= onMounted(() => { // 获得分区与线路的结构 getAllArea(); + // 获得俯视图中的小灯泡 + getBulbs(); }); + // 获得全局变量 + const state = items(); // 预加载flag,获得分区数据后,预加载抽屉,防止获取ref报错 const preload = ref(false); @@ -92,8 +102,11 @@ // 所有楼层的数据 const floorData = ref([]); + // 当前选择的楼层 + const thisFloor = ref(1); // 左上角分层切换 - const changeFloor = (area: any) => { + const changeFloor = (area: any, floor: number) => { + thisFloor.value = floor; // 重置数据 reset(); // 重置视图 @@ -220,7 +233,7 @@ // 获得所有分区 const getAllArea = () => { - http.get(lightingManage.getArea, { projectId: 'HLlmTZp8' }).then((res) => { + http.get(lightingManage.getArea, { projectId: state.projectId }).then((res) => { const data = res.data; floorData.value = data; /** 只在前端使用的变量 @@ -248,6 +261,20 @@ }); }; + // 设备业务 小灯泡 ============================================== + + const getBulbs = () => { + http + .get(lightingManage.getBulbs, { + floor: thisFloor.value, + projectId: state.projectId, + siteId: state.siteId, + }) + .then((res) => { + console.log(res); + }); + }; + // 抽屉业务 ===================================================== // 抽屉 - 当前选择的tab diff --git a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/lightPosition.ts b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/lightPosition.ts new file mode 100644 index 0000000..1991f66 --- /dev/null +++ b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/lightPosition.ts @@ -0,0 +1,3 @@ +// 此文件只定义light(即俯视图小灯泡)的位置信息 +// 与显示状态和分组信息无关 +export const lightPosition = []; diff --git a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue index 55d6756..203e8f1 100644 --- a/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue +++ b/hx-ai-intelligent/src/view/equipmentControl/lightingManage/tabs1.vue @@ -50,7 +50,7 @@ class="openPlan" :class="{ enabled2: isPlanEnabled2, disabled2: !isPlanEnabled2 }" @click="togglePlan2"> - {{ isPlanEnabled2 ? '启用面板' : '禁用面板' }} + {{ isPlanEnabled2 ? '启用开关' : '禁用开关' }} { - // 默认选项 + // 分区初始化 setArea(); // 获得枚举 getEnum(['IlluminationMode', 'IlluminationScene']); @@ -267,11 +269,13 @@ controlScene.value = data.IlluminationScene; }); }; - // 以 1-1 作为默认回路 + // 分区初始化,以 1-1 作为默认回路 const setArea = () => { const data = props.treeData[0]; buttons2.value = data.childList; }; + // 全局变量 + const state = items(); // 与父组件的交互 =================================================================== @@ -279,11 +283,12 @@ // 分区结构(照明区域 > 照明回路) treeData: { type: Array, - default: [], + default: () => { + []; + }, }, }); - // 向上传递修改选择样式 - /** + /** 向上传递方法 * @method changeArea 用于控制俯视图的选中状态 * @method reset 用于重置按钮区 */ @@ -327,9 +332,9 @@ // 最近交互过的按钮id,用于禁用和启用 const handleButton = ref(''); - // 面板启用/禁用状态 + // 开关启用/禁用状态 const isPlanEnabled2 = ref(true); - // 面板启用/禁用切换事件 + // 开关启用/禁用切换事件 const togglePlan2 = () => { // 如果未交互任何按钮 if (handleButton.value == '') { @@ -340,7 +345,12 @@ let panel = +!btn.ctrlStatus; isLoading.value = true; http - .get(lightingManage.setDisable, { deviceGroup: btn.code, panel }) + .get(lightingManage.setDisable, { + deviceGroup: btn.code, + panel, + projectId: state.projectId, + siteId: state.siteId, + }) .then((res) => { if (res.msg === 'success') { // 确认成功后 - 按钮文本取反 - 按钮布尔值修改 - 关闭loading @@ -392,7 +402,7 @@ buttons2.value.forEach((item: any) => { item.selected = false; }); - // 全不选时,隐藏模式-场景按钮 + // 全不选时,隐藏 模式 与 场景 按钮 resetMode(); } emit('changeArea', arr); @@ -423,7 +433,7 @@ // 选择时反控俯视图 let level1 = selectedButton.value; let level2 = button.id; - // 单选模式,需将所有其他按钮设为false + // 单选模式,需将所有其他回路设为false if (singleSelection.value) { buttons2.value.forEach((item: any) => { item.selected = false; @@ -486,44 +496,64 @@ let before = data.scene.value; // 修改后的数据 let after = button4.value; - // 如果没有产生实质性的修改(修改前后相同,则跳出) - if (before === after) { - return message.info('未产生实际修改'); - // 产生了修改 - } else { - thisButton2.value.scene.value = after; - // 查询之前是否修改过 - const result = changeList.value.find((item: any, index: number) => { - 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; + // 如果是多选模式 + if (!singleSelection.value) { + buttons2.value.forEach((item: any) => { + // 查看当前回路,哪些被选中 + if (item.selected) { + changeScene(item, item.scene.value, after); + item.scene.value = after; } - // 如果未产生过修改 + }); + thisButton2.value.scene.value = after; + return message.info('已修改X项'); + // 如果是单选模式 + } else { + // 如果没有产生实质性的修改(修改前后相同,则跳出) + if (before === after) { + return message.info('未产生实际修改'); + // 产生了修改 + } else { + changeScene(data, before, after); + } + } + }; + /** 控制场景 - 按钮切换通用方法(单选 & 多选) + * @param button 当前被选中的回路(单选 & 多选) + * @param before 回路场景的初始值(撤回时需使用) + * @param after 回路场景被修改后的值 + */ + const changeScene = (button: any, before: number, after: number) => { + // 查询之前是否修改过 + const result = changeList.value.find((item: any, index: number) => { + item.index = index; + return item.deviceGroup == button.code; + }); + // 如果已产生过修改 + if (result) { + // 改回了原有的值,则从数组中移除 + if (after == result.before) { + changeList.value.splice(result.index, 1); + // 修改为新值,则只修改after } else { - changeList.value.push({ - // 回路 - deviceGroup: data.code, - deviceGroupName: data.name, - // 分区 - region: data.pcode, - regionName: '', - // 修改前 - before: before, - // 修改后 - scene: after, - }); + result.scene = after; + // 临时flag,用后移除 + delete result.index; } - console.log(changeList.value, 'changeList'); + // 如果未产生过修改 + } else { + changeList.value.push({ + // 回路 + deviceGroup: button.code, + deviceGroupName: button.name, + // 分区 + region: button.pcode, + regionName: '', + // 修改前 + before: before, + // 修改后 + scene: after, + }); } thisButton2.value.scene.value = after; }; @@ -559,7 +589,11 @@ } buttonLoading.value = true; http - .post(lightingManage.getChangeList, { infoList: changeList.value, projectId: 'HLlmTZp8' }) + .post(lightingManage.getChangeList, { + infoList: changeList.value, + projectId: state.projectId, + siteId: state.siteId, + }) .then((res) => { if (res.msg === 'success') { diffList.value = res.data; From 1cf99afbc3959cf7c5f52de50fb33cee81377460 Mon Sep 17 00:00:00 2001 From: chenpingsen Date: Tue, 30 Jul 2024 14:35:40 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add:=E7=94=B5=E6=A2=AF=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../image/liftState/lift/lift1.png | Bin 0 -> 5926 bytes .../image/liftState/lift/lift2.png | Bin 0 -> 6652 bytes .../equipmentControl/image/liftState/lift/line.png | Bin 0 -> 4239 bytes .../src/view/equipmentControl/liftSystem/index.vue | 28 +- .../view/equipmentControl/liftSystem/liftInfo.vue | 283 +++++++++++++-------- .../equipmentControl/liftSystem/liftPosition.ts | 3 + 6 files changed, 201 insertions(+), 113 deletions(-) create mode 100644 hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift1.png create mode 100644 hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift2.png create mode 100644 hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/line.png create mode 100644 hx-ai-intelligent/src/view/equipmentControl/liftSystem/liftPosition.ts diff --git a/hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift1.png b/hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift1.png new file mode 100644 index 0000000000000000000000000000000000000000..f272fba3fa7553bffb3db0b0b4db7994ca17b692 GIT binary patch literal 5926 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 literal 0 HcmV?d00001 diff --git a/hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift2.png b/hx-ai-intelligent/src/view/equipmentControl/image/liftState/lift/lift2.png new file mode 100644 index 0000000000000000000000000000000000000000..42ebf22d33c81874b9271d2f19cd79f9adc32d66 GIT binary patch literal 6652 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 Zcc@#$?6zBbQ0-p^Y`+jjjnC%Y{{#pK9
- +
@@ -16,14 +16,30 @@ onMounted(() => {}); // tab页部分 ======================================================== - - // 表格数据 - const dataSource = ref([]); + const liftBox = ref([ + { + name: '办公区域扶梯A', + workState: 1, + faultState: 2, + direction: 1, + type: 2, + isLeft: true, + styleText: { left: '245px', bottom: '230px' }, + }, + { + name: '办公区域扶梯B', + workState: 0, + faultState: 3, + direction: 0, + type: 1, + isLeft: false, + styleText: { left: '700px', bottom: '360px' }, + }, + ]); diff --git a/hx-ai-intelligent/src/view/equipmentControl/liftSystem/liftPosition.ts b/hx-ai-intelligent/src/view/equipmentControl/liftSystem/liftPosition.ts new file mode 100644 index 0000000..1795f74 --- /dev/null +++ b/hx-ai-intelligent/src/view/equipmentControl/liftSystem/liftPosition.ts @@ -0,0 +1,3 @@ +// 此文件只定义lift(即电梯)的位置信息 +// 与显示状态和分组信息无关 +export const liftPosition = [];