From a5ec379c799b530821fe71c389334d0f321e948d Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 06 三月 2026 10:00:40 +0800
Subject: [PATCH] 最新版本541200007

---
 admin/src/components/business/OperaWarningRuleWindow.vue |  115 ++++++---------------------------------------------------
 1 files changed, 13 insertions(+), 102 deletions(-)

diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index f6cff81..f221c49 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -11,7 +11,7 @@
       2.鍙戠敓鍖哄煙闈炲繀濉紝涓嶅~鍒欒〃绀鸿瑙勫垯涓嬫墍鏈夊尯鍩熺殑鐩稿簲鎶ヨ绫诲瀷鍧囬�氱煡;<br>
     </p>
     <el-form :model="form" ref="form" :rules="rules">
-      <div style="display: flex;" v-for="(item,index) in form.detailList" :key="'warning_'+index" >
+      <div style="display: flex;" v-for="(item,index) in form.detailList" :key="'region_'+item.random" >
         <span style="line-height: 32px;font-size: 14px;"><b style="color: #F56C6C;margin-right: 4px;font-size: 11px;">*</b>{{'瑙勫垯'+(index +1)}}</span>
         <el-form-item label=""   style="display: inline-block;margin-left: 10px; " >
           <el-select v-model="item.warningId" filterable      placeholder="璇烽�夋嫨鎶ヨ绫诲瀷"    >
@@ -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,18 +34,6 @@
               noChildrenText="娌℃湁瀛愰�夐」"
               noOptionsText="娌℃湁鍙�夐」"
               noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
-        </el-form-item>
-        <el-form-item label=""   style="display: inline-block;margin-left: 10px;width: 120px; " >
-          <el-select  v-model="item.deviceType" filterable placeholder="璇烽�夋嫨璁惧绫诲瀷" clearable  @change="changeDeviceType(item)" >
-            <el-option label="鐩戞帶鐐�" :value="0" ></el-option>
-            <el-option label="娑堥槻璁惧" :value="1" ></el-option>
-            <el-option label="娑堥槻浼犳劅鍣�" :value="2" ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label=""  v-if="item.deviceType>=0 || item.deviceType <=2" style="display: inline-block;margin-left: 10px; " >
-          <el-select v-model="item.deviceId" filterable placeholder="璇烽�夋嫨鐩戞帶鐐�" clearable   @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>
@@ -92,19 +80,21 @@
 import { allList } from '@/api/business/member'
 import { allList as allDveiceList } from '@/api/business/device'
 import { allList as warningList, regionList } from '@/api/business/warning'
+import { validIdCardNo } from '@/utils/form'
 export default {
   name: 'OperaWarningRuleWindow',
   extends: BaseOpera,
   components: { GlobalWindow },
   data () {
     var validIdDetals = (rule, value, callback) => {
-      if (this.form.detailList == null || this.form.detailList.length == 0) {
+      if (this.form.detailList == null || this.form.detailList.length==0) {
         callback(new Error('璇烽厤缃鍒�'))
         return
       }
+      console.log("1111111111111111111111",this.form.detailList)
       for (let i = 0; i < this.form.detailList.length; i++) {
         var item = this.form.detailList[i]
-        if (!item || item.warningId === undefined || !item.warningId || item.warningId == null) {
+        if (!item.warningId || item.warningId == null) {
           callback(new Error('璇锋纭厤缃鍒�'))
           return
         }
@@ -123,7 +113,7 @@
         intervalSec: '',
         sortnum: '',
         status: 0,
-        detailList: [{ random: Math.random(), regionId: null, regionName: null, deviceId: null, deviceName: null, regionCode: null, warningId: null }]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       },
       deviceSelect: [],
       memberSelect: [],
@@ -136,8 +126,8 @@
         detailList: [{ required: true, validator: validIdDetals, message: '璇锋纭厤缃鍒�', tigger: 'blur' }],
         memberNotice: [{ required: true, message: '璇烽�夋嫨閽夐拤閫氱煡' }],
         deviceNotice: [{ required: true, message: '璇烽�夋嫨鏄惁骞挎挱閫氱煡' }],
-        deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱' }],
-        memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳' }],
+        deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱', tigger: 'blur' }],
+        memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳', tigger: 'blur' }],
         status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }]
       }
     }
@@ -147,7 +137,6 @@
       api: '/business/warningRule',
       'field.id': 'id'
     })
-    this.loadRegions()
   },
   methods: {
     normalizeOptions (node) {
@@ -161,77 +150,18 @@
         children: node.childList
       }
     },
-    changeDeviceType (item) {
-      if (item.regionId) {
-        var reg = this.getSelectedObject(item.regionId)
-        if (reg) {
-          item.carmeraList = []
-          if (item.deviceType === 1) {
-            item.carmeraList = reg.deviceList
-          } else if (item.deviceType === 2) {
-            item.carmeraList = reg.sensorList
-          }else if (item.deviceType === 0){
-            item.carmeraList = reg.carmeraList
-          }
-        }
-      }else{
-        item.carmeraList = []
-      }
-      this.$nextTick(() => {
-        if (!item.deviceType || this.notInCarmeraList(item.carmeraList, item.deviceId)) {
-          item.deviceId = null
-          item.deviceName = null
-        }
-      })
-    },
-    changeCamera (curitem) {
-      var list = curitem.carmeraList
-      if (list && list.length) {
-        list.forEach(item => {
-          if (curitem.deviceId === item.indexCode) {
-            curitem.deviceName = item.name
-          }
-        })
-      }
-    },
     changeSel (opt) {
-      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 = []
       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
-          if (item.deviceType === 1) {
-            this.form.detailList[opt].carmeraList = reg.deviceList
-          } else if (item.deviceType === 2) {
-            this.form.detailList[opt].carmeraList = reg.sensorList
-          }else{
-            this.form.detailList[opt].carmeraList = reg.carmeraList
-          }
         }
       }
-      this.$nextTick(() => {
-        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
-          }
-        }
-      }
-      return r
+      console.log(' this.form.detailList[opt]', reg, this.form.detailList[opt])
     },
     getSelectedObject (id) {
       if (!id) {
@@ -251,7 +181,7 @@
       return findSelected(this.regionList) // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
     },
     addDo () {
-      this.form.detailList.push({ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null })
+      this.form.detailList.push({ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null })
     },
     delDo (index) {
       if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
@@ -293,7 +223,7 @@
         deviceNoticeContent: '',
         memberNotice: 1,
         status: 0,
-        detailList: [{ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null }]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       }
       // 鏂板缓
       if (target == null) {
@@ -305,30 +235,11 @@
       }
       // 缂栬緫
       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(), 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(item.deviceType === 1){
-                  item.carmeraList = region.deviceList || []
-                }else if(item.deviceType === 2){
-                  item.carmeraList = region.sensorList || []
-                }
-              }
-            }
-          })
+          this.form.detailList = [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
         }
         if (this.form.memberIds) {
           this.memberSelect = this.form.memberIds.split(',')

--
Gitblit v1.9.3