From 12fd8f6b04b26ef02bccdf5fd0bcefb59541c7f6 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期三, 02 十一月 2022 17:04:23 +0800 Subject: [PATCH] :预警研判 --- src/views/operate/baseSetting/violation/createUser/index.vue | 281 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 198 insertions(+), 83 deletions(-) diff --git a/src/views/operate/baseSetting/violation/createUser/index.vue b/src/views/operate/baseSetting/violation/createUser/index.vue index 614d479..b55af77 100644 --- a/src/views/operate/baseSetting/violation/createUser/index.vue +++ b/src/views/operate/baseSetting/violation/createUser/index.vue @@ -2,50 +2,34 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" :rules="createThings" label-width="140px" autoComplete="on" :model="things" label-position="right"> - <!-- 杩濊浜嬮」缂栧彿 --> - <!-- <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> - <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> - </el-form-item> --> + <el-form ref="user" :rules="createThings" label-width="140px" autoComplete="on" :model="things" + label-position="right"> <!-- 鏂板鐨勭被鍨嬫垨澶х被鎴栧皬绫� --> <el-form-item class="optionItem" label="鏂板鍚嶇О:" prop="name"> <el-input v-model="things.name" placeholder="璇疯緭鍏ユ柊澧炲悕绉�"></el-input> </el-form-item> - <!-- 鎵�灞炵被鍨� --> - <el-form-item class="optionItems" label="鎵�灞炵被鍨�:" prop="typeThird"> - <el-select v-model="things.typeThird" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > - <el-option v-for="item in typeThirdList" :key="item.id" :label="item.name" - :value="item.id"> + <!-- 璇烽�夋嫨绾у埆 --> + <el-form-item class="optionItem" label="绾у埆:" prop="level"> + <el-select v-model="things.level" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" @change="resetParentList"> + <el-option v-for="item in levelList" :key="item.value" :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> - <!-- 鎵�灞炲ぇ绫� --> - <el-form-item class="optionItem" label="鎵�灞炲ぇ绫�:" prop="typeSecond"> - <el-select v-model="things.typeSecond" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > - <el-option v-for="item in typeSecondList" :key="item.id" :label="item.name" - :value="item.id"> + <!-- 鐖剁骇id --> + <el-form-item class="optionItem" label="鐖剁骇:" prop="parentId"> + <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" :disabled="things.level===1"> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="parentList" :props="defaultProps" show-checkbox + @check-change="handleCheck" default-expand-all node-key="id"> + </el-tree> </el-option> </el-select> </el-form-item> - <!-- 璇疯緭鍏ユ柊澧炵瓑绾� --> - <el-form-item class="optionItem" label="妗堜欢绛夌骇:" prop="level"> - <el-select v-model="things.level" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > - <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" - :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <!-- 鎵�灞炲皬绫� --> - <!-- <el-form-item class="optionItem" label="鎵�灞炲皬绫�:" prop="typeFirst"> - <el-select v-model="things.typeFirst" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" disabled> - <el-option v-for="item in typeFirstList" :key="item.id" :label="item.name" - :value="item.id"> - </el-option> - </el-select> - </el-form-item> --> <!-- 妗堢敱 --> <el-form-item class="optionItem" label="妗堢敱:" prop="type"> - <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> + <el-input type="textarea" :rows="2" v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" + :disabled="things.level!==4"></el-input> </el-form-item> <el-form-item> <div class="optionBtn"> @@ -61,104 +45,235 @@ <script> export default { data() { - const checkName = (rule,value,callback)=>{ - if(value){ + const checkName = (rule, value, callback) => { + if (value) { callback(); - }else{ + } else { callback(new Error('鏂板杩濊绫诲瀷涓嶈兘涓虹┖')); } } - const checkLevel = (rule,value,callback)=>{ - if(value){ + const checkLevel = (rule, value, callback) => { + if (value) { callback(); - }else{ + } else { callback(new Error('鏂板杩濊绛夌骇涓嶈兘涓虹┖')); } } return { things: { - // number: 0, - // type: '', - name:'', - typeFirst: '', - typeSecond: '', - typeThird: '', - level:'', + name: '', + parentId: '', + level: '', }, - createThings:{ - name:[ + createThings: { + name: [ { - required:true,trigger:'blur',validator:checkName + required: true, trigger: 'blur', validator: checkName } ], - level:[ + level: [ { - required:true,trigger:'change',validator:checkLevel + required: true, trigger: 'change', validator: checkLevel } - ] + ], + // parentId:[ + // { + // required:true,trigger:'change',validator:checkId + // } + // ] }, - roleList: [], - typeThirdList:[], - typeSecondList:[], - // typeFirstList:[], - eventLevelList:[] + levelList: [ + { + label: "杩濊涓被鍨�", + value: 1, + }, + { + label: "澶х被", + value: 2, + }, + { + label: "灏忕被", + value: 3, + }, + { + label: "妗堢敱", + value: 4, + }, + ], + parentList: [], + selectOrg: { + orgsid: [] + }, + defaultProps: { + children: 'children', + label: 'name', + disabled:(data,node)=>{ + if (data.level<this.things.level-1) { + return !data.leaf + } + } + }, + mylabel:'' } }, created() { - // 鑾峰彇鎵�灞炵被鍨嬪垪琛� - this.getTypeThird(); - this.getTypeSecond(); - // this.getTypeFirst(); - this.getEventLevel(); }, methods: { // 鏌ヨ鎵�灞炵被鍨� - getTypeThird() { - this.$axios({ + async getTypeThird() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/violations/query/type_first", }) .then(res => { - this.typeThirdList = res.data; + arr = res.data; + // this.parentList = res.data; }) + return arr }, // 鏌ヨ鎵�灞炲ぇ绫� - getTypeSecond(){ - this.$axios({ + async getTypeSecond() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/violations/query/type_second", }) .then(res => { - this.typeSecondList = res.data; + arr = res.data; + // this.parentList = res.data; }) + return arr }, // 鏌ヨ鎵�灞炲皬绫� - // getTypeFirst(){ - // this.$axios({ - // method: 'get', - // url: "sccg/violations/query/type_third", - // }) - // .then(res => { - // this.typeFirstList = res.data; - // }) - // }, - // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + async getTypeFirst() { + let arr = []; + await this.$axios({ + method: 'get', + url: "sccg/violations/query/type_third", + }) + .then(res => { + arr = res.data; + // this.parentList = res.data; + }) + return arr + }, + // 鏌ヨ鎵�灞炴鐢� getEventLevel() { this.$axios({ method: 'get', - url: 'sccg/violations/query/event_type' + url: 'sccg/violations/query/type_four' }) .then(res => { console.log(res); - this.eventLevelList = res.data; - }) + this.parentList = res.data; + }) }, // 鎻愪氦鏂板杩濊绫诲瀷 - handleSubmit(){ + handleSubmit() { console.log(this.things); - } + this.$refs.user.validate((valid) => { + console.log(valid); + if (valid) { + const { things, selectOrg} = this; + console.log(things,selectOrg.orgsid[0]); + this.$axios({ + method: 'post', + url: 'sccg/violations/addition/type', + data: { + code: '1111', + level: things.level, + name: things.name, + parentId: things.parentId === '' ? 0 : selectOrg.orgsid[0], + typeCode: '01', + typeName: '闂绫诲瀷', + remark: things.type, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: '娣诲姞鎴愬姛' + }) + this.$emit('changeDialog', { flag: false }); + } else { + this.$message({ + type: 'error', + message: "娣诲姞澶辫触" + }) + } + }) + } else { + return false; + } + }) + }, + // 妗堜欢绾у埆鍙樺寲 + async resetParentList(index) { + this.things.parentId='' + this.selectOrg.orgsid = []; + if (index === 1) { + // this.getTypeThird(); + } else if (index === 2) { + // console.log(this.getTypeThird()); + this.parentList = await this.getTypeThird(); + this.parentList.forEach(item=>{ + item.children = []; + }) + } else if (index === 3) { + + this.parentList = this.addChildren(await this.getTypeThird(), await this.getTypeSecond()); + console.log(this.parentList); + } else { + let arr1 = this.addChildren(await this.getTypeSecond(), await this.getTypeFirst()); + this.parentList = this.addChildren(await this.getTypeThird(), arr1); + } + }, + addChildren(parentArr, childArr) { + // console.log(parentArr.length,childArr); + parentArr.forEach(item => { + item.children = []; + childArr.forEach(child => { + if (item.id === child.parentId) { + item.children.push(child); + } + }) + }) + console.log(parentArr); + return parentArr; + }, + handleCheck(data, checked) { + this.things.parentId = data.name; + console.log(this.selectOrg.orgsid); + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id) + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: '鍙兘閫夋嫨涓�涓尯鍩燂紒', + type: 'error', + showClose: true + }) + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false) + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = [] + this.selectOrg.orgsid.push(data.id) + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = [] + } + }, }, - props: ['getUserList'] + props: ['changeDialog'] } </script> <style lang="scss" scoped> -- Gitblit v1.8.0