From 8c73b83777413ce7ed74fb371380be3d353167ff Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 十二月 2025 10:59:44 +0800
Subject: [PATCH] 最新版本541200007

---
 admin/src/components/business/OperaWarningRuleWindow.vue |   78 +++++++++++++++++++++++++++++++-------
 1 files changed, 63 insertions(+), 15 deletions(-)

diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 0afd40a..179993b 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -19,7 +19,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label=""  style="display: inline-block;margin-left: 10px">
-<!--          <el-select v-model="item.regionId" filterable multiple clearable  placeholder="璇烽�夋嫨鍙戠敓鍖哄煙" >
+<!--      <el-select v-model="item.regionId" filterable multiple clearable  placeholder="璇烽�夋嫨鍙戠敓鍖哄煙" >
             <el-option v-for="item in regionList" :key="item.id" :label="item.name" :value="item.id">
             </el-option>
           </el-select>-->
@@ -34,6 +34,11 @@
               noChildrenText="娌℃湁瀛愰�夐」"
               noOptionsText="娌℃湁鍙�夐」"
               noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
+        </el-form-item>
+        <el-form-item label=""   style="display: inline-block;margin-left: 10px; " >
+          <el-select v-model="item.deviceId" filterable placeholder="璇烽�夋嫨鐩戞帶鐐�"   @change="changeCamera(item)" >
+            <el-option v-for="item1 in item.carmeraList"   :label="item1.name" :value="item1.indexCode" ></el-option>
+          </el-select>
         </el-form-item>
         <el-button type="danger" style="margin-left: 10px;height: 32px; " @click="delDo(index)" v-if="index>0 || form.detailList.length>1">鍒犻櫎</el-button>
       </div>
@@ -111,7 +116,7 @@
         intervalSec: '',
         sortnum: '',
         status: 0,
-        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, deviceId: null, deviceName: null, regionCode: null, warningId: null }]
       },
       deviceSelect: [],
       memberSelect: [],
@@ -135,6 +140,7 @@
       api: '/business/warningRule',
       'field.id': 'id'
     })
+    this.loadRegions()
   },
   methods: {
     normalizeOptions (node) {
@@ -148,18 +154,50 @@
         children: node.childList
       }
     },
+    changeCamera (curitem) {
+      var list = curitem.carmeraList
+      if (list && list.length) {
+        list.forEach(item => {
+          if (curitem.deviceId === item.indexCode) {
+            curitem.deviceName = item.name
+          }
+        })
+      }
+    },
     changeSel (opt) {
-      var item = this.form.detailList[opt]
-      this.form.detailList[opt].regionCode = null
-      this.form.detailList[opt].regionName = null
-      if (item.regionId) {
-        var reg = this.getSelectedObject(item.regionId)
-        if (reg) {
-          this.form.detailList[opt].regionCode = reg.indexCode
-          this.form.detailList[opt].regionName = reg.name
+      this.$nextTick(() => {
+        console.log('=================changeSel',opt,this.form.detailList)
+        var item = this.form.detailList[opt]
+        this.form.detailList[opt].regionCode = null
+        this.form.detailList[opt].regionName = null
+        this.form.detailList[opt].carmeraList = []
+        // this.form.detailList[opt].deviceId = null
+        // this.form.detailList[opt].deviceName = null
+        if (item.regionId) {
+          var reg = this.getSelectedObject(item.regionId)
+          if (reg) {
+            this.form.detailList[opt].regionCode = reg.indexCode
+            this.form.detailList[opt].regionName = reg.name
+            this.form.detailList[opt].carmeraList = reg.carmeraList
+          }
+        }
+        console.log('=================changeSel1' , this.form.detailList[opt].carmeraList,this.form.detailList[opt].deviceId)
+        if(this.notInCarmeraList( this.form.detailList[opt].carmeraList,this.form.detailList[opt].deviceId) ){
+          this.form.detailList[opt].deviceId = null
+          this.form.detailList[opt].deviceName = null
+        }
+      })
+    },
+    notInCarmeraList (list, id) {
+      var r = true
+      if (list && list.length) {
+        for (const item of list) {
+          if (item.indexCode === id) {
+            r = false
+          }
         }
       }
-      console.log(' this.form.detailList[opt]', reg, this.form.detailList[opt])
+      return r
     },
     getSelectedObject (id) {
       if (!id) {
@@ -179,7 +217,7 @@
       return findSelected(this.regionList) // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
     },
     addDo () {
-      this.form.detailList.push({ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null })
+      this.form.detailList.push({ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null })
     },
     delDo (index) {
       if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
@@ -221,7 +259,7 @@
         deviceNoticeContent: '',
         memberNotice: 1,
         status: 0,
-        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+        detailList: [{ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null }]
       }
       // 鏂板缓
       if (target == null) {
@@ -229,19 +267,29 @@
           this.$refs.form.resetFields()
           this.form[this.configData['field.id']] = null
         })
-
         return
       }
       // 缂栬緫
       this.$nextTick(() => {
+        this.form.detailList =target.detailList
         for (const key in this.form) {
           this.form[key] = target[key]
           this.form.memberNotice = this.form.memberNotice || 0
           this.form.deviceNotice = this.form.deviceNotice || 0
           this.form.status = this.form.status || 0
         }
+        console.log('===========================', this.form.detailList, target.detailList)
         if (!this.form.detailList || !this.form.detailList.length) {
-          this.form.detailList = [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+          this.form.detailList = [{ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null }]
+        } else {
+          this.form.detailList.forEach((item, index) => {
+            if (item.regionId != null) {
+              var region = this.getSelectedObject(item.regionId)
+              if (region) {
+                item.carmeraList = region.carmeraList || []
+              }
+            }
+          })
         }
         if (this.form.memberIds) {
           this.memberSelect = this.form.memberIds.split(',')

--
Gitblit v1.9.3