From dc04c05b22a5323925218092a0687555a2a5c9c1 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期四, 29 九月 2022 18:39:31 +0800 Subject: [PATCH] 上报管理界面,案件池的违规、违建登记页面 --- src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 380 ++++++++ src/views/login/index.vue | 6 src/views/operate/disposal/casepool/escalation/index.vue | 615 +++++++++--- src/views/operate/baseSetting/threepack/createUser/index.vue | 177 +-- src/views/systemSetting/baseSetting/role/updateUser/index.vue | 204 +-- src/views/layout/components/Menu/index.vue | 8 src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue | 93 ++ src/views/operate/disposal/casepool/pool/index.vue | 32 src/views/operate/disposal/casepool/pool/createUser/ill/index.vue | 304 ++++++ src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue | 144 +++ src/views/operate/disposal/casepool/escalation/createUser/index.vue | 195 ++++ src/views/operate/disposal/casepool/escalation/updateUser/index.vue | 234 +++++ src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue | 67 + src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue | 182 +++ src/App.vue | 24 src/views/operate/disposal/casepool/pool/createUser/index.vue | 18 src/views/systemSetting/baseSetting/role/index.vue | 39 src/views/operate/baseSetting/threepack/index.vue | 22 18 files changed, 2,300 insertions(+), 444 deletions(-) diff --git a/src/App.vue b/src/App.vue index f77c534..a666192 100644 --- a/src/App.vue +++ b/src/App.vue @@ -69,4 +69,28 @@ .el-tree-node:focus>.el-tree-node__content{ background-color: #09152f !important; } +/*瀹氫箟婊氬姩鏉¢珮瀹藉強鑳屾櫙 + 楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ + ::-webkit-scrollbar +{ + width:4px; + height:4px; + background-color:#070f22; +} +/*瀹氫箟婊氬姩鏉¤建閬� + 鍐呴槾褰�+鍦嗚*/ +::-webkit-scrollbar-track +{ + -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3); + border-radius:10px; + background-color:#070f22; +} +/*瀹氫箟婊戝潡 + 鍐呴槾褰�+鍦嗚*/ +::-webkit-scrollbar-thumb +{ + border-radius:10px; + -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3); + background-color:#555; +} </style> \ No newline at end of file diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index 7638b0d..57e0180 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -84,10 +84,10 @@ <span class="secondSpan">浜嬮」澶勭悊绠$悊</span> </template> <el-menu-item index="/home/operate/casepool/pool">妗堜欢姹�</el-menu-item> - <!-- <el-menu-item index="/home/operate/casepool/escalation">涓婃姤绠$悊</el-menu-item> - <el-menu-item index="/home/operate/casepool/dispatch">璋冨害绠$悊</el-menu-item> --> - <!-- <el-menu-item index="/home/operate/casepool">鍐嶅涔犵鐞�</el-menu-item> --> - <!-- <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item> --> + <el-menu-item index="/home/operate/casepool/escalation">涓婃姤绠$悊</el-menu-item> + <el-menu-item index="/home/operate/casepool/dispatch">璋冨害绠$悊</el-menu-item> + <el-menu-item index="/home/operate/casepool">鍐嶅涔犵鐞�</el-menu-item> + <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item> </el-submenu> <el-menu-item index="/home/operate/myWait">鎴戠殑寰呭姙</el-menu-item> <el-submenu index="/home/operate/rectification" class="secondMenu"> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index bfd8c3e..99a1c36 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -125,6 +125,7 @@ }) .then(function (response) { if (response.code === 200) { + // 璁剧疆toke鏃堕棿 // 淇濆瓨token console.log(response); sessionStorage.setItem('token',response.data.token); @@ -135,7 +136,10 @@ }else{ that.$refs.loginForm.validate((valid)=>{ if(valid){ - that.$message.error(response.data.message); + that.$message({ + type:'warning', + message:response.message + }) } }) } diff --git a/src/views/operate/baseSetting/threepack/createUser/index.vue b/src/views/operate/baseSetting/threepack/createUser/index.vue index b609337..5bfc530 100644 --- a/src/views/operate/baseSetting/threepack/createUser/index.vue +++ b/src/views/operate/baseSetting/threepack/createUser/index.vue @@ -2,41 +2,42 @@ <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 ref="user" label-width="140px" autoComplete="on" :rules="storeRules" :model="storeInfo" + label-position="right"> + <!-- 闂ㄥ簵涓讳汉 --> + <el-form-item class="optionItem" label="闂ㄥ簵涓讳汉:" prop="owner"> + <el-input v-model="storeInfo.owner" 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 class="optionItems" label="韬唤璇佷俊鎭�:" prop="idcardinfo"> + <el-input placeholder="璇峰~鍐欒韩浠借瘉淇℃伅" v-model="storeInfo.idcardinfo"></el-input> </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 class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input placeholder="璇峰~鍐欓棬搴楄仈绯绘柟寮�" v-model="storeInfo.contact"></el-input> </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 class="optionItem" label="闂ㄥ簵鍦板潃:" prop="storeaddr"> + <el-input placeholder="璇峰~鍐欓棬搴楀湴鍧�" v-model="storeInfo.storeaddr"></el-input> </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 class="optionItem" label="闂ㄥ簵鐓х墖:" prop="storephoto"> + <el-upload class="upload-demo" :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" :headers="getToken()" multiple + :limit="50"> + <el-button type="primary" v-if="storeInfo.storephoto === '' ">涓婁紶闂ㄥ簵鍥剧墖</el-button> + <img :src="storeInfo.storephoto" alt="" v-else> + </el-upload> </el-form-item> - <el-form-item v-if="updateFlag"> + <!-- 闂ㄥ簵鍚嶇О --> + <el-form-item class="optionItem" label="闂ㄥ簵鍚嶇О:" prop="storename"> + <el-input type="textarea" v-model="storeInfo.storename" placeholder="璇疯緭鍏ラ棬搴楀悕绉版弿杩板唴瀹�"></el-input> + </el-form-item> + <!-- 闂ㄥ簵绉垎 --> + <el-form-item class="optionItem" label="闂ㄥ簵绉垎:" prop="storescore"> + <el-input v-model="storeInfo.storescore" placeholder="璇疯緭鍏ラ棬搴楀悕绉版弿杩板唴瀹�"></el-input> + </el-form-item> + <el-form-item> <div class="optionBtn"> <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 </el-button> @@ -51,78 +52,68 @@ <script> export default { data() { + // 鐢ㄦ埛濮撳悕楠岃瘉瑙勫垯 + const checkName = (rule,value,callback)=>{ + console.log(rule,value,callback); + if(!value){ + + } + } return { - things: { - number: 0, - type: '', - typeFirst: '', - typeSecond: '', - typeThird: '', + storeInfo: { + contact: '', + idcardinfo: '', + owner: '', + storeaddr: '', + storename: '', + storephoto: '', + storescore: '', }, - roleList: [], - typeThirdList:[], - typeSecondList:[], - typeFirstList:[], + storeRules: { + owner: [ + { required: true, trigger: 'blur', validator: checkName }, + ] + } } }, 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", + handleUser() { + this.$refs.user.validate((valid) => { + if (valid) { + const { storeInfo } = this; + console.log(storeInfo); + // this.$axios({ + // method: 'post', + // url: 'sccg/store/storeinfo/add', + // data: storeInfo + // }).then(res => { + // console.log(res); + // }) + // this.$axios.post('/sccg/role/update/', { + // 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; + } }) - .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; - }) + // 鑾峰彇token + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token }; + } } }, props: ['getUserList'] diff --git a/src/views/operate/baseSetting/threepack/index.vue b/src/views/operate/baseSetting/threepack/index.vue index e8a0bce..3317bbc 100644 --- a/src/views/operate/baseSetting/threepack/index.vue +++ b/src/views/operate/baseSetting/threepack/index.vue @@ -13,11 +13,11 @@ </div> </div> <div class="addUser"> - <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button> - <!-- <el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate" + <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板闂ㄥ簵</el-button> + <el-dialog :visible.sync="dialogCreate" title="鏂板闂ㄥ簵" width="45%" v-if="dialogCreate" :before-close="handleClose"> <createUser :refresh="getUserList" /> - </el-dialog> --> + </el-dialog> </div> </div> </header> @@ -30,15 +30,19 @@ @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="id" label="闂ㄥ簵缂栧彿" min-width="10"> </el-table-column> - <el-table-column prop="typeThird" label="鎵�灞炵被鍨�" min-width="10"> + <el-table-column prop="storePhoto" label="闂ㄥ簵鐓х墖" min-width="10"> </el-table-column> - <el-table-column prop="typeSecond" label="鎵�灞炲ぇ绫�" min-width="10"> + <el-table-column prop="sotreName" label="闂ㄥ簵鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="typeFirst" label="鎵�灞炲皬绫�" min-width="10"> + <el-table-column prop="owner" label="濮撳悕" min-width="10"> </el-table-column> - <el-table-column prop="type" label="妗堢敱" min-width="45"> + <el-table-column prop="storeAddress" label="鍦板潃" min-width="10"> + </el-table-column> + <el-table-column prop="contact" label="鑱旂郴鏂瑰紡" min-width="10"> + </el-table-column> + <el-table-column prop="storeScore" label="闂ㄥ簵绉垎" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="10"> <template slot-scope="scope"> @@ -209,7 +213,7 @@ // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� this.$axios({ method: 'get', - url: `sccg/violations/query?current=${currentPage}&size=${pageSize}&keyWord=${context}`, + url: `sccg/store/storeinfo/list?pageNum=${currentPage}&size=${pageSize}&keyword=${context}`, }) .then(res => { this.tableData = res.data.records; diff --git a/src/views/operate/disposal/casepool/escalation/createUser/index.vue b/src/views/operate/disposal/casepool/escalation/createUser/index.vue new file mode 100644 index 0000000..b609337 --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/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/escalation/index.vue b/src/views/operate/disposal/casepool/escalation/index.vue index 6915f9b..3368162 100644 --- a/src/views/operate/disposal/casepool/escalation/index.vue +++ b/src/views/operate/disposal/casepool/escalation/index.vue @@ -1,123 +1,237 @@ <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> - <span class="line">|</span> - <span>鍐嶅涔�</span> - <span class="line">|</span> - <span>鏆備笉澶勭悊</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="number" label="浜嬩欢缂栧彿" min-width="10"> + <template slot-scope="scope"> + <el-link @click="JumpView(scope.row)">{{scope.row.number}}</el-link> + </template> + </el-table-column> + <el-table-column prop="typeThird" label="浜嬩欢鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="typeSecond" label="澶х被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="typeFirst" label="灏忕被鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="妗堢敱" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="鎵�灞炲尯鍩�" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="鎶ヨ鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="type" label="鎸佺画鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="5"> + </el-table-column> + </el-table> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog :visible.sync="dialogUpdate" width="80%" title="鍩虹淇℃伅(浜哄伐)" + v-if="dialogUpdate" :before-close="handleClose"> + <updateUser :info=info /> + </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" export default { components: { - // checkIn, + updateUser }, data() { return { - tagList: [ - // { - // name: '寰呭鐞�', - // value: 0, - // }, - // { - // name: '宸蹭笂鎶�', - // value: 0, - // }, - // { - // name: '宸茶皟搴�', - // value: 0, - // }, - // { - // name: '鍦ㄥ涔�', - // value: 0, - // }, - // { - // name: '鏆備笉澶勭悊', - // value: 0, - // }, + tableData: [], + context: "", + 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: [ - { - id: 13413114, - source: '浜哄伐涓婃姤/瑙嗛宸℃煡', - appendTime: '2022-01-09 14:52' - } - ], - visible: false, } }, + created() { + this.getUserList(); + }, methods: { + // 鎵归噺鍒犻櫎 + mulDelete(idArr){ + console.log(idArr); + this.$axios({ + method:'delete', + url:'sccg/violations/batch_delete?ids='+idArr, + }).then(res=>{ + this.getUserList(); + this.$message({ + message:res.message, + type:res.code === 200 ? 'success' : 'warning' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + selectChange(val) { + let ids = []; + this.tempList.forEach(item => { + ids.push(item.number); + }) + if (ids.length !== 0) { + if (val === 3) { + this.mulDelete(ids); + } + } else { + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鐩戝惉琛ㄦ牸閫変腑鐘舵�� + tableChange(list) { + this.tempList = list; + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 鍒犻櫎鍗曟潯鏁版嵁 + handleDelete({ number }) { + console.log(number); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + console.log(1); + this.$axios({ + method: 'delete', + url: `sccg/violations/delete?id=${number}`, + }) + .then(res => { + console.log(res); + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { console.log(2) }); + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getUserList() { + const { currentPage, pageSize, context } = this; + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + this.$axios({ + method: 'get', + url: `sccg/violations/query?current=${currentPage}&size=${pageSize}&keyWord=${context}`, + }) + .then(res => { + this.tableData = res.data.records; + this.totalNum = res.data.total; + }) + }, + // 鏇存敼杩濊/杩濆缓 + 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) { @@ -127,141 +241,284 @@ } 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.dialogUpdate = false; + done(); + }) + .catch(_ => { }); + }, + JumpView(data){ + this.info = data; + this.dialogUpdate = true; + console.log(data); + } } } </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; + } } - footer { + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } - &::v-deep .el-dialog__header, - &::v-deep .el-dialog__body { - background-color: #06122c; - } + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } - &::v-deep .el-dialog__header { - display: flex; - align-items: center; - background-color: #fff; - padding: 20px; - line-height: 60px; - } + &::v-deep .el-dialog__title { + color: #4b9bb7; + } - &::v-deep .el-dialog__title { - color: #4b9bb7; - } + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } - &::v-deep .el-dialog__close { - width: 20px; - height: 20px; - // color: #fff; - } - - &::v-deep .el-dialog__body { - padding: 0; - } + &::v-deep .el-dialog__body { + padding: 0; } } </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue new file mode 100644 index 0000000..7690f8b --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/updateUser/filePictrue/index.vue @@ -0,0 +1,93 @@ +<template> + <div class="file-picture"> + <div class="file-tell"> + <div class="tell-title">涓婃姤</div> + <div class="tell-show"> + <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" + :headers="getToken()" multiple :limit="50"> + <div class="my-demo"> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> + <div class="tip"> + <div>銆愬浘鐗囩被鍨嬨�戜笂鎶�</div> + <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> + </div> + </div> + </el-upload> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> + </div> + </div> + <div class="file-deal"> + <div class="tell-title">澶勭疆</div> + <div class="tell-show"> + <el-upload class="upload-demo" :show-file-list="false" action="http://42.193.1.25:8082/sccg/file/medias" + :headers="getToken()" multiple :limit="50"> + <div class="my-demo"> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> + <div class="tip"> + <div>銆愬浘鐗囩被鍨嬨�戝缃�</div> + <div>銆愪笂鎶ユ椂闂淬��2022-09-08 14:23:34</div> + </div> + </div> + </el-upload> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__ef98ada722c616eccb097d1352880862.svg" + alt=""> + </div> + </div> + </div> +</template> +<script> +export default { + data() { + return { + + } + }, + methods: { + // 鑾峰彇token + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token }; + } + } + } +} +</script> +<style lang="scss" scoped> +.file-picture { + padding-top: 50px; + + .file-tell,.file-deal { + .tell-title { + line-height: 40px; + } + + .tell-show { + display: flex; + + .upload-demo { + height: 159px; + + .my-demo { + position: relative; + height: 100%; + } + + .tip { + div { + line-height: 20px; + } + + text-align: left; + position: absolute; + bottom: 80px; + } + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/index.vue new file mode 100644 index 0000000..47a6bad --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/updateUser/index.vue @@ -0,0 +1,234 @@ +<template> + <div class="view"> + <div class="view-data"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂绫诲瀷: + </label> + <span class="data-detail">杩濊</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 澶х被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 灏忕被鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 浜嬩欢绛夌骇: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 妗堢敱: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炲尯鍘�: + </label> + <span class="data-detail">xxx</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鎵�灞炵ぞ鍖�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鎵�灞炶閬�: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 浜嬪彂鍦扮偣: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍏宠仈鍟嗛摵鍚嶇О: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 闂鎻忚堪: + </label> + <span class="data-detail">xxx</span> + </div> + </div> + <div class="data-user"> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 鍙嶆槧浜�: + </label> + <span class="data-detail">寮犱簩</span> + </div> + <div class="data-item__right"> + <label class="data-title"> + 鑱旂郴鏂瑰紡: + </label> + <span class="data-detail">12345678901</span> + </div> + </div> + <div class="data-item"> + <div class="data-item__left"> + <label class="data-title"> + 韬唤璇佸彿: + </label> + <span class="data-detail">123456789987654321</span> + </div> + </div> + </div> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3"></MySovleProblem> + <MyScene v-else></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from './process' +import MyFilePicture from './filePictrue' +import MySovleProblem from './solveProblem' +import MyScene from './scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ] + } + }, + created() { + + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + } + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 0 30px 0 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + .show-wrap{ + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue new file mode 100644 index 0000000..8221ccc --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/updateUser/process/index.vue @@ -0,0 +1,144 @@ +<template> + <div class="my-process"> + <div class="my-pro-header"> + <div class="pro-step" v-for="(item,index) in list" :key="item.title"> + <div class="pro-step-top"> + <div + :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + </div> + <div :class="['line',active > item.index ? 'finish-line' :'']" + v-if="index<list.length-1 ? true:false"></div> + </div> + <div + :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + {{item.title}}</div> + </div> + </div> + <div class="my-pro-main"> + <div class="pro-step-ver" v-for="(item,index) in list" :key="item.title"> + <div + :class="['pro-step-name',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + {{item.title}}</div> + <div class="pro-step-top"> + <div + :class="['circle',active === item.index ? 'in-process' : active > item.index ? 'finish' : 'wait' ]"> + </div> + <div :class="['line',active > item.index ? 'finish-line' :'']" + v-if="index<list.length-1 ? true:false"></div> + </div> + <div class="desc"> + <div class="desc-title">鐜妭鐢ㄦ椂:</div> + <div class="desc-content" v-if="active > index+1"> + <div class="desc-content-message">1111111</div> + <div class="desc-content-endtime">22.09.06 16:40</div> + </div> + </div> + </div> + </div> + </div> +</template> +<script> +export default { + data() { + return { + active: 2, + list: [ + { + title: '涓婃姤', + status: 'success', + }, + { + title: '绔嬫', + status: 'process', + }, + { + title: '娲鹃仯', + status: 'process', + }, + { + title: '澶勭疆', + status: 'process', + }, + { + title: '鏍告煡', + status: 'process', + }, + { + title: '缁撴', + status: 'process', + } + ] + } + } +} +</script> +<style lang="scss" scoped> +.my-process { + padding-top: 50px; + .my-pro-header { + display: flex; + + .pro-step { + flex: 1; + + .pro-step-top { + display: flex; + align-items: center; + + .line { + flex: 1; + height: 2px; + } + } + + .pro-step-name { + line-height: 20px; + } + } + } + + .my-pro-main { + .pro-step-ver { + display: flex; + align-items: flex-start; + .line { + width: 2px; + height: 100px; + } + } + .pro-step-top{ + display: flex; + flex-direction: column; + align-items: center; + } + .pro-step-name { + line-height: 24px; + margin-right: 10px; + } + .desc{ + flex: 1; + line-height: 24px; + margin-left: 10px; + .desc-content-endtime{ + display: flex; + justify-content: flex-end; + } + } + } + + .circle { + width: 24px; + height: 24px; + border-radius: 50%; + background-color: #fff; + } + + .line { + background-color: #c0c4cc; + } + + .finish-line { + background-color: #4b9bb7; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue new file mode 100644 index 0000000..d77a8b6 --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/updateUser/scene/index.vue @@ -0,0 +1,182 @@ +<template> + <div class="scene"> + <div class="nav"> + <div class="nav-item" v-for="o in list" :key="o.index" @click="changeActive(o.index)"> + <div class="outer" > + <div :class="['inner',active === o.index ? 'inner-active' : '']"></div> + </div> + <div class="innet-title">{{o.label}}</div> + </div> + </div> + <div class="scene-item" v-if="active === 1"> + <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form-item label="鍒拌揪鏃堕棿:"> + <el-input v-model="sceneObj.name"></el-input> + </el-form-item> + <el-form-item label="鍒拌揪鍦板潃:"> + <el-input v-model="sceneObj.region"></el-input> + </el-form-item> + <el-form-item label="鐜板満鎯呭喌璇存槑:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="淇¤鍥炲璇存槑:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鐜板満鎯呭喌鐓х墖:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + </el-form> + </div> + <div class="scene-item" v-if="active === 2"> + <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form-item label="鎵垮姙闃熷憳:"> + <el-input v-model="sceneObj.name"></el-input> + </el-form-item> + <el-form-item label="鍗忓姙闃熷憳:"> + <el-input v-model="sceneObj.region"></el-input> + </el-form-item> + <el-form-item label="鏃堕棿:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鍦板潃:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="妗堢敱:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="褰撲簨浜轰俊鎭�:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鎯呭喌鎻忚堪:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鐓х墖闄勪欢:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="绫诲瀷:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="褰撲簨浜哄鍚�:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鎵嬫満鍙风爜:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="璇佷欢绫诲瀷:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="璇佷欢鍙风爜:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鏂囧寲绋嬪害:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鑱屼笟:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鍚嶆棌:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="绫嶈疮:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鐜颁綇鍧�:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + <el-form-item label="鎴风睄鎵�鍦ㄥ湴:"> + <el-input v-model="sceneObj.type"></el-input> + </el-form-item> + </el-form> + <el-button>杩斿洖</el-button> + </div> + <div class="scene-item" v-if="active === 3"> + <el-form label-position="right" label-width="120px" :model="sceneObj"> + <el-form-item label="绫诲瀷:"> + <el-input v-model="sceneObj.name"></el-input> + </el-form-item> + </el-form> + </div> + </div> +</template> +<script> +export default { + data() { + return { + active: 1, + list: [ + { + index: 1, + label: '鍒拌揪鐜板満鎯呭喌' + }, + { + index: 2, + label: '璋冩煡鍙栬瘉' + }, + { + index: 3, + label: '鍛婄煡杩濇硶' + } + ], + sceneObj: {}, + + } + }, + methods: { + changeActive(idx) { + this.active = idx; + } + } +} +</script> +<style lang="scss" scoped> +.scene { + .nav { + padding: 20px 100px; + display: flex; + justify-content: space-between; + .nav-item{ + display: flex; + flex-direction: column; + align-items: center; + } + .outer { + width: 50px; + height: 50px; + border-radius: 50%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-color: #0101ff; + } + + .inner { + background-color: #0101ff; + border-radius: 50%; + width: 30px; + height: 30px; + } + + .innet-title { + line-height: 20px; + padding-top: 20px; + } + + .inner-active { + background-color: #fff; + } + } + + .scene-item { + padding: 20px 100px; + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue b/src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue new file mode 100644 index 0000000..3480c30 --- /dev/null +++ b/src/views/operate/disposal/casepool/escalation/updateUser/solveProblem/index.vue @@ -0,0 +1,67 @@ +<template> + <div class="sovle-problem"> + <div class="sovle-header"> + <div class="sovle-limit">澶勭悊鏃堕檺:1宸ヤ綔鏃�</div> + <div class="sovle-limit">鍓╀綑鏃堕棿:23灏忔椂</div> + </div> + <div class="sovle-timeline"> + <el-timeline> + <el-timeline-item :color="mycolor"> + <div class="title"> + <div class="title-left">銆愭淳閬c�戞淳閬e憳:xxx</div> + <div class="title-right">22.09.06 16:40</div> + </div> + <div class="message">銆愭淳閬f剰瑙併�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> + </el-timeline-item> + <el-timeline-item :color="mycolor"> + <div class="title"> + <div class="title-left">銆愬鐞嗐�戝鐞嗕汉:xxx</div> + <div class="title-right">22.09.06 16:40</div> + </div> + <div class="message">銆愬鐞嗙粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> + </el-timeline-item> + <el-timeline-item :color="mycolor"> + <div class="title"> + <div class="title-left">銆愯瘎瀹氥�戣瘎瀹氫汉:xxx</div> + <div class="title-right">22.09.06 16:40</div> + </div> + <div class="message">銆愯瘎瀹氱粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> + </el-timeline-item> + </el-timeline> + </div> + </div> +</template> +<script> + export default{ + data(){ + return{ + mycolor:'#02a7f0' + } + } + } +</script> +<style lang="scss" scoped> + .sovle-problem{ + .sovle-header{ + padding: 0 200px; + display: flex; + line-height: 60px; + justify-content: space-between; + } + .title{ + display: flex; + justify-content: space-between; + line-height: 40px; + padding: 0 20px; + color: #4b9bb7; + font-size: 16px; + } + .message{ + padding: 20px; + background-color: #070f22; + color: #4b9bb7; + line-height: 20px; + font-size: 10px; + } + } +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue b/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue index e894c43..848d2bf 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/ill/index.vue @@ -1,3 +1,303 @@ <template> - <div>2</div> -</template> \ No newline at end of file + <div class="ill"> + <div class="input-area"> + <div class="input-header"> + <div class="input-header__title">鍩虹淇℃伅</div> + <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div> + </div> + <div class="input-form"> + <el-form ref="user" label-width="160px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 闂绫诲瀷 --> + <el-form-item class="optionItem" label="闂绫诲瀷:" prop="name"> + <el-select v-model="role.type" placeholder="杩濆缓"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 杩濆缓绫诲埆 --> + <el-form-item class="optionItems" label="杩濆缓绫诲埆:" prop="status"> + <el-select v-model="role.big" placeholder="璇烽�夋嫨杩濆缓绫诲埆" size="small"> + <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 褰撲簨浜哄鍚� --> + <el-form-item class="optionItems" label="褰撲簨浜哄鍚�:" prop="status"> + <el-input placeholder="璇峰~鍐欏綋浜嬩汉濮撳悕"></el-input> + </el-form-item> + <!-- 褰撲簨浜鸿韩浠借瘉鍙� --> + <el-form-item class="optionItems" label="褰撲簨浜鸿韩浠借瘉鍙�:" prop="status"> + <el-input placeholder="璇峰~鍐欏綋浜嬩汉韬唤璇佸彿"></el-input> + </el-form-item> + <!-- 褰撲簨浜鸿仈绯荤數璇� --> + <el-form-item class="optionItem" label="褰撲簨浜鸿仈绯荤數璇�:" prop="description"> + <el-input v-model="role.description" placeholder="璇峰~鍐欏綋浜嬩汉鑱旂郴鐢佃瘽"></el-input> + </el-form-item> + <!-- 杩濆缓鍦扮偣 --> + <el-form-item class="optionItems" label="杩濆缓鍦扮偣:" prop="status"> + <el-input placeholder="璇峰~鍐欒繚寤哄湴鐐�"></el-input> + </el-form-item> + <!-- 鎵�灞炵ぞ鍖� --> + <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="status"> + <el-select v-model="role.type" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 韬唤璇佹鍙嶉潰鐓х墖 --> + <el-form-item class="optionItems" label="韬唤璇佹鍙嶉潰鐓х墖:" prop="status"> + <template> + <div class="idcard"> + <el-upload class="upload-demo" + :show-file-list = "false" + action="http://42.193.1.25:8082/sccg/file/medias" + :headers="getToken()" multiple :limit="50"> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__15f765432d579a14b8f6591c100d30e3.svg" + alt=""> + <span class="text">韬唤璇佹闈�</span> + </el-upload> + <el-upload class="upload-demo" + :show-file-list = "false" + action="http://42.193.1.25:8082/sccg/file/medias" + :headers="getToken()" multiple :limit="50"> + <img src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__15f765432d579a14b8f6591c100d30e3.svg" + alt=""> + <span class="text">韬唤璇佸弽闈�</span> + </el-upload> + </div> + </template> + </el-form-item> + </el-form> + </div> + <div class="not-need"> + <div class="not-need__header"> + 鎵ф硶杩濆缓鎯呭喌 + </div> + <div class="not-need-item"> + <label>杩濆缓鍏蜂綋浣嶇疆:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>杩濇硶寤鸿闀裤�佸銆侀珮:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>杩濇硶寤鸿闈㈢Н:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>杩濇硶寤虹瓚鏉愭枡:</label> + <input type="text" class="not-need__inner"> + </div> + </div> + <div class="input-footer"> + <el-button type="primary" class="confirm">纭畾</el-button> + <el-button class="back">杩斿洖</el-button> + </div> + </div> + <div class="map-area"> + <!-- <MyMap /> --> + </div> + </div> +</template> +<script> +import MyMap from '@/components/map' +export default { + components: { + MyMap + }, + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欓棶棰樼被鍨�")); + } else { + callback(); + } + }; + const validatePass = (rule, value, callback) => { + if (!value) { + callback(); + } else { + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); + } + }; + return { + role: { + name: '', + type: '', + description: '', + }, + createRoleRules: { + name: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + type: [ + { required: false, trigger: "blur", validator: validatePass }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + bigKindList: [], + typeList: [], + } + }, + created() { + const { getBigKind, getEventLevel, getSmallKind } = this; + getBigKind(); + }, + 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(); + }, + // 鑾峰彇澶х被鍒楄〃 + getBigKind() { + this.$axios({ + method: 'get', + url: 'sccg/illegal_building/query/type_second' + }).then(res => { + this.bigKindList = res.data; + // console.log(res); + }) + }, + // 鑾峰彇琛屾斂鍖哄煙 + // 鑾峰彇token + getToken() { + const token = sessionStorage.getItem('token'); + const tokenHead = sessionStorage.getItem('tokenHead'); + if (token && tokenHead) { + return { Authorization: tokenHead + token }; + } + } + } +} +</script> +<style lang="scss" scoped> +.ill { + display: flex; + + .input-area { + flex: 1; + padding: 10px 20px; + + .input-header { + color: #4b9bb7; + + .input-header__title { + line-height: 60px; + font-weight: 650; + font-size: 20px; + } + + .input-header__tip { + line-height: 40px; + } + } + + .input-form { + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + .upload-demo{ + position: relative; + .text{ + position: absolute; + top: 22%; + left: 20%; + } + } + .idcard { + display: flex; + } + + .idCardZ { + width: 200px; + height: 200px; + } + } + + .input-footer { + display: flex; + justify-content: center; + } + } + + .map-area { + flex: 1; + } + + .not-need { + .not-need__header { + line-height: 40px; + } + + .not-need-item { + line-height: 40px; + margin-bottom: 22px; + display: flex; + + label { + width: 160px; + padding-right: 12px; + text-align: right; + } + + .not-need__inner { + flex: 1; + line-height: 40px; + padding: 0 15px; + border-radius: 4px; + color: #fff; + // outline: #409eff solid 1px; + outline: none; + background-color: #09152f; + border: 1px solid #17324c; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/pool/createUser/index.vue b/src/views/operate/disposal/casepool/pool/createUser/index.vue index f812cab..5fbe248 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/index.vue @@ -1,26 +1,15 @@ <template> <div class="createUser"> - <div class="chooseArea" v-if="flag"> + <div class="chooseArea"> <el-button type="primary" @click="toShow(0,'杩濊')">杩濊鐧昏</el-button> <el-button type="primary" @click="toShow(1,'杩濆缓')">杩濆缓鐧昏</el-button> - </div> - <div class="inputArea" v-else> - <MyIll v-if="index===0" /> - <MyVio v-else /> </div> </div> </template> <script> -import MyVio from './vio'; -import MyIll from './ill'; export default { - components: { - MyIll, MyVio - }, data() { return { - flag: true, - index: 0,//0:杩濊,1:杩濆缓 } }, created() { @@ -30,13 +19,12 @@ toShow(idx, lab) { this.$confirm('鎮ㄧ‘瀹氳鍘讳笂鎶�' + lab + '浜嬩欢') .then(_ => { - console.log(1); - this.index = idx; - this.flag = false; + this.$emit('getPageProp',{flag:false,type:idx}); }) .catch(_ => { console.log('err') }); } }, + props:['getPageProp'] } </script> <style lang="scss" scoped> 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 d0ef7c6..8f60473 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -1,3 +1,379 @@ <template> - <div>1</div> -</template> \ No newline at end of file + <div class="vio"> + <div class="input-area"> + <div class="input-header"> + <div class="input-header__title">鍩虹淇℃伅</div> + <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div> + </div> + <div class="input-form"> + <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules" + label-position="right"> + <!-- 闂绫诲瀷 --> + <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category"> + <el-select v-model="vio.category" placeholder="杩濊" disabled> + <el-option v-for="item in typeList" :key="item.label" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- 澶х被鍚嶇О --> + <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId"> + <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О"> + <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 灏忕被鍚嶇О --> + <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId"> + <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О"> + <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 浜嬩欢绛夌骇 --> + <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="status"> + <el-select v-model="vio.level" placeholder="璇烽�夋嫨妗堜欢绛夌骇"> + <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" :value="item.id" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> + <!-- 妗堢敱 --> + <el-form-item class="optionItem" label="妗堢敱:" prop="actionCause"> + <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input> + </el-form-item> + <!-- 鎵�灞炲尯鍘� --> + <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status"> + <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炲尯鍘�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 鎵�灞炵ぞ鍖� --> + <!-- <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="status"> + <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 鎵�灞炶閬� --> + <!-- <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="status"> + <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炶閬�"> + <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </el-form-item> --> + <!-- 浜嬪彂鍦扮偣 --> + <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site"> + <el-input placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆" v-model="vio.site"></el-input> + </el-form-item> + <!-- 鏄惁鍏宠仈鍟嗛摵 --> + <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop"> + <el-radio-group v-model="vio.linkShop"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + <!-- 鍏宠仈鍟嗛摵鍚嶇О --> + <el-form-item class="optionItems" label="鍏宠仈鍟嗛摵鍚嶇О:" prop="shopName"> + <el-input placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�" v-model="vio.shopName" :disabled="vio.linkShop === 1 ?false : true"></el-input> + </el-form-item> + <!-- 濉啓杞︾墝鍙� --> + <el-form-item class="optionItems" label="濉啓杞︾墝鍙�:" prop="carNumber"> + <el-input placeholder="璇峰~鍐欒溅鐗屽彿" v-model="vio.carNumber"></el-input> + </el-form-item> + <!-- 闂鎻忚堪 --> + <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input> + </el-form-item> + </el-form> + </div> + <div class="not-need"> + <div class="not-need__header"> + 濉啓鍙嶆槧浜轰俊鎭� + </div> + <div class="not-need-item"> + <label>鍙嶆槧浜�:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>鑱旂郴鏂瑰紡:</label> + <input type="text" class="not-need__inner"> + </div> + <div class="not-need-item"> + <label>韬唤璇佸彿:</label> + <input type="text" class="not-need__inner"> + </div> + </div> + <div class="input-footer"> + <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button> + <el-button class="back">杩斿洖</el-button> + </div> + </div> + <div class="map-area"> + <!-- <MyMap /> --> + </div> + </div> +</template> +<script> +import MyMap from '@/components/map' +export default { + components: { + MyMap + }, + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欓棶棰樼被鍨�")); + } else { + callback(); + } + }; + const validatePass = (rule, value, callback) => { + if (!value) { + callback(); + } else { + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); + } + }; + 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//灏忕被 + }, + createRoleRules: { + name: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + type: [ + { required: false, trigger: "blur", validator: validatePass }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + bigKindList: [], + smallKindList: [], + eventLevelList: [], + typeList: [ + { + label: '杩濊', + value: 1. + }, + { + label: '杩濆缓', + value: 2. + } + ] + + } + }, + created() { + const { getBigKind, getEventLevel, getSmallKind } = this; + console.log(this.mytype); + this.vio.category = this.mytype + 1; + getBigKind(); + getSmallKind(); + getEventLevel(); + }, + methods: { + // 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(); + }, + // 鑾峰彇澶х被鍒楄〃 + getBigKind() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/type_first' + }).then(res => { + this.bigKindList = res.data; + // console.log(res); + }) + }, + // 鑾峰彇灏忕被鍒楄〃 + getSmallKind() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/type_second' + }) + .then(res => { + this.smallKindList = res.data; + }) + }, + // 鑾峰彇妗堜欢绛夌骇鍒楄〃 + getEventLevel() { + this.$axios({ + method: 'get', + url: 'sccg/violations/query/event_type' + }) + .then(res => { + this.eventLevelList = res.data; + }) + }, + // 鑾峰彇琛屾斂鍖哄煙 + getRegion() { + this.$axios({ + method: 'get', + url: 'sccg/sccg-region/getTree', + }) + .then(res => { + // this. + }) + }, + // 鎻愪氦娉ㄥ唽淇℃伅 + handleSubmit() { + const { vio } = this; + console.log(vio); + this.$axios({ + method:'post', + url:'sccg/base-case/addition_violation', + data:vio + }) + .then(res=>{ + console.log(res); + }) + // 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'] +} +</script> +<style lang="scss" scoped> +.vio { + display: flex; + + .input-area { + flex: 1; + padding: 10px 20px; + + .input-header { + color: #4b9bb7; + + .input-header__title { + line-height: 60px; + font-weight: 650; + font-size: 20px; + } + + .input-header__tip { + line-height: 40px; + } + } + + .input-form { + .el-form { + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + } + + .input-footer { + display: flex; + justify-content: center; + } + } + + .map-area { + flex: 1; + } + + .not-need { + color: #4b9bb7; + + .not-need__header { + line-height: 40px; + } + + .not-need-item { + line-height: 40px; + margin-bottom: 22px; + display: flex; + + label { + width: 100px; + padding-right: 12px; + text-align: right; + } + + .not-need__inner { + flex: 1; + line-height: 40px; + padding: 0 15px; + border-radius: 4px; + color: #fff; + // outline: #409eff solid 1px; + outline: none; + background-color: #09152f; + border: 1px solid #17324c; + } + } + } + +} +</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index c0edcb2..3e6c1f7 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -12,7 +12,11 @@ <div class="addUser"> <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞</el-button> <el-dialog :before-close="handleClose" :visible.sync="dialogCreate" title="璇烽�夋嫨涓婃姤浜嬩欢绫诲瀷" width="45%" v-if="dialogCreate"> - <createUser /> + <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 /> </el-dialog> </div> </div> @@ -104,9 +108,11 @@ <script> import updateUser from "./updateUser" import createUser from "./createUser" +import MyIll from './createUser/ill' +import MyVio from './createUser/vio' export default { components: { - updateUser, createUser + updateUser, createUser,MyIll,MyVio }, data() { return { @@ -114,6 +120,8 @@ context: "", dialogCreate: false, dialogUpdate: false, + dialogNewAdd:false, + newAddType:0, updateFlag: false, userInfo: '', totalNum: null, @@ -183,6 +191,7 @@ ], mystatus:0, statusArr:[], + } }, created() { @@ -196,9 +205,15 @@ this.statusArr[1] = item.value; } }) - // this.getUserList(); + this.getUserList(); }, methods: { + setDialog({flag,type}){ + this.dialogCreate = flag; + this.dialogNewAdd = true; + this.newAddType = type; + console.log(flag,type); + }, // 鎵归噺鍒犻櫎 mulDelete(idArr) { console.log(idArr); @@ -277,19 +292,10 @@ console.log(statusArr); this.$axios({ method: 'get', - url: `sccg/base-case/query/${statusArr[1]}?status=` + statusArr[0] + url: `sccg/base-case/query/${statusArr[1]}?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=1` }).then(res => { console.log(res); }) - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - // this.$axios({ - // method: 'get', - // url: `sccg/violations/query?current=${currentPage}&size=${pageSize}&keyWord=${context}`, - // }) - // .then(res => { - // this.tableData = res.data.records; - // this.totalNum = res.data.total; - // }) }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue index fceb8a6..1eca7a3 100644 --- a/src/views/systemSetting/baseSetting/role/index.vue +++ b/src/views/systemSetting/baseSetting/role/index.vue @@ -57,7 +57,7 @@ <span class="line">|</span> <span @click="handleStop(scope.row)">鍋滅敤</span> <span class="line">|</span> - <span @click="handleDelete(scope.row)">鍒犻櫎</span> + <span @click="handleDelete([scope.row.id])">鍒犻櫎</span> </div> </template> </el-table-column> @@ -118,6 +118,7 @@ all: false, unsame: false, myIdx: 0, + preMyIdx: 0, options: [ { value: 0, @@ -145,11 +146,25 @@ }, methods: { selectChange(list) { - console.log(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; + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) if (list.length === this.tableData.length) { this.all = true; } else { @@ -160,27 +175,26 @@ return helper(createTime); }, selectAll() { - this.$refs.multipleTable.toggleAllSelection(); }, disSame(list) { - // console.log(this.$refs.multipleTable); - // const row = this.$refs.table.data list.forEach(row => { this.$refs.multipleTable.toggleRowSelection(row) }) }, - handleDelete({ id }) { + handleDelete(id) { const that = this; - let arr = []; - arr.push(id); + // let arr = []; + // arr.push(id); this.$confirm('纭鍒犻櫎锛�') .then(_ => { that.$axios({ method: 'post', - url: 'sccg/role/delete?ids=' + arr, + url: 'sccg/role/delete?ids=' + id, }) .then(res => { + this.myIdx = 0; + this.preMyIdx = 0; console.log(res); this.$message({ type: 'success', @@ -295,7 +309,10 @@ }, changeDialog(val) { this.dialogUpdate = val.dialogUpdate; - console.log(val); + this.$message({ + type:'success', + message:'鏇存敼鎴愬姛', + }) }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') diff --git a/src/views/systemSetting/baseSetting/role/updateUser/index.vue b/src/views/systemSetting/baseSetting/role/updateUser/index.vue index be1e238..d0d18e1 100644 --- a/src/views/systemSetting/baseSetting/role/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/role/updateUser/index.vue @@ -2,36 +2,19 @@ <div class="updateUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" - label-position="right"> - <!-- 瑙掕壊鍚嶇О --> - <el-form-item class="optionItem" label="瑙掕壊鍚嶇О:" prop="name"> - <el-input v-model="role.name" placeholder="璇峰~鍐欒鑹插悕绉�" :disabled="!updateFlag"></el-input> - </el-form-item> - <!-- 瑙掕壊绫诲瀷 --> - <el-form-item class="optionItems" label="瑙掕壊绫诲瀷:" prop="sort"> - <!-- <el-input v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷" :disabled="!updateFlag"></el-input> --> - <el-select v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷"> - <!-- v-for="item in roleList" :key="item.id" :label="item.departName" - :value="item.id" --> - <el-option :value="treeId" :label="treeLabel"> - <el-tree :data="roleList" :props="defaultProps" @node-click="handleNodeClick"></el-tree> - </el-option> - </el-select> - </el-form-item> - <!-- 瑙掕壊鎻忚堪 --> - <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> - <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�" - :disabled="!updateFlag"></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 class="my-tree"> + <div class="my-tree__wrap"> + <el-tree :data="roleList" :props="defaultProps" @node-click="handleNodeClick" show-checkbox + @check-change="handleCheckChange" default-expand-all node-key="id"> + </el-tree> + </div> + <div class="my-tree__bottom"></div> + <div class="my-tree__right"></div> + </div> + <div class="selection"> + <el-button class="cancel" @click="resetRole">鍙栨秷</el-button> + <el-button class="save" @click="saveRole">淇濆瓨</el-button> + </div> </div> </main> </div> @@ -39,65 +22,25 @@ <script> export default { data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欒鑹插悕绉�")); - } else { - callback(); - } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(); - } else { - // const rep = /^\w+$/; - // if (!rep.test(value)) { - // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - // } - callback(); - } - }; - const validateTruename = (rule, value, callback) => { - if (value) { - callback(); - } else { - // const rep = /^[\u4E00-\u9FA5]{2,4}$/; - // if (!rep.test(value)) { - // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - // } - callback(); - } - }; return { role: { name: '', sort: '', description: '', }, - createRoleRules: { - name: [ - { required: true, trigger: "blur", validator: validateNickname }, - ], - sort: [ - { required: false, trigger: "blur", validator: validatePass }, - ], - description: [ - { required: false, trigger: "blur", validator: validateTruename }, - ], - }, roleList: [], defaultProps: { children: 'children', label: 'title' }, - treeLabel:'', - treeId:23 + treeLabel: '', + treeId: 23, + checkedIds: [], + resCheckedIds: [], } }, created() { const that = this; - this.userInfo.status ? this.userInfo.status = 1 : this.userInfo.status = 0; - this.role = JSON.parse(JSON.stringify(that.userInfo)); this.getMenuList(); }, methods: { @@ -133,12 +76,38 @@ }) }, // 鐐瑰嚮鏍戣妭鐐� - handleNodeClick({title,id}) { + handleNodeClick({ title, id }) { // console.log(obj); this.role.sort = title; this.treeLabel = title; this.treeId = id; + }, + // 鏍戝舰鎺т欢閫変腑鏇存敼 + handleCheckChange(data, checked, indeterminate) { + // console.log(data,checked,indeterminate); + if (checked) { + this.checkedIds.push(data.id); + } else { + let index = 0; + this.checkedIds.forEach((item, idx) => { + if (item.id === data.id) { + index = idx; + } + }) + this.checkedIds.splice(index, 1); + } + console.log(this.checkedIds); + }, + // 淇濆瓨role + saveRole() { + this.resCheckedIds = []; + this.resCheckedIds = this.checkedIds; + this.$emit('changeDialog',{dialogUpdate:false}); + }, + // 娑堥櫎role + resetRole() { + this.resCheckedIds = [] } }, props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog'] @@ -148,49 +117,39 @@ .updateUser { border-radius: 1px; background-color: #09152f; - main { - // border: 1px solid #fff; text-align: left; - padding: 0 55px; + padding: 50px 55px; background-color: #09152f; - padding-bottom: 50px; - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - - .el-form-item__content { - width: 400px; - - .el-select { + .my-tree { + height: 200px; + overflow: hidden; + background-color: #17324c; + position: relative; + border-radius: 4px; + .my-tree__wrap{ + overflow: scroll; + height: 200px; + } + .my-tree__bottom{ + position: absolute; + left: 0px; + bottom: 0px; + background-color: #17324c; width: 100%; + height: 20px; + border-bottom-left-radius: 4px; + } + .my-tree__right{ + position: absolute; + right: 0px; + top: 0px; + background-color: #17324c; + width: 20px; + height: 100%; } } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - .optionBtn { - display: flex; - margin-top: 20px; - - .btn { - padding: 12px 50px; - } - } - } } @@ -199,14 +158,29 @@ border: 1px solid #17324c; } - ::v-deep .el-form-item__label { - color: #4b9bb7; - } - ::v-deep .el-input__inner { background-color: #09152f; border: 1px solid #17324c; } } +.selection { + margin-top: 10px; + display: flex; + justify-content: space-between; + .el-button { + padding: 10px 20px; + border-radius: 4px; + } + + .save { + background-color: #409eff; + color: #fff; + } + + .cancel { + background-color: #09152f; + color: #4b9bb7; + } +} </style> \ No newline at end of file -- Gitblit v1.8.0