From 12d71ee7f050b981d584668f6ca70794d2c92a44 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 十二月 2025 17:53:10 +0800
Subject: [PATCH] 最新版本541200007
---
admin/src/components/business/OperaWarningRuleWindow.vue | 116 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 92 insertions(+), 24 deletions(-)
diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 2f8126f..f221c49 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; " >
@@ -43,7 +37,9 @@
</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>
- <el-button type="primary" style="margin-left: 10px;margin-bottom: 20px;" @click="addDo">澧炲姞瑙勫垯</el-button>
+ <el-form-item label="" prop="detailList" style="width: 150px">
+ <el-button type="primary" style="margin-left: 10px;margin-bottom: 20px;" @click="addDo">澧炲姞瑙勫垯</el-button>
+ </el-form-item>
<el-form-item label="鐘舵��" prop="status">
<el-radio-group v-model="form.status">
<el-radio :label="0" :value="0">绂佺敤</el-radio>
@@ -53,6 +49,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" >
+ <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" >
+ <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,30 +78,57 @@
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'
+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) {
+ 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) {
+ callback(new Error('璇锋纭厤缃鍒�'))
+ return
+ }
+ }
+ callback()
+ }
return {
// 琛ㄥ崟鏁版嵁
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: {
+ 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' }],
- status: [{ required: true, message: '璇烽�夋嫨鐘舵��'}]
+ status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }]
}
}
},
@@ -106,22 +150,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 +176,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 +196,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 +239,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 +256,13 @@
this.memberList = res
})
},
+ loadDevice () {
+ allDveiceList({
+ type: 4
+ }).then(res => {
+ this.deviceList = res
+ })
+ },
loadWarning () {
warningList({
}).then(res => {
--
Gitblit v1.9.3