From 5083abb65d2a6e43603ee11575b0e233b00a085c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 十二月 2025 17:19:52 +0800
Subject: [PATCH] 最新版本541200007

---
 admin/src/components/business/OperaWarningRuleWindow.vue |   95 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 72 insertions(+), 23 deletions(-)

diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 2f8126f..226c5e7 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -1,7 +1,7 @@
 <template>
   <GlobalWindow
     :title="title"
-    width="50%"
+    width="80%"
     :visible.sync="visible"
     :confirm-working="isWorking"
     @confirm="confirm"
@@ -11,12 +11,6 @@
       2.鍙戠敓鍖哄煙闈炲繀濉紝涓嶅~鍒欒〃绀鸿瑙勫垯涓嬫墍鏈夊尯鍩熺殑鐩稿簲鎶ヨ绫诲瀷鍧囬�氱煡;<br>
     </p>
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="閫夋嫨绛惧埌閫氱煡浜哄憳" prop="memberIds" style="margin-bottom: 30px" >
-        <el-select v-model="memberSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeMembers">
-          <el-option v-for="item in memberList" :key="'member_'+item.id" :label="item.name+'-'+item.companyName" :value="item.id+''">
-          </el-option>
-        </el-select>
-      </el-form-item>
       <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; " >
@@ -53,6 +47,27 @@
       <el-form-item label="鍙戠敓闂撮殧鏃堕棿(绉掞級" prop="intervalSec">
         <el-input type="number" v-model="form.intervalSec" placeholder="璇疯緭鍏ュ瑙勫垯闂撮殧鏃堕棿(绉掞級" v-trim/>
       </el-form-item>
+      <el-form-item label="閽夐拤閫氱煡" prop="memberNotice"  style="display:inline-block;width: 50%;">
+        <el-switch    style="margin-right:30px;width:100px"    v-model="form.memberNotice" :active-value="1"  :inactive-value="0" active-text="寮�" inactive-text="鍏�"></el-switch>
+      </el-form-item>
+      <el-form-item label="閫夋嫨閽夐拤閫氱煡浜哄憳" v-if="form.memberNotice ==1" prop="memberIds" style="margin-bottom: 30px" >
+        <el-select v-model="memberSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeMembers">
+          <el-option v-for="item in memberList" :key="'member_'+item.id" :label="item.name+'-'+item.companyName" :value="item.id+''">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="骞挎挱閫氱煡" prop="deviceNotice"  style="display:inline-block;width: 50%;" >
+        <el-switch    style="margin-right:30px;width: 100px"    v-model="form.deviceNotice" :active-value="1"  :inactive-value="0" active-text="寮�" inactive-text="鍏�">></el-switch>
+      </el-form-item>
+      <el-form-item label="閫夋嫨鎾姤骞挎挱" v-if="form.deviceNotice ==1"  prop="deviceIds" style="margin-bottom: 30px" >
+        <el-select v-model="deviceSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeDevices">
+          <el-option v-for="item in deviceList" :key="'device_'+item.id" :label="item.name" :value="item.id+''">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="骞挎挱鎾姤鍐呭"  v-if="form.deviceNotice ==1" prop="deviceNoticeContent">
+        <el-input type="text" v-model="form.deviceNoticeContent" placeholder="璇疯緭鍏ユ挱鎶ュ唴瀹�" v-trim/>
+      </el-form-item>
     </el-form>
   </GlobalWindow>
 </template>
@@ -61,6 +76,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { allList } from '@/api/business/member'
+import { allList as allDveiceList } from '@/api/business/device'
 import { allList as warningList, regionList } from '@/api/business/warning'
 export default {
   name: 'OperaWarningRuleWindow',
@@ -72,19 +88,28 @@
       form: {
         id: null,
         memberIds: '',
+        deviceIds: '',
+        deviceNoticeContent: '',
+        deviceNotice: 1,
+        memberNotice: 1,
         intervalSec: '',
         sortnum: '',
         status: 0,
-        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null ,warningId:null}]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       },
+      deviceSelect: [],
       memberSelect: [],
       memberList: [],
