From 4d9a35462803c7392dedca8d95fe21ff3d949466 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期一, 03 十月 2022 08:42:36 +0800 Subject: [PATCH] 用户、角色、部门,新增批量操作,案件池详情展示、以及调度 --- src/views/operate/baseSetting/illegalBuild/index.vue | 6 src/views/systemSetting/baseSetting/department/updateUser/index.vue | 1 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue | 179 ++ src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue | 96 + src/views/systemSetting/platform/mySetting/create/index.vue | 44 src/views/operate/baseSetting/violation/index.vue | 6 src/views/operate/disposal/casepool/pool/index.vue | 123 src/views/operate/baseSetting/illegalBuild/createUser/index.vue | 90 src/views/systemSetting/baseSetting/department/index.vue | 58 src/components/filePictrue/index.vue | 86 src/components/process/index.vue | 29 src/views/systemSetting/baseSetting/user/components/main/index.vue | 141 + src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 2 src/views/operate/disposal/casepool/escalation/index.vue | 400 +++- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue | 146 - src/components/dispatch/index.vue | 277 +++ src/views/operate/disposal/casepool/escalation/createUser/vio/index.vue | 472 ++++++ src/views/systemSetting/baseSetting/role/updateUser/index.vue | 62 src/views/operate/disposal/casepool/dispatch/index.vue | 121 /dev/null | 67 src/views/operate/disposal/casepool/pool/createUser/ill/index.vue | 2 src/components/detail/index.vue | 16 src/components/scene/index.vue | 67 src/views/systemSetting/baseSetting/department/createUser/index.vue | 53 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue | 200 -- src/main.js | 1 src/views/operate/baseSetting/violation/createUser/index.vue | 111 + src/views/operate/disposal/casepool/escalation/createUser/index.vue | 194 -- src/views/operate/disposal/casepool/escalation/updateUser/index.vue | 0 src/components/solveProblem/index.vue | 27 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue | 276 +++ src/App.vue | 5 src/views/systemSetting/baseSetting/role/index.vue | 40 src/views/systemSetting/platform/mySetting/index.vue | 286 ++- src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue | 493 +++++++ 35 files changed, 3,018 insertions(+), 1,159 deletions(-) diff --git a/src/App.vue b/src/App.vue index a666192..e8a4be3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -60,14 +60,15 @@ background-color: #17324c !important; } .el-tree{ - background-color: #17324c !important; + background-color: #09152f !important; } .el-tree-node__content:hover, .el-upload-list__item:hover{ background-color: #09152f !important; color: #4b9bb7 !important; } .el-tree-node:focus>.el-tree-node__content{ - background-color: #09152f !important; + background-color: #070f22 !important; + color:#4b9bb7 } /*瀹氫箟婊氬姩鏉¢珮瀹藉強鑳屾櫙 楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ diff --git a/src/components/detail/index.vue b/src/components/detail/index.vue index a229646..f398e1a 100644 --- a/src/components/detail/index.vue +++ b/src/components/detail/index.vue @@ -119,9 +119,9 @@ <div class="show-item"> <div class="show-wrap"> <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> - <MyFilePicture v-else-if="activeIndex === 2" :currentSitVo="currentSitVo" ></MyFilePicture> + <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> - <MyScene v-else></MyScene> + <MyScene v-else :currentSitVo="currentSitVo"></MyScene> </div> </div> </div> @@ -133,7 +133,7 @@ import MySovleProblem from '@/components/solveProblem' import MyScene from '@/components/scene' export default { - components: { + components: { MyProcess, MyFilePicture, MySovleProblem, MyScene }, data() { @@ -159,22 +159,24 @@ title: '鐜板満鎯呭喌', index: 4, }, - ], + ], baseCase:{}, handlePassVo:{}, currentSitVo:{}, problemProVo:{}, + filesPictureVo:{} } }, created() { console.log('created'); - const {info} = this; + const {info} = this; this.baseCase = info.baseCase; this.handlePassVo = info.handlePassVo; this.currentSitVo = info.currentSitVo; - this.problemProVo = info.currentSitVo; - console.log(info); + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + console.log(info); }, methods: { changeComponent(index) { diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue new file mode 100644 index 0000000..ebef391 --- /dev/null +++ b/src/components/dispatch/index.vue @@ -0,0 +1,277 @@ +<template> + <div class="dispatch"> + <el-form ref="form" :model="dispatch" :rules="rules" label-width="120px"> + <!-- 閫夋嫨璺濈 --> + <el-form-item label="璺濈:" prop="distance"> + <el-radio-group v-model="dispatch.distance"> + <el-radio :label="1">100m浠ュ唴</el-radio> + <el-radio :label="2">300m浠ュ唴</el-radio> + <el-radio :label="3">500m浠ュ唴</el-radio> + <el-radio :label="4">1km浠ュ唴</el-radio> + <el-radio :label="5">2km浠ュ唴</el-radio> + <el-radio :label="6">3km浠ュ唴</el-radio> + </el-radio-group> + </el-form-item> + <!-- 閫夋嫨鎵ф硶杞� --> + <el-form-item label="閫夋嫨鎵ф硶杞�:" prop="enforcementCar"> + <el-select v-model="dispatch.enforcementCar" placeholder="璇烽�夋嫨"> + <el-option v-for="item in carOptions" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 閫夋嫨浜哄憳 --> + <div class="form-person"> + <!-- 閮ㄩ棬 --> + <el-form-item label="閫夋嫨浜哄憳:" prop="dispatchOpinion"> + <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬"> + <el-option v-for="item in departOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 涓槦 --> + <el-form-item prop="enforcementTeam" class="person-item"> + <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦"> + <el-option v-for="item in squadronOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item prop='lawEnforcer' class="person-item"> + <!-- 浜哄憳 --> + <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳"> + <el-option v-for="item in personOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </div> + <div class="form-footer"> + <!-- 鎵ф硶浜哄憳缂栧彿 --> + <el-form-item label="鎵ф硶浜哄憳缂栧彿:" prop="lawEnforcerName"> + <el-input v-model="dispatch.lawEnforcerName"></el-input> + </el-form-item> + <!-- 鎵ф硶浜哄憳鑱旂郴鏂瑰紡 --> + <el-form-item label="鑱旂郴鏂瑰紡:" prop="contactWay"> + <el-input v-model="dispatch.contactWay"></el-input> + </el-form-item> + <el-button type="primary" @click.native.prevent="handleDispatch">鍙戦�佺煭淇�</el-button> + </div> + </el-form> + <div class="map"> + <!-- <MyMap></MyMap> --> + </div> + </div> +</template> +<script> +import MyMap from '@/components/map' +export default { + components: { + MyMap + }, + props: ['id','changeDialog'], + created() { + console.log(this.id); + }, + data() { + const checkPhone = (rule, value, callback) => { + if (value) { + const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ + if (!rep.test(value)) { + callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); + } else { + callback(); + } + } else { + callback(new Error('鑱旂郴鏂瑰紡涓嶈兘涓虹┖')) + } + } + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('閮ㄩ棬涓嶈兘涓虹┖')) + } + } + const checkDistance = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璺濈涓嶈兘涓虹┖')) + } + } + const checkCar = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵ф硶杞﹁締涓嶈兘涓虹┖')) + } + } + const checkTeam = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('涓槦涓嶈兘涓虹┖')) + } + } + const checkPerson = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵ф硶浜哄憳涓嶈兘涓虹┖')) + } + } + const checkNumber = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵ф硶浜哄憳缂栧彿涓嶈兘涓虹┖')) + } + } + return { + dispatch: { + baseCaseId: 0,//妗堜欢id + contactWay: "",//鑱旂郴鏂瑰紡 + dispatchOpinion: "",//閮ㄩ棬 + disposeDate: "",//澶勭疆鏃ユ湡 + distance: 0,//璺濈 + enforcementCar: '',//鎵ф硶杞� + enforcementTeam: "",//鎵ф硶涓槦 + lawEnforcer: '',//鎵ф硶浜哄憳 + lawEnforcerName: ""//鎵ф硶缂栧彿 + }, + rules: { + contactWay: [ + { + required: true, trigger: 'blur', validator: checkPhone + } + ], + dispatchOpinion: [ + { required: true, trigger: 'change', validator: checkOpinion } + ], + distance: [ + { required: true, trigger: 'change', validator: checkDistance } + ], + enforcementCar: [ + { required: true, trigger: 'change', validator: checkCar } + ], + enforcementTeam: [ + { required: true, trigger: 'change', validator: checkTeam } + ], + lawEnforcer: [ + { required: true, trigger: 'change', validator: checkPerson } + ], + lawEnforcerName: [ + { required: true, trigger: 'change', validator: checkNumber } + ], + }, + carOptions: [ + { + label: '杞﹁締涓�', + value: 1, + }, + { + label: '杞﹁締浜�', + value: 2, + }, + ], + departOptions: [ + { + label: '閮ㄩ棬涓�', + value: 1, + }, + { + label: '閮ㄩ棬浜�', + value: 2, + }, + ], + carOptions: [ + { + label: '杞﹁締涓�', + value: 1, + }, + { + label: '杞﹁締浜�', + value: 2, + }, + ], + squadronOptions: [ + { + label: '涓槦涓�', + value: 1, + }, + { + label: '涓槦浜�', + value: 2, + }, + ], + personOptions: [ + { + label: '浜哄憳涓�', + value: 1, + }, + { + label: '浜哄憳浜�', + value: 2, + }, + ], + } + }, + methods: { + // 鎵ц璋冨害 + handleDispatch() { + console.log(this.dispatch); + this.$refs.form.validate((valid) => { + console.log(valid); + if (valid) { + const {dispatch,id} = this; + dispatch.disposeDate = new Date(); + console.log(id); + dispatch.baseCaseId = id; + console.log(dispatch); + this.$axios({ + method:'post', + url:`sccg/dispatch_handle/dispatch`, + data:dispatch + }) + .then(res=>{ + this.$message({ + type: res.code === 200 ? 'success':'error', + message: res.code === 200 ? '璋冨害鎴愬姛':res.message, + }) + this.$emit('changeDialog',{dialogView:false}); + }) + } else { + return false; + } + }) + } + } +} +</script> +<style lang="scss" scoped> +.dispatch { + padding: 50px 20px 10px; + .form-person{ + display: flex; + .person-item{ + margin-left: -100px; + } + } + .form-footer { + display: flex; + align-items: center; + line-height: 40px; + + .el-button { + margin-bottom: 22px; + margin-left: 40px; + } + } + + .map { + height: 388px; + width: 100%; + } +} +</style> \ No newline at end of file diff --git a/src/components/filePictrue/index.vue b/src/components/filePictrue/index.vue index 7690f8b..8b65250 100644 --- a/src/components/filePictrue/index.vue +++ b/src/components/filePictrue/index.vue @@ -3,17 +3,15 @@ <div class="file-tell"> <div class="tell-title">涓婃姤</div> <div class="tell-show"> - <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" - :headers="getToken()" multiple :limit="50"> - <div class="my-demo"> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - <div class="tip"> - <div>銆愬浘鐗囩被鍨嬨�戜笂鎶�</div> - <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> - </div> + <div class="my-demo"> + <!-- <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> --> + <img class="img" :src="imgSource[0].url" alt=""> + <div class="tip"> + <div>銆愬浘鐗囩被鍨嬨�戜笂鎶�</div> + <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> </div> - </el-upload> + </div> <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" alt=""> </div> @@ -21,17 +19,15 @@ <div class="file-deal"> <div class="tell-title">澶勭疆</div> <div class="tell-show"> - <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" - :headers="getToken()" multiple :limit="50"> - <div class="my-demo"> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - <div class="tip"> - <div>銆愬浘鐗囩被鍨嬨�戝缃�</div> - <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> - </div> + <div class="my-demo"> + <!-- <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> --> + <img class="img" :src="imgSource[1].url" alt=""> + <div class="tip"> + <div>銆愬浘鐗囩被鍨嬨�戝缃�</div> + <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> </div> - </el-upload> + </div> <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" alt=""> </div> @@ -42,8 +38,14 @@ export default { data() { return { - + imgSource: [] } + }, + props: ['filesPictureVo'], + created() { + console.log(this.filesPictureVo); + const { filesPictureVo: { imageResources: mysource } } = this; + this.imgSource = mysource; }, methods: { // 鑾峰彇token @@ -61,33 +63,35 @@ .file-picture { padding-top: 50px; - .file-tell,.file-deal { + .file-tell, + .file-deal { .tell-title { line-height: 40px; } .tell-show { display: flex; - - .upload-demo { - height: 159px; - - .my-demo { - position: relative; - height: 100%; - } - - .tip { - div { - line-height: 20px; - } - - text-align: left; - position: absolute; - bottom: 80px; - } - } } } + + .my-demo { + position: relative; + height: 159px; + } + + .tip { + div { + line-height: 20px; + } + + text-align: left; + position: absolute; + bottom: 0px; + } + + .img { + width: 226px; + height: 159px; + } } </style> \ No newline at end of file diff --git a/src/components/process/index.vue b/src/components/process/index.vue index 7ec8e99..3897b71 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -1,34 +1,34 @@ <template> <div class="my-process"> <div class="my-pro-header"> - <div class="pro-step" v-for="(item,index) in list" :key="item.title"> + <div class="pro-step" v-for="(item,index) in list" :key="item.name"> <div class="pro-step-top"> <div - :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + :class="['circle',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> </div> - <div :class="['line',active > item.index ? 'finish-line' :'']" + <div :class="['line',active > index ? 'finish-line' :'']" v-if="index<list.length-1 ? true:false"></div> </div> <div - :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - {{item.title}}</div> + :class="['pro-step-name',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + {{item.name}}</div> </div> </div> <div class="my-pro-main"> <div class="pro-step-ver" v-for="(item,index) in list" :key="item.title"> <div - :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - {{item.title}}</div> + :class="['pro-step-name',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + {{item.name}}</div> <div class="pro-step-top"> <div - :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + :class="['circle',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> </div> - <div :class="['line',active > item.index ? 'finish-line' :'']" + <div :class="['line',active > index ? 'finish-line' :'']" v-if="index<list.length-1 ? true:false"></div> </div> <div class="desc"> <div class="desc-title">鐜妭鐢ㄦ椂:</div> - <div class="desc-content" v-if="active > index+1"> + <div class="desc-content" v-if="active > index"> <div class="desc-content-message">1111111</div> <div class="desc-content-endtime">22.09.06 16:40</div> </div> @@ -73,7 +73,10 @@ props:['handlePassVo'], created(){ console.log('process'); - console.log(this.handlePassVo); + const {handlePassVo:{workflowConfigSteps:mylist}} = this; + // console.log(this.handlePassVo.workflowConfigSteps[0].name); + console.log(mylist); + this.list = mylist; } } </script> @@ -103,6 +106,8 @@ } .my-pro-main { + margin-top: 30px; + margin-left: -50px; .pro-step-ver { display: flex; align-items: flex-start; @@ -117,8 +122,10 @@ align-items: center; } .pro-step-name { + width: 120px; line-height: 24px; margin-right: 10px; + text-align: right; } .desc{ flex: 1; diff --git a/src/components/scene/index.vue b/src/components/scene/index.vue index d77a8b6..8f60734 100644 --- a/src/components/scene/index.vue +++ b/src/components/scene/index.vue @@ -9,93 +9,93 @@ </div> </div> <div class="scene-item" v-if="active === 1"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form ref="arrivalSituation" label-position="right" label-width="120px" :model="arrivalSituation"> <el-form-item label="鍒拌揪鏃堕棿:"> - <el-input v-model="sceneObj.name"></el-input> + <el-input v-model="arrivalSituation.arrivalTime"></el-input> </el-form-item> <el-form-item label="鍒拌揪鍦板潃:"> - <el-input v-model="sceneObj.region"></el-input> + <el-input v-model="arrivalSituation.arrivalAddress"></el-input> </el-form-item> <el-form-item label="鐜板満鎯呭喌璇存槑:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="arrivalSituation.situationExplain"></el-input> </el-form-item> <el-form-item label="淇¤鍥炲璇存槑:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="arrivalSituation.replyExplain"></el-input> </el-form-item> <el-form-item label="鐜板満鎯呭喌鐓х墖:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="arrivalSituation.situationPic"></el-input> </el-form-item> </el-form> </div> <div class="scene-item" v-if="active === 2"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form ref="investigation" label-position="right" label-width="120px" :model="investigation"> <el-form-item label="鎵垮姙闃熷憳:"> - <el-input v-model="sceneObj.name"></el-input> + <el-input v-model="investigation.name"></el-input> </el-form-item> <el-form-item label="鍗忓姙闃熷憳:"> - <el-input v-model="sceneObj.region"></el-input> + <el-input v-model="investigation.region"></el-input> </el-form-item> <el-form-item label="鏃堕棿:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鍦板潃:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="妗堢敱:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="褰撲簨浜轰俊鎭�:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鎯呭喌鎻忚堪:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鐓х墖闄勪欢:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="绫诲瀷:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="褰撲簨浜哄鍚�:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鎵嬫満鍙风爜:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="璇佷欢绫诲瀷:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="璇佷欢鍙风爜:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鏂囧寲绋嬪害:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鑱屼笟:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鍚嶆棌:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="绫嶈疮:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鐜颁綇鍧�:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鎴风睄鎵�鍦ㄥ湴:"> - <el-input v-model="sceneObj.type"></el-input> + <el-input v-model="investigation.type"></el-input> </el-form-item> </el-form> <el-button>杩斿洖</el-button> </div> <div class="scene-item" v-if="active === 3"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form ref="writ" label-position="right" label-width="120px" :model="writ"> <el-form-item label="绫诲瀷:"> - <el-input v-model="sceneObj.name"></el-input> + <el-input v-model="writ.name"></el-input> </el-form-item> </el-form> </div> @@ -120,10 +120,17 @@ label: '鍛婄煡杩濇硶' } ], - sceneObj: {}, + arrivalSituation: {}, + investigation:{}, + writ:{} } }, + props:['currentSitVo'], + created(){ + const {currentSitVo:{arrivalSituation:mylist}} = this; + this.arrivalSituation = mylist; + }, methods: { changeActive(idx) { this.active = idx; diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue index 3480c30..26502aa 100644 --- a/src/components/solveProblem/index.vue +++ b/src/components/solveProblem/index.vue @@ -1,19 +1,19 @@ <template> <div class="sovle-problem"> <div class="sovle-header"> - <div class="sovle-limit">澶勭悊鏃堕檺:1宸ヤ綔鏃�</div> + <div class="sovle-limit">澶勭悊鏃堕檺:{{}}</div> <div class="sovle-limit">鍓╀綑鏃堕棿:23灏忔椂</div> </div> <div class="sovle-timeline"> <el-timeline> - <el-timeline-item :color="mycolor"> + <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id"> <div class="title"> - <div class="title-left">銆愭淳閬c�戞淳閬e憳:xxx</div> - <div class="title-right">22.09.06 16:40</div> + <div class="title-left">銆恵{item.name}}銆憑{item.name === '娲鹃仯' ? '娲鹃仯鍛�':item.name === '澶勭悊' ? '澶勭悊浜�':'璇勫畾浜�'}}:{{item.disposeRecord.handleId}}</div> + <div class="title-right">{{item.disposeRecord.endTime}}</div> </div> - <div class="message">銆愭淳閬f剰瑙併�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> - <el-timeline-item :color="mycolor"> + <div class="message">銆恵{item.name === '娲鹃仯' ? '娲鹃仯鎰忚':item.name === '澶勭悊' ? '澶勭悊缁撴灉':'璇勫畾缁撴灉'}}銆戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> + </el-timeline-item> + <!-- <el-timeline-item :color="mycolor"> <div class="title"> <div class="title-left">銆愬鐞嗐�戝鐞嗕汉:xxx</div> <div class="title-right">22.09.06 16:40</div> @@ -26,7 +26,7 @@ <div class="title-right">22.09.06 16:40</div> </div> <div class="message">銆愯瘎瀹氱粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> + </el-timeline-item> --> </el-timeline> </div> </div> @@ -35,9 +35,16 @@ export default{ data(){ return{ - mycolor:'#02a7f0' + mycolor:'#02a7f0', + list:[] } - } + }, + props:['problemProVo'], + created(){ + const {problemProVo:{workflowConfigSteps:mylist}} = this; + console.log(mylist); + this.list = mylist; + } } </script> <style lang="scss" scoped> diff --git a/src/main.js b/src/main.js index ee2faad..cd55ca2 100644 --- a/src/main.js +++ b/src/main.js @@ -22,6 +22,7 @@ next(); } else { router.push("/login"); + next(); } } else { next(); diff --git a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue index b609337..1f6c235 100644 --- a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue +++ b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue @@ -2,10 +2,13 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="things" label-position="right"> + <el-form ref="user" :rules="createIll" label-width="140px" autoComplete="on" :model="things" label-position="right"> <!-- 杩濊浜嬮」缂栧彿 --> - <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> + <!-- <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> + </el-form-item> --> + <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"> @@ -23,22 +26,22 @@ </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" + <!-- 璇疯緭鍏ユ柊澧炵瓑绾� --> + <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="type"> - <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" - :disabled="!updateFlag" disabled></el-input> + <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> </el-form-item> - <el-form-item v-if="updateFlag"> + <el-form-item> <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 + <!-- @click.native.prevent="handleSubmit" --> + <el-button type="primary" class="btn submit" >纭 </el-button> </div> </el-form-item> @@ -51,54 +54,58 @@ <script> export default { data() { + const checkName = (rule,value,callback)=>{ + if(value){ + callback(); + }else{ + callback(new Error('鏂板杩濆缓绫诲悕涓嶈兘涓虹┖')); + } + } + const checkLevel = (rule,value,callback)=>{ + if(value){ + callback(); + }else{ + callback(new Error('鏂板杩濆缓绛夌骇涓嶈兘涓虹┖')); + } + } return { things: { number: 0, type: '', + name:'', typeFirst: '', typeSecond: '', typeThird: '', + level:'', }, roleList: [], typeThirdList:[], typeSecondList:[], - typeFirstList:[], + eventLevelList:[], + createIll:{ + name:[ + { required:true,trigger:'blur',validator:checkName } + ], + level:[ + { + required:true,trigger:'change',validator:checkLevel + } + ] + } } }, created() { - console.log(this.userInfo); - this.things = JSON.parse(JSON.stringify(this.userInfo)); // 鑾峰彇鎵�灞炵被鍨嬪垪琛� this.getTypeThird(); this.getTypeSecond(); - this.getTypeFirst(); + this.getEventLevel(); }, methods: { - // handleUser() { - // this.$refs.user.validate((valid) => { - // if (valid) { - // const { role } = this; - // console.log(role); - // this.$axios.post('/sccg/role/update/' + role.id, { - // id: role.id, - // status: role.status, - // description: role.description, - // name: role.name, - // sort: 0 - // }).then(res => { - // this.$emit('changeDialog', { dialogUpdate: false }); - // this.getUserList(); - // }) - // } else { - // return false; - // } - // }) - // }, // 鏌ヨ鎵�灞炵被鍨� getTypeThird() { this.$axios({ method: 'get', - url: "sccg/violations/query/type_first", + url: "sccg/illegal_building/query/type_first", }) .then(res => { this.typeThirdList = res.data; @@ -108,22 +115,23 @@ getTypeSecond(){ this.$axios({ method: 'get', - url: "sccg/violations/query/type_second", + url: "sccg/illegal_building/query/type_second", }) .then(res => { this.typeSecondList = res.data; }) }, - // 鏌ヨ鎵�灞炲皬绫� - getTypeFirst(){ + // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + getEventLevel() { this.$axios({ method: 'get', - url: "sccg/violations/query/type_third", + url: 'sccg/violations/query/event_type' }) .then(res => { - this.typeFirstList = res.data; + console.log(res); + this.eventLevelList = res.data; }) - } + }, }, props: ['getUserList'] } diff --git a/src/views/operate/baseSetting/illegalBuild/index.vue b/src/views/operate/baseSetting/illegalBuild/index.vue index b1efb3c..11b5b3a 100644 --- a/src/views/operate/baseSetting/illegalBuild/index.vue +++ b/src/views/operate/baseSetting/illegalBuild/index.vue @@ -13,11 +13,11 @@ </div> </div> <div class="addUser"> - <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button> - <!-- <el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate" + <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板杩濆缓</el-button> + <el-dialog :visible.sync="dialogCreate" title="鏂板杩濆缓" width="45%" v-if="dialogCreate" :before-close="handleClose"> <createUser :refresh="getUserList" /> - </el-dialog> --> + </el-dialog> </div> </div> </header> diff --git a/src/views/operate/baseSetting/violation/createUser/index.vue b/src/views/operate/baseSetting/violation/createUser/index.vue index b609337..c53e2d0 100644 --- a/src/views/operate/baseSetting/violation/createUser/index.vue +++ b/src/views/operate/baseSetting/violation/createUser/index.vue @@ -2,10 +2,14 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="things" label-position="right"> + <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-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> + </el-form-item> --> + <!-- 鏂板鐨勭被鍨嬫垨澶х被鎴栧皬绫� --> + <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"> @@ -23,27 +27,33 @@ </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-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> --> <!-- 妗堢敱 --> <el-form-item class="optionItem" label="妗堢敱:" prop="type"> - <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" - :disabled="!updateFlag" disabled></el-input> + <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> </el-form-item> - <el-form-item v-if="updateFlag"> + <el-form-item> <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 + <el-button type="primary" class="btn submit" @click.native.prevent="handleSubmit">纭 </el-button> </div> </el-form-item> </el-form> - </div> </main> </div> @@ -51,49 +61,57 @@ <script> export default { data() { + const checkName = (rule,value,callback)=>{ + if(value){ + callback(); + }else{ + callback(new Error('鏂板杩濊绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkLevel = (rule,value,callback)=>{ + if(value){ + callback(); + }else{ + callback(new Error('鏂板杩濊绛夌骇涓嶈兘涓虹┖')); + } + } return { things: { - number: 0, - type: '', + // number: 0, + // type: '', + name:'', typeFirst: '', typeSecond: '', typeThird: '', + level:'', + }, + createThings:{ + name:[ + { + required:true,trigger:'blur',validator:checkName + } + ], + level:[ + { + required:true,trigger:'change',validator:checkLevel + } + ] }, roleList: [], typeThirdList:[], typeSecondList:[], - typeFirstList:[], + // typeFirstList:[], + eventLevelList:[] } }, created() { - console.log(this.userInfo); - this.things = JSON.parse(JSON.stringify(this.userInfo)); // 鑾峰彇鎵�灞炵被鍨嬪垪琛� this.getTypeThird(); this.getTypeSecond(); - this.getTypeFirst(); + // this.getTypeFirst(); + this.getEventLevel(); }, methods: { - // handleUser() { - // this.$refs.user.validate((valid) => { - // if (valid) { - // const { role } = this; - // console.log(role); - // this.$axios.post('/sccg/role/update/' + role.id, { - // id: role.id, - // status: role.status, - // description: role.description, - // name: role.name, - // sort: 0 - // }).then(res => { - // this.$emit('changeDialog', { dialogUpdate: false }); - // this.getUserList(); - // }) - // } else { - // return false; - // } - // }) - // }, // 鏌ヨ鎵�灞炵被鍨� getTypeThird() { this.$axios({ @@ -115,14 +133,29 @@ }) }, // 鏌ヨ鎵�灞炲皬绫� - getTypeFirst(){ + // getTypeFirst(){ + // this.$axios({ + // method: 'get', + // url: "sccg/violations/query/type_third", + // }) + // .then(res => { + // this.typeFirstList = res.data; + // }) + // }, + // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + getEventLevel() { this.$axios({ method: 'get', - url: "sccg/violations/query/type_third", + url: 'sccg/violations/query/event_type' }) .then(res => { - this.typeFirstList = res.data; + console.log(res); + this.eventLevelList = res.data; }) + }, + // 鎻愪氦鏂板杩濊绫诲瀷 + handleSubmit(){ + console.log(this.things); } }, props: ['getUserList'] @@ -181,6 +214,7 @@ &::v-deep .el-textarea__inner { background-color: #09152f; border: 1px solid #17324c; + font-size: 10px; } ::v-deep .el-form-item__label { @@ -190,6 +224,7 @@ ::v-deep .el-input__inner { background-color: #09152f; border: 1px solid #17324c; + font-size: 10px; } } </style> \ No newline at end of file diff --git a/src/views/operate/baseSetting/violation/index.vue b/src/views/operate/baseSetting/violation/index.vue index e8a0bce..535869b 100644 --- a/src/views/operate/baseSetting/violation/index.vue +++ b/src/views/operate/baseSetting/violation/index.vue @@ -13,11 +13,11 @@ </div> </div> <div class="addUser"> - <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button> - <!-- <el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate" + <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板杩濊绫诲瀷</el-button> + <el-dialog :visible.sync="dialogCreate" title="鏂板杩濊绫诲瀷" width="45%" v-if="dialogCreate" :before-close="handleClose"> <createUser :refresh="getUserList" /> - </el-dialog> --> + </el-dialog> </div> </div> </header> diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 60a5310..aea627e 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -4,7 +4,13 @@ <div class="headerContent"> <div class="search"> <span>绛涢�夋潯浠�:</span> - <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + <div class="option"> + <el-select v-model="mystatus" placeholder="杩濊" @change="setMystatus"> + <el-option v-for="item in typeList" :key="item.label" :label="item.name" + :value="item.value"> + </el-option> + </el-select> + </div> <div class="findBtn"> <el-button type="primary" @click="getUserList">鏌ヨ</el-button> </div> @@ -24,9 +30,9 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + <el-table-column prop="id" label="浜嬩欢缂栧彿" min-width="10"> <template slot-scope="scope"> - <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> + <el-link @click="JumpView(scope.row)">{{scope.row.id}}</el-link> </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> @@ -46,25 +52,30 @@ <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> - <template> + <template slot-scope="scope"> <div class="btn"> <span>璋冨害</span> <span class="line">|</span> - <span @click="opernDialog">涓婁紶澶勭疆缁撴灉</span> + <span @click="opernDialog(scope.row)">涓婁紶澶勭疆缁撴灉</span> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="80%" title="鍩虹淇℃伅(浜哄伐)" + <!-- <el-dialog :visible.sync="dialogUpdate" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogUpdate" :before-close="handleClose"> <updateUser :info=info /> + </el-dialog> --> + <!-- 璇︽儏椤靛睍绀� --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + :before-close="handleClose"> + <MyDetail :info=info></MyDetail> </el-dialog> <!-- 涓婁紶椤甸潰 --> - <el-dialog :visible.sync="dialogUpload" width="45%" title="涓婁紶澶勭疆缁撴灉" + <el-dialog :visible.sync="dialogUpload" width="60%" title="涓婁紶澶勭疆缁撴灉" v-if="dialogUpload" :before-close="handleClose"> - <!-- <uploadVio></uploadVio>杩濊 --> - <uploadIll></uploadIll> + <uploadVio v-if="mystatus === 0"></uploadVio> + <uploadIll v-else></uploadIll> </el-dialog> <!-- tools --> <div class="tools"> @@ -95,19 +106,22 @@ </div> </template> <script> -import updateUser from "./updateUser" +// import updateUser from "./updateUser" import uploadVio from './updateUser/uploadResult/vio' import uploadIll from "./updateUser/uploadResult/ill" +import MyDetail from '@/components/detail' export default { components: { - updateUser,uploadVio,uploadIll + // updateUser, + uploadVio,uploadIll,MyDetail }, data() { return { tableData: [], context: "", dialogUpload:false, - dialogUpdate: false, + // dialogUpdate: false, + dialogView:false, info: {}, totalNum: null, pageSize: 10, @@ -115,6 +129,7 @@ all: false, unsame: false, myIdx: 0, + preMyIdx:0, options: [ { value: 0, @@ -147,42 +162,12 @@ checked: false, }, ], - tagList: [ - { - name: '寰呭鐞�', - value: 7, - checked: true - }, - { - name: '宸蹭笂鎶�', - value: 1, - checked: false - }, - { - name: '宸茶皟搴�', - value: 3, - checked: false - }, - { - name: '鍦ㄥ涔�', - value: 4, - checked: false - }, - { - name: '鏆備笉澶勭悊', - value: 4, - checked: false - }, - ], statusArr:[], + mystatus:0, } }, created() { - this.tagList.forEach(item => { - if (item.checked) { - this.statusArr[0] = item.value; - } - }) + this.statusArr[0] = 6; this.typeList.forEach(item => { if (item.checked) { this.statusArr[1] = item.value; @@ -191,6 +176,13 @@ this.getUserList(); }, methods: { + // 椤堕儴涓嬫媺妗� + setMystatus(value) { + console.log(value); + this.statusArr[1] = value; + this.changeTypeChecked(value - 1); + this.getUserList(); + }, // 鎵归噺鍒犻櫎 mulDelete(idArr){ console.log(idArr); @@ -206,25 +198,27 @@ }) }, // 鎵ц涓嬫媺妗嗘搷浣� - selectChange(val) { - let ids = []; - this.tempList.forEach(item => { - ids.push(item.number); - }) - if (ids.length !== 0) { - if (val === 3) { - this.mulDelete(ids); + selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.mulDelete(this.tempList); } } else { + this.myIdx = this.preMyIdx; this.$message({ type: 'warning', message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', }) } }, - // 鐩戝惉琛ㄦ牸閫変腑鐘舵�� + // 鐩戝惉琛ㄦ牸 tableChange(list) { - this.tempList = list; + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.code); + }) if (list.length === this.tableData.length) { this.all = true; } else { @@ -269,7 +263,7 @@ console.log(statusArr); this.$axios({ method: 'get', - url: `sccg/base-case/query/${statusArr[1]}?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2` + url: `sccg/base_case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` }).then(res => { this.totalNum = res.data.total; this.tableData = res.data.records; @@ -285,6 +279,9 @@ item.checked = false; } }) + this.mystatus = idx + 1; + this.statusArr[1] = this.typeList[idx].value; + this.getUserList(); }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { @@ -314,27 +311,28 @@ this.$confirm('纭鍏抽棴锛�') .then(_ => { this.dialogUpload = false; - this.dialogUpdate = false; + // this.dialogUpdate = false; done(); }) .catch(_ => { }); }, async JumpView(data){ await this.getEventInfo(data.code); - this.dialogView = true; }, // 鑾峰彇妗堜欢淇℃伅 getEventInfo(code){ this.$axios({ method:'get', - url:`sccg/base-case/baseCaseDetail/${code}` + url:`sccg/base_case/baseCaseDetail/${code}` }) .then(res=>{ this.info = res.data; + this.dialogView = true; }) }, - opernDialog(){ + opernDialog(data){ this.dialogUpload = true; + console.log(data); } } } @@ -396,7 +394,10 @@ } } } - + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } main { background-color: #09152f; margin-top: 20px; diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue deleted file mode 100644 index 7690f8b..0000000 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue +++ /dev/null @@ -1,93 +0,0 @@ -<template> - <div class="file-picture"> - <div class="file-tell"> - <div class="tell-title">涓婃姤</div> - <div class="tell-show"> - <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" - :headers="getToken()" multiple :limit="50"> - <div class="my-demo"> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - <div class="tip"> - <div>銆愬浘鐗囩被鍨嬨�戜笂鎶�</div> - <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> - </div> - </div> - </el-upload> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - </div> - </div> - <div class="file-deal"> - <div class="tell-title">澶勭疆</div> - <div class="tell-show"> - <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" - :headers="getToken()" multiple :limit="50"> - <div class="my-demo"> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - <div class="tip"> - <div>銆愬浘鐗囩被鍨嬨�戝缃�</div> - <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> - </div> - </div> - </el-upload> - <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" - alt=""> - </div> - </div> - </div> -</template> -<script> -export default { - data() { - return { - - } - }, - methods: { - // 鑾峰彇token - getToken() { - const token = sessionStorage.getItem('token'); - const tokenHead = sessionStorage.getItem('tokenHead'); - if (token && tokenHead) { - return { Authorization: tokenHead + token }; - } - } - } -} -</script> -<style lang="scss" scoped> -.file-picture { - padding-top: 50px; - - .file-tell,.file-deal { - .tell-title { - line-height: 40px; - } - - .tell-show { - display: flex; - - .upload-demo { - height: 159px; - - .my-demo { - position: relative; - height: 100%; - } - - .tip { - div { - line-height: 20px; - } - - text-align: left; - position: absolute; - bottom: 80px; - } - } - } - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue deleted file mode 100644 index 8221ccc..0000000 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue +++ /dev/null @@ -1,144 +0,0 @@ -<template> - <div class="my-process"> - <div class="my-pro-header"> - <div class="pro-step" v-for="(item,index) in list" :key="item.title"> - <div class="pro-step-top"> - <div - :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - </div> - <div :class="['line',active > item.index ? 'finish-line' :'']" - v-if="index<list.length-1 ? true:false"></div> - </div> - <div - :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - {{item.title}}</div> - </div> - </div> - <div class="my-pro-main"> - <div class="pro-step-ver" v-for="(item,index) in list" :key="item.title"> - <div - :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - {{item.title}}</div> - <div class="pro-step-top"> - <div - :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> - </div> - <div :class="['line',active > item.index ? 'finish-line' :'']" - v-if="index<list.length-1 ? true:false"></div> - </div> - <div class="desc"> - <div class="desc-title">鐜妭鐢ㄦ椂:</div> - <div class="desc-content" v-if="active > index+1"> - <div class="desc-content-message">1111111</div> - <div class="desc-content-endtime">22.09.06 16:40</div> - </div> - </div> - </div> - </div> - </div> -</template> -<script> -export default { - data() { - return { - active: 2, - list: [ - { - title: '涓婃姤', - status: 'success', - }, - { - title: '绔嬫', - status: 'process', - }, - { - title: '娲鹃仯', - status: 'process', - }, - { - title: '澶勭疆', - status: 'process', - }, - { - title: '鏍告煡', - status: 'process', - }, - { - title: '缁撴', - status: 'process', - } - ] - } - } -} -</script> -<style lang="scss" scoped> -.my-process { - padding-top: 50px; - .my-pro-header { - display: flex; - - .pro-step { - flex: 1; - - .pro-step-top { - display: flex; - align-items: center; - - .line { - flex: 1; - height: 2px; - } - } - - .pro-step-name { - line-height: 20px; - } - } - } - - .my-pro-main { - .pro-step-ver { - display: flex; - align-items: flex-start; - .line { - width: 2px; - height: 100px; - } - } - .pro-step-top{ - display: flex; - flex-direction: column; - align-items: center; - } - .pro-step-name { - line-height: 24px; - margin-right: 10px; - } - .desc{ - flex: 1; - line-height: 24px; - margin-left: 10px; - .desc-content-endtime{ - display: flex; - justify-content: flex-end; - } - } - } - - .circle { - width: 24px; - height: 24px; - border-radius: 50%; - background-color: #fff; - } - - .line { - background-color: #c0c4cc; - } - - .finish-line { - background-color: #4b9bb7; - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue deleted file mode 100644 index d77a8b6..0000000 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue +++ /dev/null @@ -1,182 +0,0 @@ -<template> - <div class="scene"> - <div class="nav"> - <div class="nav-item" v-for="o in list" :key="o.index" @click="changeActive(o.index)"> - <div class="outer" > - <div :class="['inner',active === o.index ? 'inner-active' : '']"></div> - </div> - <div class="innet-title">{{o.label}}</div> - </div> - </div> - <div class="scene-item" v-if="active === 1"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> - <el-form-item label="鍒拌揪鏃堕棿:"> - <el-input v-model="sceneObj.name"></el-input> - </el-form-item> - <el-form-item label="鍒拌揪鍦板潃:"> - <el-input v-model="sceneObj.region"></el-input> - </el-form-item> - <el-form-item label="鐜板満鎯呭喌璇存槑:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="淇¤鍥炲璇存槑:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鐜板満鎯呭喌鐓х墖:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - </el-form> - </div> - <div class="scene-item" v-if="active === 2"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> - <el-form-item label="鎵垮姙闃熷憳:"> - <el-input v-model="sceneObj.name"></el-input> - </el-form-item> - <el-form-item label="鍗忓姙闃熷憳:"> - <el-input v-model="sceneObj.region"></el-input> - </el-form-item> - <el-form-item label="鏃堕棿:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鍦板潃:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="妗堢敱:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="褰撲簨浜轰俊鎭�:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鎯呭喌鎻忚堪:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鐓х墖闄勪欢:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="绫诲瀷:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="褰撲簨浜哄鍚�:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鎵嬫満鍙风爜:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="璇佷欢绫诲瀷:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="璇佷欢鍙风爜:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鏂囧寲绋嬪害:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鑱屼笟:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鍚嶆棌:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="绫嶈疮:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鐜颁綇鍧�:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - <el-form-item label="鎴风睄鎵�鍦ㄥ湴:"> - <el-input v-model="sceneObj.type"></el-input> - </el-form-item> - </el-form> - <el-button>杩斿洖</el-button> - </div> - <div class="scene-item" v-if="active === 3"> - <el-form label-position="right" label-width="120px" :model="sceneObj"> - <el-form-item label="绫诲瀷:"> - <el-input v-model="sceneObj.name"></el-input> - </el-form-item> - </el-form> - </div> - </div> -</template> -<script> -export default { - data() { - return { - active: 1, - list: [ - { - index: 1, - label: '鍒拌揪鐜板満鎯呭喌' - }, - { - index: 2, - label: '璋冩煡鍙栬瘉' - }, - { - index: 3, - label: '鍛婄煡杩濇硶' - } - ], - sceneObj: {}, - - } - }, - methods: { - changeActive(idx) { - this.active = idx; - } - } -} -</script> -<style lang="scss" scoped> -.scene { - .nav { - padding: 20px 100px; - display: flex; - justify-content: space-between; - .nav-item{ - display: flex; - flex-direction: column; - align-items: center; - } - .outer { - width: 50px; - height: 50px; - border-radius: 50%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background-color: #0101ff; - } - - .inner { - background-color: #0101ff; - border-radius: 50%; - width: 30px; - height: 30px; - } - - .innet-title { - line-height: 20px; - padding-top: 20px; - } - - .inner-active { - background-color: #fff; - } - } - - .scene-item { - padding: 20px 100px; - - ::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue deleted file mode 100644 index 3480c30..0000000 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue +++ /dev/null @@ -1,67 +0,0 @@ -<template> - <div class="sovle-problem"> - <div class="sovle-header"> - <div class="sovle-limit">澶勭悊鏃堕檺:1宸ヤ綔鏃�</div> - <div class="sovle-limit">鍓╀綑鏃堕棿:23灏忔椂</div> - </div> - <div class="sovle-timeline"> - <el-timeline> - <el-timeline-item :color="mycolor"> - <div class="title"> - <div class="title-left">銆愭淳閬c�戞淳閬e憳:xxx</div> - <div class="title-right">22.09.06 16:40</div> - </div> - <div class="message">銆愭淳閬f剰瑙併�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> - <el-timeline-item :color="mycolor"> - <div class="title"> - <div class="title-left">銆愬鐞嗐�戝鐞嗕汉:xxx</div> - <div class="title-right">22.09.06 16:40</div> - </div> - <div class="message">銆愬鐞嗙粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> - <el-timeline-item :color="mycolor"> - <div class="title"> - <div class="title-left">銆愯瘎瀹氥�戣瘎瀹氫汉:xxx</div> - <div class="title-right">22.09.06 16:40</div> - </div> - <div class="message">銆愯瘎瀹氱粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> - </el-timeline> - </div> - </div> -</template> -<script> - export default{ - data(){ - return{ - mycolor:'#02a7f0' - } - } - } -</script> -<style lang="scss" scoped> - .sovle-problem{ - .sovle-header{ - padding: 0 200px; - display: flex; - line-height: 60px; - justify-content: space-between; - } - .title{ - display: flex; - justify-content: space-between; - line-height: 40px; - padding: 0 20px; - color: #4b9bb7; - font-size: 16px; - } - .message{ - padding: 20px; - background-color: #070f22; - color: #4b9bb7; - line-height: 20px; - font-size: 10px; - } - } -</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue new file mode 100644 index 0000000..52f1ccc --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue @@ -0,0 +1,179 @@ +<template> + <div class="arrive"> + <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> + <div class="arrive-form"> + <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> + <!-- 鍒拌揪鏃堕棿 --> + <el-form-item label="鍒拌揪鏃堕棿:" prop="arrivalTime"> + <el-date-picker v-model="arrive.arrivalTime" type="datetime" placeholder="閫夋嫨鍒拌揪鏃堕棿"> + </el-date-picker> + </el-form-item> + <!-- 鍒拌揪鍦板潃 --> + <el-form-item label="鍒拌揪鍦板潃:" prop="arrivalAddress"> + <el-input v-model="arrive.arrivalAddress" placeholder="璇疯緭鍏ュ湴鍧�"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌璇存槑 --> + <el-form-item label="鐜板満鎯呭喌璇存槑:" prop="situationExplain"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit + v-model="arrive.situationExplain" placeholder="璇疯緭鍏ユ儏鍐佃鏄�,闄愬埗200瀛椾互鍐�"></el-input> + </el-form-item> + <!-- 淇¤鍥炲璇存槑 --> + <el-form-item label="淇¤鍥炲璇存槑:" prop="replyExplain"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit + v-model="arrive.replyExplain" placeholder="璇疯緭鍏ュ洖璁胯鏄�,闄愬埗200瀛椾互鍐�"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌鐓х墖 --> + <el-form-item label="鐜板満鎯呭喌鐓х墖:" prop="situationPic"> + <div class="upImg"> + <div class="img-list"> + <img :src="item" alt="" v-for="(item,index) in arrive.situationPic" :key="index"> + </div> + <div class="upload" v-if="arrive.situationPic.length<4"> + <el-upload :file-list="fileList" class="upload-demo" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" + :limit="4" :on-success="handleSuccess" :headers="getToken()"> + <i class="el-icon-plus"></i> + </el-upload> + </div> + <div class="tip">{{arrive.situationPic.length}} / 4</div> + </div> + </el-form-item> + </el-form> + </div> + </div> +</template> +<script> +export default { + data() { + const checkTime = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鍒拌揪鏃堕棿涓嶈兘涓虹┖')); + } + } + const checkAddress = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鍒拌揪鍦板潃涓嶈兘涓虹┖')); + } + } + const checkSit = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鐜板満鎯呭喌璇存槑涓嶈兘涓虹┖')); + } + } + const checkReplay = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('淇¤鍥炲璇存槑涓嶈兘涓虹┖')); + } + } + const checkSitPic = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(); + } + } + return { + arrive: { + situationPic: [], + }, + arriveRules: { + arrivalTime: [ + { trigger: 'blur', validator: checkTime } + ], + arrivalAddress: [ + { trigger: 'blur', validator: checkAddress } + ], + situationExplain: [ + { trigger: 'blur', validator: checkSit } + ], + replyExplain: [ + { trigger: 'blur', validator: checkReplay } + ], + situationPic: [ + { trigger: 'change', validator: checkSitPic } + ], + }, + fileList: [], + } + }, + methods: { + handleSuccess(res, file, filelist) { + const baseUrl = 'http://140.143.152.226:8410/'; + console.log(res); + if (this.arrive.situationPic.length < 4) { + this.arrive.situationPic.push(baseUrl + res.data.url1) + } + }, + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token } + } + }, + } +} +</script> +<style lang="scss" scoped> +.arrive-title{ + line-height: 60px; + font-weight: 650; + font-size: 20px; + width: 160px; + padding-right: 12px; + text-align: right; + color: #4b9bb7; +} + +.upImg { + display: flex; + + .tip { + position: absolute; + bottom: 0; + right: 0; + } + + .img-list { + height: 80px; + position: relative; + + img { + width: 60px; + height: 60px; + } + } +} + +.upload { + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + background-color: #fbfdff; + border-radius: 4px; +} + +::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; +} + +::v-deep .el-input__count { + background-color: #09152f; +} + +::v-deep .el-form-item__label { + color: #4b9bb7; +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue new file mode 100644 index 0000000..a4903eb --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue @@ -0,0 +1,96 @@ +<template> + <div class="book"> + <div class="book-title">鏂囩涔︾被</div> + <div class="book-form"> + <el-form ref="bookForm" label-width="160px" :model="book" :rules="bookRules" autoComplete="on"> + <!-- 鏂囦功绉嶇被 --> + <el-form-item label="鏂囦功绉嶇被:" prop="kind"> + <el-input v-model="book.kind"></el-input> + </el-form-item> + <!-- 鏂囦功缂栧彿 --> + <el-form-item label="鏂囦功缂栧彿:" prop="id"> + <el-input v-model="book.id"></el-input> + </el-form-item> + <!-- 杩濇硶绫诲瀷 --> + <el-form-item label="杩濇硶绫诲瀷:" prop="vioKind"> + <el-input v-model="book.vioKind"></el-input> + </el-form-item> + <!-- 鏂囦功鍙戞斁鏃堕棿 --> + <el-form-item label="鏂囦功鍙戞斁鏃堕棿:" prop="giveTime"> + <el-input v-model="book.giveTime"></el-input> + </el-form-item> + <!-- 鏂囦功闄愬畾鏃堕棿 --> + <el-form-item label="鏂囦功闄愬畾鏃堕棿" prop="limitTime"> + <el-input v-model="book.limitTime"></el-input> + </el-form-item> + <!-- 鏂囦功鍙戞斁鍐呭 --> + <el-form-item label="鏂囦功鍙戞斁鍐呭:" prop="content"> + <el-input v-model="book.content"></el-input> + </el-form-item> + <!-- 瀹為檯鏁存敼鏃堕棿 --> + <el-form-item label="瀹為檯鏁存敼鏃堕棿:" prop="updateTime"> + <el-input v-model="book.updateTime"></el-input> + </el-form-item> + <!-- 鏁存敼鎯呭喌 --> + <el-form-item label="鏁存敼鎯呭喌:" prop="condition"> + <el-input v-model="book.condition"></el-input> + </el-form-item> + <!-- 澶囨敞 --> + <el-form-item label="澶囨敞:" prop="note"> + <el-input v-model="book.note"></el-input> + </el-form-item> + <!-- 鏂囦功鐓х墖涓婁紶 --> + <el-form-item label="鏂囦功鐓х墖涓婁紶:" prop="bookPhoto"> + <el-input v-model="book.bookPhoto"></el-input> + </el-form-item> + <!-- 鏁存敼鍓嶇収鐗� --> + <el-form-item label="鏁存敼鍓嶇収鐗�:" prop="beforeUpdate"> + <el-input v-model="book.beforeUpdate"></el-input> + </el-form-item> + <!-- 鏁存敼鍚庣収鐗� --> + <el-form-item label="鏁存敼鍚庣収鐗�:" prop="afterUpdate"> + <el-input v-model="book.afterUpdate"></el-input> + </el-form-item> + <!-- 鍏朵粬鐓х墖 --> + <el-form-item label="鍏朵粬:" prop="other"> + <el-input v-model="book.other"></el-input> + </el-form-item> + </el-form> + </div> + </div> +</template> +<script> + export default{ + data(){ + return{ + book:{}, + bookRules:{ + + } + } + } + } +</script> +<style lang="scss" scoped> +.book-title{ + line-height: 60px; + font-weight: 650; + font-size: 20px; + width: 160px; + padding-right: 12px; + text-align: right; + color: #4b9bb7; +} +::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; +} + +::v-deep .el-input__count { + background-color: #09152f; +} + +::v-deep .el-form-item__label { + color: #4b9bb7; +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue new file mode 100644 index 0000000..c46a150 --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue @@ -0,0 +1,276 @@ +<template> + <div class="evidence"> + <div class="evidence-title">璋冩煡鍙栬瘉</div> + <div class="evidence-form"> + <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on"> + <!-- 鎵垮姙闃熷憳 --> + <el-form-item label="鎵垮姙闃熷憳:" prop="undertaker"> + <el-input v-model="evidence.undertaker" placeholder="璇疯緭鍏ュ鍚�"></el-input> + </el-form-item> + <!-- 鍗忓姙闃熷憳 --> + <el-form-item label="鍗忓姙闃熷憳:" prop="assistant"> + <el-input v-model="evidence.assistant" placeholder="璇疯緭鍏ュ鍚�"></el-input> + </el-form-item> + <!-- 鏃堕棿 --> + <el-form-item label="鏃堕棿:" prop="investigationTime"> + <el-date-picker v-model="evidence.investigationTime" type="datetime" placeholder="閫夋嫨鏃堕棿"> + </el-date-picker> + </el-form-item> + <!-- 鍦板潃 --> + <el-form-item label="鍦板潃:" prop="address"> + <el-input v-model="evidence.address" placeholder="璇疯緭鍏ュ湴鍧�"></el-input> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item label="妗堢敱:" prop="caseAction"> + <el-input v-model="evidence.caseAction" placeholder="璇疯緭鍏ユ鐢�"></el-input> + </el-form-item> + <!-- 褰撲簨浜轰俊鎭� --> + <el-form-item label="褰撲簨浜轰俊鎭�"> + <el-input suffix-icon="el-icon-s-order" @focus="openDialog"></el-input> + </el-form-item> + <!-- 鎯呭喌鎻忚堪 --> + <el-form-item label="鎯呭喌鎻忚堪:" prop="description"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit + v-model="evidence.description" placeholder="璇疯緭鍏ユ儏鍐垫弿杩�,闄愬埗200瀛椾互鍐�"></el-input> + </el-form-item> + <!-- 鐓х墖闄勪欢 --> + <el-form-item label="鐓х墖闄勪欢:" prop="photo"> + <div class="upImg"> + <div class="img-list"> + <img :src="item" alt="" v-for="(item,index) in evidence.pic" :key="index"> + </div> + <div class="upload" v-if="evidence.pic.length<4"> + <el-upload :file-list="fileList" class="upload-demo" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" + :limit="4" :on-success="handleSuccess2" :headers="getToken()"> + <i class="el-icon-plus"></i> + </el-upload> + </div> + <div class="tip">{{evidence.pic.length}} / 4</div> + </div> + </el-form-item> + </el-form> + </div> + <div class="user-form"> + <el-dialog :visible.sync="dialogUser" width="80%" title="璋冨害淇℃伅" v-if="dialogUser" :before-close="handleClose" + append-to-body> + 11111 + </el-dialog> + </div> + </div> +</template> +<script> +export default { + data() { + const checkName = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎵垮姙闃熷憳鍚嶅瓧涓嶈兘涓虹┖')); + } + } + const checkName2 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鍗忓姙闃熷憳鍚嶅瓧涓嶈兘涓虹┖')); + } + } + const checkTime2 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('姝ゅ鏃堕棿涓嶈兘涓虹┖')); + } + } + const checkAddress2 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('姝ゅ鍦板潃涓嶈兘涓虹┖')); + } + } + const checkCase = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('妗堢敱涓嶈兘绌�')); + } + } + const checkDesc = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎯呭喌鎻忚堪涓嶈兘涓虹┖')); + } + } + const checkPic = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(); + } + } + return { + evidence: { + pic: [] + }, + evidenceRules: { + undertaker: [ + { + trigger: 'blur', validator: checkName + } + ], + assistant: [ + { + trigger: 'blur', validator: checkName2 + } + ], + investigationTime: [ + { + trigger: 'change', validator: checkTime2 + } + ], + address: [ + { + trigger: 'blur', validator: checkAddress2 + } + ], + caseAction: [ + { + trigger: 'blur', validator: checkCase + } + ], + description: [ + { + trigger: 'blur', validator: checkDesc + } + ], + pic: [ + { + trigger: 'blur', validator: checkPic + } + ], + }, + fileList: [], + user: {}, + dialogUser: false, + } + }, + methods: { + handleSuccess2(res, file, filelist) { + const baseUrl = 'http://140.143.152.226:8410/'; + console.log(res); + if (this.evidence.pic.length < 4) { + this.evidence.pic.push(baseUrl + res.data.url1) + } + }, + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token } + } + }, + // 鎵撳紑褰撲簨浜轰俊鎭~鍐欒〃 + openDialog(e) { + this.dialogUser = true + }, + // 鍏抽棴褰撲簨浜轰俊鎭� + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUser = false; + done(); + }) + .catch(_ => { }); + }, + } +} +</script> +<style lang="scss" scoped> +.evidence { + line-height: 60px; + + .evidence-title { + line-height: 60px; + font-weight: 650; + font-size: 20px; + width: 160px; + padding-right: 12px; + text-align: right; + color: #4b9bb7; + } +} + +.upImg { + display: flex; + + .tip { + position: absolute; + bottom: 0; + right: 0; + } + + .img-list { + height: 80px; + position: relative; + + img { + width: 60px; + height: 60px; + } + } +} + +.upload { + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + background-color: #fbfdff; + border-radius: 4px; +} + +::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; +} + +::v-deep .el-input__count { + background-color: #09152f; +} + +::v-deep .el-form-item__label { + color: #4b9bb7; +} + +::v-deep .el-dialog__header, +::v-deep .el-dialog__body { + background-color: #06122c; +} + +::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; +} + +::v-deep .el-dialog__title { + color: #4b9bb7; +} + +::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; +} + +::v-deep .el-dialog__body { + padding: 0; +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue index cb35357..14f56ae 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue @@ -1,200 +1,44 @@ <template> - <div class="vio"> - <div class="arrive"> - <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> - <div class="arrive-form"> - <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> - <!-- 鍒拌揪鏃堕棿 --> - <el-form-item label="鍒拌揪鏃堕棿" prop="arriveTime"> - <el-input v-model="arrive.arriveTime"></el-input> - </el-form-item> - <!-- 鍒拌揪鍦板潃 --> - <el-form-item label="鍒拌揪鍦板潃" prop="arriveAddr"> - <el-input v-model="arrive.arriveAddr"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌璇存槑 --> - <el-form-item label="鐜板満鎯呭喌璇存槑" prop="arriveCondition"> - <el-input type="textarea" v-model="arrive.arriveCondition"></el-input> - </el-form-item> - <!-- 淇¤鍥炲璇存槑 --> - <el-form-item label="淇¤鍥炲璇存槑" prop="arriveLetter"> - <el-input v-model="arrive.arriveLetter"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌鐓х墖 --> - <el-form-item label="鐜板満鎯呭喌鐓х墖" prop="arrivePhoto"> - <el-input v-model="arrive.arrivePhoto"></el-input> - </el-form-item> - </el-form> - </div> - </div> - <div class="evidence"> - <div class="evidence-title">璋冩煡鍙栬瘉</div> - <div class="evidence-form"> - <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" - autoComplete="on"> - <!-- 鏂囦功绉嶇被 --> - <el-form-item label="鏂囦功绉嶇被" prop="team"> - <el-input v-model="evidence.team"></el-input> - </el-form-item> - <!-- 鍗忓姙闃熷憳 --> - <el-form-item label="鍗忓姙闃熷憳" prop="helper"> - <el-input v-model="evidence.helper"></el-input> - </el-form-item> - <!-- 鏃堕棿 --> - <el-form-item label="鏃堕棿" prop="time"> - <el-input v-model="evidence.time"></el-input> - </el-form-item> - <!-- 鍦板潃 --> - <el-form-item label="鍦板潃" prop="address"> - <el-input v-model="evidence.address"></el-input> - </el-form-item> - <!-- 妗堢敱 --> - <el-form-item label="妗堢敱" prop="cause"> - <el-input v-model="evidence.cause"></el-input> - </el-form-item> - <!-- 鏂囦功绉嶇被 --> - <el-form-item label="鏂囦功绉嶇被" prop="team"> - <el-input v-model="evidence.team"></el-input> - </el-form-item> - <!-- 褰撲簨浜轰俊鎭� --> - <el-form-item label="褰撲簨浜轰俊鎭�" prop="appender"> - <el-input v-model="evidence.appender"></el-input> - </el-form-item> - <!-- 鎯呭喌鎻忚堪 --> - <el-form-item label="鎯呭喌鎻忚堪" prop="description"> - <el-input v-model="evidence.description"></el-input> - </el-form-item> - <!-- 鐓х墖闄勪欢 --> - <el-form-item label="鐓х墖闄勪欢" prop="photo"> - <el-input v-model="evidence.photo"></el-input> - </el-form-item> - </el-form> - </div> - </div> - <div class="book"> - <div class="book-title">鏂囩涔︾被</div> - <div class="book-form"> - <el-form ref="bookForm" label-width="160px" :model="book" :rules="bookRules" - autoComplete="on"> - <!-- 鏂囦功绉嶇被 --> - <el-form-item label="鏂囦功绉嶇被" prop="kind"> - <el-input v-model="book.kind"></el-input> - </el-form-item> - <!-- 鏂囦功缂栧彿 --> - <el-form-item label="鏂囦功缂栧彿" prop="id"> - <el-input v-model="book.id"></el-input> - </el-form-item> - <!-- 杩濇硶绫诲瀷 --> - <el-form-item label="杩濇硶绫诲瀷" prop="vioKind"> - <el-input v-model="book.vioKind"></el-input> - </el-form-item> - <!-- 鏂囦功鍙戞斁鏃堕棿 --> - <el-form-item label="鏂囦功鍙戞斁鏃堕棿" prop="giveTime"> - <el-input v-model="book.giveTime"></el-input> - </el-form-item> - <!-- 鏂囦功闄愬畾鏃堕棿 --> - <el-form-item label="鏂囦功闄愬畾鏃堕棿" prop="limitTime"> - <el-input v-model="book.limitTime"></el-input> - </el-form-item> - <!-- 鏂囦功鍙戞斁鍐呭 --> - <el-form-item label="鏂囦功鍙戞斁鍐呭" prop="content"> - <el-input v-model="book.content"></el-input> - </el-form-item> - <!-- 瀹為檯鏁存敼鏃堕棿 --> - <el-form-item label="瀹為檯鏁存敼鏃堕棿" prop="updateTime"> - <el-input v-model="book.updateTime"></el-input> - </el-form-item> - <!-- 鏁存敼鎯呭喌 --> - <el-form-item label="鏁存敼鎯呭喌" prop="condition"> - <el-input v-model="book.condition"></el-input> - </el-form-item> - <!-- 澶囨敞 --> - <el-form-item label="澶囨敞" prop="note"> - <el-input v-model="book.note"></el-input> - </el-form-item> - <!-- 鏂囦功鐓х墖涓婁紶 --> - <el-form-item label="鏂囦功鐓х墖涓婁紶" prop="bookPhoto"> - <el-input v-model="book.bookPhoto"></el-input> - </el-form-item> - <!-- 鏁存敼鍓嶇収鐗� --> - <el-form-item label="鏁存敼鍓嶇収鐗�" prop="beforeUpdate"> - <el-input v-model="book.beforeUpdate"></el-input> - </el-form-item> - <!-- 鏁存敼鍚庣収鐗� --> - <el-form-item label="鏁存敼鍚庣収鐗�" prop="afterUpdate"> - <el-input v-model="book.afterUpdate"></el-input> - </el-form-item> - <!-- 鍏朵粬鐓х墖 --> - <el-form-item label="鍏朵粬" prop="other"> - <el-input v-model="book.other"></el-input> - </el-form-item> - </el-form> - </div> - </div> + <div class="ill"> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence></MyEvidence> + <!-- 鏂囩涔︾被 --> + <MyBook></MyBook> + <!-- 搴曢儴鎸夐挳 --> <div class="footer"> - <el-button>纭畾</el-button> + <el-button @click="handleSubmit" type="primary">纭畾</el-button> <el-button>杩斿洖</el-button> </div> </div> </template> <script> +import MyArrive from '../components/arrive' +import MyEvidence from "../components/evidence" +import MyBook from "../components/book" export default { + components:{ + MyArrive,MyEvidence,MyBook + }, data() { return { - arrive: { - }, - arriveRules: { + } + }, + methods:{ + handleSubmit(){ - }, - evidence: { - - }, - evidenceRules: { - - }, - book:{ - - }, - bookRules:{ - - } } } } </script> <style lang="scss" scoped> -.vio { - padding: 50px 100px; - - .arrive-title, - .evidence-title { - line-height: 40px; - font-weight: 650; - font-size: 20px; - width: 160px; - padding-right: 12px; - text-align: right; - color: #4b9bb7; + .ill{ + padding: 20px 200px; } - - .footer { +.footer { display: flex; justify-content: flex-end; } - - ::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - ::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - ::v-deep .el-form-item__label { - color: #4b9bb7; - } -} </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue index c48b5e7..2548905 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue @@ -1,127 +1,63 @@ <template> <div class="vio"> - <div class="arrive"> - <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> - <div class="arrive-form"> - <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> - <!-- 鍒拌揪鏃堕棿 --> - <el-form-item label="鍒拌揪鏃堕棿" prop="arriveTime"> - <el-input v-model="arrive.arriveTime"></el-input> - </el-form-item> - <!-- 鍒拌揪鍦板潃 --> - <el-form-item label="鍒拌揪鍦板潃" prop="arriveAddr"> - <el-input v-model="arrive.arriveAddr"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌璇存槑 --> - <el-form-item label="鐜板満鎯呭喌璇存槑" prop="arriveCondition"> - <el-input type="textarea" v-model="arrive.arriveCondition"></el-input> - </el-form-item> - <!-- 淇¤鍥炲璇存槑 --> - <el-form-item label="淇¤鍥炲璇存槑" prop="arriveLetter"> - <el-input v-model="arrive.arriveLetter"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌鐓х墖 --> - <el-form-item label="鐜板満鎯呭喌鐓х墖" prop="arrivePhoto"> - <el-input v-model="arrive.arrivePhoto"></el-input> - </el-form-item> - </el-form> - </div> - </div> - <div class="evidence"> - <div class="evidence-title">璋冩煡鍙栬瘉</div> - <div class="evidence-form"> - <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on"> - <!-- 鎵垮姙闃熷憳 --> - <el-form-item label="鎵垮姙闃熷憳" prop="team"> - <el-input v-model="evidence.team"></el-input> - </el-form-item> - <!-- 鍗忓姙闃熷憳 --> - <el-form-item label="鍗忓姙闃熷憳" prop="helper"> - <el-input v-model="evidence.helper"></el-input> - </el-form-item> - <!-- 鏃堕棿 --> - <el-form-item label="鏃堕棿" prop="time"> - <el-input v-model="evidence.time"></el-input> - </el-form-item> - <!-- 鍦板潃 --> - <el-form-item label="鍦板潃" prop="address"> - <el-input v-model="evidence.address"></el-input> - </el-form-item> - <!-- 妗堢敱 --> - <el-form-item label="妗堢敱" prop="cause"> - <el-input v-model="evidence.cause"></el-input> - </el-form-item> - <!-- 鎵垮姙闃熷憳 --> - <el-form-item label="鎵垮姙闃熷憳" prop="team"> - <el-input v-model="evidence.team"></el-input> - </el-form-item> - <!-- 褰撲簨浜轰俊鎭� --> - <el-form-item label="褰撲簨浜轰俊鎭�" prop="appender"> - <el-input v-model="evidence.appender"></el-input> - </el-form-item> - <!-- 鎯呭喌鎻忚堪 --> - <el-form-item label="鎯呭喌鎻忚堪" prop="description"> - <el-input v-model="evidence.description"></el-input> - </el-form-item> - <!-- 鐓х墖闄勪欢 --> - <el-form-item label="鐓х墖闄勪欢" prop="photo"> - <el-input v-model="evidence.photo"></el-input> - </el-form-item> - </el-form> - </div> - </div> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive ref="arrive"></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence ref="evidence"></MyEvidence> + <!-- 搴曢儴鎸夐挳 --> <div class="footer"> - <el-button>纭畾</el-button> + <el-button @click="handleSubmit" type="primary">纭畾</el-button> <el-button>杩斿洖</el-button> </div> </div> </template> <script> +import MyArrive from '../components/arrive' +import MyEvidence from "../components/evidence" export default { + components:{ + MyArrive,MyEvidence + }, data() { return { - arrive:{ - }, - arriveRules:{ - - }, - evidence:{ - - }, - evidenceRules:{ - - } + } + }, + methods:{ + handleSubmit(){ + const {arrive,evidence} = this.$refs; + const {arriveForm} = arrive.$refs; + const {evidenceForm} = evidence.$refs; + console.log(evidenceForm); + arriveForm.validate((valid)=>{ + console.log(valid); + if(valid){ + evidenceForm.validate((flag)=>{ + if(flag){ + console.log(flag); + }else{ + return false; + } + }) + }else{ + evidenceForm.validate((flag)=>{ + if(!flag){ + return false; + } + }) + return false; + } + }) } } } </script> <style lang="scss" scoped> -.vio{ - padding: 50px 100px; - .arrive-title,.evidence-title{ - line-height: 40px; - font-weight: 650; - font-size: 20px; - width: 160px; - padding-right: 12px; - text-align: right; - color: #4b9bb7; + .vio{ + padding: 20px 200px; } - .footer{ +.footer { display: flex; justify-content: flex-end; } - ::v-deep .el-input__inner{ - background-color: #09152f; - border: 1px solid #17324c; - } - ::v-deep .el-textarea__inner{ - background-color: #09152f; - border: 1px solid #17324c; - } - ::v-deep .el-form-item__label{ - color:#4b9bb7; - } -} </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue b/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue new file mode 100644 index 0000000..786db34 --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue @@ -0,0 +1,493 @@ +<template> + <div class="ill"> + <div class="input-area"> + <div class="input-header"> + <div class="input-header__title">鍩虹淇℃伅</div> + <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div> + </div> + <div class="input-form"> + <el-form ref="user" label-width="160px" autoComplete="on" :model="ill" :rules="createillRules" + label-position="right"> + <!-- 闂绫诲瀷 + <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category"> + <el-select v-model="ill.type" placeholder="杩濆缓"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 杩濆缓绫诲埆 --> + <el-form-item class="optionItems" label="杩濆缓绫诲埆:" prop="categoryId"> + <el-select v-model="ill.categoryId" placeholder="璇烽�夋嫨杩濆缓绫诲埆" size="small"> + <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 褰撲簨浜哄鍚� --> + <el-form-item class="optionItems" label="褰撲簨浜哄鍚�:" prop="partyName"> + <el-input placeholder="璇峰~鍐欏綋浜嬩汉濮撳悕" v-model="ill.partyName"></el-input> + </el-form-item> + <!-- 褰撲簨浜鸿韩浠借瘉鍙� --> + <el-form-item class="optionItems" label="褰撲簨浜鸿韩浠借瘉鍙�:" prop="partyIdCard"> + <el-input placeholder="璇峰~鍐欏綋浜嬩汉韬唤璇佸彿" v-model="ill.partyIdCard"></el-input> + </el-form-item> + <!-- 褰撲簨浜鸿仈绯荤數璇� --> + <el-form-item class="optionItem" label="褰撲簨浜鸿仈绯荤數璇�:" prop="partyPhone"> + <el-input v-model="ill.partyPhone" placeholder="璇峰~鍐欏綋浜嬩汉鑱旂郴鐢佃瘽"></el-input> + </el-form-item> + <!-- 杩濆缓鍦扮偣 --> + <el-form-item class="optionItems" label="杩濆缓鍦扮偣:" prop="site"> + <el-input placeholder="璇峰~鍐欒繚寤哄湴鐐�" v-model="ill.site"></el-input> + </el-form-item> + <!-- 鎵�灞炵ぞ鍖� --> + <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId"> + <el-select v-model="ill.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 韬唤璇佹鍙嶉潰鐓х墖 --> + <el-form-item class="optionItems" label="韬唤璇佹鍙嶉潰鐓х墖:" prop="positive"> + <template> + <div class="idcard"> + <el-upload class="upload-demo" :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" :headers="getToken()" multiple + :limit="50" :on-success="handleSuccess"> + <img v-if="ill.positive === ''" + src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__15f765432d579a14b8f6591c100d30e3.svg" + alt=""> + <span class="text" v-if="ill.positive === ''">韬唤璇佹闈�</span> + <img :src="ill.positive" alt="" class="img" v-else> + </el-upload> + <el-upload class="upload-demo" :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" :headers="getToken()" multiple + :limit="50" :on-success="handleSuccess2"> + <img v-if="ill.negative === '' " + src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__15f765432d579a14b8f6591c100d30e3.svg" + alt=""> + <span class="text" v-if="ill.negative === ''">韬唤璇佸弽闈�</span> + <img :src="ill.negative" alt="" class="img" v-else /> + </el-upload> + </div> + </template> + </el-form-item> + <!-- 鎶ヨ鏃堕棿 --> + <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> + <el-date-picker v-model="ill.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿"> + </el-date-picker> + </el-form-item> + </el-form> + </div> + <div class="not-need"> + <div class="not-need__header"> + 鎵ф硶杩濆缓鎯呭喌 + </div> + <el-form ref="condition" label-width="160px" autoComplete="on" :model="ill" :rules="createillRules"> + <!-- 杩濆缓鍏蜂綋浣嶇疆 --> + <el-form-item class="optionItems" label="杩濆缓鍏蜂綋浣嶇疆:" prop="position"> + <el-input placeholder="璇峰~鍐欒繚寤哄叿浣撲綅缃�" v-model="ill.position"></el-input> + </el-form-item> + <el-form-item class="optionItems" label="杩濇硶寤鸿闀裤�佸銆侀珮:" prop="buildingLength"> + <div class="area"> + <el-input placeholder="鍗曚綅绫�" v-model="ill.buildingLength"></el-input> + <el-input placeholder="鍗曚綅绫�" v-model="ill.buildingWidth"></el-input> + <el-input placeholder="鍗曚綅绫�" v-model="ill.buildingHigh"></el-input> + </div> + </el-form-item> + <el-form-item class="optionItems" label="杩濇硶寤鸿闈㈢Н:" prop="buildingArea"> + <el-input placeholder="璇峰~鍐欒繚娉曞缓璁鹃潰绉�" v-model="ill.buildingArea"></el-input> + </el-form-item> + <el-form-item class="optionItems" label="杩濇硶寤虹瓚鏉愭枡:" prop="materials"> + <el-input placeholder="璇峰~鍐欒繚娉曞缓绛戞潗鏂�" v-model="ill.materials"></el-input> + </el-form-item> + </el-form> + </div> + <div class="input-footer"> + <el-button type="primary" class="confirm" @click="handleUser">纭畾</el-button> + <el-button class="back">杩斿洖</el-button> + </div> + </div> + <div class="map-area"> + <!-- <MyMap /> --> + </div> + </div> +</template> +<script> +import MyMap from '@/components/map' +export default { + components: { + MyMap + }, + data() { + const checkArea = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿闈㈢Н涓嶈兘涓虹┖')) + } + } + const checkHigh = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿楂樺害涓嶈兘涓虹┖')); + + } + } + const checkWidth = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿瀹藉害涓嶈兘涓虹┖')); + + } + } + const checkLength = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿闀垮害涓嶈兘涓虹┖')); + + } + } + const checkCategoryId = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濆缓绫诲埆涓嶈兘涓虹┖')); + } + } + const checkCommunityId = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵�灞炵ぞ鍖轰笉鑳戒负绌�')); + } + } + const checkMaterials = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤虹瓚鏉愭枡涓嶈兘涓虹┖')); + } + } + const checkIdCard = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('褰撲簨浜鸿韩浠借瘉鍙风爜涓嶈兘涓虹┖')); + } + } + const checkName = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('褰撲簨浜哄鍚嶄笉鑳戒负绌�')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('褰撲簨浜鸿仈绯荤數璇濅笉鑳戒负绌�')); + } + } + const checkPosition = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿鍏蜂綋浣嶇疆涓嶈兘涓虹┖')); + } + } + const checkPositive = (rule, value, callback) => { + if (value) { + if (this.ill.negative === '') { + callback('韬唤璇佸弽闈笉鑳戒负绌�'); + } else { + callback(); + } + } else { + callback(new Error('韬唤璇佹闈笉鑳戒负绌�')); + + } + } + const checkSite = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杩濇硶寤鸿鍦扮偣涓嶈兘涓虹┖')); + } + } + const checkDate = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎶ヨ鏃堕棿涓嶈兘涓虹┖')) + } + } + return { + ill: { + buildingArea: 2.0, + buildingHigh: 2.0, + buildingLength: 2.0, + buildingWidth: 1.0, + // category: '', + categoryId: '', + communityId: '', + materials: "閽㈢瓔", + partyIdCard: "511025184612310213", + partyName: "鍗曟暟澶�", + partyPhone: "17844631885", + position: "鏂板湴鏂规柊浣庣偣", + positive: "", + negative: "", + site: "鏂板湴鏂�", + alarmTime: '', + }, + createillRules: { + buildingArea: [ + { + required: true, trigger: 'change', validator: checkArea + } + ], + buildingHigh: [ + { + required: true, trigger: 'blur', validator: checkHigh + } + ], + buildingLength: [ + { + required: true, trigger: 'blur', validator: checkLength + } + ], + buildingWidth: [ + { + required: true, trigger: 'blur', validator: checkWidth + } + ], + categoryId: [ + { + required: true, trigger: 'change', validator: checkCategoryId + } + ], + communityId: [ + { + required: true, trigger: 'change', validator: checkCommunityId + } + ], + materials: [ + { + required: true, trigger: 'blur', validator: checkMaterials + } + ], + partyIdCard: [ + { + required: true, trigger: 'blur', validator: checkIdCard + } + ], + partyName: [ + { + required: true, trigger: 'blur', validator: checkName + } + ], + partyPhone: [ + { + required: true, trigger: 'blur', validator: checkPhone + } + ], + position: [ + { + required: true, trigger: 'blur', validator: checkPosition + } + ], + positive: [ + { + required: true, trigger: 'change', validator: checkPositive + } + ], + site: [ + { + required: true, trigger: 'blur', validator: checkSite + } + ], + alarmTime: [ + { + required: true, trigger: 'change', validator: checkDate + } + ] + }, + bigKindList: [], + typeList: [ + { + name: '绀惧尯1', + value: 1, + }, + { + name: '绀惧尯2', + value: 2, + } + ], + } + }, + created() { + const { getBigKind } = this; + // this.ill.category = this.mytype + 1; + getBigKind(); + }, + methods: { + handleUser() { + const that = this; + // console.log(this.$refs); + this.$refs.user.validate((valid) => { + console.log(valid) + if (valid) { + that.$refs.condition.validate((flag) => { + console.log(flag); + if (flag) { + const { ill } = this; + ill.buildingLength = parseFloat(ill.buildingLength); + ill.buildingHigh = parseFloat(ill.buildingHigh); + ill.buildingWidth = parseFloat(ill.buildingWidth); + ill.buildingArea = parseFloat(ill.buildingArea); + console.log(ill); + that.$axios({ + method: 'post', + url: 'sccg/base-case/addition_illegal_building', + data: ill, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: res.message + }) + this.$emit('changeDialog', { dialogView: false }); + } else { + this.$message({ + type: 'warning', + message: res.message, + }) + } + }) + } else { + return false; + } + }) + } else { + return false; + } + }) + }, + handleStop() { + this.refresh(); + }, + // 鑾峰彇澶х被鍒楄〃 + getBigKind() { + this.$axios({ + method: 'get', + url: 'sccg/illegal_building/query/type_second' + }).then(res => { + this.bigKindList = res.data; + // console.log(res); + }) + }, + // 鑾峰彇琛屾斂鍖哄煙 + // 鑾峰彇token + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token }; + } + }, + handleSuccess(res, file, filelist) { + const baseUrl = 'http://140.143.152.226:8410/'; + console.log(res); + this.ill.positive = baseUrl + res.data.url1; + + }, + handleSuccess2(res, file, filelist) { + const baseUrl = 'http://140.143.152.226:8410/'; + console.log(res); + this.ill.negative = baseUrl + res.data.url1; + } + }, + props: ['mytype', 'changeDialog'] +} +</script> +<style lang="scss" scoped> +.ill { + display: flex; + padding: 20px 50px; + + .input-area { + flex: 1; + padding: 10px 20px; + + .input-header { + color: #4b9bb7; + + .input-header__title { + line-height: 60px; + font-weight: 650; + font-size: 20px; + } + + .input-header__tip { + line-height: 40px; + } + } + + .input-form { + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + .upload-demo { + position: relative; + + .text { + position: absolute; + top: 22%; + left: 20%; + } + } + + .idcard { + display: flex; + } + + .idCardZ { + width: 200px; + height: 200px; + } + } + + .input-footer { + display: flex; + justify-content: center; + } + } + + .img { + width: 125px; + height: 80px; + } + + .area { + display: flex; + } + + .map-area { + flex: 1; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/createUser/index.vue b/src/views/operate/disposal/casepool/escalation/createUser/index.vue index b609337..5fbe248 100644 --- a/src/views/operate/disposal/casepool/escalation/createUser/index.vue +++ b/src/views/operate/disposal/casepool/escalation/createUser/index.vue @@ -1,195 +1,49 @@ <template> <div class="createUser"> - <main> - <div class="mainContent"> - <el-form ref="user" 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-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-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"> - </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="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" - :disabled="!updateFlag" disabled></el-input> - </el-form-item> - <el-form-item v-if="updateFlag"> - <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 - </el-button> - </div> - </el-form-item> - </el-form> - - </div> - </main> + <div class="chooseArea"> + <el-button type="primary" @click="toShow(0,'杩濊')">杩濊鐧昏</el-button> + <el-button type="primary" @click="toShow(1,'杩濆缓')">杩濆缓鐧昏</el-button> + </div> </div> </template> <script> export default { data() { return { - things: { - number: 0, - type: '', - typeFirst: '', - typeSecond: '', - typeThird: '', - }, - roleList: [], - typeThirdList:[], - typeSecondList:[], - typeFirstList:[], } }, created() { - console.log(this.userInfo); - this.things = JSON.parse(JSON.stringify(this.userInfo)); - // 鑾峰彇鎵�灞炵被鍨嬪垪琛� - this.getTypeThird(); - this.getTypeSecond(); - this.getTypeFirst(); + }, methods: { - // handleUser() { - // this.$refs.user.validate((valid) => { - // if (valid) { - // const { role } = this; - // console.log(role); - // this.$axios.post('/sccg/role/update/' + role.id, { - // id: role.id, - // status: role.status, - // description: role.description, - // name: role.name, - // sort: 0 - // }).then(res => { - // this.$emit('changeDialog', { dialogUpdate: false }); - // this.getUserList(); - // }) - // } else { - // return false; - // } - // }) - // }, - // 鏌ヨ鎵�灞炵被鍨� - getTypeThird() { - this.$axios({ - method: 'get', - url: "sccg/violations/query/type_first", - }) - .then(res => { - this.typeThirdList = res.data; + toShow(idx, lab) { + this.$confirm('鎮ㄧ‘瀹氳鍘讳笂鎶�' + lab + '浜嬩欢') + .then(_ => { + this.$emit('getPageProp',{flag:false,type:idx}); }) - }, - // 鏌ヨ鎵�灞炲ぇ绫� - getTypeSecond(){ - this.$axios({ - method: 'get', - url: "sccg/violations/query/type_second", - }) - .then(res => { - this.typeSecondList = res.data; - }) - }, - // 鏌ヨ鎵�灞炲皬绫� - getTypeFirst(){ - this.$axios({ - method: 'get', - url: "sccg/violations/query/type_third", - }) - .then(res => { - this.typeFirstList = res.data; - }) + .catch(_ => { console.log('err') }); } }, - props: ['getUserList'] + props:['getPageProp'] } </script> <style lang="scss" scoped> -.createUser { - border-radius: 1px; - background-color: #09152f; +.chooseArea { + display: flex; + flex-direction: column; + align-items: center; + padding-top: 50px; + padding-bottom: 80px; - main { - // border: 1px solid #fff; - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-bottom: 50px; - - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - .optionBtn { - display: flex; - margin-top: 20px; - - .btn { - padding: 12px 50px; - } - } - - } + .el-button { + width: 120px; + line-height: 40px; + padding: 0; + margin-top: 20px; } - &::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - ::v-deep .el-form-item__label { - color: #4b9bb7; - } - - ::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; + .el-button+.el-button { + margin-left: 0; } } </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/createUser/vio/index.vue b/src/views/operate/disposal/casepool/escalation/createUser/vio/index.vue new file mode 100644 index 0000000..767ab4c --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/createUser/vio/index.vue @@ -0,0 +1,472 @@ +<template> + <div class="vio"> + <div class="input-area"> + <div class="input-header"> + <div class="input-header__title">鍩虹淇℃伅</div> + <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div> + </div> + <div class="input-form"> + <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules" + label-position="right"> + <!-- 闂绫诲瀷 --> + <!-- <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category"> + <el-select v-model="vio.category" placeholder="杩濊" disabled> + <el-option v-for="item in typeList" :key="item.label" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 澶х被鍚嶇О --> + <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId"> + <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О"> + <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 灏忕被鍚嶇О --> + <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId"> + <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О"> + <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 浜嬩欢绛夌骇 --> + <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId"> + <el-select v-model="vio.gradeId" placeholder="璇烽�夋嫨妗堜欢绛夌骇"> + <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item class="optionItem" label="妗堢敱:" prop="actionCause"> + <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input> + </el-form-item> + <!-- 鎵�灞炲尯鍘� --> + <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status"> + <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炲尯鍘�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 鎵�灞炵ぞ鍖� --> + <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId"> + <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎵�灞炶閬� --> + <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId"> + <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 浜嬪彂鍦扮偣 --> + <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site"> + <el-input placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆" v-model="vio.site"></el-input> + </el-form-item> + <!-- 鏄惁鍏宠仈鍟嗛摵 --> + <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop"> + <el-radio-group v-model="vio.linkShop"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + <!-- 鍏宠仈鍟嗛摵鍚嶇О --> + <el-form-item class="optionItems" label="鍏宠仈鍟嗛摵鍚嶇О:" prop="shopName"> + <el-input placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�" v-model="vio.shopName" + :disabled="vio.linkShop === 1 ?false : true"></el-input> + </el-form-item> + <!-- 濉啓杞︾墝鍙� --> + <el-form-item class="optionItems" label="濉啓杞︾墝鍙�:" prop="carNumber"> + <el-input placeholder="璇峰~鍐欒溅鐗屽彿" v-model="vio.carNumber"></el-input> + </el-form-item> + <!-- 闂鎻忚堪 --> + <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input> + </el-form-item> + <!-- 鎶ヨ鏃堕棿 --> + <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> + <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿"> + </el-date-picker> + </el-form-item> + </el-form> + </div> + <div class="not-need"> + <div class="not-need__header"> + 濉啓鍙嶆槧浜轰俊鎭� + </div> + <div class="not-need-item"> + <label>鍙嶆槧浜�:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>鑱旂郴鏂瑰紡:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>韬唤璇佸彿:</label> + <input type="text" class="not-need__inner"> + </div> + </div> + <div class="input-footer"> + <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button> + <el-button class="back">杩斿洖</el-button> + </div> + </div> + <div class="map-area"> + <MyMap /> + </div> + </div> +</template> +<script> +import MyMap from '@/components/map' +export default { + components: { + MyMap + }, + data() { + const checkCause = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('妗堢敱涓嶈兘涓虹┖')) + } + } + const checkCategory = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('澶х被鍚嶇О涓嶈兘涓虹┖')) + } + } + const checkCommunity = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵�灞炵ぞ鍖轰笉鑳戒负绌�')); + } + } + const checkDesc = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('闂鎻忚堪涓嶈兘涓虹┖')) + } + } + const checkSite = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('浜嬪彂鍦扮偣涓嶈兘涓虹┖')) + } + } + const checkStreet = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎵�灞炶閬撲笉鑳戒负绌�')) + } + } + const checkType = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('灏忕被涓嶈兘涓虹┖')) + } + } + const checkGrade = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('浜嬩欢绛夌骇涓嶈兘涓虹┖')) + } + } + const checkDate = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鎶ヨ鏃堕棿涓嶈兘涓虹┖')) + } + } + return { + vio: { + actionCause: "",//妗堢敱 + carNumber: "",//杞︾墝鍙� + // category:1,//1:杩濊2:杩濆缓 + categoryId: '',//澶х被 + communityId: '',//鎵�灞炵ぞ鍖� + description: '',//闂鎻忚堪 + informant: '',//鍙嶆槧浜� + informantIdCard: '',//韬唤璇佸彿鐮� + informantPhoneCode: "",//鍙嶆槧浜鸿仈绯绘柟寮� + linkShop: 0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�) + shopName: "",//鍏宠仈鍟嗛摵鍚嶇О + site: '',//浜嬪彂鍦扮偣 + streetId: '',//鎵�灞炶閬� + typeId: '',//灏忕被 + gradeId: '',//妗堜欢绛夌骇 + alarmTime: '' + }, + createRoleRules: { + //妗堢敱 + actionCause: [ + { + required: true, trigger: 'blur', validator: checkCause, + } + ], + //杞︾墝鍙� + carNumber: [ + { + required: false, + } + ], + //澶х被 + categoryId: [ + { + required: true, trigger: 'change', validator: checkCategory + } + ], + //鎵�灞炵ぞ鍖� + communityId: [ + { + required: true, trigger: 'change', validator: checkCommunity + } + ], + //闂鎻忚堪 + description: [ + { + required: true, trigger: 'blur', validator: checkDesc + } + ], + // informant:"澶ц嫃鎵�",//鍙嶆槧浜� + // informantIdCard:"51102519910082831",//韬唤璇佸彿鐮� + // informantPhoneCode:"17844631885",//鍙嶆槧浜鸿仈绯绘柟寮� + // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�) + // shopName:"",//鍏宠仈鍟嗛摵鍚嶇О + //浜嬪彂鍦扮偣 + site: [ + { + required: true, trigger: 'blur', validator: checkSite + } + ], + //鎵�灞炶閬� + streetId: [ + { + required: true, trigger: 'change', validator: checkStreet + } + ], + //灏忕被 + typeId: [ + { + required: true, trigger: 'change', validator: checkType + } + ], + //妗堜欢绛夌骇 + gradeId: [ + { + required: true, trigger: 'change', validator: checkGrade + } + ], + alarmTime: [ + { + required: true, trigger: 'change', validator: checkDate + } + ] + + }, + bigKindList: [], + smallKindList: [], + eventLevelList: [], + typeList: [ + { + label: '杩濊', + value: 1. + }, + { + label: '杩濆缓', + value: 2. + } + ] + + } + }, + created() { + const { getBigKind, getEventLevel, getSmallKind } = this; + console.log(this.mytype); + this.vio.category = this.mytype + 1; + getBigKind(); + getSmallKind(); + getEventLevel(); + }, + methods: { + handleStop() { + this.refresh(); + }, + // 鑾峰彇澶х被鍒楄〃 + getBigKind() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/type_first' + }).then(res => { + this.bigKindList = res.data; + // console.log(res); + }) + }, + // 鑾峰彇灏忕被鍒楄〃 + getSmallKind() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/type_second' + }) + .then(res => { + console.log(res); + this.smallKindList = res.data; + }) + }, + // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + getEventLevel() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/event_type' + }) + .then(res => { + console.log(res); + this.eventLevelList = res.data; + }) + }, + // 鑾峰彇琛屾斂鍖哄煙 + getRegion() { + this.$axios({ + method: 'get', + url: 'sccg/sccg-region/getTree', + }) + .then(res => { + // this. + }) + }, + // 鎻愪氦娉ㄥ唽淇℃伅 + handleSubmit() { + this.$refs.user.validate((valid) => { + if (valid) { + const { vio } = this; + console.log(vio); + this.$axios({ + method: 'post', + url: 'sccg/base-case/addition_violation', + data: vio + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: res.message + }) + this.$emit('changeDialog', { dialogView: false }); + } else { + this.$message({ + type: 'warning', + message: res.message, + }) + } + }) + } else { + return false; + } + }) + } + }, + props: ['mytype', 'changeDialog'] +} +</script> +<style lang="scss" scoped> +.vio { + display: flex; + padding: 20px 10px 50px; + + .input-area { + flex: 1; + padding: 10px 20px; + + .input-header { + color: #4b9bb7; + + .input-header__title { + line-height: 60px; + font-weight: 650; + font-size: 20px; + } + + .input-header__tip { + line-height: 40px; + } + } + + .input-form { + .el-form { + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + } + + .input-footer { + display: flex; + justify-content: center; + } + } + + .map-area { + flex: 1; + } + + .not-need { + color: #4b9bb7; + + .not-need__header { + line-height: 40px; + } + + .not-need-item { + line-height: 40px; + margin-bottom: 22px; + display: flex; + + label { + width: 100px; + padding-right: 12px; + text-align: right; + } + + .not-need__inner { + flex: 1; + line-height: 40px; + padding: 0 15px; + border-radius: 4px; + color: #fff; + // outline: #409eff solid 1px; + outline: none; + background-color: #09152f; + border: 1px solid #17324c; + } + } + } + +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/index.vue b/src/views/operate/disposal/casepool/escalation/index.vue index 76ba25c..3f78a38 100644 --- a/src/views/operate/disposal/casepool/escalation/index.vue +++ b/src/views/operate/disposal/casepool/escalation/index.vue @@ -3,20 +3,43 @@ <header> <div class="headerContent"> <div class="search"> - <span>绛涢�夋潯浠�:</span> - <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + <span>鏉ユ簮鏌ヨ:</span> + <div class="option"> + <el-select v-model="mystatus" placeholder="杩濊" @change="setMystatus"> + <el-option v-for="item in typeList" :key="item.label" :label="item.name" + :value="item.value"> + </el-option> + </el-select> + </div> <div class="findBtn"> <el-button type="primary" @click="getUserList">鏌ヨ</el-button> </div> </div> + <!-- <div class="addUser"> + <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞</el-button> + <el-dialog :before-close="handleClose" :visible.sync="dialogCreate" title="璇烽�夋嫨涓婃姤浜嬩欢绫诲瀷" width="45%" + v-if="dialogCreate"> + <createUser @getPageProp=setDialog /> + </el-dialog> + <el-dialog :before-close="handleClose" :visible.sync="dialogNewAdd" + :title="newAddType === 0 ? '杩濊浜嬩欢鐧昏' : '杩濆缓浜嬩欢鐧昏' " width="60%" v-if="dialogNewAdd"> + <MyIll v-if="newAddType === 1" :mytype=newAddType @changeDialog=changeDialog /> + <myVio v-else :mytype=newAddType @changeDialog=changeDialog /> + </el-dialog> + </div> --> </div> </header> <main> <div class="mainContent"> + <!-- 瀵艰埅鐘舵�佹爣绛� --> + <!-- <div class="nav"> + <div @click="changeNavChecked(index)" :class="[item.checked ? 'is-active':'','nav-item']" + v-for="(item,index) in tagList" :key="item.name">{{item.name}}</div> + </div> <div class="type-nav"> <div @click="changeTypeChecked(index)" v-for="(item,index) in typeList" :key="item.name" :class="[item.checked ? 'is-active':'','type-item']">{{item.name}}</div> - </div> + </div> --> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" @@ -24,34 +47,45 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="number" label="浜嬩欢缂栧彿" min-width="10"> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> <template slot-scope="scope"> - <el-link @click="JumpView(scope.row)">{{scope.row.number}}</el-link> + <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> </template> </el-table-column> - <el-table-column prop="typeThird" label="浜嬩欢鏉ユ簮" min-width="10"> + <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="10"> </el-table-column> - <el-table-column prop="typeSecond" label="澶х被鍚嶇О" min-width="10"> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="typeFirst" label="灏忕被鍚嶇О" min-width="10"> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="type" label="妗堢敱" min-width="10"> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎶ヨ鐐逛綅" min-width="10"> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎵�灞炲尯鍩�" min-width="10"> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎶ヨ鏃堕棿" min-width="10"> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎸佺画鏃堕棿" min-width="10"> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="5"> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <!-- <div class="operation"> + <span @click="handleFind(scope.row)">涓婃姤</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">璋冨害</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍦ㄥ涔�</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鏆備笉澶勭悊</span> + </div> --> + </template> </el-table-column> </el-table> - <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="80%" title="鍩虹淇℃伅(浜哄伐)" - v-if="dialogUpdate" :before-close="handleClose"> - <updateUser :info=info /> + <!-- 璇︽儏椤靛睍绀� --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + :before-close="handleClose"> + <MyDetail :info=info></MyDetail> </el-dialog> <!-- tools --> <div class="tools"> @@ -82,23 +116,43 @@ </div> </template> <script> -import updateUser from "@/components/detail" +// import updateUser from "./updateUser" +import MyDetail from '@/components/detail' +// import createUser from "./createUser" +// import MyIll from './createUser/ill' +// import MyVio from './createUser/vio' export default { components: { - updateUser + MyDetail }, data() { return { - tableData: [], + tableData: [ + // { + // code:1, + // eventSource:1, + // category:1, + // type:1, + // actionCause:'妗堢敱1111', + // site:'浣犲ソ', + // streetId:1, + // alarmTime:'2022-21-20', + // continueTime:'8灏忔椂', + // } + ], context: "", - dialogUpdate: false, - info: {}, + dialogCreate: false, + dialogView: false, + dialogNewAdd: false, + newAddType: 0, totalNum: null, pageSize: 10, currentPage: 1, all: false, unsame: false, myIdx: 0, + preMyIdx: 0, + info: {}, options: [ { value: 0, @@ -119,6 +173,33 @@ } ], tempList: [], + tagList: [ + { + name: '寰呭鐞�', + value: 7, + checked: true + }, + { + name: '宸蹭笂鎶�', + value: 1, + checked: false + }, + { + name: '宸茶皟搴�', + value: 3, + checked: false + }, + { + name: '鍦ㄥ涔�', + value: 4, + checked: false + }, + { + name: '鏆備笉澶勭悊', + value: 4, + checked: false + }, + ], typeList: [ { name: '杩濊', @@ -131,46 +212,84 @@ checked: false, }, ], + mystatus: '', + statusArr: [], + } }, created() { + this.tagList.forEach(item => { + if (item.checked) { + this.statusArr[0] = item.value; + } + }) + this.typeList.forEach(item => { + if (item.checked) { + this.statusArr[1] = item.value; + } + }) this.getUserList(); }, methods: { + setMystatus(value) { + console.log(value); + this.statusArr[1] = value; + this.changeTypeChecked(value - 1); + this.getUserList(); + }, + setDialog({ flag, type }) { + this.dialogCreate = flag; + this.dialogNewAdd = true; + this.newAddType = type; + }, // 鎵归噺鍒犻櫎 - mulDelete(idArr){ - console.log(idArr); - this.$axios({ - method:'delete', - url:'sccg/violations/batch_delete?ids='+idArr, - }).then(res=>{ - this.getUserList(); - this.$message({ - message:res.message, - type:res.code === 200 ? 'success' : 'warning' + mulDelete(idArr) { + console.log(idArr instanceof Array); + const { statusArr } = this; + this.$confirm('鎮ㄧ‘瀹氳鎵归噺鍒犻櫎妗堜欢鍚�?') + .then(_ => { + this.$axios({ + method: 'delete', + url: 'sccg/base_case/batch_deletion?ids=' + idArr + '&type=' + statusArr[1], + }).then(res => { + if (res.code === 200) { + this.getUserList(); + this.$message({ + message: '鎵归噺鍒犻櫎妗堜欢鎴愬姛', + type:'success' + }) + }else{ + this.$message({ + message: res.data, + type:'warning' + }) + } + }) }) - }) + .catch(err => { console.log(err) }) }, // 鎵ц涓嬫媺妗嗘搷浣� - selectChange(val) { - let ids = []; - this.tempList.forEach(item => { - ids.push(item.number); - }) - if (ids.length !== 0) { - if (val === 3) { - this.mulDelete(ids); + selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.mulDelete(this.tempList); } } else { + this.myIdx = this.preMyIdx; this.$message({ type: 'warning', message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', }) } }, - // 鐩戝惉琛ㄦ牸閫変腑鐘舵�� + // 鐩戝惉琛ㄦ牸 tableChange(list) { - this.tempList = list; + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.code); + }) if (list.length === this.tableData.length) { this.all = true; } else { @@ -187,49 +306,17 @@ this.$refs.multipleTable.toggleRowSelection(row) }) }, - // 鍒犻櫎鍗曟潯鏁版嵁 - handleDelete({ number }) { - console.log(number); - this.$confirm('纭鍒犻櫎锛�') - .then(_ => { - console.log(1); - this.$axios({ - method: 'delete', - url: `sccg/violations/delete?id=${number}`, - }) - .then(res => { - console.log(res); - this.$message({ - type: res.code === 200 ? 'success' : 'warning', - message: res.message - }) - - this.getUserList(); - }) - }) - .catch(_ => { console.log(2) }); - }, // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { - const { currentPage, pageSize, context } = this; - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + const { currentPage, pageSize, context, statusArr } = this; + console.log(statusArr); this.$axios({ method: 'get', - url: `sccg/violations/query?current=${currentPage}&size=${pageSize}&keyWord=${context}`, - }) - .then(res => { - this.tableData = res.data.records; - this.totalNum = res.data.total; - }) - }, - // 鏇存敼杩濊/杩濆缓 - changeTypeChecked(idx) { - this.typeList.forEach((item, index) => { - if (index === idx) { - item.checked = true; - } else { - item.checked = false; - } + url: `sccg/base_case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` + }).then(res => { + this.totalNum = res.data.total; + this.tableData = res.data.records; + console.log(res); }) }, // 璁剧疆琛ㄦ牸鏂戦┈绾� @@ -240,6 +327,12 @@ return 'success-row'; } return ''; + }, + // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) + handleFind(rowData) { + this.dialogView = true; + this.updateFlag = false; + this.userInfo = rowData; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { @@ -256,18 +349,63 @@ this.currentPage = page; this.getUserList(); }, + changeDialog(val) { + this.dialogNewAdd = val.dialogView; + this.dialogCreate = val.dialogView; + this.dialogView = val.dialogView; + this.getUserList(); + }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { - this.dialogUpdate = false; + this.dialogCreate = false; + this.dialogView = false; done(); }) .catch(_ => { }); }, - JumpView(data){ - this.info = data; - this.dialogUpdate = true; - console.log(data); + // 鏇存敼涓�绾ф爣绛剧殑閫変腑 + changeNavChecked(idx) { + this.tagList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + this.typeList[0].checked = true; + this.typeList[1].checked = false; + this.statusArr[0] = this.tagList[idx].value; + this.statusArr[1] = 1; + this.getUserList(); + }, + // 鏇存敼杩濊/杩濆缓 + changeTypeChecked(idx) { + this.typeList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + this.mystatus = idx + 1; + this.statusArr[1] = this.typeList[idx].value; + this.getUserList(); + }, + async JumpView(data) { + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code) { + console.log('鑾峰彇鍏蜂綋妗堜欢淇℃伅',code); + this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + this.info = res.data; + this.dialogView = true; + }) } } } @@ -277,6 +415,7 @@ text-align: left; margin: 10px 20px; color: #4b9bb7; + header { background-color: #09152f; border: 1pox solid #fff; @@ -296,13 +435,23 @@ flex: 1; } - .el-input { - flex: 2; - color: #1d3f57; + .option { + line-height: 100px; + display: flex; + align-items: center; - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; + // ::v-deep .el-select { + // background-color: #09152f; + // border: 1px solid #17324c; + // } + + .el-select { + line-height: 40px; + + .el-input { + flex: 2; + color: #1d3f57; + } } } @@ -330,18 +479,47 @@ } } + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + main { background-color: #09152f; margin-top: 20px; padding-bottom: 50px; border: 1pox solid #fff; + .mainTitle { + line-height: 60px; + } + + padding: 10px; + + .nav { + display: flex; + line-height: 40px; + + .nav-item { + width: 80px; + text-align: center; + + &:hover { + cursor: pointer; + } + } + + .is-active { + background-color: #070f22; + color: #fff; + } + } + .type-nav { display: flex; line-height: 40px; margin-left: 30px; - padding-top: 10px; - margin-bottom: 10px; + margin-top: 2px; .type-item { width: 80px; @@ -428,6 +606,7 @@ .el-table { color: #4b9bb7; font-size: 10px; + margin-top: 10px; &::v-deep .cell { text-overflow: ellipsis; @@ -462,35 +641,6 @@ .el-table::v-deep .success-row { background: #071f39; - } - - &::v-deep .switchStyle .el-switch__label { - position: absolute; - display: none; - color: #fff; - } - - &::v-deep .el-switch__core { - background-color: rgba(166, 166, 166, 1); - } - - &::v-deep .switchStyle .el-switch__label--left { - z-index: 9; - left: 20px; - } - - &::v-deep .switchStyle .el-switch__label--right { - z-index: 9; - left: 4px; - } - - &::v-deep .switchStyle .el-switch__label.is-active { - display: block; - } - - &::v-deep .switchStyle.el-switch .el-switch__core, - &::v-deep .el-switch .el-switch__label { - width: 50px !important; } } diff --git a/src/views/operate/disposal/casepool/pool/updateUser/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/pool/updateUser/index.vue rename to src/views/operate/disposal/casepool/escalation/updateUser/index.vue diff --git a/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue b/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue index 786db34..5831571 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue @@ -353,7 +353,7 @@ console.log(ill); that.$axios({ method: 'post', - url: 'sccg/base-case/addition_illegal_building', + url: 'sccg/base_case/addition_illegal_building', data: ill, }) .then(res => { diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue index 767ab4c..1533c2f 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -359,7 +359,7 @@ console.log(vio); this.$axios({ method: 'post', - url: 'sccg/base-case/addition_violation', + url: 'sccg/base_case/addition_violation', data: vio }) .then(res => { diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index 3fc9de5..b9cb8fa 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -5,7 +5,7 @@ <div class="search"> <span>鏉ユ簮鏌ヨ:</span> <div class="option"> - <el-select v-model="mystatus" placeholder="杩濊" @change="setMystatus" > + <el-select v-model="mystatus" placeholder="杩濊" @change="setMystatus"> <el-option v-for="item in typeList" :key="item.label" :label="item.name" :value="item.value"> </el-option> @@ -17,13 +17,17 @@ </div> <div class="addUser"> <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞</el-button> + <!-- 閫夋嫨鐧昏绫诲瀷 --> <el-dialog :before-close="handleClose" :visible.sync="dialogCreate" title="璇烽�夋嫨涓婃姤浜嬩欢绫诲瀷" width="45%" v-if="dialogCreate"> <createUser @getPageProp=setDialog /> </el-dialog> + <!-- 浜嬩欢鐧昏 --> <el-dialog :before-close="handleClose" :visible.sync="dialogNewAdd" :title="newAddType === 0 ? '杩濊浜嬩欢鐧昏' : '杩濆缓浜嬩欢鐧昏' " width="60%" v-if="dialogNewAdd"> + <!-- 杩濆缓鐧昏 --> <MyIll v-if="newAddType === 1" :mytype=newAddType @changeDialog=changeDialog /> + <!-- 杩濊鐧昏 --> <myVio v-else :mytype=newAddType @changeDialog=changeDialog /> </el-dialog> </div> @@ -47,9 +51,9 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + <el-table-column prop="id" label="浜嬩欢缂栧彿" min-width="10"> <template slot-scope="scope"> - <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> + <el-link @click="JumpView(scope.row)">{{scope.row.id}}</el-link> </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> @@ -73,7 +77,7 @@ <div class="operation"> <span @click="handleFind(scope.row)">涓婃姤</span> <span class="line">|</span> - <span @click="handleDelete(scope.row)">璋冨害</span> + <span @click="handleDispatch(scope.row)">璋冨害</span> <span class="line">|</span> <span @click="handleDelete(scope.row)">鍦ㄥ涔�</span> <span class="line">|</span> @@ -85,9 +89,12 @@ <!-- 璇︽儏椤靛睍绀� --> <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" :before-close="handleClose"> - <!-- <updateUser :updateFlag="updateFlag" :userInfo=userInfo - :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" /> --> <MyDetail :info=info></MyDetail> + </el-dialog> + <!-- 璋冨害 --> + <el-dialog :visible.sync="dialogDispatch" width="80%" title="璋冨害淇℃伅" v-if="dialogDispatch" + :before-close="handleClose"> + <MyDispatch :id="baseId" @changeDialog="changeDialog"></MyDispatch> </el-dialog> <!-- tools --> <div class="tools"> @@ -118,15 +125,14 @@ </div> </template> <script> -// import updateUser from "./updateUser" import MyDetail from '@/components/detail' import createUser from "./createUser" import MyIll from './createUser/ill' import MyVio from './createUser/vio' +import MyDispatch from '@/components/dispatch' export default { components: { - // updateUser - createUser, MyIll, MyVio, MyDetail + createUser, MyIll, MyVio, MyDetail, MyDispatch }, data() { return { @@ -143,10 +149,10 @@ // continueTime:'8灏忔椂', // } ], - context: "", dialogCreate: false, dialogView: false, dialogNewAdd: false, + dialogDispatch:false, newAddType: 0, totalNum: null, pageSize: 10, @@ -179,17 +185,17 @@ tagList: [ { name: '寰呭鐞�', - value: 7, + value: 0, checked: true }, { name: '宸蹭笂鎶�', - value: 1, + value: 3, checked: false }, { name: '宸茶皟搴�', - value: 3, + value: 6, checked: false }, { @@ -199,7 +205,7 @@ }, { name: '鏆備笉澶勭悊', - value: 4, + value: 5, checked: false }, ], @@ -217,6 +223,7 @@ ], mystatus: '', statusArr: [], + baseId:0 } }, @@ -234,12 +241,19 @@ this.getUserList(); }, methods: { - setMystatus(value){ + // 璋冨害 + handleDispatch(data) { + this.baseId = data.id; + this.dialogDispatch = true; + }, + // 椤堕儴涓嬫媺妗� + setMystatus(value) { console.log(value); this.statusArr[1] = value; - this.changeTypeChecked(value-1); + this.changeTypeChecked(value - 1); this.getUserList(); }, + // 閫夋嫨杩濊杩濆缓 setDialog({ flag, type }) { this.dialogCreate = flag; this.dialogNewAdd = true; @@ -247,17 +261,29 @@ }, // 鎵归噺鍒犻櫎 mulDelete(idArr) { - console.log(idArr); - // this.$axios({ - // method: 'delete', - // url: 'sccg/violations/batch_delete?ids=' + idArr, - // }).then(res => { - // this.getUserList(); - // this.$message({ - // message: res.message, - // type: res.code === 200 ? 'success' : 'warning' - // }) - // }) + console.log(idArr instanceof Array); + const { statusArr } = this; + this.$confirm('鎮ㄧ‘瀹氳鎵归噺鍒犻櫎妗堜欢鍚�?') + .then(_ => { + this.$axios({ + method: 'delete', + url: 'sccg/base-case/batch_deletion?ids=' + idArr + '&type=' + statusArr[1], + }).then(res => { + if (res.code === 200) { + this.getUserList(); + this.$message({ + message: '鎵归噺鍒犻櫎妗堜欢鎴愬姛', + type: 'success' + }) + } else { + this.$message({ + message: res.data, + type: 'warning' + }) + } + }) + }) + .catch(err => { console.log(err) }) }, // 鎵ц涓嬫媺妗嗘搷浣� selectChange(list) { @@ -279,7 +305,7 @@ tableChange(list) { this.tempList = []; list.forEach(item => { - this.tempList.push(item.id); + this.tempList.push(item.code); }) if (list.length === this.tableData.length) { this.all = true; @@ -297,35 +323,13 @@ this.$refs.multipleTable.toggleRowSelection(row) }) }, - // 鍒犻櫎鍗曟潯鏁版嵁 - handleDelete({ number }) { - console.log(number); - this.$confirm('纭鍒犻櫎锛�') - .then(_ => { - console.log(1); - // this.$axios({ - // method: 'delete', - // url: `sccg/violations/delete?id=${number}`, - // }) - // .then(res => { - // console.log(res); - // this.$message({ - // type: res.code === 200 ? 'success' : 'warning', - // message: res.message - // }) - - // this.getUserList(); - // }) - }) - .catch(_ => { console.log(2) }); - }, // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { - const { currentPage, pageSize, context, statusArr } = this; + const { currentPage, pageSize, statusArr } = this; console.log(statusArr); this.$axios({ method: 'get', - url: `sccg/base-case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` + url: `sccg/base_case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` }).then(res => { this.totalNum = res.data.total; this.tableData = res.data.records; @@ -343,9 +347,8 @@ }, // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) handleFind(rowData) { - this.dialogView = true; - this.updateFlag = false; - this.userInfo = rowData; + // this.dialogView = true; + // this.userInfo = rowData; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { @@ -366,12 +369,15 @@ this.dialogNewAdd = val.dialogView; this.dialogCreate = val.dialogView; this.dialogView = val.dialogView; + this.dialogDispatch = val.dialogView; this.getUserList(); }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { this.dialogCreate = false; + this.dialogNewAdd = false; + this.dialogDispatch = false; this.dialogView = false; done(); }) @@ -389,7 +395,7 @@ this.typeList[0].checked = true; this.typeList[1].checked = false; this.statusArr[0] = this.tagList[idx].value; - this.statusArr[1] = 1; + this.statusArr[1] = 1; this.getUserList(); }, // 鏇存敼杩濊/杩濆缓 @@ -401,7 +407,7 @@ item.checked = false; } }) - this.mystatus = idx+1; + this.mystatus = idx + 1; this.statusArr[1] = this.typeList[idx].value; this.getUserList(); }, @@ -410,9 +416,10 @@ }, // 鑾峰彇妗堜欢淇℃伅 getEventInfo(code) { + console.log('鑾峰彇鍏蜂綋妗堜欢淇℃伅', code); this.$axios({ method: 'get', - url: `sccg/base-case/baseCaseDetail/${code}` + url: `sccg/base_case/baseCaseDetail/${code}` }) .then(res => { this.info = res.data; diff --git a/src/views/systemSetting/baseSetting/department/createUser/index.vue b/src/views/systemSetting/baseSetting/department/createUser/index.vue index d25ded5..26eaf15 100644 --- a/src/views/systemSetting/baseSetting/department/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/createUser/index.vue @@ -36,7 +36,7 @@ </div> <div class="scrollWrap"> <el-checkbox-group :max="3" v-model="checkedUser" @change="handleCheckedUserChange"> - <el-checkbox v-for="user in userList" :label="user.username" :key="user.id" :value="user.id"> + <el-checkbox v-for="user in userList" :label="user.id" :key="user.id"> {{user.username}} </el-checkbox> </el-checkbox-group> @@ -112,7 +112,7 @@ userList: [], departList: [], checkedUser: [], - openUser:false, + openUser: false, } }, created() { @@ -126,26 +126,27 @@ handleUser() { this.$refs.user.validate((valid) => { if (valid) { - const { depart } = this; + const { depart, checkedUser } = this; console.log(depart); - // this.$axios.post('/sccg/depart/create', { - // departName: depart.departName, - // parentId: depart.parentId, departType: depart.departType, departDes: depart.departDes - // }).then(res => { - // if (res.code === 200) { - // this.$message({ - // message:res.message, - // type:'success' - // }) - // this.refresh(); - // }else if(res.code ===2001){ - // this.$message({ - // message:res.message, - // type:'error' - // }) - // this.refresh(); - // } - // }) + console.log(checkedUser); + this.$axios.post('/sccg/depart/create', { + departName: depart.departName, + parentId: depart.parentId, departType: depart.departType, departDes: depart.departDes + }).then(res => { + if (res.code === 200) { + this.$message({ + message:res.message, + type:'success' + }) + this.refresh(); + }else if(res.code ===2001){ + this.$message({ + message:res.message, + type:'error' + }) + this.refresh(); + } + }) } else { return false; } @@ -171,23 +172,24 @@ if (res.code === 200) { console.log(res) this.userList = res.data.records; + console.log(this.userList); } }) }, handleCheckedUserChange(value) { // console.log(value); - if(value.length>3){ + if (value.length > 3) { console.log(this.checkedUser); this.$message({ - type:'warning', - message:'鏈�澶氬彧鑳芥坊鍔犱笁涓垚鍛�' + type: 'warning', + message: '鏈�澶氬彧鑳芥坊鍔犱笁涓垚鍛�' }) } // let checkedCount = value.length; // this.checkAll = checkedCount === this.cities.length; // this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length; }, - addUser(){ + addUser() { console.log(this.checkedUser); this.openUser = false; }, @@ -272,6 +274,7 @@ position: absolute; z-index: 2000; right: 0; + .box-card { max-height: 200px; overflow: hidden; diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue index 169b284..50a8b22 100644 --- a/src/views/systemSetting/baseSetting/department/index.vue +++ b/src/views/systemSetting/baseSetting/department/index.vue @@ -48,11 +48,8 @@ <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> <div class="operation"> - <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> --> <span @click="handleFind(scope.row)">鏌ョ湅</span> <span class="line">|</span> - <!-- <span>淇敼瀵嗙爜</span> --> - <!-- <span>鍒犻櫎</span> --> <span @click="handleUpdate(scope.row)">淇敼</span> <span class="line">|</span> <span @click="handleDelete(scope.row)">鍒犻櫎</span> @@ -116,6 +113,7 @@ all: false, unsame: false, myIdx: 0, + preMyIdx: 0, options: [ { value: 0, @@ -143,11 +141,50 @@ }, methods: { selectChange(list) { - console.log(list); console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.mulDelete(this.tempList); + } + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 澶氭潯鏁版嵁鍒犻櫎 + mulDelete(idArr) { + this.$confirm('鎮ㄧ‘瀹氳鎵归噺鍒犻櫎閮ㄩ棬鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/depart/batch_deletion?ids=' + idArr, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鎵归噺鍒犻櫎閮ㄩ棬鎴愬姛', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + }) + }) + .catch(err => { console.log(err) }); }, tableChange(list) { - this.tempList = list; + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) if (list.length === this.tableData.length) { this.all = true; } else { @@ -168,6 +205,7 @@ this.$refs.multipleTable.toggleRowSelection(row) }) }, + // 鍗曟潯鏁版嵁鍒犻櫎 handleDelete({ id }) { this.$confirm('纭鍒犻櫎锛�') .then(_ => { @@ -190,19 +228,15 @@ }) .catch(_ => { }); }, - // 淇敼瑙掕壊 - handleChangeRole(obj) { - this.dialogUpdate = true - this.user = obj; - // console.log(obj) - }, // 淇敼鐢ㄦ埛鐘舵�� handleChangeStatus(obj) { let { id, status } = obj; status == true ? status = 1 : status = 0; console.log(id, status); this.$axios.post(`sccg/depart/status`, { id: id, status: status }).then(res => { - console.log(res); + if (res.code == 200) { + this.getUserList(); + } }) }, // 鑾峰彇鐢ㄦ埛鍒楄〃 diff --git a/src/views/systemSetting/baseSetting/department/updateUser/index.vue b/src/views/systemSetting/baseSetting/department/updateUser/index.vue index e2cfc39..1c85622 100644 --- a/src/views/systemSetting/baseSetting/department/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/updateUser/index.vue @@ -135,6 +135,7 @@ this.$refs['user'].validate((valid) => { if (valid) { const { user } = this; + console.log(user) this.$axios.post('sccg/depart/update', { id: user.id, departName: user.departName, diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue index 1eca7a3..5b8931f 100644 --- a/src/views/systemSetting/baseSetting/role/index.vue +++ b/src/views/systemSetting/baseSetting/role/index.vue @@ -145,13 +145,18 @@ this.getUserList(); }, methods: { - selectChange(list) { + async selectChange(list) { console.log(this.tempList); if (this.tempList.length !== 0) { + this.preMyIdx = list; if (list === 3) { - this.preMyIdx = list; - this.handleDelete(this.tempList); + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); } + this.myIdx = 0; } else { this.myIdx = this.preMyIdx; this.$message({ @@ -159,6 +164,31 @@ message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', }) } + }, + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) }, tableChange(list) { this.tempList = []; @@ -309,10 +339,6 @@ }, changeDialog(val) { this.dialogUpdate = val.dialogUpdate; - this.$message({ - type:'success', - message:'鏇存敼鎴愬姛', - }) }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') diff --git a/src/views/systemSetting/baseSetting/role/updateUser/index.vue b/src/views/systemSetting/baseSetting/role/updateUser/index.vue index d0d18e1..5905a11 100644 --- a/src/views/systemSetting/baseSetting/role/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/role/updateUser/index.vue @@ -4,8 +4,9 @@ <div class="mainContent"> <div class="my-tree"> <div class="my-tree__wrap"> - <el-tree :data="roleList" :props="defaultProps" @node-click="handleNodeClick" show-checkbox - @check-change="handleCheckChange" default-expand-all node-key="id"> + <!-- @node-click="handleNodeClick" --> + <el-tree ref="tree" :data="roleList" :props="defaultProps" show-checkbox + @check="handleCheck" :default-checked-keys="checkedIds" default-expand-all node-key="id"> </el-tree> </div> <div class="my-tree__bottom"></div> @@ -41,6 +42,7 @@ }, created() { const that = this; + this.getRoleMenus(this.userInfo.id); this.getMenuList(); }, methods: { @@ -72,7 +74,6 @@ }) .then(res => { this.roleList = res.data; - console.log(res); }) }, // 鐐瑰嚮鏍戣妭鐐� @@ -83,31 +84,54 @@ this.treeId = id; }, - // 鏍戝舰鎺т欢閫変腑鏇存敼 - handleCheckChange(data, checked, indeterminate) { - // console.log(data,checked,indeterminate); - if (checked) { - this.checkedIds.push(data.id); - } else { - let index = 0; - this.checkedIds.forEach((item, idx) => { - if (item.id === data.id) { - index = idx; - } - }) - this.checkedIds.splice(index, 1); - } + // 鏍戝舰鎺т欢澶嶉�夋鐐瑰嚮浜嬩欢 + handleCheck(data, checked) { + console.log(checked.checkedKeys); + this.checkedIds = checked.checkedKeys; console.log(this.checkedIds); }, // 淇濆瓨role saveRole() { this.resCheckedIds = []; + const {userInfo} = this; this.resCheckedIds = this.checkedIds; - this.$emit('changeDialog',{dialogUpdate:false}); + this.$axios({ + method:'post', + url:'sccg/role/allocMenu?roleId='+userInfo.id + '&menuIds=' + this.checkedIds, + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'淇敼瑙掕壊鏉冮檺鎴愬姛', + }) + this.getRoleMenus(userInfo.id); + }else{ + this.$message({ + type:'warning', + message:res.message + }) + } + }) + // this.$emit('changeDialog',{dialogUpdate:false}); }, // 娑堥櫎role resetRole() { - this.resCheckedIds = [] + this.resCheckedIds = []; + this.$emit('changeDialog',{dialogUpdate:false}); + }, + // 鑾峰彇瑙掕壊鑿滃崟 + getRoleMenus(roleId){ + this.$axios({ + method:'get', + url:`sccg/role/listMenu/${roleId}` + }) + .then(res=>{ + this.checkedIds = []; + res.data.forEach(item=>{ + this.checkedIds.push(item.id); + }) + }) } }, props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog'] diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue index cfc5c00..cdf66b5 100644 --- a/src/views/systemSetting/baseSetting/user/components/main/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue @@ -4,7 +4,8 @@ <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" - :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> <el-table-column label="鐢ㄦ埛ID" min-width="4"> @@ -69,8 +70,8 @@ </div> <div class="funsItem"> <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> - <el-option v-for="item in options" :key="item.value" :label="item.label" - :value="item.value" :disabled="item.disabled"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" + :disabled="item.disabled"> </el-option> </el-select> </div> @@ -91,7 +92,7 @@ import MyPwd from '../password' export default { components: { - updateUser,MyPwd + updateUser, MyPwd }, data() { return { @@ -111,44 +112,118 @@ }, all: false, unsame: false, - myIdx:0, - options:[ + myIdx: 0, + preMyIdx: 0, + options: [ { - value:0, - label:'鎵归噺鎿嶄綔', - disabled:true, + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, }, { - value:1, - label:'鎵归噺鍚敤', + value: 1, + label: '鎵归噺鍚敤', }, { - value:2, - label:'鎵归噺绂佺敤', + value: 2, + label: '鎵归噺绂佺敤', }, { - value:3, - label:'鎵归噺鍒犻櫎', + value: 3, + label: '鎵归噺鍒犻櫎', } ], - tempList:[] + tempList: [] } }, created() { this.getUserList(); }, methods: { - selectChange(list){ - console.log(list); + async selectChange(list) { console.log(this.tempList); + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.mulDelte(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList,0); + } else { + await this.mulUpdateStatus(this.tempList,1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } }, - tableChange(list){ - this.tempList = list; - if(list.length===this.tableData.length){ + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + if (list.length === this.tableData.length) { this.all = true; - }else{ + } else { this.all = false } + }, + // 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 + mulDelte(idArr) { + console.log(idArr); + this.$confirm("鎮ㄧ‘瀹氳杩涜鎵归噺鍒犻櫎鐢ㄦ埛鍚�?") + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/admin/deleteBatch?ids=' + idArr, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鍒犻櫎鐢ㄦ埛淇℃伅鎴愬姛', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) + }, + // 鎵归噺淇敼璐﹀彿 + mulUpdateStatus(idArr,flag) { + console.log(flag); + this.$confirm( flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤鐢ㄦ埛鍚�?" :'鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤鐢ㄦ埛鍚�?' ) + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/admin/updateStatusBatch?ids=' + idArr + '&status='+flag, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) }, changeTime({ createTime }) { return helper(createTime); @@ -300,8 +375,10 @@ justify-content: space-between; align-items: center; padding: 0 20px; + .funs { display: flex; + .funsItem { line-height: 28px; display: flex; @@ -310,25 +387,30 @@ border-radius: 4px; font-size: 12px; margin-left: 10px; - .el-checkbox{ + + .el-checkbox { width: 80px; padding: 0 10px; } - .el-select{ + + .el-select { width: 120px; } - &::v-deep .el-input__inner{ + + &::v-deep .el-input__inner { border: none; background-color: #09152f; } - &:hover{ + + &:hover { border: 1px solid #4b9bb7; } - &:hover .el-checkbox{ + + &:hover .el-checkbox { color: #4b9bb7; } } - + } .pagination { @@ -345,7 +427,8 @@ background-color: #071f39; color: #4b9bb7; } - &::v-deep .active{ + + &::v-deep .active { background-color: #409eff; color: #fff; } diff --git a/src/views/systemSetting/platform/mySetting/create/index.vue b/src/views/systemSetting/platform/mySetting/create/index.vue new file mode 100644 index 0000000..5f7262a --- /dev/null +++ b/src/views/systemSetting/platform/mySetting/create/index.vue @@ -0,0 +1,44 @@ +<template> + <div class="add"> + <el-form :model="menu" ref="menu" label-width="120px" :rules="rules"> + <!-- 鑿滃崟鍚嶇О --> + <el-form-item label="鑿滃崟鍚嶇О:" prop="title"> + <el-input v-model="menu.title"></el-input> + </el-form-item> + <!-- 鏄剧ず鐘舵�� --> + <el-form-item label="鏄剧ず鐘舵��:" prop="hidden"> + <el-input v-model="menu.hidden"></el-input> + </el-form-item> + <!-- 鑿滃崟鍚嶇О --> + <el-form-item label="鑿滃崟鍚嶇О" prop="name"> + <el-input v-model="menu.name"></el-input> + </el-form-item> + </el-form> + </div> +</template> +<script> +export default { + data() { + return { + menu: { + createTime: "", + description: "", + hidden: 0, + icon: "", + id: 0, + level: 0, + name: "", + parentId: 0, + sort: 0, + title: "" + }, + rules: { + + } + } + } +} +</script> +<style lang="scss" scoped> + +</style> \ No newline at end of file diff --git a/src/views/systemSetting/platform/mySetting/index.vue b/src/views/systemSetting/platform/mySetting/index.vue index 423859c..bf97be8 100644 --- a/src/views/systemSetting/platform/mySetting/index.vue +++ b/src/views/systemSetting/platform/mySetting/index.vue @@ -2,67 +2,161 @@ <div class="mySetting"> <!-- header 椤甸潰鏍囬鎻愮ず --> <header> - <div class="headerTitle">绯荤粺璁剧疆 >> 闂ㄦ埛绠$悊 > 鑷畾涔夎彍鍗曡缃�</div> + <div class="header-title">绯荤粺璁剧疆 >> 闂ㄦ埛绠$悊 > 鑷畾涔夎彍鍗曡缃�</div> + <div class="header-add"> + <el-button type="primary" @click="handleAdd">鏂板鑿滃崟</el-button> + </div> </header> <main> - <div class="mainContent"> + <div class="main-content"> <!-- 鏁版嵁灞曠ず --> - <el-table ref="multipleTable" + <!-- <el-table ref="multipleTable" :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" :data="menuList" style="width: 100%" row-key="id" :row-class-name="tableRowClassName"> <el-table-column type="selection" min-width="5"> </el-table-column> <el-table-column prop="title" label="鑿滃崟鏍�" min-width="75"> - <el-tree :data="menuList" node-key="id" :default-expanded-keys="[0]" - :default-checked-keys="[0]" :props="defaultProps"> - </el-tree> + <template slot-scope="scope"> + <el-tree :data="scope.row.menuVoArrayList" node-key="id" :default-expanded-keys="[0]" + :default-checked-keys="[0]" :props="defaultProps"> + </el-tree> + </template> </el-table-column> <el-table-column label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> <div class="operation"> - <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> --> - <span @click="handleFind(scope.row)">鏌ョ湅</span> + <span @click="handleAdd(scope.row)">鏂板</span> <span class="line">|</span> - <!-- <span>淇敼瀵嗙爜</span> --> - <!-- <span>鍒犻櫎</span> --> - <span @click="handleUpdate(scope.row)">淇敼瑙掕壊</span> + <span @click="handleEdit(scope.row)">缂栬緫</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> </div> </template> </el-table-column> - </el-table> - <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '淇敼瑙掕壊淇℃伅' :'鏌ョ湅瑙掕壊淇℃伅'" - v-if="dialogUpdate"> - - </el-dialog> + </el-table> --> + <el-row class="my-container"> + <el-col :span="6" class="my-aside"> + <el-tree :data="menuList" @node-click="handleNodeClick" :props="defaultProps" accordion + node-key="id"> + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button type="text" size="mini" @click="handleEdit(data)"> + 缂栬緫 + </el-button> + <el-button type="text" size="mini" @click="handleDelete(data)"> + 鍒犻櫎 + </el-button> + </span> + </span> + </el-tree> + </el-col> + <el-col :span="18" class="my-content" v-if="article.title"> + <div class="my-header">鑿滃崟绠$悊-{{article.title}} + </div> + <div class="my-name"> + <div class="my-show__left">鍚嶇О:</div> + <div class="my-show__right">{{article.title}}</div> + </div> + <div class="my-desc"> + <div class="my-show__left">鎻忚堪:</div> + <div class="my-show__right">{{article.title}}</div> + </div> + <div class="my-show"> + <div class="my-show__left">鏄惁鏄剧ず鑿滃崟:</div> + <div class="my-show__right"> + <el-switch class="switchStyle" v-model="article.hidden" active-text="寮�" + inactive-text="鍏�" active-color="#3fef9a" inactive-color="#000212" + @change="handleChangeStatus(article)"> + </el-switch> + </div> + </div> + </el-col> + </el-row> </div> </main> + <footer> + <!-- 鏂板寮圭獥 --> + <el-dialog title="鎻愮ず" :visible.sync="dialogAdd" v-if="dialogAdd" width="45%" :before-close="handleClose"> + <MyAdd></MyAdd> + </el-dialog> + </footer> </div> </template> <script> -import helper from "@/utils/mydate.js" +import MyAdd from './create' export default { + components: { + MyAdd + }, data() { return { menuList: [], - article: [], + article: {}, defaultProps: { children: 'menuVoArrayList', label: 'title' }, - count: 1, - menuList: [], - context: "", - dialogCreate: false, - dialogUpdate: false, - updateFlag: false, - userInfo: '', + dialogAdd: false, } }, created() { this.getMenuList(); }, methods: { + // 鐐瑰嚮鑺傜偣 + handleNodeClick(data) { + this.article = { ...data }; + this.article.hidden === 0 ? this.article.hidden = false : this.article.hidden = true + }, + // 淇敼鐘舵�� + handleChangeStatus(data) { + console.log(data); + data.hidden ? data.hidden = 1 : data.hidden = 0; + this.$axios({ + method: 'post', + url: `sccg/menu/updateHidden/${data.id}` + '?hidden=' + data.hidden + }) + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'error', + message: res.message + }) + this.getMenuList(); + this.article = {}; + }) + }, + // 鏂板 + handleAdd() { + this.dialogAdd = true; + }, + // 缂栬緫 + handleEdit(data) { + console.log(data); + }, + //鍒犻櫎 + handleDelete(data) { + console.log(data); + this.$confirm('鎮ㄧ‘璁よ鍒犻櫎璁㈠崟鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: `sccg/menu/delete/${data.id}` + }) + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'error', + message: res.code === 200 ? '鍒犻櫎鑿滃崟鎴愬姛' : res.message + }) + if (res.code === 200) { + this.getMenuList(); + } + }) + }) + .catch(err => { + console.log(err); + }) + }, // 鑾峰彇鑿滃崟鍒楄〃 getMenuList() { this.$axios({ @@ -70,63 +164,18 @@ url: 'sccg/system/portal/menu/search', }).then(res => { this.menuList = res.data.records; - this.getContent(0); + console.log(this.menuList); }) }, - // 鍒囨崲鑿滃崟鍐呭灞曠ず - getContent(index, sonIndex = null) { - if (sonIndex === null) { - this.article = this.menuList[index]; - - return; - } - this.article = this.menuList[index].menuVoArrayList[sonIndex]; - }, - // 璁剧疆琛ㄦ牸鏂戦┈绾� - tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { - return 'warning-row'; - } else { - return 'success-row'; - } - return ''; - }, - handleCheckChange(data, checked, indeterminate) { - console.log(data, checked, indeterminate); - }, - handleNodeClick(data) { - console.log(data); - }, - loadNode(node, resolve) { - if (node.level === 0) { - return resolve([{ name: 'region1' }, { name: 'region2' }]); - } - if (node.level > 3) return resolve([]); - - var hasChild; - if (node.data.name === 'region1') { - hasChild = true; - } else if (node.data.name === 'region2') { - hasChild = false; - } else { - hasChild = Math.random() > 0.5; - } - - setTimeout(() => { - var data; - if (hasChild) { - data = [{ - name: 'zone' + this.count++ - }, { - name: 'zone' + this.count++ - }]; - } else { - data = []; - } - - resolve(data); - }, 500); - } + // 鍏抽棴寮圭獥 + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogAdd = false + done(); + }) + .catch(_ => {}); + } } } @@ -140,6 +189,15 @@ header { line-height: 60px; padding: 0 20px; + display: flex; + justify-content: space-between; + align-items: center; + .header-add{ + .el-button{ + background-color: #eb5d01; + border: none; + } + } } main { @@ -148,49 +206,45 @@ padding-bottom: 50px; border: 1pox solid #fff; - .mainTitle { - line-height: 60px; - } + .main-content { + .my-container { + ::v-deep .el-tree-node__content { + height: 36px; + } - .el-table { - color: #4b9bb7; - font-size: 10px; - - &::v-deep .el-table__cell { - text-align: center; + ::v-deep .el-tree-node__label { + line-height: 20px; + } } - &::v-deep .el-table__empty-block { - background-color: #09152f; - color: #4b9bb7; - } - &::v-deep .el-table__row:hover{ - background-color: #4b9bb7; - } - .el-tree { - background-color: #071f39; - } - - .operation { + .my-header { + line-height: 60px; display: flex; justify-content: center; - - .line { - padding: 0 5px; - } - - span:hover { - cursor: pointer; - } } - } - .el-table::v-deep .warning-row { - background: #06122c; - } + .my-name, + .my-desc, + .my-show { + line-height: 40px; + display: flex; + justify-content: center; + align-items: center; + } - .el-table::v-deep .success-row { - background: #071f39; + .my-show__right { + margin-left: 10px; + } + + .custom-tree-node { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + line-height: 20px; + padding-right: 8px; + } } &::v-deep .switchStyle .el-switch__label { -- Gitblit v1.8.0