From 053a40db4fcbcbafb89a346ff17695b150745782 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期五, 30 九月 2022 11:55:11 +0800 Subject: [PATCH] 调试案件池部分接口 --- src/views/operate/management/index.vue | 3 src/views/operate/management/mysovle/index.vue | 5 src/views/layout/components/Menu/index.vue | 1 src/views/operate/disposal/casepool/pool/index.vue | 90 + src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue | 0 src/views/operate/disposal/casepool/dispatch/updateUser/index.vue | 0 src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue | 0 src/views/operate/disposal/casepool/dispatch/createUser/index.vue | 195 ++++ src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 2 src/components/filePictrue/index.vue | 0 src/components/process/index.vue | 149 +++ src/views/operate/management/mydetail/index.vue | 5 src/views/systemSetting/baseSetting/user/components/main/index.vue | 6 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 80 - src/views/operate/disposal/casepool/escalation/index.vue | 2 src/views/systemSetting/baseSetting/user/components/password/index.vue | 144 +++ src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue | 127 +++ src/router/index.js | 37 src/views/operate/disposal/casepool/dispatch/index.vue | 678 ++++++++++++---- src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue | 0 src/components/detail/index.vue | 245 +++++ src/components/scene/index.vue | 0 src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue | 0 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue | 200 ++++ src/views/operate/management/myIndex/index.vue | 464 +++++++++++ src/components/solveProblem/index.vue | 0 26 files changed, 2,169 insertions(+), 264 deletions(-) diff --git a/src/components/detail/index.vue b/src/components/detail/index.vue new file mode 100644 index 0000000..a229646 --- /dev/null +++ b/src/components/detail/index.vue @@ -0,0 +1,245 @@ +<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"> + <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> + </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" :handlePassVo="handlePassVo"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :currentSitVo="currentSitVo" ></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> + <MyScene v-else></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + baseCase:{}, + handlePassVo:{}, + currentSitVo:{}, + problemProVo:{}, + + } + }, + created() { + console.log('created'); + const {info} = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.currentSitVo; + console.log(info); + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 0 30px 0 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + .show-wrap{ + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue b/src/components/filePictrue/index.vue similarity index 100% copy from src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue copy to src/components/filePictrue/index.vue diff --git a/src/components/process/index.vue b/src/components/process/index.vue new file mode 100644 index 0000000..7ec8e99 --- /dev/null +++ b/src/components/process/index.vue @@ -0,0 +1,149 @@ +<template> + <div class="my-process"> + <div class="my-pro-header"> + <div class="pro-step" v-for="(item,index) in list" :key="item.title"> + <div class="pro-step-top"> + <div + :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + </div> + <div :class="['line',active > item.index ? 'finish-line' :'']" + v-if="index<list.length-1 ? true:false"></div> + </div> + <div + :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + {{item.title}}</div> + </div> + </div> + <div class="my-pro-main"> + <div class="pro-step-ver" v-for="(item,index) in list" :key="item.title"> + <div + :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + {{item.title}}</div> + <div class="pro-step-top"> + <div + :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + </div> + <div :class="['line',active > item.index ? 'finish-line' :'']" + v-if="index<list.length-1 ? true:false"></div> + </div> + <div class="desc"> + <div class="desc-title">鐜妭鐢ㄦ椂:</div> + <div class="desc-content" v-if="active > index+1"> + <div class="desc-content-message">1111111</div> + <div class="desc-content-endtime">22.09.06 16:40</div> + </div> + </div> + </div> + </div> + </div> +</template> +<script> +export default { + data() { + return { + active: 2, + list: [ + { + title: '涓婃姤', + status: 'success', + }, + { + title: '绔嬫', + status: 'process', + }, + { + title: '娲鹃仯', + status: 'process', + }, + { + title: '澶勭疆', + status: 'process', + }, + { + title: '鏍告煡', + status: 'process', + }, + { + title: '缁撴', + status: 'process', + } + ] + } + }, + props:['handlePassVo'], + created(){ + console.log('process'); + console.log(this.handlePassVo); + } +} +</script> +<style lang="scss" scoped> +.my-process { + padding-top: 50px; + .my-pro-header { + display: flex; + + .pro-step { + flex: 1; + + .pro-step-top { + display: flex; + align-items: center; + + .line { + flex: 1; + height: 2px; + } + } + + .pro-step-name { + line-height: 20px; + } + } + } + + .my-pro-main { + .pro-step-ver { + display: flex; + align-items: flex-start; + .line { + width: 2px; + height: 100px; + } + } + .pro-step-top{ + display: flex; + flex-direction: column; + align-items: center; + } + .pro-step-name { + line-height: 24px; + margin-right: 10px; + } + .desc{ + flex: 1; + line-height: 24px; + margin-left: 10px; + .desc-content-endtime{ + display: flex; + justify-content: flex-end; + } + } + } + + .circle { + width: 24px; + height: 24px; + border-radius: 50%; + background-color: #fff; + } + + .line { + background-color: #c0c4cc; + } + + .finish-line { + background-color: #4b9bb7; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue b/src/components/scene/index.vue similarity index 100% copy from src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue copy to src/components/scene/index.vue diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue b/src/components/solveProblem/index.vue similarity index 100% copy from src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue copy to src/components/solveProblem/index.vue diff --git a/src/router/index.js b/src/router/index.js index 0547632..60ad75a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -11,8 +11,8 @@ path: '/home', name: 'home', component: () => import('@/views/layout'), - meta:{ - needLogin:true, + meta: { + needLogin: true, }, children: [ { @@ -137,28 +137,41 @@ path: 'rectification', name: 'rectification', component: () => import('@/views/operate/rectification'), - children:[ + children: [ { - path:"taskList", - name:'taskList', + path: "taskList", + name: 'taskList', component: () => import('@/views/operate/rectification/taskList'), }, { - path:"surveyList", - name:'surveyList', + path: "surveyList", + name: 'surveyList', component: () => import('@/views/operate/rectification/surveyList'), }, { - path:"renovationList", - name:'renovationList', + path: "renovationList", + name: 'renovationList', component: () => import('@/views/operate/rectification/renovationList'), } ] }, { - path:'lawEnforcement', - name:'lawEnforcement', - component:()=>import('@/views/operate/lawEnforcement') + path: 'lawEnforcement', + name: 'lawEnforcement', + component: () => import('@/views/operate/lawEnforcement') + }, + { + path: 'management', + name: 'management', + component: () => import('@/views/operate/management'), + redirect:'/home/operate/management/myIndex', + children: [ + { + path: 'myIndex', + name: 'myIndex', + component: () => import('@/views/operate/management/myIndex'), + } + ] } ] }, diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index 57e0180..13e63b8 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -89,6 +89,7 @@ <el-menu-item index="/home/operate/casepool">鍐嶅涔犵鐞�</el-menu-item> <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item> </el-submenu> + <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item> <el-menu-item index="/home/operate/myWait">鎴戠殑寰呭姙</el-menu-item> <el-submenu index="/home/operate/rectification" class="secondMenu"> <template slot="title"> diff --git a/src/views/operate/disposal/casepool/dispatch/createUser/index.vue b/src/views/operate/disposal/casepool/dispatch/createUser/index.vue new file mode 100644 index 0000000..b609337 --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/createUser/index.vue @@ -0,0 +1,195 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="things" label-position="right"> + <!-- 杩濊浜嬮」缂栧彿 --> + <el-form-item class="optionItem" label="杩濊浜嬮」缂栧彿:" prop="number"> + <el-input v-model="things.number" placeholder="璇峰~鍐欒繚瑙勪簨椤圭紪鍙�"></el-input> + </el-form-item> + <!-- 鎵�灞炵被鍨� --> + <el-form-item class="optionItems" label="鎵�灞炵被鍨�:" prop="typeThird"> + <el-select v-model="things.typeThird" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > + <el-option v-for="item in typeThirdList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎵�灞炲ぇ绫� --> + <el-form-item class="optionItem" label="鎵�灞炲ぇ绫�:" prop="typeSecond"> + <el-select v-model="things.typeSecond" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" > + <el-option v-for="item in typeSecondList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎵�灞炲皬绫� --> + <el-form-item class="optionItem" label="鎵�灞炲皬绫�:" prop="typeFirst"> + <el-select v-model="things.typeFirst" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" disabled> + <el-option v-for="item in typeFirstList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item class="optionItem" label="妗堢敱:" prop="type"> + <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" + :disabled="!updateFlag" disabled></el-input> + </el-form-item> + <el-form-item v-if="updateFlag"> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +export default { + data() { + return { + things: { + number: 0, + type: '', + typeFirst: '', + typeSecond: '', + typeThird: '', + }, + roleList: [], + typeThirdList:[], + typeSecondList:[], + typeFirstList:[], + } + }, + created() { + console.log(this.userInfo); + this.things = JSON.parse(JSON.stringify(this.userInfo)); + // 鑾峰彇鎵�灞炵被鍨嬪垪琛� + this.getTypeThird(); + this.getTypeSecond(); + this.getTypeFirst(); + }, + methods: { + // handleUser() { + // this.$refs.user.validate((valid) => { + // if (valid) { + // const { role } = this; + // console.log(role); + // this.$axios.post('/sccg/role/update/' + role.id, { + // id: role.id, + // status: role.status, + // description: role.description, + // name: role.name, + // sort: 0 + // }).then(res => { + // this.$emit('changeDialog', { dialogUpdate: false }); + // this.getUserList(); + // }) + // } else { + // return false; + // } + // }) + // }, + // 鏌ヨ鎵�灞炵被鍨� + getTypeThird() { + this.$axios({ + method: 'get', + url: "sccg/violations/query/type_first", + }) + .then(res => { + this.typeThirdList = res.data; + }) + }, + // 鏌ヨ鎵�灞炲ぇ绫� + getTypeSecond(){ + this.$axios({ + method: 'get', + url: "sccg/violations/query/type_second", + }) + .then(res => { + this.typeSecondList = res.data; + }) + }, + // 鏌ヨ鎵�灞炲皬绫� + getTypeFirst(){ + this.$axios({ + method: 'get', + url: "sccg/violations/query/type_third", + }) + .then(res => { + this.typeFirstList = res.data; + }) + } + }, + props: ['getUserList'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index f2ebdf3..60a5310 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -1,119 +1,291 @@ <template> - <div class="casepool"> - <!-- 鏌ヨ娣诲姞 --> + <div class="userList"> <header> - <div class="search"> - <span>鏉ユ簮鏌ヨ锛�</span> - <el-input placeholder="璇疯緭鍏ラ棶棰樻潵婧�"></el-input> + <div class="headerContent"> + <div class="search"> + <span>绛涢�夋潯浠�:</span> + <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + <div class="findBtn"> + <el-button type="primary" @click="getUserList">鏌ヨ</el-button> + </div> + </div> </div> - <!-- <div class="add"> - <el-button type="primary" icon="el-icon-plus" @click="handleOpenDialog">娣诲姞</el-button> - </div> --> </header> - <!-- 涓讳綋灞曠ず --> <main> <div class="mainContent"> - <!-- 瀵艰埅鐘舵�佹爣绛� --> - <div class="nav"> - <el-tabs type="border-card"> - <el-tab-pane :label="item.name" v-for="item in tagList" :key="item.name"> - </el-tab-pane> - </el-tabs> - <!-- 鏁版嵁娓叉煋 --> - <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"> - <el-table-column type="selection" min-width="5"> - </el-table-column> - <el-table-column label="浜嬩欢缂栧彿" min-width="6"> - <template slot-scope="scope">{{ scope.row.id }}</template> - </el-table-column> - <el-table-column prop="source" label="闂鏉ユ簮" min-width="10"> - </el-table-column> - <el-table-column prop="bigKind" label="澶х被鍚嶇О" min-width="6"> - </el-table-column> - <el-table-column prop="samllKind" label="灏忕被鍚嶇О" min-width="6"> - </el-table-column> - <el-table-column prop="reson" label="妗堢敱" min-width="10"> - </el-table-column> - <el-table-column prop="location" label="鎶ヨ鐐逛綅" min-width="10"> - </el-table-column> - <el-table-column prop="area" label="鎵�灞炲尯鍩�" min-width="10"> - </el-table-column> - <el-table-column prop="appendTime" label="鎶ヨ鏃堕棿" min-width="10"> - </el-table-column> - <el-table-column prop="duration" label="鎸佺画鏃堕棿" min-width="6"> - </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> - <template slot-scope="scope"> - <div class="operation"> - <span @click="handleFind(scope.row)">璋冨害</span> - <span class="line">|</span> - <span @click="handleUpdate(scope.row)">涓婁紶澶勭疆缁撴灉</span> - </div> - </template> - </el-table-column> - </el-table> + <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="eventSource" label="闂鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template> + <div class="btn"> + <span>璋冨害</span> + <span class="line">|</span> + <span @click="opernDialog">涓婁紶澶勭疆缁撴灉</span> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog :visible.sync="dialogUpdate" width="80%" title="鍩虹淇℃伅(浜哄伐)" + v-if="dialogUpdate" :before-close="handleClose"> + <updateUser :info=info /> + </el-dialog> + <!-- 涓婁紶椤甸潰 --> + <el-dialog :visible.sync="dialogUpload" width="45%" title="涓婁紶澶勭疆缁撴灉" + v-if="dialogUpload" :before-close="handleClose"> + <!-- <uploadVio></uploadVio>杩濊 --> + <uploadIll></uploadIll> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> </div> </div> </main> - <!-- 缁勪欢鍖� --> - <footer> - <!-- <el-dialog v-if="visible" :visible.async="visible" title="闂鐧昏" width="60%" :before-close="handleClose"> - <checkIn></checkIn> - </el-dialog> --> - </footer> </div> </template> <script> -// import checkIn from './compenents/checkIn'; +import updateUser from "./updateUser" +import uploadVio from './updateUser/uploadResult/vio' +import uploadIll from "./updateUser/uploadResult/ill" export default { components: { - // checkIn, + updateUser,uploadVio,uploadIll }, data() { return { - tagList: [ - // { - // name: '寰呭鐞�', - // value: 0, - // }, - // { - // name: '宸蹭笂鎶�', - // value: 0, - // }, - // { - // name: '宸茶皟搴�', - // value: 0, - // }, - // { - // name: '鍦ㄥ涔�', - // value: 0, - // }, - // { - // name: '鏆備笉澶勭悊', - // value: 0, - // }, + tableData: [], + context: "", + dialogUpload:false, + dialogUpdate: false, + info: {}, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + typeList: [ { name: '杩濊', - value: 0, + value: 1, + checked: true }, { name: '杩濆缓', - value: 0, + value: 2, + checked: false, }, ], - tableData: [ + tagList: [ { - id: 13413114, - source: '浜哄伐涓婃姤/瑙嗛宸℃煡', - appendTime: '2022-01-09 14:52' - } + name: '寰呭鐞�', + value: 7, + checked: true + }, + { + name: '宸蹭笂鎶�', + value: 1, + checked: false + }, + { + name: '宸茶皟搴�', + value: 3, + checked: false + }, + { + name: '鍦ㄥ涔�', + value: 4, + checked: false + }, + { + name: '鏆備笉澶勭悊', + value: 4, + checked: false + }, ], - visible: false, + statusArr:[], } }, + created() { + this.tagList.forEach(item => { + if (item.checked) { + this.statusArr[0] = item.value; + } + }) + this.typeList.forEach(item => { + if (item.checked) { + this.statusArr[1] = item.value; + } + }) + this.getUserList(); + }, methods: { + // 鎵归噺鍒犻櫎 + mulDelete(idArr){ + console.log(idArr); + this.$axios({ + method:'delete', + url:'sccg/violations/batch_delete?ids='+idArr, + }).then(res=>{ + this.getUserList(); + this.$message({ + message:res.message, + type:res.code === 200 ? 'success' : 'warning' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + selectChange(val) { + let ids = []; + this.tempList.forEach(item => { + ids.push(item.number); + }) + if (ids.length !== 0) { + if (val === 3) { + this.mulDelete(ids); + } + } else { + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鐩戝惉琛ㄦ牸閫変腑鐘舵�� + tableChange(list) { + this.tempList = list; + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 鍒犻櫎鍗曟潯鏁版嵁 + handleDelete({ number }) { + console.log(number); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + console.log(1); + this.$axios({ + method: 'delete', + url: `sccg/violations/delete?id=${number}`, + }) + .then(res => { + console.log(res); + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { console.log(2) }); + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getUserList() { + const { currentPage, pageSize, context, statusArr } = this; + console.log(statusArr); + this.$axios({ + method: 'get', + url: `sccg/base-case/query/${statusArr[1]}?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2` + }).then(res => { + this.totalNum = res.data.total; + this.tableData = res.data.records; + console.log(res); + }) + }, + // 鏇存敼杩濊/杩濆缓 + changeTypeChecked(idx) { + this.typeList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { if ((rowIndex + 1) % 2 == 0) { @@ -123,141 +295,299 @@ } return ''; }, - // 鎵撳紑娣诲姞椤� - handleOpenDialog() { - this.visible = true; + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); }, - // 鍏抽棴瀵硅瘽妗� + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, handleClose(done) { - this.$confirm('纭鍏抽棴锛�') - .then(_ => { - this.visible = false; - done(); - }) - .catch(_ => {}); - } + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpload = false; + this.dialogUpdate = false; + done(); + }) + .catch(_ => { }); + }, + async JumpView(data){ + await this.getEventInfo(data.code); + this.dialogView = true; + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code){ + this.$axios({ + method:'get', + url:`sccg/base-case/baseCaseDetail/${code}` + }) + .then(res=>{ + this.info = res.data; + }) + }, + opernDialog(){ + this.dialogUpload = true; + } } } </script> <style lang="scss" scoped> -.casepool { +.userList { text-align: left; + margin: 10px 20px; color: #4b9bb7; - header { - display: flex; - justify-content: space-between; - padding: 0 20px; - line-height: 60px; + background-color: #09152f; + border: 1pox solid #fff; - .search { + .headerContent { + padding: 0 40px; display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; - span { - flex: 2; + .search { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + } - .el-input { - flex: 5; + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; + .el-button { + padding: 12px 25px; + border-radius: 20px; } } - } - .add { - .el-button { + .addBtn { background-color: #eb5d01; border: none; border-radius: 20px; + padding: 12px 30px; } } } main { - .mainContent { - .nav { - &::v-deep .el-tabs--border-card { - border: none; - } + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; - &::v-deep .el-tabs--border-card>.el-tabs__content { - background-color: #09152f; - } + .type-nav { + display: flex; + line-height: 40px; + margin-left: 30px; + padding-top: 10px; + margin-bottom: 10px; - &::v-deep .el-tabs__nav-scroll { - background-color: #09152f; - } + .type-item { + width: 80px; + text-align: center; - &::v-deep .el-tabs__header { - line-height: 60px; + &:hover { + cursor: pointer; } + } - &::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item { - color: #fff; - } + .is-active { + background-color: #070f22; + border-radius: 4px; + color: #fff; + } + } - &::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active { - color: #4b9bb7; - background-color: #071f39; - border: none; - } + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; - .el-table { + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border: 1px solid #17324c; + border-radius: 4px; font-size: 12px; - color: #4b9bb7; + margin-left: 10px; - .line { - padding: 0 5px; + .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; } } - &::v-deep .el-table__empty-block { - background-color: #09152f; - color: #4b9bb7; - } + } - .el-table::v-deep .warning-row { - background: #06122c; - } + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; - .el-table::v-deep .success-row { - background: #071f39; + .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; } - footer { + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } - &::v-deep .el-dialog__header, - &::v-deep .el-dialog__body { - background-color: #06122c; - } + &::v-deep .el-dialog__title { + color: #4b9bb7; + } - &::v-deep .el-dialog__header { - display: flex; - align-items: center; - background-color: #fff; - padding: 20px; - line-height: 60px; - } + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } - &::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; - } + &::v-deep .el-dialog__body { + padding: 0; } } </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue rename to src/views/operate/disposal/casepool/dispatch/updateUser/filePictrue/index.vue diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/escalation/updateUser/index.vue rename to src/views/operate/disposal/casepool/dispatch/updateUser/index.vue diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue rename to src/views/operate/disposal/casepool/dispatch/updateUser/process/index.vue diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue rename to src/views/operate/disposal/casepool/dispatch/updateUser/scene/index.vue diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue similarity index 100% rename from src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue rename to src/views/operate/disposal/casepool/dispatch/updateUser/solveProblem/index.vue diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue new file mode 100644 index 0000000..cb35357 --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/ill/index.vue @@ -0,0 +1,200 @@ +<template> + <div class="vio"> + <div class="arrive"> + <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> + <div class="arrive-form"> + <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> + <!-- 鍒拌揪鏃堕棿 --> + <el-form-item label="鍒拌揪鏃堕棿" prop="arriveTime"> + <el-input v-model="arrive.arriveTime"></el-input> + </el-form-item> + <!-- 鍒拌揪鍦板潃 --> + <el-form-item label="鍒拌揪鍦板潃" prop="arriveAddr"> + <el-input v-model="arrive.arriveAddr"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌璇存槑 --> + <el-form-item label="鐜板満鎯呭喌璇存槑" prop="arriveCondition"> + <el-input type="textarea" v-model="arrive.arriveCondition"></el-input> + </el-form-item> + <!-- 淇¤鍥炲璇存槑 --> + <el-form-item label="淇¤鍥炲璇存槑" prop="arriveLetter"> + <el-input v-model="arrive.arriveLetter"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌鐓х墖 --> + <el-form-item label="鐜板満鎯呭喌鐓х墖" prop="arrivePhoto"> + <el-input v-model="arrive.arrivePhoto"></el-input> + </el-form-item> + </el-form> + </div> + </div> + <div class="evidence"> + <div class="evidence-title">璋冩煡鍙栬瘉</div> + <div class="evidence-form"> + <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" + autoComplete="on"> + <!-- 鏂囦功绉嶇被 --> + <el-form-item label="鏂囦功绉嶇被" prop="team"> + <el-input v-model="evidence.team"></el-input> + </el-form-item> + <!-- 鍗忓姙闃熷憳 --> + <el-form-item label="鍗忓姙闃熷憳" prop="helper"> + <el-input v-model="evidence.helper"></el-input> + </el-form-item> + <!-- 鏃堕棿 --> + <el-form-item label="鏃堕棿" prop="time"> + <el-input v-model="evidence.time"></el-input> + </el-form-item> + <!-- 鍦板潃 --> + <el-form-item label="鍦板潃" prop="address"> + <el-input v-model="evidence.address"></el-input> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item label="妗堢敱" prop="cause"> + <el-input v-model="evidence.cause"></el-input> + </el-form-item> + <!-- 鏂囦功绉嶇被 --> + <el-form-item label="鏂囦功绉嶇被" prop="team"> + <el-input v-model="evidence.team"></el-input> + </el-form-item> + <!-- 褰撲簨浜轰俊鎭� --> + <el-form-item label="褰撲簨浜轰俊鎭�" prop="appender"> + <el-input v-model="evidence.appender"></el-input> + </el-form-item> + <!-- 鎯呭喌鎻忚堪 --> + <el-form-item label="鎯呭喌鎻忚堪" prop="description"> + <el-input v-model="evidence.description"></el-input> + </el-form-item> + <!-- 鐓х墖闄勪欢 --> + <el-form-item label="鐓х墖闄勪欢" prop="photo"> + <el-input v-model="evidence.photo"></el-input> + </el-form-item> + </el-form> + </div> + </div> + <div class="book"> + <div class="book-title">鏂囩涔︾被</div> + <div class="book-form"> + <el-form ref="bookForm" label-width="160px" :model="book" :rules="bookRules" + autoComplete="on"> + <!-- 鏂囦功绉嶇被 --> + <el-form-item label="鏂囦功绉嶇被" prop="kind"> + <el-input v-model="book.kind"></el-input> + </el-form-item> + <!-- 鏂囦功缂栧彿 --> + <el-form-item label="鏂囦功缂栧彿" prop="id"> + <el-input v-model="book.id"></el-input> + </el-form-item> + <!-- 杩濇硶绫诲瀷 --> + <el-form-item label="杩濇硶绫诲瀷" prop="vioKind"> + <el-input v-model="book.vioKind"></el-input> + </el-form-item> + <!-- 鏂囦功鍙戞斁鏃堕棿 --> + <el-form-item label="鏂囦功鍙戞斁鏃堕棿" prop="giveTime"> + <el-input v-model="book.giveTime"></el-input> + </el-form-item> + <!-- 鏂囦功闄愬畾鏃堕棿 --> + <el-form-item label="鏂囦功闄愬畾鏃堕棿" prop="limitTime"> + <el-input v-model="book.limitTime"></el-input> + </el-form-item> + <!-- 鏂囦功鍙戞斁鍐呭 --> + <el-form-item label="鏂囦功鍙戞斁鍐呭" prop="content"> + <el-input v-model="book.content"></el-input> + </el-form-item> + <!-- 瀹為檯鏁存敼鏃堕棿 --> + <el-form-item label="瀹為檯鏁存敼鏃堕棿" prop="updateTime"> + <el-input v-model="book.updateTime"></el-input> + </el-form-item> + <!-- 鏁存敼鎯呭喌 --> + <el-form-item label="鏁存敼鎯呭喌" prop="condition"> + <el-input v-model="book.condition"></el-input> + </el-form-item> + <!-- 澶囨敞 --> + <el-form-item label="澶囨敞" prop="note"> + <el-input v-model="book.note"></el-input> + </el-form-item> + <!-- 鏂囦功鐓х墖涓婁紶 --> + <el-form-item label="鏂囦功鐓х墖涓婁紶" prop="bookPhoto"> + <el-input v-model="book.bookPhoto"></el-input> + </el-form-item> + <!-- 鏁存敼鍓嶇収鐗� --> + <el-form-item label="鏁存敼鍓嶇収鐗�" prop="beforeUpdate"> + <el-input v-model="book.beforeUpdate"></el-input> + </el-form-item> + <!-- 鏁存敼鍚庣収鐗� --> + <el-form-item label="鏁存敼鍚庣収鐗�" prop="afterUpdate"> + <el-input v-model="book.afterUpdate"></el-input> + </el-form-item> + <!-- 鍏朵粬鐓х墖 --> + <el-form-item label="鍏朵粬" prop="other"> + <el-input v-model="book.other"></el-input> + </el-form-item> + </el-form> + </div> + </div> + <div class="footer"> + <el-button>纭畾</el-button> + <el-button>杩斿洖</el-button> + </div> + </div> +</template> +<script> +export default { + data() { + return { + arrive: { + + }, + arriveRules: { + + }, + evidence: { + + }, + evidenceRules: { + + }, + book:{ + + }, + bookRules:{ + + } + } + } +} +</script> +<style lang="scss" scoped> +.vio { + padding: 50px 100px; + + .arrive-title, + .evidence-title { + line-height: 40px; + font-weight: 650; + font-size: 20px; + width: 160px; + padding-right: 12px; + text-align: right; + color: #4b9bb7; + } + + .footer { + display: flex; + justify-content: flex-end; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue new file mode 100644 index 0000000..c48b5e7 --- /dev/null +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue @@ -0,0 +1,127 @@ +<template> + <div class="vio"> + <div class="arrive"> + <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> + <div class="arrive-form"> + <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> + <!-- 鍒拌揪鏃堕棿 --> + <el-form-item label="鍒拌揪鏃堕棿" prop="arriveTime"> + <el-input v-model="arrive.arriveTime"></el-input> + </el-form-item> + <!-- 鍒拌揪鍦板潃 --> + <el-form-item label="鍒拌揪鍦板潃" prop="arriveAddr"> + <el-input v-model="arrive.arriveAddr"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌璇存槑 --> + <el-form-item label="鐜板満鎯呭喌璇存槑" prop="arriveCondition"> + <el-input type="textarea" v-model="arrive.arriveCondition"></el-input> + </el-form-item> + <!-- 淇¤鍥炲璇存槑 --> + <el-form-item label="淇¤鍥炲璇存槑" prop="arriveLetter"> + <el-input v-model="arrive.arriveLetter"></el-input> + </el-form-item> + <!-- 鐜板満鎯呭喌鐓х墖 --> + <el-form-item label="鐜板満鎯呭喌鐓х墖" prop="arrivePhoto"> + <el-input v-model="arrive.arrivePhoto"></el-input> + </el-form-item> + </el-form> + </div> + </div> + <div class="evidence"> + <div class="evidence-title">璋冩煡鍙栬瘉</div> + <div class="evidence-form"> + <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on"> + <!-- 鎵垮姙闃熷憳 --> + <el-form-item label="鎵垮姙闃熷憳" prop="team"> + <el-input v-model="evidence.team"></el-input> + </el-form-item> + <!-- 鍗忓姙闃熷憳 --> + <el-form-item label="鍗忓姙闃熷憳" prop="helper"> + <el-input v-model="evidence.helper"></el-input> + </el-form-item> + <!-- 鏃堕棿 --> + <el-form-item label="鏃堕棿" prop="time"> + <el-input v-model="evidence.time"></el-input> + </el-form-item> + <!-- 鍦板潃 --> + <el-form-item label="鍦板潃" prop="address"> + <el-input v-model="evidence.address"></el-input> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item label="妗堢敱" prop="cause"> + <el-input v-model="evidence.cause"></el-input> + </el-form-item> + <!-- 鎵垮姙闃熷憳 --> + <el-form-item label="鎵垮姙闃熷憳" prop="team"> + <el-input v-model="evidence.team"></el-input> + </el-form-item> + <!-- 褰撲簨浜轰俊鎭� --> + <el-form-item label="褰撲簨浜轰俊鎭�" prop="appender"> + <el-input v-model="evidence.appender"></el-input> + </el-form-item> + <!-- 鎯呭喌鎻忚堪 --> + <el-form-item label="鎯呭喌鎻忚堪" prop="description"> + <el-input v-model="evidence.description"></el-input> + </el-form-item> + <!-- 鐓х墖闄勪欢 --> + <el-form-item label="鐓х墖闄勪欢" prop="photo"> + <el-input v-model="evidence.photo"></el-input> + </el-form-item> + </el-form> + </div> + </div> + <div class="footer"> + <el-button>纭畾</el-button> + <el-button>杩斿洖</el-button> + </div> + </div> +</template> +<script> +export default { + data() { + return { + arrive:{ + + }, + arriveRules:{ + + }, + evidence:{ + + }, + evidenceRules:{ + + } + } + } +} +</script> +<style lang="scss" scoped> +.vio{ + padding: 50px 100px; + .arrive-title,.evidence-title{ + line-height: 40px; + font-weight: 650; + font-size: 20px; + width: 160px; + padding-right: 12px; + text-align: right; + color: #4b9bb7; + } + .footer{ + display: flex; + justify-content: flex-end; + } + ::v-deep .el-input__inner{ + background-color: #09152f; + border: 1px solid #17324c; + } + ::v-deep .el-textarea__inner{ + background-color: #09152f; + border: 1px solid #17324c; + } + ::v-deep .el-form-item__label{ + color:#4b9bb7; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/index.vue b/src/views/operate/disposal/casepool/escalation/index.vue index 3368162..76ba25c 100644 --- a/src/views/operate/disposal/casepool/escalation/index.vue +++ b/src/views/operate/disposal/casepool/escalation/index.vue @@ -82,7 +82,7 @@ </div> </template> <script> -import updateUser from "./updateUser" +import updateUser from "@/components/detail" export default { components: { updateUser 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 8f60473..01a50f9 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="璇烽�夋嫨澶х被鍚嶇О"> @@ -32,8 +32,8 @@ </el-select> </el-form-item> <!-- 浜嬩欢绛夌骇 --> - <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="status"> - <el-select v-model="vio.level" placeholder="璇烽�夋嫨妗堜欢绛夌骇"> + <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId"> + <el-select v-model="vio.gradeId" placeholder="璇烽�夋嫨妗堜欢绛夌骇"> <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> @@ -157,20 +157,21 @@ }; return { vio: { - actionCause: "dasdas",//妗堢敱 - carNumber: "宸漦123456",//杞︾墝鍙� - category: '',//1:杩濊2:杩濆缓 - categoryId: 0,//澶х被 - communityId: 0,//鎵�灞炵ぞ鍖� - description: "澶ф拻澶ф拻",//闂鎻忚堪 - informant: "澶ц嫃鎵�",//鍙嶆槧浜� - informantIdCard: "51102519910082831",//韬唤璇佸彿鐮� - informantPhoneCode: "17844631885",//鍙嶆槧浜鸿仈绯绘柟寮� - linkShop: 0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�) - shopName: "",//鍏宠仈鍟嗛摵鍚嶇О - site: "灏忓湴鏂�",//浜嬪彂鍦扮偣 - streetId: 0,//鎵�灞炶閬� - typeId: 0//灏忕被 + actionCause:"dasdas",//妗堢敱 + carNumber:"宸漦123456",//杞︾墝鍙� + // category:1,//1:杩濊2:杩濆缓 + categoryId:0,//澶х被 + communityId:0,//鎵�灞炵ぞ鍖� + description:"澶ф拻澶ф拻",//闂鎻忚堪 + informant:"澶ц嫃鎵�",//鍙嶆槧浜� + informantIdCard:"51102519910082831",//韬唤璇佸彿鐮� + informantPhoneCode:"17844631885",//鍙嶆槧浜鸿仈绯绘柟寮� + linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�) + shopName:"",//鍏宠仈鍟嗛摵鍚嶇О + site:'鏂板湴鏂�',//浜嬪彂鍦扮偣 + streetId:0,//鎵�灞炶閬� + typeId:0,//灏忕被 + gradeId:'' }, createRoleRules: { name: [ @@ -208,24 +209,6 @@ getEventLevel(); }, methods: { - // handleUser() { - // this.$refs['user'].validate((valid) => { - // console.log(valid); - // if (valid) { - // const { role } = this; - // console.log(role); - // this.$axios.post('sccg/role/create', { - // description: role.description, name: role.name, type: role.type - // }).then(res => { - // if (res.code === 200) { - // this.refresh(); - // } - // }) - // } else { - // return false; - // } - // }) - // }, handleStop() { this.refresh(); }, @@ -246,6 +229,7 @@ url: 'sccg/violations/query/type_second' }) .then(res => { + console.log(res); this.smallKindList = res.data; }) }, @@ -256,6 +240,7 @@ url: 'sccg/violations/query/event_type' }) .then(res => { + console.log(res); this.eventLevelList = res.data; }) }, @@ -272,25 +257,28 @@ // 鎻愪氦娉ㄥ唽淇℃伅 handleSubmit() { const { vio } = this; - console.log(vio); this.$axios({ method:'post', url:'sccg/base-case/addition_violation', data:vio }) .then(res=>{ - console.log(res); + if(res.code === 200){ + this.$message({ + type:'success', + message:res.message + }) + this.$emit('changeDialog',{dialogView:false}); + }else{ + this.$message({ + type:'warning', + message:res.message, + }) + } }) - // this.$axios.post('sccg/role/create', { - // description: role.description, name: role.name, type: role.type - // }).then(res => { - // if (res.code === 200) { - // this.refresh(); - // } - // }) } }, - props: ['mytype'] + props: ['mytype','changeDialog'] } </script> <style lang="scss" scoped> diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index 3e6c1f7..d7593f3 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -15,8 +15,8 @@ <createUser @getPageProp=setDialog /> </el-dialog> <el-dialog :before-close="handleClose" :visible.sync="dialogNewAdd" :title="newAddType === 0 ? '杩濊浜嬩欢鐧昏' : '杩濆缓浜嬩欢鐧昏' " width="45%" v-if="dialogNewAdd"> - <MyIll v-if="newAddType === 1" :mytype=newAddType /> - <myVio v-else :mytype=newAddType /> + <MyIll v-if="newAddType === 1" :mytype=newAddType @changeDialog=changeDialog /> + <myVio v-else :mytype=newAddType @changeDialog=changeDialog /> </el-dialog> </div> </div> @@ -39,23 +39,26 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="number" label="浜嬩欢缂栧彿" min-width="10"> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + <template slot-scope="scope"> + <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> + </template> </el-table-column> - <el-table-column prop="typeThird" label="闂鏉ユ簮" min-width="10"> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> </el-table-column> - <el-table-column prop="typeSecond" label="澶х被鍚嶇О" min-width="10"> + <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="typeFirst" label="灏忕被鍚嶇О" min-width="10"> + <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="type" label="妗堢敱" min-width="10"> + <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎶ヨ鐐逛綅" min-width="10"> + <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎵�灞炲尯鍩�" min-width="10"> + <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎶ヨ鏃堕棿" min-width="10"> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鎸佺画鏃堕棿" min-width="10"> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> @@ -71,11 +74,12 @@ </template> </el-table-column> </el-table> - <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'" - v-if="dialogUpdate" :before-close="handleClose"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo - :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" /> + <!-- 璇︽儏椤靛睍绀� --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" + v-if="dialogView" :before-close="handleClose"> + <!-- <updateUser :updateFlag="updateFlag" :userInfo=userInfo + :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" /> --> + <MyDetail :info=info ></MyDetail> </el-dialog> <!-- tools --> <div class="tools"> @@ -106,30 +110,43 @@ </div> </template> <script> -import updateUser from "./updateUser" +// import updateUser from "./updateUser" +import MyDetail from '@/components/detail' import createUser from "./createUser" import MyIll from './createUser/ill' import MyVio from './createUser/vio' export default { components: { - updateUser, createUser,MyIll,MyVio + // updateUser + createUser,MyIll,MyVio,MyDetail }, data() { return { - tableData: [], + tableData: [ + // { + // code:1, + // eventSource:1, + // category:1, + // type:1, + // actionCause:'妗堢敱1111', + // site:'浣犲ソ', + // streetId:1, + // alarmTime:'2022-21-20', + // continueTime:'8灏忔椂', + // } + ], context: "", dialogCreate: false, - dialogUpdate: false, + dialogView: false, dialogNewAdd:false, newAddType:0, - updateFlag: false, - userInfo: '', totalNum: null, pageSize: 10, currentPage: 1, all: false, unsame: false, myIdx: 0, + info:{}, options: [ { value: 0, @@ -212,7 +229,6 @@ this.dialogCreate = flag; this.dialogNewAdd = true; this.newAddType = type; - console.log(flag,type); }, // 鎵归噺鍒犻櫎 mulDelete(idArr) { @@ -292,8 +308,10 @@ console.log(statusArr); this.$axios({ method: 'get', - url: `sccg/base-case/query/${statusArr[1]}?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=1` + url: `sccg/base-case/query/${statusArr[1]}?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2` }).then(res => { + this.totalNum = res.data.total; + this.tableData = res.data.records; console.log(res); }) }, @@ -308,7 +326,7 @@ }, // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) handleFind(rowData) { - this.dialogUpdate = true; + this.dialogView = true; this.updateFlag = false; this.userInfo = rowData; }, @@ -328,14 +346,16 @@ this.getUserList(); }, changeDialog(val) { - this.dialogUpdate = val.dialogUpdate; - console.log(val); + this.dialogNewAdd = val.dialogView; + this.dialogCreate = val.dialogView; + this.dialogView = val.dialogView; + this.getUserList(); }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { this.dialogCreate = false; - this.dialogUpdate = false; + this.dialogView = false; done(); }) .catch(_ => { }); @@ -362,6 +382,20 @@ } }) }, + async JumpView(data){ + await this.getEventInfo(data.code); + this.dialogView = true; + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code){ + this.$axios({ + method:'get', + url:`sccg/base-case/baseCaseDetail/${code}` + }) + .then(res=>{ + this.info = res.data; + }) + } } } </script> diff --git a/src/views/operate/management/index.vue b/src/views/operate/management/index.vue new file mode 100644 index 0000000..e3bc8ac --- /dev/null +++ b/src/views/operate/management/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view></router-view> +</template> \ No newline at end of file diff --git a/src/views/operate/management/myIndex/index.vue b/src/views/operate/management/myIndex/index.vue new file mode 100644 index 0000000..15dc7d5 --- /dev/null +++ b/src/views/operate/management/myIndex/index.vue @@ -0,0 +1,464 @@ +<template> + <div class="userList"> + <header> + <div class="problem"> + <el-radio-group v-model="radio"> + <el-radio :label="1">杩濊</el-radio> + <el-radio :label="2">杩濆缓</el-radio> + </el-radio-group> + </div> + </header> + <main> + <div class="mainContent"> + <!-- 鏁版嵁灞曠ず --> + <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="name" label="瑙掕壊鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="sort" label="瑙掕壊绫诲瀷" min-width="10"> + </el-table-column> + <el-table-column prop="adminCount" label="榛樿瑙掕壊" min-width="10"> + </el-table-column> + <el-table-column prop="description" label="澶囨敞" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍚敤" min-width="5"> + <template slot-scope="scope"> + <el-switch class="switchStyle" v-model="scope.row.status" active-text="寮�" inactive-text="鍏�" + active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)"> + </el-switch> + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <span>鏌ョ湅</span> + <span class="line">|</span> + <span>缁撴</span> + </div> + </template> + </el-table-column> + </el-table> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate.js" +export default { + data() { + return { + tableData: [], + dialogCreate: false, + 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: [], + radio:1, + } + }, + created() { + this.getUserList(); + }, + methods: { + selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.handleDelete(this.tempList); + } + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + changeTime({ createTime }) { + return helper(createTime); + }, + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + handleDelete(id) { + const that = this; + // let arr = []; + // arr.push(id); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + that.$axios({ + method: 'post', + url: 'sccg/role/delete?ids=' + id, + }) + .then(res => { + this.myIdx = 0; + this.preMyIdx = 0; + console.log(res); + this.$message({ + type: 'success', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { }); + }, + // 淇敼瑙掕壊 + handleChangeRole(obj) { + this.dialogUpdate = true + this.user = obj; + // console.log(obj) + }, + // 淇敼鐢ㄦ埛鐘舵�� + handleChangeStatus(obj) { + let { id, status } = obj; + status == true ? status = 1 : status = 0; + console.log(id, status); + this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => { + console.log(res); + }) + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getUserList() { + const that = this; + this.dialogCreate = false; + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + this.$axios.get('sccg/role/listAll').then(res => { + this.totalNum = res.data.length; + this.search(); + }) + }, + search() { + const that = this; + const { currentPage, pageSize, context } = this; + this.dialogCreate = false; + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + if (context == '') { + this.$axios.get('sccg/role/list?keyword=' + '&pageNum=' + currentPage + '&pageSize=' + pageSize).then(res => { + if (res.code === 200) { + console.log(res); + res.data.list.forEach(item => { + // item.createTime = helper(item.createTime); + item.status == 1 ? item.status = true : item.status = false; + }) + that.tableData = res.data.list; + this.totalNum = res.data.list.length; + } + }) + } else { + this.$axios({ + method: 'get', + url: 'sccg/role/list?keyword=' + context + '&pageNum=' + currentPage + '&pageSize=' + pageSize, + }).then(res => { + if (res.code === 200) { + res.data.list.forEach(item => { + item.status == 1 ? item.status = true : item.status = false; + }) + that.tableData = res.data.list + this.totalNum = res.data.list.length; + } + }) + } + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) + handleFind(rowData) { + this.dialogUpdate = true; + this.updateFlag = false; + this.userInfo = rowData; + }, + // 淇敼鐢ㄦ埛閮ㄩ棬淇℃伅 + handleUpdate(rowData) { + this.dialogUpdate = true; + this.updateFlag = true; + this.userInfo = rowData + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.search(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.search(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.search(); + }, + changeDialog(val) { + this.dialogUpdate = val.dialogUpdate; + this.$message({ + type: 'success', + message: '鏇存敼鎴愬姛', + }) + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpdate = false; + this.dialogCreate = false; + done(); + }) + .catch(_ => { }); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: #09152f; + border: 1pox solid #fff; + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + + .mainTitle { + line-height: 60px; + } + + .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 .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; + } + } + + &::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/management/mydetail/index.vue b/src/views/operate/management/mydetail/index.vue new file mode 100644 index 0000000..d21e829 --- /dev/null +++ b/src/views/operate/management/mydetail/index.vue @@ -0,0 +1,5 @@ +<template> + <div> + 璇︽儏椤� + </div> +</template> \ No newline at end of file diff --git a/src/views/operate/management/mysovle/index.vue b/src/views/operate/management/mysovle/index.vue new file mode 100644 index 0000000..95edd3e --- /dev/null +++ b/src/views/operate/management/mysovle/index.vue @@ -0,0 +1,5 @@ +<template> + <div> + 缁撴 + </div> +</template> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue index 97ba372..3fd30ce 100644 --- a/src/views/systemSetting/baseSetting/user/components/main/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue @@ -55,7 +55,8 @@ :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :'鏌ョ湅鐢ㄦ埛淇℃伅'" :before-close="handleClose"> <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog" - :getUserList="getUserList" /> + :getUserList="getUserList" v-if="!flag.password" /> + <MyPwd v-else :userInfo=userInfo @closeDialog="closeDialog"></MyPwd> </el-dialog> <!-- tools --> <div class="tools"> @@ -87,9 +88,10 @@ <script> import helper from '@/utils/mydate' import updateUser from '../updateUser'; +import MyPwd from '../password' export default { components: { - updateUser + updateUser,MyPwd }, data() { return { diff --git a/src/views/systemSetting/baseSetting/user/components/password/index.vue b/src/views/systemSetting/baseSetting/user/components/password/index.vue new file mode 100644 index 0000000..1cb81c1 --- /dev/null +++ b/src/views/systemSetting/baseSetting/user/components/password/index.vue @@ -0,0 +1,144 @@ +<template> + <div class="password"> + <el-form ref="pwd" label-width="140px" autoComplete="on" :model="user" :rules="passrules"> + <!-- 鍒濆瀵嗙爜 --> + <el-form-item class="optionItem" label="鍒濆瀵嗙爜:" prop="password"> + <el-input v-model="user.password" type="password" placeholder="璇峰~鍐欏垵濮嬪瘑鐮�"></el-input> + </el-form-item> + <!-- 鏂板瘑鐮� --> + <el-form-item class="optionItem" label="鏂板瘑鐮�:" prop="newPwd"> + <el-input v-model="user.newPwd" type="password" placeholder="璇峰~鍐欐柊瀵嗙爜"></el-input> + </el-form-item> + <!-- 鏂板瘑鐮� --> + <el-form-item class="optionItem" label="纭鏂板瘑鐮�:" prop="secondPwd"> + <el-input v-model="user.secondPwd" type="password" placeholder="纭鎮ㄧ殑鏂板瘑鐮�"></el-input> + </el-form-item> + + </el-form> + <div class="pwd-footer"> + <el-button @click="resetForm">鍙栨秷</el-button> + <el-button type="primary" @click="handleSubmit">鎻愪氦</el-button> + </div> + </div> +</template> +<script> +export default { + data() { + const checkPwd = (rule, value, callback) => { + if (!value) { + callback(new Error('鍒濆瀵嗙爜涓嶈兘涓虹┖')) + } else { + callback(); + } + } + const checkNewPwd = (rule, value, callback) => { + if (!value) { + callback(new Error('鏂板瘑鐮佷笉鑳戒负绌�')) + }else if(value === this.user.password){ + callback(new Error('鏂板瘑鐮佷笉鑳藉拰鏃у瘑鐮佷竴鏍�')) + } else { + callback(); + } + } + const checkSame = (rule, value, callback) => { + if (!value) { + callback(new Error('纭瀵嗙爜涓嶈兘涓虹┖')) + } else if (value !== this.user.newPwd) { + console.log(111); + callback(new Error('鎮ㄨ緭鍏ョ殑涓ゆ瀵嗙爜缁撴灉涓嶅悓')); + } else { + + callback(); + } + } + return { + user: { + password: '', + secondPwd: '', + newPwd: '', + }, + passrules: { + password: [ + { + required: true, + trigger: 'blur', + validator: checkPwd + }, + ], + secondPwd: [ + { + required: true, + trigger: 'blur', + validator: checkSame + } + ], + newPwd: [ + { + required: true, + trigger: 'blur', + validator: checkNewPwd + } + ] + } + } + }, + props: ['userInfo', 'closeDialog'], + created() { + + }, + methods: { + // 鎻愪氦 + handleSubmit() { + const { userInfo,user } = this; + this.$refs.pwd.validate((valid) => { + if (valid) { + this.$axios({ + method:'post', + url:'sccg/admin/updatePassword', + data:{ + newPassword:user.newPwd, + oldPassword:user.password, + username:userInfo.username + } + }) + .then(res=>{ + if(res.code === 200){ + this.$emit('closeDialog',{flag:false}); + this.$message({ + type:'success', + message:'瀵嗙爜淇敼鎴愬姛' + }) + }else{ + this.$message({ + type:'warning', + message:res.message + }) + } + }) + } else { + return false; + } + }) + }, + // 娓呯┖琛ㄥ崟 + resetForm() { + + } + } +} +</script> +<style lang="scss" scoped> +.password { + padding: 50px 100px; + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + .pwd-footer { + display: flex; + justify-content: center; + } +} +</style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index 63a2494..26bdb87 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -11,7 +11,7 @@ <!-- 鐢ㄦ埛瀵嗙爜 --> <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" - :disabled="!flag.password"> + disabled> </el-input> </el-form-item> <!-- 鎵�灞炵敤鎴峰鍚� --> -- Gitblit v1.8.0