+      deviceList: [],
       warningList: [],
       regionList: [],
       // 楠岃瘉瑙勫垯
       rules: {
+        memberNotice: [{ required: true, message: '璇烽�夋嫨閽夐拤閫氱煡' }],
+        deviceNotice: [{ required: true, message: '璇烽�夋嫨鏄惁骞挎挱閫氱煡' }],
+        deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱', tigger: 'blur' }],
         memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳', tigger: 'blur' }],
-        status: [{ required: true, message: '璇烽�夋嫨鐘舵��'}]
+        status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }]
       }
     }
   },
@@ -106,22 +131,22 @@
         children: node.childList
       }
     },
-    changeSel(opt){
+    changeSel (opt) {
       var item = this.form.detailList[opt]
       this.form.detailList[opt].regionCode = null
       this.form.detailList[opt].regionName = null
-      if(item.regionId){
+      if (item.regionId) {
         var reg = this.getSelectedObject(item.regionId)
-        if(reg){
+        if (reg) {
           this.form.detailList[opt].regionCode = reg.indexCode
           this.form.detailList[opt].regionName = reg.name
         }
       }
-      console.log(" this.form.detailList[opt]",reg, this.form.detailList[opt])
+      console.log(' this.form.detailList[opt]', reg, this.form.detailList[opt])
     },
-    getSelectedObject(id) {
+    getSelectedObject (id) {
       if (!id) {
-        return null  // 娌℃湁閫変腑椤规椂杩斿洖 null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+        return null // 娌℃湁閫変腑椤规椂杩斿洖 null 鎴� {} 鏍规嵁闇�瑕佸鐞�
       }
       const findSelected = (options) => {
         for (const option of options) {
@@ -132,12 +157,12 @@
             if (found) return found // 濡傛灉鎵惧埌杩斿洖璇ュ璞�
           }
         }
-        return null; // 鏈壘鍒拌繑鍥� null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+        return null // 鏈壘鍒拌繑鍥� null 鎴� {} 鏍规嵁闇�瑕佸鐞�
       }
-      return findSelected(this.regionList); // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
+      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(), regionId: null, regionName: null, regionCode: null, warningId: null })
     },
     delDo (index) {
       if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
@@ -152,20 +177,34 @@
       }
       this.form.memberIds = this.memberSelect.join(',')
     },
+    changeDevices () {
+      console.log(this.deviceSelect)
+      this.form.deviceIds = ''
+      if (!this.deviceSelect || !this.deviceSelect.length) {
+        return
+      }
+      this.form.deviceIds = this.deviceSelect.join(',')
+    },
     open (title, target) {
-      this.memberSelect =[]
+      this.memberSelect = []
+      this.deviceSelect = []
       this.title = title
       this.loadMember()
+      this.loadDevice()
       this.loadRegions()
       this.loadWarning()
       this.visible = true
       this.form = {
         id: null,
         memberIds: '',
+        deviceIds: '',
         intervalSec: '',
         sortnum: '',
+        deviceNotice: 1,
+        deviceNoticeContent: '',
+        memberNotice: 1,
         status: 0,
-        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null,warningId:null }]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       }
       // 鏂板缓
       if (target == null) {
@@ -181,10 +220,13 @@
           this.form[key] = target[key]
         }
         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(), regionId: null, regionName: null, regionCode: null, warningId: null }]
         }
-        if(this.form.memberIds){
-          this.memberSelect = this.form.memberIds.split(",")
+        if (this.form.memberIds) {
+          this.memberSelect = this.form.memberIds.split(',')
+        }
+        if (this.form.deviceIds) {
+          this.deviceSelect = this.form.deviceIds.split(',')
         }
       })
     },
@@ -195,6 +237,13 @@
         this.memberList = res
       })
     },
+    loadDevice () {
+      allDveiceList({
+        type: 4
+      }).then(res => {
+        this.deviceList = res
+      })
+    },
     loadWarning () {
       warningList({
       }).then(res => {

--
Gitblit v1.9.3