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 | 92 +++++++++++++++++++++++++++++++++++----------
1 files changed, 71 insertions(+), 21 deletions(-)
diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index f221c49..179993b 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="'region_'+item.random" >
+ <div style="display: flex;" v-for="(item,index) in form.detailList" :key="'warning_'+index" >
<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,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>
@@ -80,21 +85,19 @@
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.warningId || item.warningId == null) {
+ if (!item || item.warningId === undefined || !item.warningId || item.warningId == null) {
callback(new Error('璇锋纭厤缃鍒�'))
return
}
@@ -113,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: [],
@@ -126,8 +129,8 @@
detailList: [{ required: true, validator: validIdDetals, message: '璇锋纭厤缃鍒�', tigger: 'blur' }],
memberNotice: [{ required: true, message: '璇烽�夋嫨閽夐拤閫氱煡' }],
deviceNotice: [{ required: true, message: '璇烽�夋嫨鏄惁骞挎挱閫氱煡' }],
- deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱', tigger: 'blur' }],
- memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳', tigger: 'blur' }],
+ deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱' }],
+ memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳' }],
status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }]
}
}
@@ -137,6 +140,7 @@
api: '/business/warningRule',
'field.id': 'id'
})
+ this.loadRegions()
},
methods: {
normalizeOptions (node) {
@@ -150,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) {
@@ -181,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) {
@@ -223,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) {
@@ -235,11 +271,25 @@
}
// 缂栬緫
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