From 676722551d0bc2f8caa0644961e60deef3f0d532 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期一, 10 十月 2022 18:08:27 +0800 Subject: [PATCH] 修改遗留问题,新增店铺管理删除、编辑,新增车辆管理模块 --- src/views/operate/car/lawCar/index.vue | 3 src/views/operate/car/myIndex/updateUser/index.vue | 234 +++ src/views/layout/components/Menu/index.vue | 25 src/utils/helper.js | 2 src/views/operate/disposal/casepool/pool/index.vue | 19 src/components/illdetail/index.vue | 171 +- src/views/operate/baseSetting/illegalBuild/createUser/index.vue | 93 + src/views/operate/disposal/casepool/learn/index.vue | 14 src/views/systemSetting/baseSetting/department/index.vue | 11 src/views/operate/disposal/casepool/notDeal/index.vue | 14 src/views/operate/car/myIndex/updateUser/uploadResult/components/arrive/index.vue | 185 +++ src/views/operate/fivepack/shop/components/header/index.vue | 29 src/views/operate/fivepack/shop/components/main/index.vue | 105 + src/components/process/index.vue | 42 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 71 src/views/operate/car/myIndex/updateUser/uploadResult/ill/index.vue | 48 src/components/dispatch/index.vue | 191 ++- src/router/index.js | 18 src/utils/validate.js | 14 src/views/operate/car/myIndex/createUser/index.vue | 172 ++ src/views/operate/car/myIndex/updateUser/uploadResult/components/book/index.vue | 96 + src/views/operate/disposal/casepool/dispatch/index.vue | 25 src/views/operate/car/soilCar/index.vue | 3 src/views/operate/car/myIndex/index.vue | 550 +++++++++ src/views/operate/baseSetting/violation/createUser/index.vue | 243 ++- src/views/operate/fivepack/shop/components/updateUser/index.vue | 402 ++---- src/views/operate/management/myIndex/index.vue | 73 src/views/operate/car/myIndex/updateUser/uploadResult/components/evidence/index.vue | 627 ++++++++++ src/components/solveProblem/index.vue | 18 src/views/operate/car/myIndex/updateUser/uploadResult/vio/index.vue | 123 ++ 30 files changed, 2,890 insertions(+), 731 deletions(-) diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue index 73c86db..66d3df2 100644 --- a/src/components/dispatch/index.vue +++ b/src/components/dispatch/index.vue @@ -23,25 +23,26 @@ <div class="form-person"> <!-- 閮ㄩ棬 --> <el-form-item label="閫夋嫨浜哄憳:" prop="dispatchOpinion"> - <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬"> - <el-option v-for="item in departOptions" :key="item.value" :label="item.label" - :value="item.value"> + <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange"> + <el-option v-for="item in departOptions" :key="item.id" :label="item.departName" + :value="item.id"> </el-option> </el-select> </el-form-item> <!-- 涓槦 --> <el-form-item prop="enforcementTeam" class="person-item"> - <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦"> - <el-option v-for="item in squadronOptions" :key="item.value" :label="item.label" - :value="item.value"> + <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦" + :disabled="squadronOptions.length!==0?false:true" @change="handleMidChange"> + <el-option v-for="item in squadronOptions" :key="item.id" :label="item.departName" + :value="item.id"> </el-option> </el-select> </el-form-item> <el-form-item prop='lawEnforcer' class="person-item"> <!-- 浜哄憳 --> - <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳"> - <el-option v-for="item in personOptions" :key="item.value" :label="item.label" - :value="item.value"> + <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳" + :disabled="personOptions.length !== 0 ? false:true" @change="handlePerChange"> + <el-option v-for="item in personOptions" :key="item.id" :label="item.username" :value="item.id"> </el-option> </el-select> </el-form-item> @@ -59,7 +60,7 @@ </div> </el-form> <div class="map"> - <MyMap></MyMap> + <!-- <MyMap></MyMap> --> </div> <div class="footer"> <el-button type="primary" @click="handleDispatch">纭畾</el-button> @@ -73,9 +74,11 @@ components: { MyMap }, - props: ['id','changeDialog','refresh'], + props: ['id', 'changeDialog', 'refresh', 'mytype'], created() { - console.log(this.id); + // 鍒ゆ柇杞﹁締绫诲瀷 + this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList(); + this.getDepartList(); }, data() { const checkPhone = (rule, value, callback) => { @@ -102,13 +105,6 @@ callback(); } else { callback(new Error('璺濈涓嶈兘涓虹┖')) - } - } - const checkCar = (rule, value, callback) => { - if (value) { - callback(); - } else { - callback(new Error('鎵ф硶杞﹁締涓嶈兘涓虹┖')) } } const checkTeam = (rule, value, callback) => { @@ -156,12 +152,9 @@ distance: [ { required: true, trigger: 'change', validator: checkDistance } ], - enforcementCar: [ - { required: true, trigger: 'change', validator: checkCar } - ], - enforcementTeam: [ - { required: true, trigger: 'change', validator: checkTeam } - ], + // enforcementTeam: [ + // { required: true, trigger: 'change', validator: checkTeam } + // ], lawEnforcer: [ { required: true, trigger: 'change', validator: checkPerson } ], @@ -180,14 +173,6 @@ }, ], departOptions: [ - { - label: '閮ㄩ棬涓�', - value: 1, - }, - { - label: '閮ㄩ棬浜�', - value: 2, - }, ], carOptions: [ { @@ -200,24 +185,9 @@ }, ], squadronOptions: [ - { - label: '涓槦涓�', - value: 1, - }, - { - label: '涓槦浜�', - value: 2, - }, ], personOptions: [ - { - label: '浜哄憳涓�', - value: 1, - }, - { - label: '浜哄憳浜�', - value: 2, - }, + ], } }, @@ -228,32 +198,119 @@ this.$refs.form.validate((valid) => { console.log(valid); if (valid) { - const {dispatch,id} = this; + const { dispatch, id } = this; dispatch.disposeDate = new Date(); console.log(id); dispatch.baseCaseId = id; console.log(dispatch); this.$axios({ - method:'post', - url:`sccg/dispatch_handle/dispatch`, - data:dispatch + method: 'post', + url: `sccg/dispatch_handle/dispatch`, + data: dispatch }) - .then(res=>{ - this.$message({ - type: res.code === 200 ? 'success':'error', - message: res.code === 200 ? '璋冨害鎴愬姛':res.message, + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'error', + message: res.code === 200 ? '璋冨害鎴愬姛' : res.message, + }) + this.$emit('changeDialog', { flag: false }); + this.refresh(); }) - this.$emit('changeDialog',{flag:false}); - this.refresh(); - }) } else { return false; } }) }, // 鍙栨秷璋冨害 - handleBack(){ - this.$emit('changeDialog',{flag:false}) + handleBack() { + this.$emit('changeDialog', { flag: false }) + }, + // 鑾峰彇鎵ф硶杞﹁締 + getLawCarList() { + this.$axios({ + method: 'get', + url: `sccg/car_Manage/query_enforce?current=1&size=1000` + }) + .then(res => { + this.carOptions = res.data.orders; + console.log(res); + }) + }, + // 鑾峰彇娓e湡杞﹁締 + getSoilCarList() { + this.$axios({ + method: 'get', + url: `sccg/car_Manage/query_slag?current=1&size=1000` + }) + .then(res => { + this.carOptions = res.data.orders; + console.log(res); + }) + }, + // 鑾峰彇椤剁骇閮ㄩ棬 + getDepartList() { + this.$axios({ + method: 'get', + url: `sccg/depart/query_father`, + }) + .then(res => { + this.departOptions = res.data; + }) + }, + // 鑾峰彇涓槦 + async getTeamList(id) { + await this.$axios({ + method: 'get', + url: `sccg/depart/query_father_children?fatherId=${id}` + }) + .then(res => { + this.squadronOptions = res.data; + }) + .catch(err => { + console.log(err); + }) + }, + // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛 + async getDepartUserList(id) { + await this.$axios({ + method: 'get', + url: `sccg/admin/getDepartUser/${id}`, + }) + .then(res => { + this.personOptions = res.data; + }) + .catch(err => { + this.$message({ + type: 'error', + message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�' + }) + }) + }, + // 閮ㄩ棬鏇存敼 + async handleTopChange(id) { + this.dispatch.lawEnforcer = ''; + this.dispatch.enforcementTeam = ''; + await this.getTeamList(id); + await this.getDepartUserList(id); + }, + // 涓槦鏇存敼 + async handleMidChange(id) { + this.dispatch.lawEnforcer = ''; + await this.getDepartUserList(id); + }, + // 浜哄憳鏇存敼 + async handlePerChange(id){ + await this.getLawUser(id); + }, + // 鑾峰彇鎵ф硶浜哄憳淇℃伅 + async getLawUser(id){ + await this.$axios({ + method:'get', + url:`sccg/admin/${id}` + }) + .then(res=>{ + console.log(res); + }) } } } @@ -261,12 +318,15 @@ <style lang="scss" scoped> .dispatch { padding: 50px 20px 10px; - .form-person{ + + .form-person { display: flex; - .person-item{ + + .person-item { margin-left: -100px; } } + .form-footer { display: flex; align-items: center; @@ -282,7 +342,8 @@ height: 388px; width: 100%; } - .footer{ + + .footer { display: flex; justify-content: flex-end; padding: 10px 20px; diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue index 1de98cc..7606cf6 100644 --- a/src/components/illdetail/index.vue +++ b/src/components/illdetail/index.vue @@ -1,112 +1,71 @@ <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">{{baseCase.category}}</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">{{baseCase.streetId}}</span> - </div> - </div> - <div class="data-item"> - <div class="data-item__left"> - <label class="data-title"> - 浜嬪彂鍦扮偣: - </label> - <span class="data-detail">{{baseCase.site}}</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"> + <el-form :model="baseCase" label-position="right" ref="viewForm" label-width="160px"> <div class="data-item"> - <div class="data-item__left"> - <label class="data-title"> - 鍙嶆槧浜�: - </label> - <span class="data-detail">{{baseCase.createUser}}</span> - </div> - <div class="data-item__right"> - <label class="data-title"> - 鑱旂郴鏂瑰紡: - </label> - <span class="data-detail">12345678901</span> - </div> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">杩濆缓</span> + </el-form-item> + <el-form-item label="杩濆缓绫诲埆:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> </div> <div class="data-item"> - <div class="data-item__left"> - <label class="data-title"> - 韬唤璇佸彿: - </label> - <span class="data-detail">123456789987654321</span> - </div> + <el-form-item label="褰撲簨浜哄鍚�:"> + <span class="data-detail">xxxxxx</span> + </el-form-item> </div> - </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">xxxx</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">xxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="韬唤璇佹鍙嶉潰鐓х墖:"> + <img src="" alt=""> + </el-form-item> + <el-form-item> + <img src="" alt=""> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵ф硶杩濆缓鎯呭喌"> + </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 xxxxx 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> </div> <div class="view-process"> <div class="process-header"> @@ -203,6 +162,14 @@ } border: 1px solid #17324c; + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } } .view-process { diff --git a/src/components/process/index.vue b/src/components/process/index.vue index 8db0ab4..ef53b8b 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -4,33 +4,33 @@ <div class="pro-step" v-for="(item,index) in list" :key="item.name"> <div class="pro-step-top"> <div - :class="['circle',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + :class="['circle',active === index ? 'in-process__circle' : active > index ? 'finish' : 'wait' ]"> </div> - <div :class="['line',active > index ? 'finish-line' :'']" + <div :class="['line',active> index ? 'finish-line' :'']" v-if="index<list.length-1 ? true:false"></div> </div> <div - :class="['pro-step-name',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + :class="['pro-step-name',active === index ? 'in-process' : active > index ? 'finish-name' : 'wait' ]"> {{item.name}}</div> </div> </div> <div class="my-pro-main"> <div class="pro-step-ver" v-for="(item,index) in list" :key="item.title"> <div - :class="['pro-step-name',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + :class="['pro-step-name',active === index ? 'in-process' : active > index ? 'finish-name' : 'wait' ]"> {{item.name}}</div> <div class="pro-step-top"> <div - :class="['circle',active === index+1 ? 'in-process' : active > index ? 'finish' : 'wait' ]"> + :class="['circle',active === index ? 'in-process__circle' : active > index ? 'finish' : 'wait' ]"> </div> <div :class="['line',active > index ? 'finish-line' :'']" v-if="index<list.length-1 ? true:false"></div> </div> - <div class="desc"> - <div class="desc-title">鐜妭鐢ㄦ椂:{{item.disposeRecords[0].linkTime}}</div> + <div :class="['desc',active === index ? 'in-process' : active > index ? 'finish-name' : 'wait' ]"> + <div class="desc-title">鐜妭鐢ㄦ椂:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].linkTime : ''}}</div> <div class="desc-content" v-if="active > index"> <div class="desc-content-message">1111111</div> - <div class="desc-content-endtime">{{item.disposeRecords[0].endTime}}</div> + <div class="desc-content-endtime">{{item.disposeRecords.length !==0 ? item.disposeRecords[0].endTime:''}}</div> </div> </div> </div> @@ -67,7 +67,7 @@ title: '缁撴', status: 'process', } - ] + ], } }, props:['handlePassVo'], @@ -75,14 +75,15 @@ console.log('process'); const {handlePassVo:{workflowConfigSteps:mylist}} = this; // console.log(this.handlePassVo.workflowConfigSteps[0].name); - console.log(mylist); + // console.log(mylist); mylist.forEach(item=>{ - if(item.disposeRecords[0].endTime != null){ + if(item.disposeRecords.length!==0){ this.active ++; } }) + console.log(this.active); this.list = mylist; - } + }, } </script> <style lang="scss" scoped> @@ -136,6 +137,7 @@ flex: 1; line-height: 24px; margin-left: 10px; + // color: #4b9bb7; .desc-content-endtime{ display: flex; justify-content: flex-end; @@ -148,14 +150,26 @@ height: 24px; border-radius: 50%; background-color: #fff; + border: 2px solid #808080; } .line { background-color: #c0c4cc; } - + .in-process{ + color: #0079fe; + } + .in-process__circle{ + border: 2px solid #0079fe; + } .finish-line { - background-color: #4b9bb7; + background-color: #0079fe; + } + .finish{ + border: 2px solid #4b9bb7; + } + .finish-name{ + color: #4b9bb7; } } </style> \ No newline at end of file diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue index 8f20c92..f9f9be8 100644 --- a/src/components/solveProblem/index.vue +++ b/src/components/solveProblem/index.vue @@ -8,25 +8,11 @@ <el-timeline> <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id"> <div class="title"> - <div class="title-left">銆恵{item.name}}銆憑{item.name === '娲鹃仯' ? '娲鹃仯鍛�':item.name === '澶勭悊' ? '澶勭悊浜�':'璇勫畾浜�'}}:{{item.disposeRecords[0].handleId}}</div> - <div class="title-right">{{item.disposeRecords[0].endTime}}</div> + <div class="title-left">銆恵{item.name}}銆憑{item.name === '娲鹃仯' ? '娲鹃仯鍛�':item.name === '澶勭悊' ? '澶勭悊浜�':'璇勫畾浜�'}}:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].handleId : ''}}</div> + <div class="title-right">{{item.disposeRecords.length !==0 ? item.disposeRecords[0].endTime:''}}</div> </div> <div class="message">銆恵{item.name === '娲鹃仯' ? '娲鹃仯鎰忚':item.name === '澶勭悊' ? '澶勭悊缁撴灉':'璇勫畾缁撴灉'}}銆戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> </el-timeline-item> - <!-- <el-timeline-item :color="mycolor"> - <div class="title"> - <div class="title-left">銆愬鐞嗐�戝鐞嗕汉:xxx</div> - <div class="title-right">22.09.06 16:40</div> - </div> - <div class="message">銆愬鐞嗙粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> - <el-timeline-item :color="mycolor"> - <div class="title"> - <div class="title-left">銆愯瘎瀹氥�戣瘎瀹氫汉:xxx</div> - <div class="title-right">22.09.06 16:40</div> - </div> - <div class="message">銆愯瘎瀹氱粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> --> </el-timeline> </div> </div> diff --git a/src/router/index.js b/src/router/index.js index 7bda25a..9266767 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -169,7 +169,7 @@ path: 'management', name: 'management', component: () => import('@/views/operate/management'), - redirect:'/home/operate/management/myIndex', + redirect: '/home/operate/management/myIndex', children: [ { path: 'myIndex', @@ -183,7 +183,21 @@ name: 'car', component: () => import('@/views/operate/car'), children: [ - + { + path: 'carIndex', + name: 'carIndex', + component: () => import('@/views/operate/car/myIndex'), + }, + { + path:'lawTrajectory', + name:'lawTrajectory', + component: () => import('@/views/operate/car/lawCar'), + }, + { + path:'soilTrajectory', + name:'soilTrajectory', + component: () => import('@/views/operate/car/soilCar'), + } ] } ] diff --git a/src/utils/helper.js b/src/utils/helper.js index 68a299d..dcb709e 100644 --- a/src/utils/helper.js +++ b/src/utils/helper.js @@ -16,7 +16,7 @@ } return objClone; } -// 璁$畻鏃堕棿 +// 璁$畻闄愬埗鏃堕棿 function computeTime(time2) { const t1 = new Date(); const t2 = new Date(time2); diff --git a/src/utils/validate.js b/src/utils/validate.js index c8f70ca..159c39c 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -10,13 +10,19 @@ return urlregex.test(textval) } // 鏍¢獙姹夊瓧鍚� -export function validateName(str){ - +export function validateName(str) { + const rep = /^[\u4E00-\u9FA5]{2,4}$/; + return rep.test(str); } // 鏍¢獙鎵嬫満鍙� -export function validatePhone(str){ +export function validatePhone(str) { const phoneRep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/; return phoneRep.test(str); } - +// 鏍¢獙閭 +export function validateEmail(str) { + const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; + return rep.test(str); +} +// diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index daa74db..3ee22e5 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -95,9 +95,9 @@ <template slot="title"> <span class="secondSpan">涓撻」鏁存不</span> </template> - <el-menu-item index="/home/operate/rectification/taskList">浠诲姟鍒楄〃</el-menu-item> - <el-menu-item index="/home/operate/rectification/surveyList">鏅煡鍒楄〃</el-menu-item> - <el-menu-item index="/home/operate/rectification/renovationList">鏁存不鍒楄〃</el-menu-item> + <el-menu-item index="/home/operate/rectification/taskList">浠诲姟鍒楄〃</el-menu-item> + <el-menu-item index="/home/operate/rectification/surveyList">鏅煡鍒楄〃</el-menu-item> + <el-menu-item index="/home/operate/rectification/renovationList">鏁存不鍒楄〃</el-menu-item> </el-submenu> <el-menu-item index="/home/operate/lawEnforcement">宸℃煡鎵ф硶</el-menu-item> <el-menu-item index="/home/operate/dasds">妗堝嵎鏌ヨ</el-menu-item> @@ -109,7 +109,14 @@ <el-menu-item index="/home/operate/fivepack/shop">搴楅摵绠$悊</el-menu-item> </el-submenu> <el-menu-item index="/home/operate/dasdas">绠楁硶妯″瀷绠$悊</el-menu-item> - <el-menu-item index="/home/operate/car">杞﹁締绠$悊</el-menu-item> + <el-submenu index="/home/operate/car" class="secondMenu"> + <template slot="title"> + <span class="secondSpan">杞﹁締绠$悊</span> + </template> + <el-menu-item index="/home/operate/car/carIndex">杞﹁締绠$悊</el-menu-item> + <el-menu-item index="/home/operate/car/lawTrajectory">杞ㄨ抗鍒嗘瀽(鎵ф硶杞�)</el-menu-item> + <el-menu-item index="/home/operate/car/soilTrajectory">杞ㄨ抗鍒嗘瀽(娓e湡杞�)</el-menu-item> + </el-submenu> <el-menu-item index="/home/operate">鍥剧墖绠$悊</el-menu-item> <el-menu-item index="/home/operate">瑙嗛绠$悊</el-menu-item> <el-menu-item index="/home/operate">娑堟伅绠$悊</el-menu-item> @@ -231,9 +238,11 @@ .firstMenu { background: #07162e; text-align: left; - &:hover>.el-submenu__title{ + + &:hover>.el-submenu__title { background-color: #092c4a; } + &:hover .fisrtSpan { color: #22d3eb; } @@ -260,18 +269,20 @@ } .secondMenu { - &:hover>.el-submenu__title{ + &:hover>.el-submenu__title { background-color: #092c4a; } + &:hover .secondSpan { color: #22d3eb; } } .thirdMenu { - &:hover>.el-submenu__title{ + &:hover>.el-submenu__title { background-color: #092c4a; } + &:hover .thirdSpan { color: #22d3eb; } diff --git a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue index 5c0ddeb..fe916b4 100644 --- a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue +++ b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue @@ -18,14 +18,19 @@ </el-form-item> <!-- 鐖剁骇id --> <el-form-item class="optionItem" label="鐖剁骇:" prop="parentId"> - <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵埗绾�"> - <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id"> + <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵埗绾�" :disabled="things.level===1"> + <!-- <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> --> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="parentList" :props="defaultProps" show-checkbox + @check-change="handleCheck" default-expand-all node-key="id"> + </el-tree> </el-option> </el-select> </el-form-item> <!-- 妗堢敱 --> <el-form-item class="optionItem" label="妗堢敱:" prop="type"> - <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> + <el-input type="textarea" :rows="2" v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" :disabled="things.level!==2"></el-input> </el-form-item> <el-form-item> <div class="optionBtn"> @@ -83,30 +88,43 @@ value: 2, }, ], + parentList: [], + selectOrg: { + orgsid: [] + }, + defaultProps: { + children: 'children', + label: 'name' + }, + mylabel:'' } }, created() { }, methods: { // 鏌ヨ鎵�灞炵被鍨� - getTypeThird() { - this.$axios({ + async getTypeThird() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/illegal_building/query/type_first", }) .then(res => { - this.parentList = res.data; + arr = res.data; }) + return arr; }, // 鏌ヨ鎵�灞炲ぇ绫� - getTypeSecond() { - this.$axios({ + async getTypeSecond() { + let arr =[]; + await this.$axios({ method: 'get', url: "sccg/illegal_building/query/type_second", }) .then(res => { - this.parentList = res.data; + arr = res.data; }) + return arr; }, // 鎻愪氦鏂板杩濊绫诲瀷 handleSubmit() { @@ -114,15 +132,15 @@ this.$refs.user.validate((valid) => { console.log(valid); if (valid) { - const { things } = this; + const { things,selectOrg } = this; this.$axios({ method: 'post', url: 'sccg/illegal_building/addition/type', data: { code: '1111', - level: things.parentId === '' ? things.level : things.level + 1, + level: things.level, name: things.name, - parentId: things.parentId === '' ? 0 : things.parentId, + parentId: things.parentId === '' ? 0 : selectOrg.orgsid[0], typeCode: '06', typeName: '杩濆缓绫诲瀷', remark: things.type, @@ -149,13 +167,54 @@ }) }, // 妗堜欢绾у埆鍙樺寲 - resetParentList(index) { + async resetParentList(index) { if (index === 1) { - this.getTypeThird(); - }else { - this.getTypeSecond(); + + }else{ + this.parentList = this.addChildren(await this.getTypeThird(), await this.getTypeSecond()); } - } + }, + addChildren(parentArr, childArr) { + // console.log(parentArr.length,childArr); + parentArr.forEach(item => { + item.children = []; + childArr.forEach(child => { + if (item.id === child.parentId) { + item.children.push(child); + } + }) + }) + console.log(parentArr); + return parentArr; + }, + handleCheck(data, checked) { + this.things.parentId = data.name; + console.log(this.selectOrg.orgsid); + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id) + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: '鍙兘閫夋嫨涓�涓尯鍩燂紒', + type: 'error', + showClose: true + }) + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false) + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = [] + this.selectOrg.orgsid.push(data.id) + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = [] + } + }, }, props: ['changeDialog'] } diff --git a/src/views/operate/baseSetting/violation/createUser/index.vue b/src/views/operate/baseSetting/violation/createUser/index.vue index fa9d67c..01669a3 100644 --- a/src/views/operate/baseSetting/violation/createUser/index.vue +++ b/src/views/operate/baseSetting/violation/createUser/index.vue @@ -2,11 +2,8 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" :rules="createThings" label-width="140px" autoComplete="on" :model="things" label-position="right"> - <!-- 杩濊浜嬮」缂栧彿 --> - <!-- <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> - <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> - </el-form-item> --> + <el-form ref="user" :rules="createThings" label-width="140px" autoComplete="on" :model="things" + label-position="right"> <!-- 鏂板鐨勭被鍨嬫垨澶х被鎴栧皬绫� --> <el-form-item class="optionItem" label="鏂板鍚嶇О:" prop="name"> <el-input v-model="things.name" placeholder="璇疯緭鍏ユ柊澧炲悕绉�"></el-input> @@ -21,15 +18,21 @@ </el-form-item> <!-- 鐖剁骇id --> <el-form-item class="optionItem" label="鐖剁骇:" prop="parentId"> - <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > - <el-option v-for="item in parentList" :key="item.id" :label="item.name" - :value="item.id"> + <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" :disabled="things.level===1"> + <!-- <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id" + v-if="things.level===1"> + </el-option> --> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="parentList" :props="defaultProps" show-checkbox + @check-change="handleCheck" default-expand-all node-key="id"> + </el-tree> </el-option> </el-select> </el-form-item> <!-- 妗堢敱 --> <el-form-item class="optionItem" label="妗堢敱:" prop="type"> - <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input> + <el-input type="textarea" :rows="2" v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" + :disabled="things.level!==4"></el-input> </el-form-item> <el-form-item> <div class="optionBtn"> @@ -45,42 +48,35 @@ <script> export default { data() { - const checkName = (rule,value,callback)=>{ - if(value){ + const checkName = (rule, value, callback) => { + if (value) { callback(); - }else{ + } else { callback(new Error('鏂板杩濊绫诲瀷涓嶈兘涓虹┖')); } } - const checkLevel = (rule,value,callback)=>{ - if(value){ + const checkLevel = (rule, value, callback) => { + if (value) { callback(); - }else{ + } else { callback(new Error('鏂板杩濊绛夌骇涓嶈兘涓虹┖')); } } - // const checkId = (rule,value,callback)=>{ - // if(value){ - // callback(); - // }else{ - // callback(new Error('鏂板杩濊绛夌骇涓嶈兘涓虹┖')); - // } - // } return { things: { - name:'', - parentId:'', - level:'', + name: '', + parentId: '', + level: '', }, - createThings:{ - name:[ + createThings: { + name: [ { - required:true,trigger:'blur',validator:checkName + required: true, trigger: 'blur', validator: checkName } ], - level:[ + level: [ { - required:true,trigger:'change',validator:checkLevel + required: true, trigger: 'change', validator: checkLevel } ], // parentId:[ @@ -89,59 +85,76 @@ // } // ] }, - levelList:[ + levelList: [ { - label:"杩濊涓被鍨�", - value:1, + label: "杩濊涓被鍨�", + value: 1, }, { - label:"澶х被", - value:2, + label: "澶х被", + value: 2, }, { - label:"灏忕被", - value:3, + label: "灏忕被", + value: 3, }, { - label:"妗堢敱", - value:4, + label: "妗堢敱", + value: 4, }, ], - parentList:[], + parentList: [], + selectOrg: { + orgsid: [] + }, + defaultProps: { + children: 'children', + label: 'name' + }, + mylabel:'' } }, created() { }, methods: { // 鏌ヨ鎵�灞炵被鍨� - getTypeThird() { - this.$axios({ + async getTypeThird() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/violations/query/type_first", }) .then(res => { - this.parentList = res.data; + arr = res.data; + // this.parentList = res.data; }) + return arr }, // 鏌ヨ鎵�灞炲ぇ绫� - getTypeSecond(){ - this.$axios({ + async getTypeSecond() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/violations/query/type_second", }) .then(res => { - this.parentList = res.data; + arr = res.data; + // this.parentList = res.data; }) + return arr }, // 鏌ヨ鎵�灞炲皬绫� - getTypeFirst(){ - this.$axios({ + async getTypeFirst() { + let arr = []; + await this.$axios({ method: 'get', url: "sccg/violations/query/type_third", }) .then(res => { - this.parentList = res.data; + arr = res.data; + // this.parentList = res.data; }) + return arr }, // 鏌ヨ鎵�灞炴鐢� getEventLevel() { @@ -152,60 +165,110 @@ .then(res => { console.log(res); this.parentList = res.data; - }) + }) }, // 鎻愪氦鏂板杩濊绫诲瀷 - handleSubmit(){ + handleSubmit() { console.log(this.things); - this.$refs.user.validate((valid)=>{ + this.$refs.user.validate((valid) => { console.log(valid); - if(valid){ - const {things} = this; + if (valid) { + const { things, selectOrg} = this; + console.log(things,selectOrg.orgsid[0]); this.$axios({ - method:'post', - url:'sccg/violations/addition/type', - data:{ - code:'1111', - level:things.parentId === '' ? things.level : things.level+1, - name:things.name, - parentId:things.parentId=== '' ? 0 : things.parentId, - typeCode:'01', - typeName:'闂绫诲瀷', - remark:things.type, + method: 'post', + url: 'sccg/violations/addition/type', + data: { + code: '1111', + level: things.level, + name: things.name, + parentId: things.parentId === '' ? 0 : selectOrg.orgsid[0], + typeCode: '01', + typeName: '闂绫诲瀷', + remark: things.type, } }) - .then(res=>{ - console.log(res); - if(res.code === 200){ - this.$message({ - type:'success', - message:'娣诲姞鎴愬姛' - }) - this.$emit('changeDialog',{flag:false}); - }else{ - this.$message({ - type:'error', - message:"娣诲姞澶辫触" - }) - } - }) - }else{ + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: '娣诲姞鎴愬姛' + }) + this.$emit('changeDialog', { flag: false }); + } else { + this.$message({ + type: 'error', + message: "娣诲姞澶辫触" + }) + } + }) + } else { return false; } }) }, // 妗堜欢绾у埆鍙樺寲 - resetParentList(index){ - if(index === 1){ - this.getTypeThird(); - }else if(index === 2){ - this.getTypeSecond(); - }else if(index === 3){ - this.getTypeFirst(); - }else{ - this.getEventLevel(); + async resetParentList(index) { + this.selectOrg.orgsid = []; + if (index === 1) { + // this.getTypeThird(); + } else if (index === 2) { + // console.log(this.getTypeThird()); + this.parentList = await this.getTypeThird(); + this.parentList.forEach(item=>{ + item.children = []; + }) + } else if (index === 3) { + + this.parentList = this.addChildren(await this.getTypeThird(), await this.getTypeSecond()); + console.log(this.parentList); + } else { + let arr1 = this.addChildren(await this.getTypeSecond(), await this.getTypeFirst()); + this.parentList = this.addChildren(await this.getTypeThird(), arr1); } - } + }, + addChildren(parentArr, childArr) { + // console.log(parentArr.length,childArr); + parentArr.forEach(item => { + item.children = []; + childArr.forEach(child => { + if (item.id === child.parentId) { + item.children.push(child); + } + }) + }) + console.log(parentArr); + return parentArr; + }, + handleCheck(data, checked) { + this.things.parentId = data.name; + console.log(this.selectOrg.orgsid); + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id) + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: '鍙兘閫夋嫨涓�涓尯鍩燂紒', + type: 'error', + showClose: true + }) + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false) + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = [] + this.selectOrg.orgsid.push(data.id) + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = [] + } + }, }, props: ['changeDialog'] } diff --git a/src/views/operate/car/lawCar/index.vue b/src/views/operate/car/lawCar/index.vue new file mode 100644 index 0000000..9209bd1 --- /dev/null +++ b/src/views/operate/car/lawCar/index.vue @@ -0,0 +1,3 @@ +<template> + <div class="law-car"></div> +</template> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/createUser/index.vue b/src/views/operate/car/myIndex/createUser/index.vue new file mode 100644 index 0000000..792215e --- /dev/null +++ b/src/views/operate/car/myIndex/createUser/index.vue @@ -0,0 +1,172 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" + label-position="right"> + <!-- 杞︾墝鍙� --> + <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> + <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> + </el-form-item> + <!-- 鎵�灞炲ぇ闃� --> + <el-form-item class="optionItems" label="鎵�灞炲ぇ闃�:" prop="group"> + <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> + <el-option v-for="item in teamList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 杞︿富濮撳悕 --> + <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> + <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> + </el-form-item> + <!-- 杞﹁締浣跨敤浜哄憳 --> + <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> + <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> + </el-form-item> + <!-- 杞ㄨ抗 --> + <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> + <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 + </el-button> + <el-button class="btn submit" > + 鍙栨秷 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +export default { + data() { + return { + car: { + carNumber: "", + contact: "", + group: "", + // id: 0, + ownerName: "", + trajectory: "", + vehicleUser: "" + }, + createCarRules: { + carNumber:[ + { + required:true, + } + ], + contact:[ + { + required:true, + } + ], + // id: 0, + ownerName:[ + { + required:true, + } + ], + vehicleUser:[ + { + required:true, + } + ] + }, + teamList:[ + { + label:'澶ч槦涓�', + value:1, + }, + { + label:'澶ч槦浜�', + value:2, + }, + ] + } + }, + created() { + }, + methods: { + // 娣诲姞杞﹁締 + handleCar(){ + console.log(this.car); + } + }, + props: ['closeDialog'] +} +</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/car/myIndex/index.vue b/src/views/operate/car/myIndex/index.vue new file mode 100644 index 0000000..5bd43a7 --- /dev/null +++ b/src/views/operate/car/myIndex/index.vue @@ -0,0 +1,550 @@ +<template> + <div class="userList"> + <header> + <div class="headerContent"> + <div class="search"> + <span>杞﹁締鎼滅储:</span> + <div class="option"> + <el-input placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input> + </div> + </div> + <div class="addCar"> + <el-button type="primary" class="addBtn" @click="handleAddCar">娣诲姞杞﹁締</el-button> + </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="code" label="杞︾墝鍙�" min-width="10"> + <template slot-scope="scope"> + <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> + </template> + </el-table-column> + <el-table-column prop="code" label="杞﹀瀷" min-width="10" v-if="mystatus===2"> + </el-table-column> + <el-table-column prop="eventSource" label="杞︿富濮撳悕" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> + </template> + </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="mystatus === 1 ? '鎵�灞為儴闂�':'鏂藉伐鍦板潃'" min-width="10"> + </el-table-column> + <el-table-column prop="site" :label="mystatus === 1 ? '鎵�灞炲ぇ闃�' : '鏂藉伐鍗曚綅'" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <div class="btn"> + <span @click="handleReset(scope.row)">鏌ョ湅</span> + <span class="line">|</span> + <span>鍒犻櫎</span> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板 --> + <el-dialog :visible.sync="dialogAdd" width="60%" title="鏂板杞﹁締" + v-if="dialogAdd" :before-close="handleClose"> + <Mycreate v-if="mystatus === 1" @closeDialog="closeDialog"></Mycreate> + </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="鎵归噺鎿嶄綔" disabled> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> + </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 Mycreate from './createUser' +export default { + components: { + Mycreate + }, + data() { + return { + tableData: [], + context: "", + dialogAdd: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: '娓e湡杞�', + value: 2, + checked: false, + }, + ], + mystatus:1, + caseId:'', + } + }, + created() { + this.getUserList(); + }, + methods: { + // 娣诲姞杞﹁締 + handleAddCar(){ + this.dialogAdd = true; + }, + // 鐩戝惉琛ㄦ牸 + 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) }); + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + async getUserList() { + const { currentPage, pageSize, context, mystatus } = this; + let arr =[]; + if(mystatus===1){ + arr = await this.getLawCarList(currentPage, pageSize, context); + }else{ + arr = await this.getSoilCarList(currentPage, pageSize, context) + } + console.log(arr); + this.tableData = arr.records; + this.totalNum = arr.total; + }, + // 鑾峰彇鎵ф硶杞� + async getLawCarList(currentPage,pageSize,carNum){ + let arr =[]; + await this.$axios({ + method:'get', + url:`sccg/car_Manage/query_enforce?current=${currentPage}&size=${pageSize}&carNum=${carNum}`, + }) + .then(res=>{ + arr = res.data; + }) + return arr; + }, + // 鑾峰彇娓e湡杞� + async getSoilCarList(currentPage,pageSize,carNum){ + let arr =[]; + await this.$axios({ + method:'get', + url:`sccg/car_Manage/query_slag?current=${currentPage}&size=${pageSize}&carNum=${carNum}`, + }) + .then(res=>{ + arr = res.data; + }) + return arr; + }, + // 鏇存敼鎵ф硶杞�/娓e湡杞� + changeTypeChecked(idx) { + this.typeList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + this.mystatus = idx + 1; + 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(_ => { + done(); + }) + .catch(_ => { }); + }, + async JumpView(data){ + await this.getEventInfo(data.code); + }, + opernDialog(data){ + this.dialogAdd = true; + this.caseId = data.id; + // console.log(data); + }, + // 鍏抽棴涓婁紶鐣岄潰 + closeDialog({flag}){ + this.dialogAdd = 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; + .btn span:hover{ + cursor: pointer; + } + .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/car/myIndex/updateUser/index.vue b/src/views/operate/car/myIndex/updateUser/index.vue new file mode 100644 index 0000000..47a6bad --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/myIndex/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/arrive/index.vue new file mode 100644 index 0000000..858e326 --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/myIndex/updateUser/uploadResult/components/book/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/book/index.vue new file mode 100644 index 0000000..a4903eb --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/myIndex/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/evidence/index.vue new file mode 100644 index 0000000..d6606bb --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/myIndex/updateUser/uploadResult/ill/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/ill/index.vue new file mode 100644 index 0000000..b74dfdb --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/myIndex/updateUser/uploadResult/vio/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/vio/index.vue new file mode 100644 index 0000000..a12edc3 --- /dev/null +++ b/src/views/operate/car/myIndex/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/car/soilCar/index.vue b/src/views/operate/car/soilCar/index.vue new file mode 100644 index 0000000..916305e --- /dev/null +++ b/src/views/operate/car/soilCar/index.vue @@ -0,0 +1,3 @@ +<template> + <div class="soil-car"></div> +</template> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 98930b9..ac946a7 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -36,6 +36,9 @@ </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> + </template> </el-table-column> <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> @@ -47,7 +50,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 prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15"> + <template slot-scope="scope"> + <span>{{filterTime(scope.row.alarmTime)}}</span> + </template> </el-table-column> <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> @@ -61,11 +67,6 @@ </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"> @@ -87,7 +88,7 @@ <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> - <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled"> </el-option> @@ -106,10 +107,10 @@ </div> </template> <script> -// import updateUser from "./updateUser" import uploadVio from './updateUser/uploadResult/vio' import uploadIll from "./updateUser/uploadResult/ill" import MyDetail from '@/components/detail' +import helper from '@/utils/mydate' export default { components: { // updateUser, @@ -341,6 +342,10 @@ closeDialog({flag}){ this.dialogUpload = flag; this.getUserList(); + }, + // 澶勭悊鏃堕棿 + filterTime(time){ + return helper(time); } } } @@ -411,7 +416,9 @@ margin-top: 20px; padding-bottom: 50px; border: 1pox solid #fff; - + .btn span:hover{ + cursor: pointer; + } .type-nav { display: flex; line-height: 40px; diff --git a/src/views/operate/disposal/casepool/learn/index.vue b/src/views/operate/disposal/casepool/learn/index.vue index 1dbedbb..1d2757c 100644 --- a/src/views/operate/disposal/casepool/learn/index.vue +++ b/src/views/operate/disposal/casepool/learn/index.vue @@ -36,6 +36,9 @@ </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> + </template> </el-table-column> <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> @@ -59,11 +62,6 @@ </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"> @@ -85,7 +83,7 @@ <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> - <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled"> </el-option> @@ -429,7 +427,9 @@ margin-top: 20px; padding-bottom: 50px; border: 1pox solid #fff; - + .btn span:hover{ + cursor: pointer; + } .type-nav { display: flex; line-height: 40px; diff --git a/src/views/operate/disposal/casepool/notDeal/index.vue b/src/views/operate/disposal/casepool/notDeal/index.vue index 41d872f..ac2a9cb 100644 --- a/src/views/operate/disposal/casepool/notDeal/index.vue +++ b/src/views/operate/disposal/casepool/notDeal/index.vue @@ -36,6 +36,9 @@ </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> + </template> </el-table-column> <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> @@ -59,11 +62,6 @@ </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"> @@ -85,7 +83,7 @@ <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> - <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled"> </el-option> @@ -430,7 +428,9 @@ margin-top: 20px; padding-bottom: 50px; border: 1pox solid #fff; - + .btn span:hover{ + cursor: pointer; + } .type-nav { display: flex; line-height: 40px; diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue index 12be6b8..c58bc5a 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -9,13 +9,13 @@ <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules" label-position="right"> <!-- 闂绫诲瀷 --> - <!-- <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category"> + <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category"> <el-select v-model="vio.category" placeholder="杩濊" disabled> <el-option v-for="item in typeList" :key="item.label" :label="item.label" :value="item.value"> </el-option> </el-select> - </el-form-item> --> + </el-form-item> <!-- 澶х被鍚嶇О --> <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId"> <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О"> @@ -51,18 +51,18 @@ </el-option> </el-select> </el-form-item> --> - <!-- 鎵�灞炵ぞ鍖� --> - <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId"> - <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + <!-- 鎵�灞炶閬� --> + <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId"> + <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�" @change="handleStreet"> + <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> </el-select> </el-form-item> - <!-- 鎵�灞炶閬� --> - <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId"> - <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + <!-- 鎵�灞炵ぞ鍖� --> + <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId"> + <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> + <el-option v-for="item in communityList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> </el-select> @@ -89,7 +89,7 @@ </el-form-item> <!-- 闂鎻忚堪 --> <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description"> - <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input> + <el-input type="textarea" maxlength="200" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input> </el-form-item> <!-- 鎶ヨ鏃堕棿 --> <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> @@ -104,15 +104,15 @@ </div> <div class="not-need-item"> <label>鍙嶆槧浜�:</label> - <input type="text" class="not-need__inner"> + <el-input v-model="vio.informant"></el-input> </div> <div class="not-need-item"> <label>鑱旂郴鏂瑰紡:</label> - <input type="text" class="not-need__inner"> + <el-input v-model="vio.informantPhoneCode"></el-input> </div> <div class="not-need-item"> <label>韬唤璇佸彿:</label> - <input type="text" class="not-need__inner"> + <el-input v-model="vio.informantIdCard"></el-input> </div> </div> <div class="input-footer"> @@ -121,7 +121,7 @@ </div> </div> <div class="map-area"> - <MyMap /> + <!-- <MyMap /> --> </div> </div> </template> @@ -293,17 +293,19 @@ label: '杩濆缓', value: 2. } - ] - + ], + streetList:[], + communityList:[], } }, created() { - const { getBigKind, getEventLevel, getSmallKind } = this; + const { getBigKind, getEventLevel, getSmallKind,getStreetList } = this; console.log(this.mytype); this.vio.category = this.mytype + 1; getBigKind(); getSmallKind(); getEventLevel(); + getStreetList(); }, methods: { handleStop() { @@ -326,7 +328,6 @@ url: 'sccg/violations/query/type_second' }) .then(res => { - console.log(res); this.smallKindList = res.data; }) }, @@ -337,18 +338,7 @@ url: 'sccg/violations/query/event_type' }) .then(res => { - console.log(res); this.eventLevelList = res.data; - }) - }, - // 鑾峰彇琛屾斂鍖哄煙 - getRegion() { - this.$axios({ - method: 'get', - url: 'sccg/sccg-region/getTree', - }) - .then(res => { - // this. }) }, // 鎻愪氦娉ㄥ唽淇℃伅 @@ -385,6 +375,27 @@ // 杩斿洖 handleBack(){ this.$emit('changeDialog',{flag:false}) + }, + // 鑾峰彇琛楅亾淇℃伅 + getStreetList(){ + this.$axios({ + method:'get', + url:'sccg/dict/query_Street_type' + }) + .then(res=>{ + this.streetList = res.data; + }) + }, + // 琛楅亾鏇存敼 + handleStreet(id){ + console.log(id); + this.$axios({ + method:'get', + url:'sccg/dict/query_social_type?id='+id + }) + .then(res=>{ + this.communityList = res.data; + }) } }, props: ['mytype', 'changeDialog','refresh'] diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index b54da2e..f45c45c 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -58,6 +58,9 @@ </template> </el-table-column> <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> + </template> </el-table-column> <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> @@ -90,24 +93,27 @@ <!-- 璇︽儏椤靛睍绀� --> <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" :before-close="handleClose"> - <MyDetail :info=info></MyDetail> + <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail> + <MyIllDetail :info=info v-else></MyIllDetail> </el-dialog> <!-- 璋冨害 --> <el-dialog :visible.sync="dialogDispatch" width="80%" title="璋冨害淇℃伅" v-if="dialogDispatch" :before-close="handleClose"> - <MyDispatch :id="baseId" @changeDialog="changeDialog" :refresh="getUserList"></MyDispatch> + <MyDispatch :id="baseId" :mytype="mystatus" @changeDialog="changeDialog" :refresh="getUserList"> + </MyDispatch> </el-dialog> <!-- tools --> <div class="tools"> <div class="funs"> <div class="funsItem"> - <el-checkbox v-model="all" @change="selectAll()" :disabled="tableData.length !== 0 ? false : true">鍏ㄩ��</el-checkbox> + <el-checkbox v-model="all" @change="selectAll()" + :disabled="tableData.length !== 0 ? false : true">鍏ㄩ��</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-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled"> </el-option> @@ -127,13 +133,14 @@ </template> <script> import MyDetail from '@/components/detail' +import MyIllDetail from '@/components/illdetail' import createUser from "./createUser" import MyIll from './createUser/ill' import MyVio from './createUser/vio' import MyDispatch from '@/components/dispatch' export default { components: { - createUser, MyIll, MyVio, MyDetail, MyDispatch + createUser, MyIll, MyVio, MyDetail, MyDispatch, MyIllDetail }, data() { return { @@ -222,7 +229,7 @@ checked: false, }, ], - mystatus: '', + mystatus: 1, statusArr: [], baseId: 0 diff --git a/src/views/operate/fivepack/shop/components/header/index.vue b/src/views/operate/fivepack/shop/components/header/index.vue index 8cbb537..280fe26 100644 --- a/src/views/operate/fivepack/shop/components/header/index.vue +++ b/src/views/operate/fivepack/shop/components/header/index.vue @@ -8,11 +8,11 @@ </div> <div class="status"> <span>搴楅摵鐘舵��:</span> - <el-input placeholder="閫夋嫨搴楅摵鐘舵��" v-model="search"></el-input> + <el-input placeholder="閫夋嫨搴楅摵鐘舵��" v-model="shopStatus"></el-input> </div> <div class="findBtn"> <el-button type="primary" @click="setSearch" icon="el-icon-search">鏌ヨ</el-button> - <el-button icon="el-icon-delete-solid">閲嶇疆</el-button> + <el-button icon="el-icon-delete-solid" @click="clearSearch">閲嶇疆</el-button> </div> </div> <div class="add"> @@ -21,7 +21,7 @@ </div> <div class="footer"> - <el-dialog :visible.sync="dialogCreate" title="娣诲姞搴楅摵" width="45%" v-if="dialogCreate" @close="handleClose"> + <el-dialog :visible.sync="dialogCreate" title="娣诲姞搴楅摵" width="45%" v-if="dialogCreate" :before-close="handleClose"> <createUser @sendDialog="sendDialog" /> </el-dialog> </div> @@ -37,21 +37,36 @@ return { dialogCreate: false, search: '', + shopStatus:'', } }, methods: { + // 杩斿洖缁欑埗绾ф悳绱㈠唴瀹� setSearch() { this.$emit('getSearch', { text: this.search }) }, + // 鐖剁骇鍏抽棴dialog sendDialog(flag) { console.log(flag); this.dialogCreate = flag.flag; this.$emit('setDialog', { flag: true }) }, - handleClose(){ - console.log(this.dialogCreate); - console.log(1); - } + //鍏抽棴dialog + handleClose(done){ + console.log(done); + this.$confirm('纭畾鍏抽棴锛�') + .then(_=>{ + done(); + }) + .catch(err=>{ + console.log(err) + }) + }, + // 娓呯┖search + clearSearch(){ + this.search = ''; + // this.$emit('getSearch',{text:this.search}); + }, }, props: ['setDialog', 'getSearch', 'flag'], } diff --git a/src/views/operate/fivepack/shop/components/main/index.vue b/src/views/operate/fivepack/shop/components/main/index.vue index 72700bb..b611790 100644 --- a/src/views/operate/fivepack/shop/components/main/index.vue +++ b/src/views/operate/fivepack/shop/components/main/index.vue @@ -8,29 +8,30 @@ <el-table-column type="selection" min-width="5"> </el-table-column> <el-table-column label="搴楅摵鍚嶇О" min-width="10"> - <template slot-scope="scope">{{ scope.row.id }}</template> + <template slot-scope="scope">{{ scope.row.storeName }}</template> </el-table-column> - <el-table-column prop="nickName" label="搴楅摵璐熻矗浜�" min-width="10"> + <el-table-column prop="owner" label="搴楅摵璐熻矗浜�" min-width="10"> </el-table-column> - <el-table-column prop="username" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> + <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> </el-table-column> - <el-table-column prop="mobile" label="搴楅摵璇︾粏鍦板潃" min-width="10"> + <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10"> </el-table-column> - <el-table-column prop="note" label="搴楅摵缂栧彿" min-width="10"> + <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> <div class="operation"> - <el-link icon="el-icon-edit" :underline="false">缂栬緫</el-link> - <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false">鍒犻櫎</el-link> + <el-link icon="el-icon-edit" :underline="false" @click.native.prevent='handleEdit(scope.row)'>缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click.native.prevent="hadnleDelete(scope.row)">鍒犻櫎</el-link> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate" - :title="updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo /> + title="缂栬緫鍟嗛摵淇℃伅" :before-close="handleClose"> + <updateUser :userInfo=userInfo @changeDialog="changeDialog" /> </el-dialog> <!-- 鍒嗛〉 --> <div class="pagination"> @@ -54,7 +55,6 @@ tableData: [], search: "", dialogUpdate: false, - updateFlag: false, userInfo: '', totalNum: 200, pageSize: 10, @@ -66,6 +66,64 @@ this.getUserList(); }, methods: { + // 鍏抽棴寮圭獥 + handleClose(done){ + this.$confirm('纭鍏抽棴') + .then(_=>{ + done(); + }) + .catch(err=>{ + console.log(err); + }) + }, + // 鏀瑰彉寮圭獥鐘舵�� + changeDialog({flag}){ + this.dialogUpdate = flag; + this.getUserList(); + }, + // 鍒犻櫎 + hadnleDelete({id}) { + console.log(id); + this.$confirm('纭畾鍒犻櫎锛�') + .then(_=>{ + this.$axios({ + method:'get', + url:`sccg/store/storeinfo/delete/${id}` + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'鍒犻櫎鎴愬姛', + }) + this.getUserList(); + } + }) + .catch(err=>{ + console.log(err,2) + }) + }) + .catch(err=>{ + console.log(err,1); + }) + }, + // 缂栬緫 + async handleEdit({id}){ + this.userInfo = await this.getShopInfo(id); + this.dialogUpdate = true; + }, + // 鑾峰彇闂ㄥ簵淇℃伅 + async getShopInfo(id){ + let obj = {}; + await this.$axios({ + method:'get', + url:`sccg/store/storeinfo/${id}`, + }) + .then(res=>{ + obj = res.data + }) + return obj; + }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; @@ -81,25 +139,10 @@ this.currentPage = page; this.getUserList(); }, - // 淇敼瑙掕壊 - handleChangeRole(obj) { - this.dialogUpdate = true - this.user = obj; - // console.log(obj) - }, - // 淇敼鐢ㄦ埛鐘舵�� - handleChangeStatus(obj) { - let { id, status } = obj; - status == true ? status = 1 : status = 0; - this.$axios.post(`sccg/admin/updateStatus/` + id + '?status=' + status).then(res => { - console.log(res); - }) - }, // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { const that = this; const { currentPage, pageSize, search } = this; - console.log(typeof search); this.$axios.get(`sccg/store/storeinfo/list?keyword=${search}&pageNum=${currentPage}&pageSize=${pageSize}`) .then(res => { if (res.code === 200) { @@ -112,18 +155,6 @@ this.renderFlag = true; } }) - }, - // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) - handleFind(rowData) { - this.dialogUpdate = true; - this.updateFlag = false; - this.userInfo = rowData; - }, - // 淇敼鐢ㄦ埛閮ㄩ棬淇℃伅 - handleUpdate(rowData) { - this.dialogUpdate = true; - this.updateFlag = true; - this.userInfo = rowData }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { diff --git a/src/views/operate/fivepack/shop/components/updateUser/index.vue b/src/views/operate/fivepack/shop/components/updateUser/index.vue index eabcd01..22f6691 100644 --- a/src/views/operate/fivepack/shop/components/updateUser/index.vue +++ b/src/views/operate/fivepack/shop/components/updateUser/index.vue @@ -1,107 +1,47 @@ <template> - <div class="updateUser"> - <!-- <header> - <div class="headerTitle">{{updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'}}</div> - </header> --> + <div class="createUser"> <main> - <!-- <div class="mainTitle">鍩虹淇℃伅</div> --> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" + <el-form ref="user" label-width="140px" autoComplete="on" :model="store" :rules="createUserRules" label-position="right"> - <!-- 鐢ㄦ埛鍚嶇О --> - <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username"> - <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" :disabled="true"></el-input> - </el-form-item> - <!-- 鐢ㄦ埛瀵嗙爜 --> - <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" :disabled="true"> - </el-input> - </el-form-item> - <!-- 鎵�灞炵敤鎴峰鍚� --> - <!-- <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="true_name"> - <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> - </el-form-item> --> - <!-- 鎬у埆 --> - <!-- <el-form-item class="optionItem" label="鎬у埆:" prop="gender"> - <el-radio-group v-model="user.gender"> - <el-radio :label="1">鐢�</el-radio> - <el-radio :label="2">濂�</el-radio> - </el-radio-group> - </el-form-item> --> - <!-- 鏄惁鍏氬憳 --> - <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> - <el-radio-group v-model="user.isDy" disabled> - <el-radio :label="1">鏄�</el-radio> - <el-radio :label="0">鍚�</el-radio> - </el-radio-group> - </el-form-item> - <!-- 鎵�灞炴墜鏈哄彿鐮� --> - <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> - <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" :disabled="true"></el-input> - </el-form-item> - <!-- 閭鍦板潃 --> - <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> - <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" :disabled="true"></el-input> - </el-form-item> - <!-- 閫夋嫨瑙掕壊 --> - <!-- <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�"> - <el-option v-for="item in roleList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> --> - <!-- 鐢ㄦ埛绫诲瀷 --> - <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> - <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> + <!-- 搴楅摵绫诲瀷 --> + <el-form-item class="optionItem" label="搴楅摵绫诲瀷:" prop="storetype"> + <el-select v-model="store.storetype" placeholder="搴楅摵/闂ㄥ簵绫诲瀷"> + <el-option v-for="item in shopTypeList" :key="item.name" :label="item.name" :value="item.value"> </el-option> </el-select> </el-form-item> - <!-- 搴ф満/鍒嗘満 --> - <!-- <el-form-item class="optionItem" label="搴ф満/鍒嗘満:" prop="zj"> - <div class="optionHandleSp"> - <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="鐢佃瘽鍖哄彿"> - </el-input> - <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="鐢佃瘽鍙风爜"> - </el-input> - <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="鍒嗘満鍙风爜"> - </el-input> - </div> - </el-form-item> --> - <!-- 鎵�灞為儴闂� --> - <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.department" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.departName" - :value="item.id"> - </el-option> - </el-select> + <!-- 搴楅摵鍚嶇О --> + <el-form-item class="optionItems" label="搴楅摵鍚嶇О:" prop="storeName"> + <el-input v-model="store.storeName" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input> </el-form-item> - <!-- 褰撳墠鑱屽姟 --> - <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> - <el-select v-model="user.work" placeholder="璇烽�夋嫨褰撳墠鑱屽姟" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> - </el-option> - </el-select> + <!-- 璐熻矗浜� --> + <el-form-item class="optionItem" label="璐熻矗浜�:" prop="owner"> + <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿礋璐d汉鍚嶅瓧"></el-input> </el-form-item> - <!-- 濉啓鎵�灞瀖ac鍦板潃 --> - <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> - <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input> - </el-form-item> --> - <!-- 濉啓鎵�灞瀒p鍦板潃 --> - <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> - <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></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 class="optionItem" label="搴楅摵鎻忚堪:" prop="storeDesc"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="300" show-word-limit + v-model="store.storeDesc" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input> + <!-- <el-input type="textarea" v-model="user.storedesc" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input> --> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯绘柟寮�"></el-input> + </el-form-item> + <!-- 搴楅摵鍦板潃 --> + <el-form-item class="optionItem" label="搴楅摵鍦板潃:" prop="storeAddress"> + <el-input v-model="store.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�"></el-input> </el-form-item> </el-form> - </div> </main> + <footer> + <div class="optionBtn"> + <el-button class="btn reset" @click="handleBack">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click="handleUser">纭畾</el-button> + </div> + </footer> </div> </template> <script> @@ -109,27 +49,23 @@ data() { const validateNickname = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); + callback(new Error("璐熻矗浜轰笉鑳戒负绌�")); + } else { + callback(); } }; const validatePass = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); + callback(); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + callback(); } }; const validateTruename = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); + callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖')); } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + callback() } }; const validatePhone = (rule, value, callback) => { @@ -139,201 +75,148 @@ const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ if (!rep.test(value)) { callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); + }else{ + callback(); } } }; const validateMail = (rule, value, callback) => { if (value) { - const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; - if (!rep.test(value)) { - callback(new Error("璇疯緭鍏ユ纭殑閭")) - } - } - }; - const validateRole = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { callback(); + } else { + callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖')) } }; const validateType = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { + callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖')); + } else { callback(); } }; - const validateDepartment = (rule, value, callback) => { + const validateDesc = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { callback(); - } - }; - const validateWork = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateMac = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateIp = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); } else { callback(); } }; return { - user: { - nickName: '', - password: '', - username: '', - // gender: 1, - isDy: 1, - mobile: '', - email: '', - // role: null, - userType: null, - zj: { - areaNumber: '', - phoneNumber: "", - moreNumber: "", - }, - departmentId: null, - jobTitle: null, - // mac: '', - // ip: '', + store: { }, createUserRules: { - nickName: [ + owner: [ { required: true, trigger: "blur", validator: validateNickname }, ], - password: [ + storetype:[ + { + required:true,trigger:'change', validator:validateType, + } + ], + idcardinfo: [ { required: true, trigger: "blur", validator: validatePass }, ], - username: [ + storeAddress: [ { required: true, trigger: "blur", validator: validateTruename }, ], - // gender: [ - // { required: true, trigger: "blur" }, - // ], - isDy: [ - { required: true, trigger: "blur" }, - ], - mobile: [ + contact: [ { required: true, trigger: "blur", validator: validatePhone }, ], - email: [ - { required: false, trigger: "blur", validator: validateMail }, + storeName: [ + { required: true, trigger: "blur", validator: validateMail }, ], - // role: [ - // { required: true, trigger: "blur", validator: validateRole }, - // ], - userType: [ - { required: true, trigger: "blur", validator: validateType }, + storeDesc: [ + { required: false, trigger: "blur", validator: validateDesc }, ], - zj: [ - { required: false, trigger: "blur" }, - ], - departmentId: [ - { required: true, trigger: "blur", validator: validateDepartment }, - ], - jobTitle: [ - { required: true, trigger: "blur", validator: validateWork }, - ], - // mac: [ - // { required: false, trigger: "blur", validator: validateMac }, - // ], - // ip: [ - // { required: false, trigger: "blur", validator: validateIp }, - // ], }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } + shopTypeList: [ + { name: '绫诲瀷1', value: 1 }, { name: '绫诲瀷2', value: 2 } ], - typeList: [] } }, created() { - const that = this; - this.user = JSON.parse(JSON.stringify(that.userInfo)); - // 鑾峰彇瑙掕壊鍒楄〃 - // this.$axios.get('') - // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃 - // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{ - // console.log(res); - // }) - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) + const {userInfo} = this; + console.log(userInfo) + this.store = userInfo; }, methods: { handleUser() { - const { user } = this; - this.$axios.post('sccg/depart/status', { - id: user.departmentId, - status: user.status ? 1 : 0, - }).then(res => { - console.log(res); + const { store } = this; + this.$refs.user.validate((valid)=>{ + console.log(valid); + if(valid){ + this.$axios({ + method:'put', + url:'sccg/store/storeinfo/update', + data:{ + contact:store.contact, + idcardinfo:store.idCardInfo, + owner:store.owner, + storeAddress:store.storeAddress, + storeName:store.storeName, + id:store.id, + storePhoto:store.storePhoto, + storeScore:store.storeScore, + } + }) + .then(res=>{ + console.log(res); + if(res.code===200){ + this.$message({ + type:'success', + message:'淇敼鎴愬姛', + }) + this.$emit('changeDialog',{flag:false}); + }else{ + this.$message({ + type:'error', + message:res.message, + }) + } + }) + }else{ + return false; + } }) + }, + handleBack(){ + this.$emit('changeDialog',{flag:false}) } }, - props: ['userInfo', 'updateFlag'] + props: ['userInfo','changeDialog'] } </script> <style lang="scss" scoped> -.updateUser { +.createUser { border-radius: 1px; background-color: #09152f; - - // header { - // display: flex; - // justify-content: center; - // height: 60px; - // line-height: 60px; - // padding: 0 20px; - // border: 1px solid #fff; - // .headerTitle { - // color: #4b9bb7; - // font-weight: 600; - // } - - // .headerTip span { - // color: #ff3b6c; - // } - - // .headerTip label { - // color: #4b9bb7; - // } - // } + padding-bottom: 50px; main { - // border: 1px solid #fff; text-align: left; padding: 0 55px; background-color: #09152f; - padding-bottom: 50px; - // .mainTitle { - // color: #4b9bb7; - // font-weight: 600; - // line-height: 100px; - // font-size: 14px; - // } + padding-top: 20px; .mainContent { display: flex; justify-content: center; - padding-top: 50px; + margin-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + .el-form-item__content { width: 400px; @@ -355,25 +238,32 @@ } } - .optionBtn { - display: flex; - margin-top: 20px; - - .btn { - padding: 12px 50px; - } - } - } } -} -.updateUser::v-deep .el-form-item__label { - color: #4b9bb7; -} + footer { + border-top: 1px solid #4b9bb7; + display: flex; + justify-content: flex-end; + padding: 0 20px; -.updateUser::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; + .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-input__count { + background-color: #09152f; + } } </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 c1b5985..39d0bde 100644 --- a/src/views/operate/management/myIndex/index.vue +++ b/src/views/operate/management/myIndex/index.vue @@ -19,10 +19,6 @@ </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'}" @@ -55,8 +51,8 @@ <template slot-scope="scope"> <div class="btn"> <span @click="handleExamine(scope.row)" v-if="instatus===7 ? true : false">瀹℃牳</span> - <span class="line" v-if="instatus===7 ? true : false">|</span> - <span @click="handleClosure(scope.row)">缁撴</span> + <!-- <span class="line" v-if="instatus===7 ? true : false">|</span> --> + <span @click="handleClosure(scope.row)" v-if="instatus===8">缁撴</span> </div> </template> </el-table-column> @@ -71,6 +67,12 @@ :before-close="handleClose"> <MyClosure :info="info" @closeDialog="closeDialog"></MyClosure> </el-dialog> + <!-- 璇︽儏椤甸潰 --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + :before-close="handleClose"> + <MyDetail :info=info v-if="myproblem==1 ? true:false"></MyDetail> + <MyIllDetail :info=info v-else></MyIllDetail> + </el-dialog> <!-- tools --> <div class="tools"> <div class="funs"> @@ -81,7 +83,7 @@ <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> - <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled"> </el-option> @@ -102,15 +104,18 @@ <script> import MyExamine from './components/examine' import MyClosure from './components/closure' +import MyDetail from '@/components/detail' +import MyIllDetail from '@/components/illdetail' export default { components: { - MyExamine,MyClosure + MyExamine,MyClosure,MyDetail,MyIllDetail }, data() { return { tableData: [], dialogExamine:false, dialogClosure:false, + dialogView:false, info: {}, totalNum: null, pageSize: 10, @@ -245,18 +250,6 @@ this.tableData = res.data.records; }) }, - // 鏇存敼杩濊/杩濆缓 - changeTypeChecked(idx) { - this.typeList.forEach((item, index) => { - if (index === idx) { - item.checked = true; - } else { - item.checked = false; - } - }); - this.myproblem = idx+1; - this.getUserList(); - }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { if ((rowIndex + 1) % 2 == 0) { @@ -290,11 +283,22 @@ .catch(_ => { }); }, async JumpView(data) { - console.log(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.dialogView = true; + }) + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo3(code) { this.$axios({ method: 'get', url: `sccg/base_case/baseCaseDetail/${code}` @@ -319,7 +323,7 @@ }, // 鍘诲鏍� handleExamine({code}) { - this.getEventInfo(code); + this.getEventInfo3(code); }, // 鍘荤粨妗� handleClosure({code}){ @@ -375,30 +379,9 @@ 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; - } + .btn span:hover{ + cursor: pointer; } - .tools { display: flex; justify-content: space-between; diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue index f716b60..7029b46 100644 --- a/src/views/systemSetting/baseSetting/department/index.vue +++ b/src/views/systemSetting/baseSetting/department/index.vue @@ -94,7 +94,6 @@ <script> import createUser from "./createUser" import updateUser from "./updateUser" -import helper from "@/utils/mydate.js" export default { components: { createUser, updateUser @@ -191,9 +190,6 @@ this.all = false } }, - changeTime({ createTime }) { - return helper(createTime); - }, selectAll() { this.$refs.multipleTable.toggleAllSelection(); @@ -228,11 +224,10 @@ }) .catch(_ => { }); }, - // 淇敼鐢ㄦ埛鐘舵�� + // 淇敼鐘舵�� handleChangeStatus(obj) { let { id, status } = obj; status == true ? status = 1 : status = 0; - console.log(id, status); this.$axios.post(`sccg/depart/status`, { id: id, status: status }).then(res => { if (res.code == 200) { this.getUserList(); @@ -247,8 +242,7 @@ this.$axios.get('sccg/depart/page').then(res => { if (res.code === 200) { res.data.records.forEach(item => { - item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; + item.status == 0 ? item.status = false : item.status = true; }) that.totalNum = res.data.records.length; that.tableData = res.data.records.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize) @@ -262,7 +256,6 @@ this.$axios.get('sccg/depart/page', { params: { currentPage: this.currentPage, pageSize: this.pageSize, departName: this.context } }).then(res => { if (res.code === 200) { res.data.records.forEach(item => { - item.createTime = helper(item.createTime); item.status == 1 ? item.status = true : item.status = false; }) that.totalNum = res.data.records.length; -- Gitblit v1.8.0