From 797cc9c1a5c90f413d46c5cb88e1ee5e3a84b071 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期二, 04 十月 2022 11:51:05 +0800 Subject: [PATCH] 修改用户只能分配单一角色 --- src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue | 185 + src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/ill/index.vue | 48 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue | 6 src/views/login/index.vue | 4 src/views/operate/myWait/index.vue | 611 +++- src/views/layout/components/Menu/index.vue | 2 src/views/operate/disposal/casepool/learn/updateUser/uploadResult/ill/index.vue | 48 src/views/operate/myWait/updateUser/index.vue | 195 + src/views/operate/disposal/casepool/learn/index.vue | 597 +++++ src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/book/index.vue | 96 src/views/operate/disposal/casepool/notDeal/index.vue | 679 ++++- src/views/operate/disposal/casepool/notDeal/updateUser/index.vue | 234 ++ src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 70 src/views/operate/disposal/casepool/notDeal/createUser/index.vue | 195 + src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue | 185 + src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue | 627 +++++ src/views/operate/myWait/createUser/index.vue | 230 ++ src/components/process/index.vue | 12 src/views/operate/management/myIndex/components/examine/index.vue | 286 ++ src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue | 627 +++++ src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue | 112 src/components/dispatch/index.vue | 13 src/views/operate/disposal/casepool/learn/updateUser/uploadResult/vio/index.vue | 123 + src/router/index.js | 5 src/views/operate/disposal/casepool/dispatch/index.vue | 12 src/views/operate/disposal/casepool/learn/updateUser/index.vue | 234 ++ src/utils/request.js | 23 /dev/null | 246 -- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue | 4 src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/vio/index.vue | 123 + src/views/operate/disposal/casepool/learn/createUser/index.vue | 195 + src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/book/index.vue | 96 src/views/operate/management/myIndex/index.vue | 288 +- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue | 389 +++ 34 files changed, 6,014 insertions(+), 786 deletions(-) diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue index ebef391..a9fe5b6 100644 --- a/src/components/dispatch/index.vue +++ b/src/components/dispatch/index.vue @@ -55,11 +55,15 @@ <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> + <el-button type="primary">鍙戦�佺煭淇�</el-button> </div> </el-form> <div class="map"> - <!-- <MyMap></MyMap> --> + <MyMap></MyMap> + </div> + <div class="footer"> + <el-button type="primary" @click="handleDispatch">纭畾</el-button> + <el-button>杩斿洖</el-button> </div> </div> </template> @@ -273,5 +277,10 @@ height: 388px; width: 100%; } + .footer{ + display: flex; + justify-content: flex-end; + padding: 10px 20px; + } } </style> \ No newline at end of file diff --git a/src/components/process/index.vue b/src/components/process/index.vue index 3897b71..3c71714 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -27,10 +27,10 @@ v-if="index<list.length-1 ? true:false"></div> </div> <div class="desc"> - <div class="desc-title">鐜妭鐢ㄦ椂:</div> + <div class="desc-title">鐜妭鐢ㄦ椂:{{item.disposeRecord.linkTime}}</div> <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 class="desc-content-endtime">{{item.disposeRecord.endTime}}</div> </div> </div> </div> @@ -41,7 +41,7 @@ export default { data() { return { - active: 2, + active: 0, list: [ { title: '涓婃姤', @@ -76,6 +76,12 @@ const {handlePassVo:{workflowConfigSteps:mylist}} = this; // console.log(this.handlePassVo.workflowConfigSteps[0].name); console.log(mylist); + mylist.forEach(item=>{ + if(item.disposeRecord.endTime != null){ + this.active ++; + console.log(1); + } + }) this.list = mylist; } } diff --git a/src/router/index.js b/src/router/index.js index 60ad75a..fb17ea5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -109,6 +109,11 @@ name: 'notDeal', component: () => import('@/views/operate/disposal/casepool/notDeal'), }, + { + path: 'learn', + name: 'learn', + component: () => import('@/views/operate/disposal/casepool/learn'), + }, ] }, { diff --git a/src/utils/request.js b/src/utils/request.js index 05a07ae..d6da1bf 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,24 +1,31 @@ import axios from 'axios'; +import router from '@/router' const api = axios.create({ - baseURL: 'http://42.193.1.25:8082/', // 璇锋眰鐨勫叕鍏卞湴鍧�閮ㄥ垎 + baseURL: 'http://42.193.1.25:8082/', // 璇锋眰鐨勫叕鍏卞湴鍧�閮ㄥ垎 }) // 鎷︽埅鍣� // 璇锋眰 -api.interceptors.request.use((config)=>{ +api.interceptors.request.use((config) => { const token = sessionStorage.getItem('token'); const tokenHead = sessionStorage.getItem('tokenHead'); - if(token && tokenHead){ - config.headers.Authorization = tokenHead+token; - } + if (token && tokenHead) { + config.headers.Authorization = tokenHead + token; + } return config; -}) +},(err)=>{ + console.log(err); +} +) // 鍝嶅簲 api.interceptors.response.use( function (response) { return response.data; }, function (error) { - return Promise.reject(error); + const {code} = error.response.data; + if(code === 401){ + router.push('/login'); + } } -); +); export default api; \ No newline at end of file diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index 13e63b8..01e779d 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -86,7 +86,7 @@ <el-menu-item index="/home/operate/casepool/pool">妗堜欢姹�</el-menu-item> <el-menu-item index="/home/operate/casepool/escalation">涓婃姤绠$悊</el-menu-item> <el-menu-item index="/home/operate/casepool/dispatch">璋冨害绠$悊</el-menu-item> - <el-menu-item index="/home/operate/casepool">鍐嶅涔犵鐞�</el-menu-item> + <el-menu-item index="/home/operate/casepool/learn">鍐嶅涔犵鐞�</el-menu-item> <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item> </el-submenu> <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 99a1c36..f4982b5 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -130,7 +130,9 @@ console.log(response); sessionStorage.setItem('token',response.data.token); // 淇濆瓨token - sessionStorage.setItem('tokenHead',response.data.tokenHead) + sessionStorage.setItem('tokenHead',response.data.tokenHead); + // 淇濆瓨鐢ㄦ埛鐧诲綍鍚� + sessionStorage.setItem('name',username) // 璺宠浆鍒伴椤� that.$router.push("/home"); }else{ diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index aea627e..a6f781c 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -74,8 +74,8 @@ <!-- 涓婁紶椤甸潰 --> <el-dialog :visible.sync="dialogUpload" width="60%" title="涓婁紶澶勭疆缁撴灉" v-if="dialogUpload" :before-close="handleClose"> - <uploadVio v-if="mystatus === 0"></uploadVio> - <uploadIll v-else></uploadIll> + <uploadVio v-if="mystatus === 0" :caseId="caseId" @closeDialog="closeDialog"></uploadVio> + <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll> </el-dialog> <!-- tools --> <div class="tools"> @@ -164,6 +164,7 @@ ], statusArr:[], mystatus:0, + caseId:'', } }, created() { @@ -332,7 +333,12 @@ }, opernDialog(data){ this.dialogUpload = true; - console.log(data); + this.caseId = data.id; + // console.log(data); + }, + // 鍏抽棴涓婁紶鐣岄潰 + closeDialog({flag}){ + this.dialogUpload = flag; } } } 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 index 52f1ccc..858e326 100644 --- 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 @@ -104,6 +104,7 @@ fileList: [], } }, + props:['getArrive'], methods: { handleSuccess(res, file, filelist) { const baseUrl = 'http://140.143.152.226:8410/'; @@ -119,6 +120,11 @@ return { Authorization: tokenHead + token } } }, + // 鑾峰彇arrive瀵硅薄 + backData(){ + const { arrive } = this; + this.$emit('getArrive',{arrive}); + } } } </script> 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 index c46a150..d6606bb 100644 --- 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 @@ -25,7 +25,7 @@ <el-input v-model="evidence.caseAction" placeholder="璇疯緭鍏ユ鐢�"></el-input> </el-form-item> <!-- 褰撲簨浜轰俊鎭� --> - <el-form-item label="褰撲簨浜轰俊鎭�"> + <el-form-item label="褰撲簨浜轰俊鎭�:" prop="userInfo"> <el-input suffix-icon="el-icon-s-order" @focus="openDialog"></el-input> </el-form-item> <!-- 鎯呭喌鎻忚堪 --> @@ -51,11 +51,89 @@ </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 class="user-form" v-show="userFlag"> + <div class="user-form-header"> + <span>璋冨害淇℃伅</span> + <i class="el-icon-close" @click="closeUserForm"></i> + </div> + <div class="user-form-content"> + <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on"> + <!-- 杩濇硶绫诲瀷 --> + <el-form-item label="绫诲瀷:" prop="illegalType"> + <el-select v-model="user.illegalType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 濮撳悕銆佹墜鏈哄彿 --> + <div class="user-item"> + <!-- 濮撳悕 --> + <el-form-item label="褰撲簨浜哄鍚�:" prop="name"> + <el-input v-model="user.name"></el-input> + </el-form-item> + <!-- 鎵嬫満鍙� --> + <el-form-item label="鎵嬫満鍙风爜:" prop="phoneCode"> + <el-input v-model="user.phoneCode"></el-input> + </el-form-item> + </div> + <!-- 璇佷欢 --> + <div class="user-item"> + <el-form-item label="璇佷欢绫诲瀷:" prop="certificateType"> + <el-select v-model="user.certificateType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in cardOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇佷欢鍙风爜:" prop="certificateCode"> + <el-input v-model="user.certificateCode"></el-input> + </el-form-item> + </div> + <!-- 鏂囧寲绋嬪害\鑱屼笟 --> + <div class="user-item"> + <!-- 鏂囧寲绋嬪害 --> + <el-form-item label="鏂囧寲绋嬪害:" prop="educationDegree"> + <el-select v-model="user.educationDegree" placeholder="璇烽�夋嫨"> + <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 鑱屼笟 --> + <el-form-item label="鑱屼笟:" prop="career"> + <el-input v-model="user.career"></el-input> + </el-form-item> + </div> + <!-- 宸ヤ綔鍗曚綅鍙婅亴鍔� --> + <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:" prop="work"> + <el-input v-model="user.work"></el-input> + </el-form-item> + <!-- 姘戞棌\绫嶈疮 --> + <div class="user-item"> + <!-- 姘戞棌 --> + <el-form-item label="姘戞棌:" prop="nation"> + <el-input v-model="user.nation"></el-input> + </el-form-item> + <!-- 绫嶈疮 --> + <el-form-item label="绫嶈疮:" prop="nativePlace"> + <el-input v-model="user.nativePlace"></el-input> + </el-form-item> + </div> + <!-- 鐜颁綇鍧� --> + <el-form-item label="鐜颁綇鍧�:" prop="liveAddress"> + <el-input v-model="user.liveAddress"></el-input> + </el-form-item> + <!-- 鎴风睄鎵�鍦ㄥ湴 --> + <el-form-item label="鎴风睄鎵�鍦ㄥ湴:" prop="registerAddress"> + <el-input v-model="user.registerAddress"></el-input> + </el-form-item> + </el-form> + </div> + <div class="user-form-footer"> + <el-button type="primary" @click="checkUser">纭畾</el-button> + <el-button>杩斿洖</el-button> + </div> </div> </div> </template> @@ -111,11 +189,106 @@ callback(); } } + const checkIll = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('妗堜欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkName3 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('褰撲簨浜哄鍚嶄笉鑳戒负绌�')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + const checkCard = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkCode = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢鍙风爜涓嶈兘涓虹┖')); + } + } + const checkWh = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鏂囧寲绋嬪害涓嶈兘涓虹┖')); + } + } + const checkCareer = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鑱屼笟涓嶈兘涓虹┖')); + } + } + const checkWork = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('宸ヤ綔鍗曚綅鍙婅亴鍔′笉鑳戒负绌�')); + } + } + const checkNation = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('姘戞棌涓嶈兘涓虹┖')); + } + } + const checkNaP = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('绫嶈疮涓嶈兘涓虹┖')); + } + } + const checkLiveAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鐜颁綇鍧�涓嶈兘涓虹┖')); + } + } + const checkRegAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎴风睄鎵�鍦ㄥ湴涓嶈兘涓虹┖')); + } + } + const checkFlag = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鐢ㄦ埛淇℃伅涓嶈兘涓虹┖')) + } + } return { evidence: { - pic: [] + pic: [], + userInfo: false, }, evidenceRules: { + userInfo: [ + { trigger: 'change', validator: checkFlag } + ], undertaker: [ { trigger: 'blur', validator: checkName @@ -153,10 +326,124 @@ ], }, fileList: [], - user: {}, - dialogUser: false, + user: { + illegalType: '', + name: '', + phoneCode: '', + certificateType: '', + certificateCode: '', + educationDegree: '', + career: '', + work: '', + nation: '', + nativePlace: '', + liveAddress: '', + registerAddress: '', + }, + userRules: { + illegalType: [ + { + trigger: 'change', validator: checkIll, + } + ], + name: [ + { + trigger: 'blur', validator: checkName3 + } + ], + phoneCode: [ + { + trigger: 'blur', validator: checkPhone + } + ], + certificateType: [ + { + trigger: 'change', validator: checkCard + } + ], + certificateCode: [ + { + trigger: 'blur', validator: checkCode + } + ], + educationDegree: [ + { + trigger: 'change', validator: checkWh + } + ], + career: [ + { + trigger: 'blur', validator: checkCareer + } + ], + work: [ + { + trigger: 'blur', validator: checkWork + } + ], + nation: [ + { + trigger: 'blur', validator: checkNation + } + ], + nativePlace: [ + { + trigger: 'blur', validator: checkNaP + } + ], + liveAddress: [ + { + trigger: 'blur', validator: checkLiveAdd + } + ], + registerAddress: [ + { + trigger: 'blur', validator: checkRegAdd + } + ], + }, + userFlag: false, + typeOptions: [ + { + label: '杩濇硶', + value: 1, + }, + { + label: '杩濆缓', + value: 2 + } + ], + cardOptions: [ + { + label: '韬唤璇�', + value: 1, + }, + { + label: '鍏朵粬', + value: 2 + } + ], + degreeOptions:[ + { + label:'灏忓', + value:1 + }, + { + label:'鍒濅腑', + value:2 + }, + { + label:'楂樹腑', + value:3 + }, + { + label:'澶у鍙婁互涓�', + value:4 + }, + ] } }, + props:['getEvidence'], methods: { handleSuccess2(res, file, filelist) { const baseUrl = 'http://140.143.152.226:8410/'; @@ -174,24 +461,39 @@ }, // 鎵撳紑褰撲簨浜轰俊鎭~鍐欒〃 openDialog(e) { - this.dialogUser = true + this.userFlag = true; + this.userInfo = true; }, - // 鍏抽棴褰撲簨浜轰俊鎭� - handleClose(done) { - this.$confirm('纭鍏抽棴锛�') - .then(_ => { - this.dialogUser = false; - done(); - }) - .catch(_ => { }); + // 妫�楠寀ser + checkUser() { + // console.log(this.$refs.userForm.validate); + this.$refs.userForm.validate((valid) => { + console.log(valid); + if (valid) { + this.evidence.userInfo = true; + this.userFlag = false; + } else { + this.evidence.userInfo = false; + return false; + } + }) }, + // 鍏抽棴褰撲簨浜轰俊鎭晫闈� + closeUserForm(){ + this.userFlag = false; + }, + // 杩斿洖褰撳墠evidence鍜寀ser瀵硅薄 + backData(){ + const {user,evidence} = this; + this.$emit('getEvidence',{user,evidence}); + } } } </script> <style lang="scss" scoped> .evidence { line-height: 60px; - + position: relative; .evidence-title { line-height: 60px; font-weight: 650; @@ -233,6 +535,55 @@ background-color: #fbfdff; border-radius: 4px; } +.user-form{ + position: absolute; + top: 0; + z-index: 3000; + background-color: #06122c; + .user-form-header{ + background-color: #fff; + color: #4b9bb7; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + } + padding-bottom: 60px; +} +.user-form-content { + padding-top:20px; + + .user-item { + display: flex; + + .el-input { + flex: 1; + } + } + + ::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-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} + +.user-form-footer { + display: flex; + justify-content: flex-end; +} ::v-deep .el-textarea__inner { background-color: #09152f; 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 14f56ae..b74dfdb 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 @@ -26,6 +26,10 @@ } }, + props:['caseId'], + created(){ + console.log(this.caseId); + }, methods:{ handleSubmit(){ 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 2548905..350eb59 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,9 +1,9 @@ <template> <div class="vio"> <!-- 鍒拌揪鐜板満鎯呭喌 --> - <MyArrive ref="arrive"></MyArrive> + <MyArrive ref="arrive" @getArrive="getArrive"></MyArrive> <!-- 璋冩煡鍙栬瘉 --> - <MyEvidence ref="evidence"></MyEvidence> + <MyEvidence ref="evidence" @getEvidence="getEvidence"></MyEvidence> <!-- 搴曢儴鎸夐挳 --> <div class="footer"> <el-button @click="handleSubmit" type="primary">纭畾</el-button> @@ -15,49 +15,109 @@ import MyArrive from '../components/arrive' import MyEvidence from "../components/evidence" export default { - components:{ - MyArrive,MyEvidence + components: { + MyArrive, MyEvidence }, data() { return { } }, - 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{ + props: ['caseId', 'closeDialog'], + created() { + console.log(this.caseId); + }, + methods: { + handleSubmit() { + const { arrive, evidence } = this.$refs; + const { arriveForm } = arrive.$refs; + const { evidenceForm } = evidence.$refs; + // console.log(evidence.$refs); + arriveForm.validate((valid) => { + // console.log(valid); + if (valid) { + evidenceForm.validate((flag) => { + if (flag) { + // arrive.arrive;evidence.user;evidence.evidence; + this.$axios({ + method: 'post', + url: `sccg/dispatch_handle/addition_dispose_result/${this.caseId}/${1}`, + data:{ + arrivalAddress: arrive.arrive.arrivalAddress, + arrivalTime: arrive.arrive.arrivalTime, + situationExplain: arrive.arrive.situationExplain, + replyExplain: arrive.arrive.replyExplain, + situationPic: `${arrive.arrive.situationPic}`, + // + undertaker: evidence.evidence.undertaker, + assistant: evidence.evidence.assistant, + investigationTime: evidence.evidence.investigationTime, + address: evidence.evidence.address, + caseAction: evidence.evidence.caseAction, + description: evidence.evidence.description, + pic: `${evidence.evidence.pic}`, + // + illegalType: evidence.user.illegalType, + name: evidence.user.name, + phoneCode: evidence.user.phoneCode, + certificateType: `${evidence.user.certificateType}`, + certificateCode: evidence.user.certificateCode, + educationDegree: `${evidence.user.educationDegree}`, + career: evidence.user.career, + work: evidence.user.work, + nation: evidence.user.nation, + nativePlace: evidence.user.nativePlace, + liveAddress: evidence.user.liveAddress, + registerAddress: evidence.user.registerAddress, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message:'涓婁紶鎴愬姛', + }) + this.$emit('closeDialog', { flag: false }); + }else{ + this.$message({ + type:'warning', + message:res.message + }) + } + }) + } else { return false; } }) - }else{ - evidenceForm.validate((flag)=>{ - if(!flag){ + } else { + evidenceForm.validate((flag) => { + if (!flag) { return false; } }) return false; } }) + }, + // 鑾峰緱arrive鐨勪俊鎭� + getArrive(obj) { + console.log(obj); + }, + // 鑾峰緱evidence瀵硅薄 + getEvidence(obj) { + console.log(obj); } } } </script> <style lang="scss" scoped> - .vio{ - padding: 20px 200px; - } +.vio { + padding: 20px 200px; +} + .footer { - display: flex; - justify-content: flex-end; - } + display: flex; + justify-content: flex-end; +} </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/learn/createUser/index.vue b/src/views/operate/disposal/casepool/learn/createUser/index.vue new file mode 100644 index 0000000..b609337 --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/createUser/index.vue @@ -0,0 +1,195 @@ +<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> +</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; + }) + }, + // 鏌ヨ鎵�灞炲ぇ绫� + 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; + }) + } + }, + props: ['getUserList'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + 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; + } + } + + } + } + + &::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; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/learn/index.vue b/src/views/operate/disposal/casepool/learn/index.vue new file mode 100644 index 0000000..ef93627 --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/index.vue @@ -0,0 +1,597 @@ +<template> + <div class="userList"> + <header> + <div class="headerContent"> + <div class="search"> + <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> + </header> + <main> + <div class="mainContent"> + <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> + <!-- 鏁版嵁灞曠ず --> + <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"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="id" label="浜嬩欢缂栧彿" min-width="10"> + <template slot-scope="scope"> + <el-link @click="JumpView(scope.row)">{{scope.row.id}}</el-link> + </template> + </el-table-column> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <div class="btn"> + <span @click="opernDialog(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> --> + <!-- 璇︽儏椤靛睍绀� --> + <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="60%" title="涓婁紶澶勭疆缁撴灉" + v-if="dialogUpload" :before-close="handleClose"> + <uploadVio v-if="mystatus === 0" :caseId="caseId" @closeDialog="closeDialog"></uploadVio> + <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </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> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +// 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,MyDetail + }, + data() { + return { + tableData: [], + context: "", + dialogUpload:false, + dialogView:false, + info: {}, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx:0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + typeList: [ + { + name: '杩濊', + value: 1, + checked: true + }, + { + name: '杩濆缓', + value: 2, + checked: false, + }, + ], + statusArr:[], + mystatus:0, + caseId:'', + } + }, + created() { + this.statusArr[0] = 3; + 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(); + }, + // 鎵归噺鍒犻櫎 + 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' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + 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.forEach(item => { + this.tempList.push(item.code); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + 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; + console.log(statusArr); + this.$axios({ + method: 'get', + 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); + }) + }, + // 鏇存敼杩濊/杩濆缓 + 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(); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpload = false; + // this.dialogUpdate = false; + done(); + }) + .catch(_ => { }); + }, + async JumpView(data){ + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code){ + this.$axios({ + method:'get', + url:`sccg/base_case/baseCaseDetail/${code}` + }) + .then(res=>{ + this.info = res.data; + this.dialogView = true; + }) + }, + opernDialog(data){ + this.dialogUpload = true; + this.caseId = data.id; + // console.log(data); + }, + // 鍏抽棴涓婁紶鐣岄潰 + closeDialog({flag}){ + this.dialogUpload = flag; + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + header { + background-color: #09152f; + border: 1pox solid #fff; + + .headerContent { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + + .addBtn { + background-color: #eb5d01; + border: none; + border-radius: 20px; + padding: 12px 30px; + } + } + } + &::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; + + .type-nav { + display: flex; + line-height: 40px; + margin-left: 30px; + padding-top: 10px; + margin-bottom: 10px; + + .type-item { + width: 80px; + text-align: center; + + &:hover { + cursor: pointer; + } + } + + .is-active { + background-color: #070f22; + border-radius: 4px; + color: #fff; + } + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border: 1px solid #17324c; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .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; + } + } + .line{ + padding: 0 5px; + } + &::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/learn/updateUser/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/index.vue new file mode 100644 index 0000000..47a6bad --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/updateUser/index.vue @@ -0,0 +1,234 @@ +<template> + <div class="view"> + <div class="view-data"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂绫诲瀷: + </label> + <span class="data-detail">杩濊</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 澶х被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 灏忕被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 浜嬩欢绛夌骇: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 妗堢敱: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炲尯鍘�: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鎵�灞炵ぞ鍖�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炶閬�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 浜嬪彂鍦扮偣: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍏宠仈鍟嗛摵鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂鎻忚堪: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-user"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍙嶆槧浜�: + </label> + <span class="data-detail">寮犱簩</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鑱旂郴鏂瑰紡: + </label> + <span class="data-detail">12345678901</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 韬唤璇佸彿: + </label> + <span class="data-detail">123456789987654321</span> + </div> + </div> + </div> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3"></MySovleProblem> + <MyScene v-else></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from './process' +import MyFilePicture from './filePictrue' +import MySovleProblem from './solveProblem' +import MyScene from './scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ] + } + }, + created() { + + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + } + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 0 30px 0 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + .show-wrap{ + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue new file mode 100644 index 0000000..858e326 --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue @@ -0,0 +1,185 @@ +<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: [], + } + }, + props:['getArrive'], + 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 } + } + }, + // 鑾峰彇arrive瀵硅薄 + backData(){ + const { arrive } = this; + this.$emit('getArrive',{arrive}); + } + } +} +</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/learn/updateUser/uploadResult/components/book/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/book/index.vue new file mode 100644 index 0000000..a4903eb --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/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/learn/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue new file mode 100644 index 0000000..d6606bb --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue @@ -0,0 +1,627 @@ +<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="褰撲簨浜轰俊鎭�:" prop="userInfo"> + <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" v-show="userFlag"> + <div class="user-form-header"> + <span>璋冨害淇℃伅</span> + <i class="el-icon-close" @click="closeUserForm"></i> + </div> + <div class="user-form-content"> + <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on"> + <!-- 杩濇硶绫诲瀷 --> + <el-form-item label="绫诲瀷:" prop="illegalType"> + <el-select v-model="user.illegalType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 濮撳悕銆佹墜鏈哄彿 --> + <div class="user-item"> + <!-- 濮撳悕 --> + <el-form-item label="褰撲簨浜哄鍚�:" prop="name"> + <el-input v-model="user.name"></el-input> + </el-form-item> + <!-- 鎵嬫満鍙� --> + <el-form-item label="鎵嬫満鍙风爜:" prop="phoneCode"> + <el-input v-model="user.phoneCode"></el-input> + </el-form-item> + </div> + <!-- 璇佷欢 --> + <div class="user-item"> + <el-form-item label="璇佷欢绫诲瀷:" prop="certificateType"> + <el-select v-model="user.certificateType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in cardOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇佷欢鍙风爜:" prop="certificateCode"> + <el-input v-model="user.certificateCode"></el-input> + </el-form-item> + </div> + <!-- 鏂囧寲绋嬪害\鑱屼笟 --> + <div class="user-item"> + <!-- 鏂囧寲绋嬪害 --> + <el-form-item label="鏂囧寲绋嬪害:" prop="educationDegree"> + <el-select v-model="user.educationDegree" placeholder="璇烽�夋嫨"> + <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 鑱屼笟 --> + <el-form-item label="鑱屼笟:" prop="career"> + <el-input v-model="user.career"></el-input> + </el-form-item> + </div> + <!-- 宸ヤ綔鍗曚綅鍙婅亴鍔� --> + <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:" prop="work"> + <el-input v-model="user.work"></el-input> + </el-form-item> + <!-- 姘戞棌\绫嶈疮 --> + <div class="user-item"> + <!-- 姘戞棌 --> + <el-form-item label="姘戞棌:" prop="nation"> + <el-input v-model="user.nation"></el-input> + </el-form-item> + <!-- 绫嶈疮 --> + <el-form-item label="绫嶈疮:" prop="nativePlace"> + <el-input v-model="user.nativePlace"></el-input> + </el-form-item> + </div> + <!-- 鐜颁綇鍧� --> + <el-form-item label="鐜颁綇鍧�:" prop="liveAddress"> + <el-input v-model="user.liveAddress"></el-input> + </el-form-item> + <!-- 鎴风睄鎵�鍦ㄥ湴 --> + <el-form-item label="鎴风睄鎵�鍦ㄥ湴:" prop="registerAddress"> + <el-input v-model="user.registerAddress"></el-input> + </el-form-item> + </el-form> + </div> + <div class="user-form-footer"> + <el-button type="primary" @click="checkUser">纭畾</el-button> + <el-button>杩斿洖</el-button> + </div> + </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(); + } + } + const checkIll = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('妗堜欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkName3 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('褰撲簨浜哄鍚嶄笉鑳戒负绌�')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + const checkCard = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkCode = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢鍙风爜涓嶈兘涓虹┖')); + } + } + const checkWh = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鏂囧寲绋嬪害涓嶈兘涓虹┖')); + } + } + const checkCareer = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鑱屼笟涓嶈兘涓虹┖')); + } + } + const checkWork = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('宸ヤ綔鍗曚綅鍙婅亴鍔′笉鑳戒负绌�')); + } + } + const checkNation = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('姘戞棌涓嶈兘涓虹┖')); + } + } + const checkNaP = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('绫嶈疮涓嶈兘涓虹┖')); + } + } + const checkLiveAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鐜颁綇鍧�涓嶈兘涓虹┖')); + } + } + const checkRegAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎴风睄鎵�鍦ㄥ湴涓嶈兘涓虹┖')); + } + } + const checkFlag = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鐢ㄦ埛淇℃伅涓嶈兘涓虹┖')) + } + } + return { + evidence: { + pic: [], + userInfo: false, + }, + evidenceRules: { + userInfo: [ + { trigger: 'change', validator: checkFlag } + ], + 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: { + illegalType: '', + name: '', + phoneCode: '', + certificateType: '', + certificateCode: '', + educationDegree: '', + career: '', + work: '', + nation: '', + nativePlace: '', + liveAddress: '', + registerAddress: '', + }, + userRules: { + illegalType: [ + { + trigger: 'change', validator: checkIll, + } + ], + name: [ + { + trigger: 'blur', validator: checkName3 + } + ], + phoneCode: [ + { + trigger: 'blur', validator: checkPhone + } + ], + certificateType: [ + { + trigger: 'change', validator: checkCard + } + ], + certificateCode: [ + { + trigger: 'blur', validator: checkCode + } + ], + educationDegree: [ + { + trigger: 'change', validator: checkWh + } + ], + career: [ + { + trigger: 'blur', validator: checkCareer + } + ], + work: [ + { + trigger: 'blur', validator: checkWork + } + ], + nation: [ + { + trigger: 'blur', validator: checkNation + } + ], + nativePlace: [ + { + trigger: 'blur', validator: checkNaP + } + ], + liveAddress: [ + { + trigger: 'blur', validator: checkLiveAdd + } + ], + registerAddress: [ + { + trigger: 'blur', validator: checkRegAdd + } + ], + }, + userFlag: false, + typeOptions: [ + { + label: '杩濇硶', + value: 1, + }, + { + label: '杩濆缓', + value: 2 + } + ], + cardOptions: [ + { + label: '韬唤璇�', + value: 1, + }, + { + label: '鍏朵粬', + value: 2 + } + ], + degreeOptions:[ + { + label:'灏忓', + value:1 + }, + { + label:'鍒濅腑', + value:2 + }, + { + label:'楂樹腑', + value:3 + }, + { + label:'澶у鍙婁互涓�', + value:4 + }, + ] + } + }, + props:['getEvidence'], + 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.userFlag = true; + this.userInfo = true; + }, + // 妫�楠寀ser + checkUser() { + // console.log(this.$refs.userForm.validate); + this.$refs.userForm.validate((valid) => { + console.log(valid); + if (valid) { + this.evidence.userInfo = true; + this.userFlag = false; + } else { + this.evidence.userInfo = false; + return false; + } + }) + }, + // 鍏抽棴褰撲簨浜轰俊鎭晫闈� + closeUserForm(){ + this.userFlag = false; + }, + // 杩斿洖褰撳墠evidence鍜寀ser瀵硅薄 + backData(){ + const {user,evidence} = this; + this.$emit('getEvidence',{user,evidence}); + } + } +} +</script> +<style lang="scss" scoped> +.evidence { + line-height: 60px; + position: relative; + .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; +} +.user-form{ + position: absolute; + top: 0; + z-index: 3000; + background-color: #06122c; + .user-form-header{ + background-color: #fff; + color: #4b9bb7; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + } + padding-bottom: 60px; +} +.user-form-content { + padding-top:20px; + + .user-item { + display: flex; + + .el-input { + flex: 1; + } + } + + ::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-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} + +.user-form-footer { + display: flex; + justify-content: flex-end; +} + +::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/learn/updateUser/uploadResult/ill/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/ill/index.vue new file mode 100644 index 0000000..b74dfdb --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/ill/index.vue @@ -0,0 +1,48 @@ +<template> + <div class="ill"> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence></MyEvidence> + <!-- 鏂囩涔︾被 --> + <MyBook></MyBook> + <!-- 搴曢儴鎸夐挳 --> + <div class="footer"> + <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 { + + } + }, + props:['caseId'], + created(){ + console.log(this.caseId); + }, + methods:{ + handleSubmit(){ + + } + } +} +</script> +<style lang="scss" scoped> + .ill{ + padding: 20px 200px; + } +.footer { + display: flex; + justify-content: flex-end; + } +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/vio/index.vue new file mode 100644 index 0000000..a12edc3 --- /dev/null +++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/vio/index.vue @@ -0,0 +1,123 @@ +<template> + <div class="vio"> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive ref="arrive" @getArrive="getArrive"></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence ref="evidence" @getEvidence="getEvidence"></MyEvidence> + <!-- 搴曢儴鎸夐挳 --> + <div class="footer"> + <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 { + + } + }, + props: ['caseId', 'closeDialog'], + created() { + console.log(this.caseId); + }, + methods: { + handleSubmit() { + const { arrive, evidence } = this.$refs; + const { arriveForm } = arrive.$refs; + const { evidenceForm } = evidence.$refs; + // console.log(evidence.$refs); + arriveForm.validate((valid) => { + // console.log(valid); + if (valid) { + evidenceForm.validate((flag) => { + if (flag) { + // arrive.arrive;evidence.user;evidence.evidence; + this.$axios({ + method: 'post', + url: `sccg/dispatch_handle/addition_dispose_result/${this.caseId}/${1}`, + data:{ + // arrivalAddress: arrive.arrive.arrivalAddress, + // arrivalTime: arrive.arrive.arrivalTime, + // situationExplain: arrive.arrive.situationExplain, + // replyExplain: arrive.arrive.replyExplain, + // situationPic: arrive.arrive.situationPic, + // // + // undertaker: evidence.evidence.undertaker, + // assistant: evidence.evidence.assistant, + // investigationTime: evidence.evidence.investigationTime, + // address: evidence.evidence.address, + // caseAction: evidence.evidence.caseAction, + // description: evidence.evidence.description, + // pic: evidence.evidence.pic, + // // + // illegalType: evidence.user.illegalType, + // name: evidence.user.name, + // phoneCode: evidence.user.phoneCode, + // certificateType: evidence.user.certificateType, + // certificateCode: evidence.user.certificateCode, + // educationDegree: evidence.user.educationDegree, + // career: evidence.user.career, + // work: evidence.user.work, + // nation: evidence.user.nation, + // nativePlace: evidence.user.nativePlace, + // liveAddress: evidence.user.liveAddress, + // registerAddress: evidence.user.registerAddress, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message:'涓婁紶鎴愬姛', + }) + this.$emit('closeDialog', { flag: false }); + }else{ + this.$message({ + type:'warning', + message:res.message + }) + } + }) + } else { + return false; + } + }) + } else { + evidenceForm.validate((flag) => { + if (!flag) { + return false; + } + }) + return false; + } + }) + }, + // 鑾峰緱arrive鐨勪俊鎭� + getArrive(obj) { + console.log(obj); + }, + // 鑾峰緱evidence瀵硅薄 + getEvidence(obj) { + console.log(obj); + } + } +} +</script> +<style lang="scss" scoped> +.vio { + padding: 20px 200px; +} + +.footer { + display: flex; + justify-content: flex-end; +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/notDeal/createUser/index.vue b/src/views/operate/disposal/casepool/notDeal/createUser/index.vue new file mode 100644 index 0000000..b609337 --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/createUser/index.vue @@ -0,0 +1,195 @@ +<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> +</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; + }) + }, + // 鏌ヨ鎵�灞炲ぇ绫� + 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; + }) + } + }, + props: ['getUserList'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + 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; + } + } + + } + } + + &::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; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/notDeal/index.vue b/src/views/operate/disposal/casepool/notDeal/index.vue index 5209fd5..68503bb 100644 --- a/src/views/operate/disposal/casepool/notDeal/index.vue +++ b/src/views/operate/disposal/casepool/notDeal/index.vue @@ -1,117 +1,287 @@ <template> - <div class="casepool"> - <!-- 鏌ヨ娣诲姞 --> + <div class="userList"> <header> - <div class="search"> - <span>鏉ユ簮鏌ヨ锛�</span> - <el-input placeholder="璇疯緭鍏ラ棶棰樻潵婧�"></el-input> + <div class="headerContent"> + <div class="search"> + <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> - <!-- <div class="add"> - <el-button type="primary" icon="el-icon-plus" @click="handleOpenDialog">娣诲姞</el-button> - </div> --> </header> - <!-- 涓讳綋灞曠ず --> <main> <div class="mainContent"> - <!-- 瀵艰埅鐘舵�佹爣绛� --> - <div class="nav"> - <el-tabs type="border-card"> - <el-tab-pane :label="item.name" v-for="item in tagList" :key="item.name"> - </el-tab-pane> - </el-tabs> - <!-- 鏁版嵁娓叉煋 --> + <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> + <!-- 鏁版嵁灞曠ず --> <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"> + :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="浜嬩欢缂栧彿" min-width="6"> - <template slot-scope="scope">{{ scope.row.id }}</template> - </el-table-column> - <el-table-column prop="source" label="闂鏉ユ簮" min-width="10"> - </el-table-column> - <el-table-column prop="bigKind" label="澶х被鍚嶇О" min-width="6"> - </el-table-column> - <el-table-column prop="samllKind" label="灏忕被鍚嶇О" min-width="6"> - </el-table-column> - <el-table-column prop="reson" label="妗堢敱" min-width="10"> - </el-table-column> - <el-table-column prop="location" label="鎶ヨ鐐逛綅" min-width="10"> - </el-table-column> - <el-table-column prop="area" label="鎵�灞炲尯鍩�" min-width="10"> - </el-table-column> - <el-table-column prop="appendTime" label="鎶ヨ鏃堕棿" min-width="10"> - </el-table-column> - <el-table-column prop="duration" label="鎸佺画鏃堕棿" min-width="6"> - </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <el-table-column prop="id" label="浜嬩欢缂栧彿" min-width="10"> <template slot-scope="scope"> - <div class="operation"> - <span @click="handleFind(scope.row)">閲嶆柊澶勭疆</span> + <el-link @click="JumpView(scope.row)">{{scope.row.id}}</el-link> + </template> + </el-table-column> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <div class="btn"> + <span @click="opernDialog(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> --> + <!-- 璇︽儏椤靛睍绀� --> + <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="60%" title="涓婁紶澶勭疆缁撴灉" + v-if="dialogUpload" :before-close="handleClose"> + <uploadVio v-if="mystatus === 0" :caseId="caseId" @closeDialog="closeDialog"></uploadVio> + <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </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> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> </div> </div> </main> - <!-- 缁勪欢鍖� --> - <footer> - <!-- <el-dialog v-if="visible" :visible.async="visible" title="闂鐧昏" width="60%" :before-close="handleClose"> - <checkIn></checkIn> - </el-dialog> --> - </footer> </div> </template> <script> -// import checkIn from './compenents/checkIn'; +// import updateUser from "./updateUser" +import uploadVio from './updateUser/uploadResult/vio' +import uploadIll from "./updateUser/uploadResult/ill" +import MyDetail from '@/components/detail' export default { components: { - // checkIn, + // updateUser, + uploadVio,uploadIll,MyDetail }, data() { return { - tagList: [ - // { - // name: '寰呭鐞�', - // value: 0, - // }, - // { - // name: '宸蹭笂鎶�', - // value: 0, - // }, - // { - // name: '宸茶皟搴�', - // value: 0, - // }, - // { - // name: '鍦ㄥ涔�', - // value: 0, - // }, - // { - // name: '鏆備笉澶勭悊', - // value: 0, - // }, + tableData: [], + context: "", + dialogUpload:false, + // dialogUpdate: false, + dialogView:false, + info: {}, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx:0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + typeList: [ { name: '杩濊', - value: 0, + value: 1, + checked: true }, { name: '杩濆缓', - value: 0, + value: 2, + checked: false, }, ], - tableData: [ - { - id: 13413114, - source: '浜哄伐涓婃姤/瑙嗛宸℃煡', - appendTime: '2022-01-09 14:52' - } - ], - visible: false, + statusArr:[], + mystatus:0, + caseId:'', } }, + created() { + this.statusArr[0] = 4; + 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(); + }, + // 鎵归噺鍒犻櫎 + 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' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + 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.forEach(item => { + this.tempList.push(item.code); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + 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; + console.log(statusArr); + this.$axios({ + method: 'get', + 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); + }) + }, + // 鏇存敼杩濊/杩濆缓 + 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(); + }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { if ((rowIndex + 1) % 2 == 0) { @@ -121,141 +291,308 @@ } return ''; }, - // 鎵撳紑娣诲姞椤� - handleOpenDialog() { - this.visible = true; + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); }, - // 鍏抽棴瀵硅瘽妗� + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { - this.visible = false; + this.dialogUpload = false; + // this.dialogUpdate = false; done(); }) .catch(_ => { }); + }, + async JumpView(data){ + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code){ + this.$axios({ + method:'get', + url:`sccg/base_case/baseCaseDetail/${code}` + }) + .then(res=>{ + this.info = res.data; + this.dialogView = true; + }) + }, + opernDialog(data){ + this.dialogUpload = true; + this.caseId = data.id; + // console.log(data); + }, + // 鍏抽棴涓婁紶鐣岄潰 + closeDialog({flag}){ + this.dialogUpload = flag; } } } </script> <style lang="scss" scoped> -.casepool { +.userList { text-align: left; + margin: 10px 20px; color: #4b9bb7; - header { - display: flex; - justify-content: space-between; - padding: 0 20px; - line-height: 60px; + background-color: #09152f; + border: 1pox solid #fff; - .search { + .headerContent { + padding: 0 40px; display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; - span { - flex: 2; - } + .search { + display: flex; + justify-content: flex-start; - .el-input { - flex: 5; - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - } - } - - .add { - .el-button { - background-color: #eb5d01; - border: none; - border-radius: 20px; - } - } - } - - main { - .mainContent { - .nav { - &::v-deep .el-tabs--border-card { - border: none; + span { + flex: 1; } - &::v-deep .el-tabs--border-card>.el-tabs__content { - background-color: #09152f; - } + .el-input { + flex: 2; + color: #1d3f57; - &::v-deep .el-tabs__nav-scroll { - background-color: #09152f; - } - - &::v-deep .el-tabs__header { - line-height: 60px; - } - - &::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item { - color: #fff; - } - - &::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active { - color: #4b9bb7; - background-color: #071f39; - border: none; - } - - .el-table { - font-size: 12px; - color: #4b9bb7; - - .line { - padding: 0 5px; + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; } } - &::v-deep .el-table__empty-block { - background-color: #09152f; - color: #4b9bb7; - } + } - .el-table::v-deep .warning-row { - background: #06122c; - } + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; - .el-table::v-deep .success-row { - background: #071f39; + .el-button { + padding: 12px 25px; + border-radius: 20px; } + } + + .addBtn { + background-color: #eb5d01; + border: none; + border-radius: 20px; + padding: 12px 30px; } } } + &::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; - footer { - - &::v-deep .el-dialog__header, - &::v-deep .el-dialog__body { - background-color: #06122c; - } - - &::v-deep .el-dialog__header { + .type-nav { display: flex; + line-height: 40px; + margin-left: 30px; + padding-top: 10px; + margin-bottom: 10px; + + .type-item { + width: 80px; + text-align: center; + + &:hover { + cursor: pointer; + } + } + + .is-active { + background-color: #070f22; + border-radius: 4px; + color: #fff; + } + } + + .tools { + display: flex; + justify-content: space-between; align-items: center; - background-color: #fff; - padding: 20px; - line-height: 60px; + padding: 0 20px; + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border: 1px solid #17324c; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } } - &::v-deep .el-dialog__title { + .el-table { color: #4b9bb7; + font-size: 10px; + + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } } - &::v-deep .el-dialog__close { - width: 20px; - height: 20px; - // color: #fff; + .el-table::v-deep .warning-row { + background: #06122c; } - &::v-deep .el-dialog__body { - padding: 0; + .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; + } + } + .line{ + padding: 0 5px; + } + &::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/notDeal/updateUser/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/index.vue new file mode 100644 index 0000000..47a6bad --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/updateUser/index.vue @@ -0,0 +1,234 @@ +<template> + <div class="view"> + <div class="view-data"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂绫诲瀷: + </label> + <span class="data-detail">杩濊</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 澶х被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 灏忕被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 浜嬩欢绛夌骇: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 妗堢敱: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炲尯鍘�: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鎵�灞炵ぞ鍖�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炶閬�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 浜嬪彂鍦扮偣: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍏宠仈鍟嗛摵鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂鎻忚堪: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-user"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍙嶆槧浜�: + </label> + <span class="data-detail">寮犱簩</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鑱旂郴鏂瑰紡: + </label> + <span class="data-detail">12345678901</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 韬唤璇佸彿: + </label> + <span class="data-detail">123456789987654321</span> + </div> + </div> + </div> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3"></MySovleProblem> + <MyScene v-else></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from './process' +import MyFilePicture from './filePictrue' +import MySovleProblem from './solveProblem' +import MyScene from './scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ] + } + }, + created() { + + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + } + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 0 30px 0 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + .show-wrap{ + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue new file mode 100644 index 0000000..858e326 --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue @@ -0,0 +1,185 @@ +<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: [], + } + }, + props:['getArrive'], + 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 } + } + }, + // 鑾峰彇arrive瀵硅薄 + backData(){ + const { arrive } = this; + this.$emit('getArrive',{arrive}); + } + } +} +</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/notDeal/updateUser/uploadResult/components/book/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/book/index.vue new file mode 100644 index 0000000..a4903eb --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/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/notDeal/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue new file mode 100644 index 0000000..d6606bb --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue @@ -0,0 +1,627 @@ +<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="褰撲簨浜轰俊鎭�:" prop="userInfo"> + <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" v-show="userFlag"> + <div class="user-form-header"> + <span>璋冨害淇℃伅</span> + <i class="el-icon-close" @click="closeUserForm"></i> + </div> + <div class="user-form-content"> + <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on"> + <!-- 杩濇硶绫诲瀷 --> + <el-form-item label="绫诲瀷:" prop="illegalType"> + <el-select v-model="user.illegalType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 濮撳悕銆佹墜鏈哄彿 --> + <div class="user-item"> + <!-- 濮撳悕 --> + <el-form-item label="褰撲簨浜哄鍚�:" prop="name"> + <el-input v-model="user.name"></el-input> + </el-form-item> + <!-- 鎵嬫満鍙� --> + <el-form-item label="鎵嬫満鍙风爜:" prop="phoneCode"> + <el-input v-model="user.phoneCode"></el-input> + </el-form-item> + </div> + <!-- 璇佷欢 --> + <div class="user-item"> + <el-form-item label="璇佷欢绫诲瀷:" prop="certificateType"> + <el-select v-model="user.certificateType" placeholder="璇烽�夋嫨"> + <el-option v-for="item in cardOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇佷欢鍙风爜:" prop="certificateCode"> + <el-input v-model="user.certificateCode"></el-input> + </el-form-item> + </div> + <!-- 鏂囧寲绋嬪害\鑱屼笟 --> + <div class="user-item"> + <!-- 鏂囧寲绋嬪害 --> + <el-form-item label="鏂囧寲绋嬪害:" prop="educationDegree"> + <el-select v-model="user.educationDegree" placeholder="璇烽�夋嫨"> + <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 鑱屼笟 --> + <el-form-item label="鑱屼笟:" prop="career"> + <el-input v-model="user.career"></el-input> + </el-form-item> + </div> + <!-- 宸ヤ綔鍗曚綅鍙婅亴鍔� --> + <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:" prop="work"> + <el-input v-model="user.work"></el-input> + </el-form-item> + <!-- 姘戞棌\绫嶈疮 --> + <div class="user-item"> + <!-- 姘戞棌 --> + <el-form-item label="姘戞棌:" prop="nation"> + <el-input v-model="user.nation"></el-input> + </el-form-item> + <!-- 绫嶈疮 --> + <el-form-item label="绫嶈疮:" prop="nativePlace"> + <el-input v-model="user.nativePlace"></el-input> + </el-form-item> + </div> + <!-- 鐜颁綇鍧� --> + <el-form-item label="鐜颁綇鍧�:" prop="liveAddress"> + <el-input v-model="user.liveAddress"></el-input> + </el-form-item> + <!-- 鎴风睄鎵�鍦ㄥ湴 --> + <el-form-item label="鎴风睄鎵�鍦ㄥ湴:" prop="registerAddress"> + <el-input v-model="user.registerAddress"></el-input> + </el-form-item> + </el-form> + </div> + <div class="user-form-footer"> + <el-button type="primary" @click="checkUser">纭畾</el-button> + <el-button>杩斿洖</el-button> + </div> + </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(); + } + } + const checkIll = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('妗堜欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkName3 = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('褰撲簨浜哄鍚嶄笉鑳戒负绌�')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + const checkCard = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢绫诲瀷涓嶈兘涓虹┖')); + } + } + const checkCode = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('璇佷欢鍙风爜涓嶈兘涓虹┖')); + } + } + const checkWh = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鏂囧寲绋嬪害涓嶈兘涓虹┖')); + } + } + const checkCareer = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鑱屼笟涓嶈兘涓虹┖')); + } + } + const checkWork = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('宸ヤ綔鍗曚綅鍙婅亴鍔′笉鑳戒负绌�')); + } + } + const checkNation = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('姘戞棌涓嶈兘涓虹┖')); + } + } + const checkNaP = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('绫嶈疮涓嶈兘涓虹┖')); + } + } + const checkLiveAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鐜颁綇鍧�涓嶈兘涓虹┖')); + } + } + const checkRegAdd = (rule, value, callback) => { + if (value) { + callback() + } else { + callback(new Error('鎴风睄鎵�鍦ㄥ湴涓嶈兘涓虹┖')); + } + } + const checkFlag = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鐢ㄦ埛淇℃伅涓嶈兘涓虹┖')) + } + } + return { + evidence: { + pic: [], + userInfo: false, + }, + evidenceRules: { + userInfo: [ + { trigger: 'change', validator: checkFlag } + ], + 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: { + illegalType: '', + name: '', + phoneCode: '', + certificateType: '', + certificateCode: '', + educationDegree: '', + career: '', + work: '', + nation: '', + nativePlace: '', + liveAddress: '', + registerAddress: '', + }, + userRules: { + illegalType: [ + { + trigger: 'change', validator: checkIll, + } + ], + name: [ + { + trigger: 'blur', validator: checkName3 + } + ], + phoneCode: [ + { + trigger: 'blur', validator: checkPhone + } + ], + certificateType: [ + { + trigger: 'change', validator: checkCard + } + ], + certificateCode: [ + { + trigger: 'blur', validator: checkCode + } + ], + educationDegree: [ + { + trigger: 'change', validator: checkWh + } + ], + career: [ + { + trigger: 'blur', validator: checkCareer + } + ], + work: [ + { + trigger: 'blur', validator: checkWork + } + ], + nation: [ + { + trigger: 'blur', validator: checkNation + } + ], + nativePlace: [ + { + trigger: 'blur', validator: checkNaP + } + ], + liveAddress: [ + { + trigger: 'blur', validator: checkLiveAdd + } + ], + registerAddress: [ + { + trigger: 'blur', validator: checkRegAdd + } + ], + }, + userFlag: false, + typeOptions: [ + { + label: '杩濇硶', + value: 1, + }, + { + label: '杩濆缓', + value: 2 + } + ], + cardOptions: [ + { + label: '韬唤璇�', + value: 1, + }, + { + label: '鍏朵粬', + value: 2 + } + ], + degreeOptions:[ + { + label:'灏忓', + value:1 + }, + { + label:'鍒濅腑', + value:2 + }, + { + label:'楂樹腑', + value:3 + }, + { + label:'澶у鍙婁互涓�', + value:4 + }, + ] + } + }, + props:['getEvidence'], + 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.userFlag = true; + this.userInfo = true; + }, + // 妫�楠寀ser + checkUser() { + // console.log(this.$refs.userForm.validate); + this.$refs.userForm.validate((valid) => { + console.log(valid); + if (valid) { + this.evidence.userInfo = true; + this.userFlag = false; + } else { + this.evidence.userInfo = false; + return false; + } + }) + }, + // 鍏抽棴褰撲簨浜轰俊鎭晫闈� + closeUserForm(){ + this.userFlag = false; + }, + // 杩斿洖褰撳墠evidence鍜寀ser瀵硅薄 + backData(){ + const {user,evidence} = this; + this.$emit('getEvidence',{user,evidence}); + } + } +} +</script> +<style lang="scss" scoped> +.evidence { + line-height: 60px; + position: relative; + .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; +} +.user-form{ + position: absolute; + top: 0; + z-index: 3000; + background-color: #06122c; + .user-form-header{ + background-color: #fff; + color: #4b9bb7; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + } + padding-bottom: 60px; +} +.user-form-content { + padding-top:20px; + + .user-item { + display: flex; + + .el-input { + flex: 1; + } + } + + ::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-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} + +.user-form-footer { + display: flex; + justify-content: flex-end; +} + +::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/notDeal/updateUser/uploadResult/ill/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/ill/index.vue new file mode 100644 index 0000000..b74dfdb --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/ill/index.vue @@ -0,0 +1,48 @@ +<template> + <div class="ill"> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence></MyEvidence> + <!-- 鏂囩涔︾被 --> + <MyBook></MyBook> + <!-- 搴曢儴鎸夐挳 --> + <div class="footer"> + <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 { + + } + }, + props:['caseId'], + created(){ + console.log(this.caseId); + }, + methods:{ + handleSubmit(){ + + } + } +} +</script> +<style lang="scss" scoped> + .ill{ + padding: 20px 200px; + } +.footer { + display: flex; + justify-content: flex-end; + } +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/vio/index.vue new file mode 100644 index 0000000..a12edc3 --- /dev/null +++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/vio/index.vue @@ -0,0 +1,123 @@ +<template> + <div class="vio"> + <!-- 鍒拌揪鐜板満鎯呭喌 --> + <MyArrive ref="arrive" @getArrive="getArrive"></MyArrive> + <!-- 璋冩煡鍙栬瘉 --> + <MyEvidence ref="evidence" @getEvidence="getEvidence"></MyEvidence> + <!-- 搴曢儴鎸夐挳 --> + <div class="footer"> + <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 { + + } + }, + props: ['caseId', 'closeDialog'], + created() { + console.log(this.caseId); + }, + methods: { + handleSubmit() { + const { arrive, evidence } = this.$refs; + const { arriveForm } = arrive.$refs; + const { evidenceForm } = evidence.$refs; + // console.log(evidence.$refs); + arriveForm.validate((valid) => { + // console.log(valid); + if (valid) { + evidenceForm.validate((flag) => { + if (flag) { + // arrive.arrive;evidence.user;evidence.evidence; + this.$axios({ + method: 'post', + url: `sccg/dispatch_handle/addition_dispose_result/${this.caseId}/${1}`, + data:{ + // arrivalAddress: arrive.arrive.arrivalAddress, + // arrivalTime: arrive.arrive.arrivalTime, + // situationExplain: arrive.arrive.situationExplain, + // replyExplain: arrive.arrive.replyExplain, + // situationPic: arrive.arrive.situationPic, + // // + // undertaker: evidence.evidence.undertaker, + // assistant: evidence.evidence.assistant, + // investigationTime: evidence.evidence.investigationTime, + // address: evidence.evidence.address, + // caseAction: evidence.evidence.caseAction, + // description: evidence.evidence.description, + // pic: evidence.evidence.pic, + // // + // illegalType: evidence.user.illegalType, + // name: evidence.user.name, + // phoneCode: evidence.user.phoneCode, + // certificateType: evidence.user.certificateType, + // certificateCode: evidence.user.certificateCode, + // educationDegree: evidence.user.educationDegree, + // career: evidence.user.career, + // work: evidence.user.work, + // nation: evidence.user.nation, + // nativePlace: evidence.user.nativePlace, + // liveAddress: evidence.user.liveAddress, + // registerAddress: evidence.user.registerAddress, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message:'涓婁紶鎴愬姛', + }) + this.$emit('closeDialog', { flag: false }); + }else{ + this.$message({ + type:'warning', + message:res.message + }) + } + }) + } else { + return false; + } + }) + } else { + evidenceForm.validate((flag) => { + if (!flag) { + return false; + } + }) + return false; + } + }) + }, + // 鑾峰緱arrive鐨勪俊鎭� + getArrive(obj) { + console.log(obj); + }, + // 鑾峰緱evidence瀵硅薄 + getEvidence(obj) { + console.log(obj); + } + } +} +</script> +<style lang="scss" scoped> +.vio { + padding: 20px 200px; +} + +.footer { + display: flex; + justify-content: flex-end; +} +</style> \ No newline at end of file diff --git a/src/views/operate/management/myIndex/components/examine/index.vue b/src/views/operate/management/myIndex/components/examine/index.vue new file mode 100644 index 0000000..ae20c85 --- /dev/null +++ b/src/views/operate/management/myIndex/components/examine/index.vue @@ -0,0 +1,286 @@ +<template> + <div class="view"> + <div class="view-data"> + <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="100px"> + <div class="data-item"> + <el-form-item label="闂鏉ユ簮:"> + <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span> + </el-form-item> + <el-form-item label="鐧昏浜哄憳:"> + <span class="data-detail">{{baseCase.createUser}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> + </el-form-item> + <el-form-item label="澶х被鍚嶇О:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="灏忕被鍚嶇О:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> + <el-form-item label="浜嬩欢绛夌骇:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="妗堢敱:"> + <span class="data-detail">xxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炲尯鍘�:"> + <span class="data-detail">xxxx</span> + </el-form-item> + <el-form-item label="鎵�灞炶閬�:"> + <span class="data-detail">{{baseCase.streetId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炵ぞ鍖�:"> + <span class="data-detail">{{baseCase.communityId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬪彂鍦扮偣:"> + <span class="data-detail">{{baseCase.site}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂鎻忚堪:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶勭疆鏂瑰紡:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶勭疆鎵嬫:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> + <!-- 瀹℃牳鎰忚 --> + <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input> + </el-form-item> + <div class="el-form-footer"> + <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button> + </div> + </el-form> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo"></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('瀹℃牳鎰忚涓嶈兘涓虹┖')) + } + } + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + Rules: { + auditOpinion: [ + { required: true, trigger: 'blur', validator: checkOpinion } + ] + }, + baseCase: {}, + handlePassVo: {}, + currentSitVo: {}, + problemProVo: {}, + filesPictureVo: {} + + } + }, + created() { + const { info } = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + // 鎻愪氦瀹℃牳鎰忚 + handleSubmit(mystatus) { + // this.getUserLoginInfo(); + const {baseCase} = this; + this.$refs.viewForm.validate((valid) => { + if (valid) { + this.$axios({ + method: 'post', + url: 'sccg/check_handle/check', + data: { + baseCaseId: baseCase.id, + checkOpinion: baseCase.auditOpinion, + currentUser: baseCase.createUser, + status: mystatus, + } + }) + .then(res=>{ + console.log(res); + if(res.code===200){ + this.$message({ + type:'success', + message:mystatus === 0 ? '椹冲洖鎴愬姛' : '瀹℃牳閫氳繃' + }) + this.$emit('closeDialog',{flag:false}); + } + + }) + .catch(err=>{console.log(err)}); + } else { + return false; + } + }) + }, + // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅 + getUserLoginInfo() { + // 鑾峰彇鐧诲綍鍚�; + const username = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info', + data: { + name: 'username' + } + }) + .then(res => { + console.log(res); + }) + } + }, + props: ['info','closeDialog'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } + + .el-form-footer { + display: flex; + justify-content: flex-end; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + + .show-wrap { + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/management/myIndex/index.vue b/src/views/operate/management/myIndex/index.vue index ff2f68a..c7c4723 100644 --- a/src/views/operate/management/myIndex/index.vue +++ b/src/views/operate/management/myIndex/index.vue @@ -10,21 +10,19 @@ </div> <div class="status"> <div class="status-title">瀹℃牳鐘舵��</div> - <el-radio-group v-model="mystatus"> - <el-radio :label="1">寰呭鏍�</el-radio> - <el-radio :label="2">宸插鏍�</el-radio> - <el-radio :label="3">宸茬粨妗�</el-radio> + <el-radio-group v-model="instatus"> + <el-radio :label="7">寰呭鏍�</el-radio> + <el-radio :label="8">宸插鏍�</el-radio> + <el-radio :label="9">宸茬粨妗�</el-radio> </el-radio-group> </div> </header> - <!-- <el-button @click="dialogCreate = true">鎵撳紑</el-button> - <div class="dialog"> - <el-dialog title="瀹℃牳璇︽儏椤甸潰" v-if="dialogCreate" :visible.sync="dialogCreate" width="80%" :before-close="handleClose"> - <MyDetail /> - </el-dialog> - </div> --> <main> <div class="mainContent"> + <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> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" @@ -32,31 +30,42 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="name" label="瑙掕壊鍚嶇О" min-width="10"> - </el-table-column> - <el-table-column prop="sort" label="瑙掕壊绫诲瀷" min-width="10"> - </el-table-column> - <el-table-column prop="adminCount" label="榛樿瑙掕壊" min-width="10"> - </el-table-column> - <el-table-column prop="description" label="澶囨敞" min-width="10"> - </el-table-column> - <el-table-column prop="status" label="鍚敤" min-width="5"> + <el-table-column prop="id" label="浜嬩欢缂栧彿" min-width="10"> <template slot-scope="scope"> - <el-switch class="switchStyle" v-model="scope.row.status" active-text="寮�" inactive-text="鍏�" - active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)"> - </el-switch> + <el-link @click="JumpView(scope.row)">{{scope.row.id}}</el-link> </template> </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> - <div class="operation"> - <span>鏌ョ湅</span> + <div class="btn"> + <span @click="handleExamine(scope.row)">瀹℃牳</span> <span class="line">|</span> <span>缁撴</span> </div> </template> </el-table-column> </el-table> + <!-- 瀹℃牳椤甸潰 --> + <el-dialog :visible.sync="dialogExamine" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogExamine" + :before-close="handleClose"> + <MyExamine :info="info" @closeDialog="closeDialog"></MyExamine> + </el-dialog> <!-- tools --> <div class="tools"> <div class="funs"> @@ -86,16 +95,16 @@ </div> </template> <script> -import helper from "@/utils/mydate.js" -import MyDetail from "@/components/detail" +import MyExamine from './components/examine' export default { - components:{ - MyDetail, + components: { + MyExamine }, data() { return { tableData: [], - dialogCreate: false, + dialogExamine:false, + info: {}, totalNum: null, pageSize: 10, currentPage: 1, @@ -123,20 +132,48 @@ } ], tempList: [], - myproblem: 0, - mystatus: 0, + typeList: [ + { + name: '杩濊', + value: 1, + checked: true + }, + { + name: '杩濆缓', + value: 2, + checked: false, + }, + ], + caseId: '', + myproblem: 1, + instatus: 7, } }, created() { this.getUserList(); }, methods: { + // 鎵归噺鍒犻櫎 + 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' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� selectChange(list) { console.log(this.tempList); if (this.tempList.length !== 0) { if (list === 3) { this.preMyIdx = list; - this.handleDelete(this.tempList); + this.mulDelete(this.tempList); } } else { this.myIdx = this.preMyIdx; @@ -146,10 +183,11 @@ }) } }, + // 鐩戝惉琛ㄦ牸 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; @@ -157,97 +195,59 @@ this.all = false } }, - changeTime({ createTime }) { - return helper(createTime); - }, + // 鍏ㄩ�� selectAll() { this.$refs.multipleTable.toggleAllSelection(); }, + // 鍙嶉�� disSame(list) { list.forEach(row => { this.$refs.multipleTable.toggleRowSelection(row) }) }, - handleDelete(id) { - const that = this; - // let arr = []; - // arr.push(id); + // 鍒犻櫎鍗曟潯鏁版嵁 + handleDelete({ number }) { + console.log(number); this.$confirm('纭鍒犻櫎锛�') .then(_ => { - that.$axios({ - method: 'post', - url: 'sccg/role/delete?ids=' + id, + console.log(1); + this.$axios({ + method: 'delete', + url: `sccg/violations/delete?id=${number}`, }) .then(res => { - this.myIdx = 0; - this.preMyIdx = 0; console.log(res); this.$message({ - type: 'success', + type: res.code === 200 ? 'success' : 'warning', message: res.message }) this.getUserList(); }) }) - .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/role/updateStatus/` + id + '?status=' + status).then(res => { - console.log(res); - }) + .catch(_ => { console.log(2) }); }, // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { - const that = this; - this.dialogCreate = false; - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - this.$axios.get('sccg/role/listAll').then(res => { - this.totalNum = res.data.length; - this.search(); + const { currentPage, pageSize, instatus, myproblem } = this; + this.$axios({ + method: 'get', + url: `sccg/base_case/query?state=${instatus}¤t=${currentPage}&size=${pageSize}&resource=2&type=${myproblem}` + }).then(res => { + this.totalNum = res.data.total; + this.tableData = res.data.records; }) }, - search() { - const that = this; - const { currentPage, pageSize, context } = this; - this.dialogCreate = false; - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - if (context == '') { - this.$axios.get('sccg/role/list?keyword=' + '&pageNum=' + currentPage + '&pageSize=' + pageSize).then(res => { - if (res.code === 200) { - console.log(res); - res.data.list.forEach(item => { - // item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; - }) - that.tableData = res.data.list; - this.totalNum = res.data.list.length; - } - }) - } else { - this.$axios({ - method: 'get', - url: 'sccg/role/list?keyword=' + context + '&pageNum=' + currentPage + '&pageSize=' + pageSize, - }).then(res => { - if (res.code === 200) { - res.data.list.forEach(item => { - item.status == 1 ? item.status = true : item.status = false; - }) - that.tableData = res.data.list - this.totalNum = res.data.list.length; - } - }) - } + // 鏇存敼杩濊/杩濆缓 + changeTypeChecked(idx) { + this.typeList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + this.getUserList(); }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { @@ -258,47 +258,51 @@ } return ''; }, - // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) - handleFind(rowData) { - this.dialogUpdate = true; - this.updateFlag = false; - this.userInfo = rowData; - }, - // 淇敼鐢ㄦ埛閮ㄩ棬淇℃伅 - handleUpdate(rowData) { - this.dialogUpdate = true; - this.updateFlag = true; - this.userInfo = rowData - }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.search(); + this.getUserList(); }, // 涓婁竴椤电偣鍑讳簨浠� handlePrev(page) { this.currentPage = page; - this.search(); + this.getUserList(); }, // 涓嬩竴椤电偣鍑讳簨浠� handleNext(page) { this.currentPage = page; - this.search(); - }, - changeDialog(val) { - this.dialogUpdate = val.dialogUpdate; - this.$message({ - type: 'success', - message: '鏇存敼鎴愬姛', - }) + this.getUserList(); }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { - this.dialogCreate = false; + this.dialogExamine = false; done(); }) .catch(_ => { }); + }, + async JumpView(data) { + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code) { + this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + console.log(res); + this.info = res.data; + this.dialogExamine = true; + }) + }, + // 鍘诲鏍� + handleExamine({code}) { + this.getEventInfo(code); + }, + // 鍏抽棴dialog + closeDialog({flag}){ + this.dialogExamine = flag; } } } @@ -326,14 +330,38 @@ } } + &::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; + .type-nav { + display: flex; + line-height: 40px; + margin-left: 30px; + padding-top: 10px; + margin-bottom: 10px; + + .type-item { + width: 80px; + text-align: center; + + &:hover { + cursor: pointer; + } + } + + .is-active { + background-color: #070f22; + border-radius: 4px; + color: #fff; + } } .tools { @@ -406,6 +434,12 @@ color: #4b9bb7; font-size: 10px; + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + &::v-deep .el-table__empty-block { background-color: #09152f; } @@ -465,6 +499,10 @@ } } + .line { + padding: 0 5px; + } + &::v-deep .el-dialog__header, &::v-deep .el-dialog__body { background-color: #06122c; diff --git a/src/views/operate/myWait/components/createInterface/index.vue b/src/views/operate/myWait/components/createInterface/index.vue deleted file mode 100644 index 1be774b..0000000 --- a/src/views/operate/myWait/components/createInterface/index.vue +++ /dev/null @@ -1,260 +0,0 @@ -<template> - <div class="createmyInterface"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface" - :rules="createmyInterfaceRules" label-position="right"> - <!-- 搴旂敤鍚嶇О --> - <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName"> - <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input> - </el-form-item> - <!-- 搴旂敤鍥炬爣 --> - <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl"> - <div class="iconBox"> - <div class="upload"> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="iconView"> - <span>绀烘剰鍥�</span> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="tip"> - <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span> - </div> - </div> - </el-form-item> - <!-- 搴旂敤绫诲瀷 --> - <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType"> - <div class="optionItem"> - <el-radio-group v-model="myInterface.applicationType"> - <el-radio :label="1">缃戦〉搴旂敤</el-radio> - </el-radio-group> - </div> - </el-form-item> - <!--缃戠珯url --> - <el-form-item label="缃戠珯url:" prop="websiteUrl"> - <el-input v-model="myInterface.websiteUrl"></el-input> - </el-form-item> - <!-- 搴旂敤鎻忚堪 --> - <el-form-item label="搴旂敤鎻忚堪:" prop="description"> - <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input> - </el-form-item> - <!-- 鎸夐挳 --> - <el-form-item> - <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 - </el-button> - <el-button class="btn reset">閲嶇疆</el-button> - </div> - </el-form-item> - </el-form> - </div> - </main> - </div> -</template> -<script> -export default { - data() { - const validateApplicationName = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); - } - }; - const validateApplicationIconUrl = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } - } - }; - const validateApplicationType = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } - } - }; - const validatePhone = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); - } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } - } - }; - return { - myInterface: { - }, - createmyInterfaceRules: { - applicationName: [ - { required: true, trigger: "blur", validator: validateApplicationName}, - ], - applicationIconUrl: [ - { required: true, trigger: "blur", validator: validateApplicationIconUrl }, - ], - applicationType: [ - { required: true, trigger: "blur", validator: validateApplicationType }, - ], - websiteUrl: [ - { required: true, trigger: "blur" }, - ], - description: [ - { required: false, trigger: "blur" }, - ], - }, - } - }, - created() { - const that = this; - }, - methods: { - handleUser() { - const { myInterface } = this; - this.$axios.post('sccg/system/portal/thirdApp/add', { - websiteUrl:myInterface.websiteUrl, - applicationIconUrl:myInterface.applicationIconUrl, - applicationType:0, - description:myInterface.description, - applicationName:myInterface.applicationName - }).then(res => { - console.log(res); - // if (res.code === 200) { - // this.refresh(); - // } - }) - }, - }, - props: ['refresh'] -} -</script> -<style lang="scss" scoped> -.createmyInterface { - border-radius: 1px; - background-color: #09152f; - - main { - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-bottom: 50px; - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - - .iconBox { - display: flex; - - .upload { - display: flex; - align-items: flex-end; - - img { - width: 120px; - height: 120px; - border-radius: 4px; - } - } - - .iconView { - display: flex; - flex-direction: column; - margin-left: 30px; - justify-content: flex-end; - - img { - width: 70px; - height: 70px; - border-radius: 4px; - } - } - - .tip { - display: flex; - align-items: flex-end; - margin-left: 30px; - font-size: 12px; - - span { - line-height: 20px; - } - } - } - .optionBtn{ - margin-top: 30px; - &::v-deep .el-button{ - padding: 12px 40px; - } - .reset{ - border: 1px solid #0079fe; - color: #0079fe; - } - } - &::v-deep .el-form-item__label { - color: #4b9bb7; - } - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - .addPerson { - display: flex; - list-style: none; - padding: 0; - - li { - background-color: #cccccc; - width: 36px; - height: 36px; - border-radius: 50%; - color: #fff; - text-align: center; - font-size: 30px; - margin-left: 10px; - } - } - - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - } - } - - footer { - border-top: 1px solid #fff; - height: 80px; - display: flex; - align-items: center; - justify-content: flex-end; - padding-right: 20px; - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/myWait/components/viewInterface/index.vue b/src/views/operate/myWait/components/viewInterface/index.vue deleted file mode 100644 index 6b28ebb..0000000 --- a/src/views/operate/myWait/components/viewInterface/index.vue +++ /dev/null @@ -1,246 +0,0 @@ -<template> - <div class="createmyInterface"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface" - :rules="createmyInterfaceRules" label-position="right"> - <!-- 搴旂敤鍚嶇О --> - <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName"> - <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input> - </el-form-item> - <!-- 搴旂敤鍥炬爣 --> - <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl"> - <div class="iconBox"> - <div class="upload"> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="iconView"> - <span>绀烘剰鍥�</span> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="tip"> - <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span> - </div> - </div> - </el-form-item> - <!-- 搴旂敤绫诲瀷 --> - <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType"> - <div class="optionItem"> - <el-radio-group v-model="myInterface.applicationType"> - <el-radio :label="1">缃戦〉搴旂敤</el-radio> - </el-radio-group> - </div> - </el-form-item> - <!--缃戠珯url --> - <el-form-item label="缃戠珯url:" prop="websiteUrl"> - <el-input v-model="myInterface.websiteUrl"></el-input> - </el-form-item> - <!-- 搴旂敤鎻忚堪 --> - <el-form-item label="搴旂敤鎻忚堪:" prop="description"> - <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input> - </el-form-item> - <!-- 鎸夐挳 --> - <!-- <el-form-item> - <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 - </el-button> - <el-button class="btn reset">閲嶇疆</el-button> - </div> - </el-form-item> --> - </el-form> - </div> - </main> - </div> -</template> -<script> -export default { - data() { - const validateApplicationName = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); - } - }; - const validateApplicationIconUrl = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } - } - }; - const validateApplicationType = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } - } - }; - const validatePhone = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); - } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } - } - }; - return { - myInterface: { - }, - createmyInterfaceRules: { - applicationName: [ - { required: true, trigger: "blur", validator: validateApplicationName}, - ], - applicationIconUrl: [ - { required: true, trigger: "blur", validator: validateApplicationIconUrl }, - ], - applicationType: [ - { required: true, trigger: "blur", validator: validateApplicationType }, - ], - websiteUrl: [ - { required: true, trigger: "blur" }, - ], - description: [ - { required: false, trigger: "blur" }, - ], - }, - } - }, - created() { - const that = this; - const {userInfo} = this; - this.myInterface = JSON.parse(JSON.stringify(userInfo)); - }, - methods: { - }, - props: ['updateFlag','userInfo'] -} -</script> -<style lang="scss" scoped> -.createmyInterface { - border-radius: 1px; - background-color: #09152f; - - main { - text-align: left; - padding: 0 55px; - background-color: #09152f; - - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - - .iconBox { - display: flex; - - .upload { - display: flex; - align-items: flex-end; - - img { - width: 120px; - height: 120px; - border-radius: 4px; - } - } - - .iconView { - display: flex; - flex-direction: column; - margin-left: 30px; - justify-content: flex-end; - - img { - width: 70px; - height: 70px; - border-radius: 4px; - } - } - - .tip { - display: flex; - align-items: flex-end; - margin-left: 30px; - font-size: 12px; - - span { - line-height: 20px; - } - } - } - .optionBtn{ - &::v-deep .el-button{ - padding: 12px 40px; - } - .reset{ - border: 1px solid #0079fe; - color: #0079fe; - } - } - &::v-deep .el-form-item__label { - color: #4b9bb7; - } - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - .addPerson { - display: flex; - list-style: none; - padding: 0; - - li { - background-color: #cccccc; - width: 36px; - height: 36px; - border-radius: 50%; - color: #fff; - text-align: center; - font-size: 30px; - margin-left: 10px; - } - } - - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - } - } - - footer { - border-top: 1px solid #fff; - height: 80px; - display: flex; - align-items: center; - justify-content: flex-end; - padding-right: 20px; - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/myWait/createUser/index.vue b/src/views/operate/myWait/createUser/index.vue new file mode 100644 index 0000000..c53e2d0 --- /dev/null +++ b/src/views/operate/myWait/createUser/index.vue @@ -0,0 +1,230 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" :rules="createThings" label-width="140px" autoComplete="on" :model="things" label-position="right"> + <!-- 杩濊浜嬮」缂栧彿 --> + <!-- <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> + <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> + </el-form-item> --> + <!-- 鏂板鐨勭被鍨嬫垨澶х被鎴栧皬绫� --> + <el-form-item class="optionItem" label="鏂板鍚嶇О:" prop="name"> + <el-input v-model="things.name" placeholder="璇疯緭鍏ユ柊澧炲悕绉�"></el-input> + </el-form-item> + <!-- 鎵�灞炵被鍨� --> + <el-form-item class="optionItems" label="鎵�灞炵被鍨�:" prop="typeThird"> + <el-select v-model="things.typeThird" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > + <el-option v-for="item in typeThirdList" :key="item.id" :label="item.name" + :value="item.id"> + </el-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="level"> + <el-select v-model="things.level" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > + <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎵�灞炲皬绫� --> + <!-- <el-form-item class="optionItem" label="鎵�灞炲皬绫�:" prop="typeFirst"> + <el-select v-model="things.typeFirst" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" disabled> + <el-option v-for="item in typeFirstList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 妗堢敱 --> + <el-form-item class="optionItem" label="妗堢敱:" prop="type"> + <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleSubmit">纭 + </el-button> + </div> + </el-form-item> + </el-form> + </div> + </main> + </div> +</template> +<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:'', + }, + createThings:{ + name:[ + { + required:true,trigger:'blur',validator:checkName + } + ], + level:[ + { + required:true,trigger:'change',validator:checkLevel + } + ] + }, + roleList: [], + typeThirdList:[], + typeSecondList:[], + // typeFirstList:[], + eventLevelList:[] + } + }, + created() { + // 鑾峰彇鎵�灞炵被鍨嬪垪琛� + this.getTypeThird(); + this.getTypeSecond(); + // this.getTypeFirst(); + this.getEventLevel(); + }, + methods: { + // 鏌ヨ鎵�灞炵被鍨� + getTypeThird() { + this.$axios({ + method: 'get', + url: "sccg/violations/query/type_first", + }) + .then(res => { + this.typeThirdList = res.data; + }) + }, + // 鏌ヨ鎵�灞炲ぇ绫� + 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; + // }) + // }, + // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + getEventLevel() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/event_type' + }) + .then(res => { + console.log(res); + this.eventLevelList = res.data; + }) + }, + // 鎻愪氦鏂板杩濊绫诲瀷 + handleSubmit(){ + console.log(this.things); + } + }, + props: ['getUserList'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + 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; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + font-size: 10px; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::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/myWait/index.vue b/src/views/operate/myWait/index.vue index 2271aa5..163a582 100644 --- a/src/views/operate/myWait/index.vue +++ b/src/views/operate/myWait/index.vue @@ -1,100 +1,256 @@ <template> - <div class="otherInterface"> + <div class="userList"> + <div class="headerTitle"> + 杩愯惀绠$悊銆嬪熀纭�璁剧疆銆嬭繚瑙勪簨椤硅缃� + </div> <header> - <div class="headerTitle">杩愯惀绠$悊 >> 鍩虹璁剧疆 > 鎴戠殑寰呭姙</div> + <div class="headerContent"> + <div class="search"> + <span>绛涢�夋潯浠�:</span> + <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + <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 :visible.sync="dialogCreate" title="鏂板杩濊绫诲瀷" width="45%" v-if="dialogCreate" + :before-close="handleClose"> + <createUser :refresh="getUserList" /> + </el-dialog> + </div> --> + </div> </header> <main> - <div class="mainHeader"> - <span>绛涢�夋潯浠�:</span> - <el-input placeholder="璇疯緭鍏ュ唴瀹�"></el-input> - </div> <div class="mainContent"> - <!-- @selection-change="handleSelectionChange" --> - <!-- 鏁版嵁娓叉煋 --> - <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" - :row-class-name="tableRowClassName"> - <el-table-column type="selection" width="55"> + :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="浜嬩欢缂栧彿" prop="applicationName" min-width="10"> + <el-table-column prop="number" label="浜嬩欢缂栧彿" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="闂灏忕被" min-width="10"> + <el-table-column prop="typeThird" label="闂灏忕被" min-width="10"> </el-table-column> - <el-table-column prop="websiteUrl" label="闂鎻忚堪" min-width="10"> + <el-table-column prop="typeSecond" label="闂鎻忚堪" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="鍒涘缓鏃堕棿" min-width="10"> + <el-table-column prop="typeFirst" label="鍒涘缓鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="鍓╀綑鏃堕棿" min-width="10"> + <el-table-column prop="type" label="鍓╀綑鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="闂鐘舵��" min-width="10"> + <el-table-column prop="type" label="闂鐘舵��" min-width="10"> </el-table-column> - <!-- <el-table-column label="鎿嶄綔" min-width="10"> + <el-table-column min-width="10"> + </el-table-column> + <!-- <el-table-column prop="operation" label="鎿嶄綔" min-width="10"> <template slot-scope="scope"> - <span @click="handleView(scope.row)">鏌ョ湅</span> - <span class="line">|</span> - <span @click="handleDelete(scope.row)">鍒犻櫎</span> + <div class="operation"> + <span @click="handleFind(scope.row)">鏌ョ湅</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> + </div> </template> </el-table-column> --> </el-table> - <!-- 鍒嗛〉 --> - <!-- <div class="pagination"> - <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" - :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" - @next-click="handleNext"> - </el-pagination> - </div> --> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'" + v-if="dialogUpdate" :before-close="handleClose"> + <updateUser :updateFlag="updateFlag" :userInfo=userInfo + :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" /> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </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> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> </div> </main> - <footer> - <!-- 鍒涘缓寮圭獥 --> - <el-dialog :visible.sync="dialogCreate" title="鏂板绗笁鏂规帴鍙�" width="45%" v-if="dialogCreate" - :before-close="handleClose"> - <createInterface /> - </el-dialog> - <!-- 鏌ョ湅寮圭獥 --> - <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ?'淇敼绗笁鏂规帴鍙�':'鏌ョ湅绗笁鏂规帴鍙�'" width="45%" - v-if="dialogUpdate" :before-close="handleClose"> - <viewInterface :updateFlag="updateFlag" :userInfo=userInfo /> - </el-dialog> - </footer> </div> </template> <script> -import createInterface from './components/createInterface'; -import viewInterface from './components/viewInterface' +import updateUser from "./updateUser" +import createUser from "./createUser" export default { components: { - createInterface, viewInterface + updateUser,createUser }, data() { return { tableData: [], - search: "", + context: "", dialogCreate: false, dialogUpdate: false, updateFlag: false, userInfo: '', - // totalNum: 200, - // pageSize: 10, - // currentPage: 1, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [] } }, created() { this.getUserList(); }, methods: { - // 鑾峰彇鎺ュ彛鍒楄〃 - getUserList() { - const that = this; - // const { currentPage, pageSize, search } = this; - this.dialogCreate = false; - this.$axios.get("sccg/system/portal/thirdApp/search").then(res => { - const { code, data } = res; - if (code == 200) { - this.tableData = data; - } + // 鎵归噺鍒犻櫎 + 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' + }) }) }, + // 鎵ц涓嬫媺妗嗘搷浣� + selectChange(val) { + let ids = []; + this.tempList.forEach(item => { + ids.push(item.number); + }) + if (ids.length !== 0) { + if (val === 3) { + this.mulDelete(ids); + } + } else { + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鐩戝惉琛ㄦ牸閫変腑鐘舵�� + tableChange(list) { + this.tempList = list; + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + 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; + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + 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; + }) + }, + // search() { + // const that = this; + // const { currentPage, pageSize, context } = this; + // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + // if (context == '') { + // this.$axios.get('sccg/role/list?keyword=' + '&pageNum=' + currentPage + '&pageSize=' + pageSize).then(res => { + // if (res.code === 200) { + // console.log(res); + // res.data.list.forEach(item => { + // // item.createTime = helper(item.createTime); + // item.status == 1 ? item.status = true : item.status = false; + // }) + // that.tableData = res.data.list; + // this.totalNum = res.data.list.length; + // } + // }) + // } else { + // this.$axios({ + // method: 'get', + // url: 'sccg/role/list?keyword=' + context + '&pageNum=' + currentPage + '&pageSize=' + pageSize, + // }).then(res => { + // if (res.code === 200) { + // res.data.list.forEach(item => { + // item.status == 1 ? item.status = true : item.status = false; + // }) + // that.tableData = res.data.list + // this.totalNum = res.data.list.length; + // } + // }) + // } + // }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { if ((rowIndex + 1) % 2 == 0) { @@ -104,149 +260,276 @@ } return ''; }, - // 鎵撳紑鏂板鐣岄潰 - handleAdd() { - this.dialogCreate = true; + // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) + handleFind(rowData) { + this.dialogUpdate = true; + this.updateFlag = false; + this.userInfo = rowData; }, - // 鍒涘缓寮圭獥鍏抽棴 + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, + changeDialog(val) { + this.dialogUpdate = val.dialogUpdate; + console.log(val); + }, handleClose(done) { - const that = this; this.$confirm('纭鍏抽棴锛�') .then(_ => { - that.dialogCreate = false; + this.dialogCreate = false; + this.dialogUpdate = false; done(); }) .catch(_ => { }); - }, - // 鍒涘缓鏌ョ湅寮圭獥 - handleView(rowData) { - this.userInfo = rowData; - this.dialogUpdate = true; - }, - // 鍒犻櫎绗笁鏂规帴鍙� - handleDelete({ id }) { - console.log(id); - this.$axios.delete('sccg/system/portal/thirdApp/delete', { - params: { - id - } - }).then(res => { - console.log(res); - }) } - // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� - // changeCurrentPage(page) { - // this.currentPage = page; - // this.getUserList(); - // }, - // // 涓婁竴椤电偣鍑讳簨浠� - // handlePrev(page) { - // this.currentPage = page; - // this.getUserList(); - // }, - // // 涓嬩竴椤电偣鍑讳簨浠� - // handleNext(page) { - // this.currentPage = page; - // this.getUserList(); - // }, } } </script> -<!-- sccg/system/portal/thirdApp/search --> <style lang="scss" scoped> -.otherInterface { +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + .headerTitle { + line-height: 40px; + } + header { - display: flex; - line-height: 60px; - justify-content: space-between; - padding: 0 20px; - color: #4b9bb7; - &::v-deep .el-button { - background-color: #eb5d01; - border: none; - color: #fff; - border-radius: 20px; + background-color: #09152f; + border: 1pox solid #fff; + + .headerContent { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + + .addBtn { + background-color: #eb5d01; + border: none; + border-radius: 20px; + padding: 12px 30px; + } } } main { - padding: 10px 20px; + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; - .mainHeader { - padding-left: 20px; - display: flex; + .mainTitle { line-height: 60px; - color: #4b9bb7; - background-color: #09152f; - .el-input { - width: 180px; - height: 35px; - margin-left: 10px; + } - &::v-deep .el-input__inner { - background-color: #09152f; + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; border: 1px solid #17324c; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } } } } - .mainContent { - margin-top: 20px; - .el-table { + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { color: #4b9bb7; - - &::v-deep .el-table__empty-block { - background-color: #06122c; - } - - &::v-deep .el-table__empty-text { - color: #4b9bb7; - } - - &::v-deep .warning-row { - background-color: #06122c; - } - - &::v-deep .success-row { - background-color: #071f39; - } } - .line { - padding: 0 5px; - // margin-top: -10px; + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } } + } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .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; } } - footer { + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } - &::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__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__title { - color: #4b9bb7; - } + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } - &::v-deep .el-dialog__close { - width: 20px; - height: 20px; - // color: #fff; - } - - &::v-deep .el-dialog__body { - padding: 0; - } + &::v-deep .el-dialog__body { + padding: 0; } } </style> \ No newline at end of file diff --git a/src/views/operate/myWait/updateUser/index.vue b/src/views/operate/myWait/updateUser/index.vue new file mode 100644 index 0000000..5b0cf9a --- /dev/null +++ b/src/views/operate/myWait/updateUser/index.vue @@ -0,0 +1,195 @@ +<template> + <div class="updateUser"> + <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="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�" :disabled="!updateFlag"></el-input> + </el-form-item> + <!-- 鎵�灞炵被鍨� --> + <el-form-item class="optionItems" label="鎵�灞炵被鍨�:" prop="typeThird"> + <el-select v-model="things.typeThird" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" disabled> + <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="璇烽�夋嫨鎵�灞炵被鍨�" disabled> + <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> +</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; + }) + }, + // 鏌ヨ鎵�灞炲ぇ绫� + 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; + }) + } + }, + props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog'] +} +</script> +<style lang="scss" scoped> +.updateUser { + border-radius: 1px; + background-color: #09152f; + + 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; + } + } + + } + } + + &::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; + } +} +</style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index 26bdb87..f41388a 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -10,8 +10,7 @@ </el-form-item> <!-- 鐢ㄦ埛瀵嗙爜 --> <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" - disabled> + <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled> </el-input> </el-form-item> <!-- 鎵�灞炵敤鎴峰鍚� --> @@ -19,7 +18,7 @@ <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> </el-form-item> --> <!-- 鎬у埆 --> - <el-form-item class="optionItem" label="鎬у埆:" prop="sex" > + <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> <el-radio-group v-model="user.sex" :disabled="!flag.role"> <el-radio :label="1">鐢�</el-radio> <el-radio :label="0">濂�</el-radio> @@ -42,11 +41,16 @@ </el-form-item> <!-- 閫夋嫨瑙掕壊 --> <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> + <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags @change="handleChangeRole"> + <el-option v-for="item in roleList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + <!-- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> - </el-select> + </el-select> --> </el-form-item> <!-- 鐢ㄦ埛绫诲瀷 --> <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> @@ -68,7 +72,8 @@ </el-form-item> --> <!-- 鎵�灞為儴闂� --> <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" @change="changeDepart"> + <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" + @change="changeDepart"> <el-option v-for="item in departList" :key="item.id" :label="item.departName" :value="item.id"> </el-option> @@ -167,7 +172,7 @@ // } // }; const validateType = (rule, value, callback) => { - if (!value && value!==0) { + if (!value && value !== 0) { callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷")); } else { callback(); @@ -277,19 +282,20 @@ const that = this; this.user = JSON.parse(JSON.stringify(that.userInfo)); console.log(this.user); - // 鑾峰彇瑙掕壊鍒楄〃 + // 鑾峰彇鎵�鏈夎鑹插垪琛� this.getRoleList(); - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 + // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃 + this.getUserRole(this.user.id) // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 this.$axios.get('sccg/depart/page').then(res => { that.departList = res.data.records; }) }, methods: { - changeDepart(data){ + changeDepart(data) { console.log(data); - this.departList.forEach(item=>{ - if(item.id===data){ + this.departList.forEach(item => { + if (item.id === data) { this.user.departName = item.departName; } }) @@ -301,13 +307,13 @@ const { user } = this; this.$axios({ method: 'post', - url: 'sccg/admin/update/' + user.id, + url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds='+user.role, data: user }) .then(res => { this.$message({ - type:res.code===200 ? 'success' : 'warning', - message:res.message, + type: res.code === 200 ? 'success' : 'warning', + message: res.message, }) this.getUserList(); this.$emit('closeDialog', { flag: false }); @@ -326,16 +332,46 @@ .then(res => { this.roleList = res.data; }) + }, + // 鏀瑰彉鐢ㄦ埛瑙掕壊 + handleChangeRole(data){ + console.log(this.user.role); + // console.log(data); + }, + // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛� + getUserRole(id){ + this.$axios({ + method:'get', + url:`sccg/admin/role/${id}` + }) + .then(res=>{ + console.log(res); + const arr = []; + res.data.forEach(item=>{ + arr.push(item.id); + }) + this.user.role = arr; + }) } }, - props: ['userInfo', 'updateFlag', 'flag','closeDialog','getUserList'] + props: ['userInfo', 'updateFlag', 'flag', 'closeDialog', 'getUserList'] } </script> <style lang="scss" scoped> .updateUser { border-radius: 1px; background-color: #09152f; - + :deep(.el-tag){ + background-color: #09152f; + } + .el-select-dropdown.is-multiple .el-select-dropdown__item.selected{ + background-color: #09152f; + color: #4b9bb7; + } + // .el-select-dropdown__item :deep(.selected){ + // background-color: #09152f; + // color: #4b9bb7; + // } main { text-align: left; padding: 0 55px; -- Gitblit v1.8.0