Explorar o código

feat: 工程程信息化对象 添加删除修改

yx %!s(int64=4) %!d(string=hai) anos
pai
achega
b3f014d3b6

+ 18 - 0
src/components/baseEditer.vue

@@ -708,6 +708,24 @@ export default {
             bus.$on('changeEquipmentName', (val) => {
                 this.scene.updateEquipmentName(val)
             })
+            // 更改设备的工程信息化对象ID
+            /**
+             * @param { Object } data
+             *   index 修改的工程信息化对象的下标
+             *   ID    修改的 工程信息化对象ID
+             */
+            bus.$on('changeEqAttachObjectIds', (data) => {
+                this.scene.updateEqAttachObjectIds(data)
+            })
+            // 添加 设备的工程信息化对象
+            bus.$on('addAttachObjectIds', () => {
+                this.scene.addAttachObjectIds()
+            })
+            // 删除 设备的工程信息化对象
+            bus.$on('deleteAttachObjectIds', () => {
+                this.scene.deleteAttachObjectIds()
+            })
+
             // 更改设备信息点名称
             bus.$on('changeInfoName', (val) => {
                 this.scene.updateEquipmentInfoName(val)

+ 44 - 11
src/components/edit/equipmentAttr.vue

@@ -3,13 +3,23 @@
         <p>编辑设备</p>
         <div class='row'>
             <div class='row-tit'>名称</div>
-             <a-input v-model='equipmentName' style='width: 180px'  @change='changeEquipmentName' />
-            <!-- <a-button type="link" class="edit-option-btn" @click="OpenEditStatus">{{editStatus[type]}}</a-button> -->
+            <a-input v-model='equipmentName' style='width: 180px' @change='changeEquipmentName' />
         </div>
+        <!-- 工程信息化对象列表 -->
         <div class='row'>
-             <div class='row-tit'>工程信息化对象</div>
-             <a-input style='width: 180px'   />
+            <div class='row-tit'>工程信息化对象列表</div>
         </div>
+        <div class='row' v-for='(item,index) in AttachObjectIds' :key='index'>
+            <a-input class='input' v-model='AttachObjectIds[index]' type='small' @change='changeAttachObjectIds(index)' />
+        </div>
+        <!-- 添加工程信息化对象列表 -->
+        <div class='row'>
+            <span>操作工程程信息化对象</span>
+            <a-button @click='handleAttach(1)' size='small' type='primary'>添加</a-button>
+            <a-button @click='handleAttach(-1)' size='small' v-show='AttachObjectIds.length' type='danger'>删除</a-button>
+        </div>
+        <a-divider />
+        <!-- 信息点 -->
         <div class='row'>
             <div class='row-tit'>信息点</div>
         </div>
@@ -60,8 +70,9 @@ export default {
         return {
             equipmentName: '',
             equipmentData: {},
-            InfoList: [],
-            info: [],
+            InfoList: [], //保存存入的InfoList
+            info: [], //修改 info
+            AttachObjectIds: [], //工程信息化对象 ID 列表
         }
     },
 
@@ -71,9 +82,26 @@ export default {
     },
     mounted() {},
     methods: {
+        /**
+         * @description 添加,删除 工程信息化对象, baseEditer.vue bus事务中做对应处理
+         * @param { Number } flag  -1:删除 1:添加
+         */
+        handleAttach(flag) {
+            switch (flag) {
+                case -1:
+                    bus.$emit('deleteAttachObjectIds')
+                    break
+                default:
+                    bus.$emit('addAttachObjectIds')
+                    break
+            }
+            this.init()
+        },
+        /**
+         * @description 
+         */
         addInfo() {
             bus.$emit('addEquipmentInfo')
-            console.log(this.focusItemList)
             this.init()
         },
         delInfo() {
@@ -82,23 +110,28 @@ export default {
         },
         init() {
             // 设置设备名称
-            window.vuem = this
-            // window._focusItem = this.focusItemList.itemList[0]
+            window.equipmentData = this.focusItemList.itemList[0].toData()
             this.equipmentData = this.focusItemList.itemList[0].toData()
             this.equipmentName = this.equipmentData.Name
-            this.equipmentName = this.equipmentData.Name
             this.InfoList = cloneDeep(this.equipmentData.InfoList)
+            this.AttachObjectIds = cloneDeep(this.equipmentData.AttachObjectIds || [])
             this.info = []
             this.InfoList.map((item) => {
-                let { Name, FontSize, Color,Code } = item
+                let { Name, FontSize, Color, Code } = item
                 // this.info.push(item.Name)
                 this.info.push({ Name, FontSize, Color, Code })
             })
             // console.log(this.equipmentData)
         },
+        // 更改设备名称
         changeEquipmentName() {
             bus.$emit('changeEquipmentName', this.equipmentName)
         },
+        // 更改 工程信息化对象列表
+        changeAttachObjectIds(index) {
+            let ID = this.AttachObjectIds[index]
+            bus.$emit('changeEqAttachObjectIds', { index, ID })
+        },
         // 更改信息点名称
         changeInfoName(index) {
             let info = this.info[index]

+ 23 - 0
src/components/mapClass/EditScence.ts

@@ -704,6 +704,29 @@ export class EditScence extends SGraphScene {
         this.focusItem && (this.focusItem!.name = val)
     }
     /**
+     * @description 更新工程信息化对象ID
+     */
+    updateEqAttachObjectIds(data: { index: number, ID: string }): void {
+        console.log(':::::::::::updateAttachObjectIds',)
+        console.log(this.focusItem)
+        // @ts-ignore
+        this.focusItem.updateAttachObjectIds(data)
+    }
+    /**
+     * @description 添加 工程信息化对象ID
+     */
+    addAttachObjectIds() {
+        // @ts-ignore
+        this.focusItem.addAttachObjectIds()
+    }
+    /**
+     * @description 删除 工程信息化对象ID
+     */
+    deleteAttachObjectIds() {
+        // @ts-ignore
+        this.focusItem.deleteAttachObjectIds()
+    }
+    /**
      * 信息点修改
      * @param val 修改的信息点
      */

+ 22 - 2
src/lib/items/SEquipmentItem.ts

@@ -228,7 +228,7 @@ export class SEquipmentItem extends SObjectItem {
     /**
      * 添加信息点
      */
-    addEquipmentInfo() {
+    addEquipmentInfo(): void {
         let { InfoList } = this.epData;
         let textItem = new STextItem(this);
         let Name, X, Y, Width, Height, FontSize, Background, Color, TextAlign
@@ -283,7 +283,7 @@ export class SEquipmentItem extends SObjectItem {
         this.update()
     }
     // 删除信息点
-    deleteEquipmentInfo() {
+    deleteEquipmentInfo(): void {
         this.epData.InfoList.pop()
         if (this.textArr.length) {
             this.textArr[this.textArr.length - 1].text = '';
@@ -295,6 +295,26 @@ export class SEquipmentItem extends SObjectItem {
         this.update()
     }
     /**
+    * @description 更新工程信息化对象ID
+    */
+    updateAttachObjectIds(data: { index: number, ID: string }): void {
+        console.log(data)
+        let { index, ID } = data
+        this.epData.AttachObjectIds[index] = ID
+    }
+    /**
+     * @description 添加 工程信息化对象ID
+     */
+    addAttachObjectIds(): void {
+        this.epData.AttachObjectIds.push('')
+    }
+    /**
+    * @description 删除 工程信息化对象ID
+    */
+    deleteAttachObjectIds(): void {
+        this.epData.AttachObjectIds.pop()
+    }
+    /**
      * Item绘制操作
      *
      * @param   painter painter对象