From 0d7d6fc9a5c40ccc90190b0f24039ec1362f120f Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期一, 17 十月 2022 11:33:10 +0800 Subject: [PATCH] 新增设备管理、完善消息新增,修改bug --- dist.rar | 0 src/views/operate/management/myIndex/components/closure/index.vue | 33 src/views/systemSetting/baseSetting/department/updateUser/index.vue | 54 vue.config.js | 2 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue | 2 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue | 8 src/views/operate/message/myIndex/index.vue | 88 + src/views/layout/components/Menu/index.vue | 49 src/views/systemSetting/platform/index.vue | 3 src/views/operate/disposal/casepool/pool/index.vue | 13 src/views/systemSetting/baseSetting/user/components/header/index.vue | 2 src/components/illdetail/index.vue | 10 src/views/operate/disposal/casepool/learn/index.vue | 9 src/views/systemSetting/baseSetting/department/index.vue | 60 src/views/systemSetting/device/bayonet/index.vue | 376 +++++++++ src/views/operate/disposal/casepool/notDeal/index.vue | 9 src/views/operate/fivepack/shop/components/header/index.vue | 4 src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 5 src/views/systemSetting/baseSetting/user/components/createUser/index.vue | 389 ++++++--- src/views/systemSetting/baseSetting/index.vue | 3 src/views/systemSetting/device/bayonet/create/index.vue | 137 +++ src/components/process/index.vue | 11 src/views/operate/message/myIndex/createUser/index.vue | 87 + src/views/systemSetting/baseSetting/user/components/main/index.vue | 60 src/views/systemSetting/device/point/index.vue | 5 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 138 +-- src/views/operate/fivepack/shop/components/createUser/index.vue | 12 src/components/edit/index.vue | 25 src/views/operate/disposal/casepool/escalation/index.vue | 9 src/views/operate/management/myIndex/components/examine/index.vue | 22 src/views/systemSetting/device/grid/index.vue | 5 src/views/systemSetting/baseSetting/role/createUser/index.vue | 12 src/views/layout/components/Header/index.vue | 37 src/components/dispatch/index.vue | 115 ++ src/router/index.js | 107 + src/views/operate/disposal/casepool/dispatch/index.vue | 9 src/utils/request.js | 22 src/views/systemSetting/device/index.vue | 3 src/components/detail/index.vue | 10 src/components/scene/index.vue | 83 + src/views/systemSetting/baseSetting/department/createUser/index.vue | 121 ++ src/views/operate/car/myIndex/index.vue | 10 src/views/operate/baseSetting/violation/createUser/index.vue | 11 src/views/operate/management/myIndex/index.vue | 9 src/components/solveProblem/index.vue | 124 ++- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue | 2 src/App.vue | 4 src/views/systemSetting/baseSetting/role/index.vue | 46 48 files changed, 1,631 insertions(+), 724 deletions(-) diff --git a/dist.rar b/dist.rar new file mode 100644 index 0000000..c3739d7 --- /dev/null +++ b/dist.rar Binary files differ diff --git a/src/App.vue b/src/App.vue index 31ef5a4..91f0a7b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -157,5 +157,9 @@ background-color: #09152f; border: 1px solid #17324c; } + .el-textarea__inner{ + background-color: #09152f; + border: 1px solid #17324c; + } } </style> \ No newline at end of file diff --git a/src/components/detail/index.vue b/src/components/detail/index.vue index 7a4ecc6..e5a9857 100644 --- a/src/components/detail/index.vue +++ b/src/components/detail/index.vue @@ -120,8 +120,8 @@ <div class="show-wrap"> <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> - <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> - <MyScene v-else :currentSitVo="currentSitVo"></MyScene> + <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :handlePassVo="handlePassVo"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene> </div> </div> </div> @@ -163,7 +163,7 @@ baseCase:{}, handlePassVo:{}, currentSitVo:{}, - problemProVo:{}, + // problemProVo:{}, filesPictureVo:{} } @@ -174,9 +174,9 @@ this.baseCase = info.baseCase; this.handlePassVo = info.handlePassVo; this.currentSitVo = info.currentSitVo; - this.problemProVo = info.problemProVo; + // this.problemProVo = info.problemProVo; this.filesPictureVo = info.filesPictureVo; - console.log(info); + console.log(info); }, methods: { changeComponent(index) { diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue index 5e8c919..2d1673e 100644 --- a/src/components/dispatch/index.vue +++ b/src/components/dispatch/index.vue @@ -22,8 +22,8 @@ <!-- 閫夋嫨浜哄憳 --> <div class="form-person"> <!-- 閮ㄩ棬 --> - <el-form-item label="閫夋嫨浜哄憳:" prop="dispatchOpinion"> - <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange"> + <el-form-item label="閫夋嫨浜哄憳:" prop="createUser"> + <el-select v-model="dispatch.createUser" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange"> <el-option v-for="item in departOptions" :key="item.id" :label="item.departName" :value="item.id"> </el-option> @@ -32,7 +32,7 @@ <!-- 涓槦 --> <el-form-item prop="enforcementTeam" class="person-item"> <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦" - :disabled="squadronOptions.length!==0?false:true" @change="handleMidChange"> + :disabled="squadronOptions.length!==0 && squadronOptions?false:true" @change="handleMidChange"> <el-option v-for="item in squadronOptions" :key="item.id" :label="item.departName" :value="item.id"> </el-option> @@ -41,7 +41,7 @@ <el-form-item prop='lawEnforcer' class="person-item"> <!-- 浜哄憳 --> <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳" - :disabled="personOptions.length !== 0 ? false:true" @change="handlePerChange"> + :disabled="personOptions.length !== 0 && personOptions? false:true" @change="handlePerChange"> <el-option v-for="item in personOptions" :key="item.id" :label="item.username" :value="item.id"> </el-option> </el-select> @@ -50,13 +50,22 @@ <div class="form-footer"> <!-- 鎵ф硶浜哄憳缂栧彿 --> <el-form-item label="鎵ф硶浜哄憳缂栧彿:" prop="lawEnforcerName"> - <el-input v-model="dispatch.lawEnforcerName"></el-input> + <el-input v-model="dispatch.lawEnforcerName" disabled></el-input> </el-form-item> <!-- 鎵ф硶浜哄憳鑱旂郴鏂瑰紡 --> <el-form-item label="鑱旂郴鏂瑰紡:" prop="contactWay"> - <el-input v-model="dispatch.contactWay"></el-input> + <el-input v-model="dispatch.contactWay" disabled></el-input> </el-form-item> <el-button type="primary">鍙戦�佺煭淇�</el-button> + </div> + <div class="form-time"> + <el-form-item label="娲鹃仯鎰忚" prop="dispatchOpinion"> + <el-input v-model="dispatch.dispatchOpinion" placeholder="璇疯緭鍏ユ淳閬f剰瑙�"></el-input> + </el-form-item> + <el-form-item label="澶勭疆鏃ユ湡" prop="disposeDate"> + <el-date-picker v-model="dispatch.disposeDate" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿"> + </el-date-picker> + </el-form-item> </div> </el-form> <div class="map"> @@ -74,7 +83,7 @@ components: { MyMap }, - props: ['id', 'changeDialog', 'refresh', 'mytype'], + props: ['id', 'changeDialog', 'refresh', 'mytype'], created() { // 鍒ゆ柇杞﹁締绫诲瀷 this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList(); @@ -90,14 +99,14 @@ callback(); } } else { - callback(new Error('鑱旂郴鏂瑰紡涓嶈兘涓虹┖')) + callback() } } const checkOpinion = (rule, value, callback) => { if (value) { callback(); } else { - callback(new Error('閮ㄩ棬涓嶈兘涓虹┖')) + callback(new Error('娲鹃仯鎰忚涓嶈兘涓虹┖')) } } const checkDistance = (rule, value, callback) => { @@ -111,7 +120,7 @@ if (value) { callback(); } else { - callback(new Error('涓槦涓嶈兘涓虹┖')) + callback(new Error('澶勭疆鏃ユ湡涓嶈兘涓虹┖')) } } const checkPerson = (rule, value, callback) => { @@ -128,19 +137,32 @@ callback() } } + const checkDepart = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇烽�夋嫨閮ㄩ棬')) + } + } return { dispatch: { baseCaseId: 0,//妗堜欢id contactWay: "",//鑱旂郴鏂瑰紡 - dispatchOpinion: "",//閮ㄩ棬 + dispatchOpinion: "",//澶勭疆鎰忚 disposeDate: "",//澶勭疆鏃ユ湡 distance: 0,//璺濈 enforcementCar: '',//鎵ф硶杞� enforcementTeam: "",//鎵ф硶涓槦 lawEnforcer: '',//鎵ф硶浜哄憳 - lawEnforcerName: ""//鎵ф硶缂栧彿 + lawEnforcerName: "",//鎵ф硶缂栧彿, + createUser: null, }, rules: { + createUser: [ + { + required: true, trigger: 'change', validator: checkDepart + } + ], contactWay: [ { required: false, trigger: 'blur', validator: checkPhone @@ -161,6 +183,11 @@ lawEnforcerName: [ { required: false, trigger: 'change', validator: checkNumber } ], + disposeDate: [ + { + required: true, trigger: 'false', validator: checkTeam + } + ] }, carOptions: [ { @@ -233,7 +260,7 @@ }) .then(res => { this.carOptions = res.data.records; - console.log(res,this.carOptions); + console.log(res, this.carOptions); }) }, // 鑾峰彇娓e湡杞﹁締 @@ -259,6 +286,7 @@ }, // 鑾峰彇涓槦 async getTeamList(id) { + console.log(id); await this.$axios({ method: 'get', url: `sccg/depart/query_father_children?fatherId=${id}` @@ -272,52 +300,83 @@ }, // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛 async getDepartUserList(id) { + console.log(id); await this.$axios({ method: 'get', url: `sccg/admin/getDepartUser/${id}`, }) .then(res => { - this.personOptions = res.data; + console.log(res); + if (res.code === 200) { + this.personOptions = res.data; + } else { + this.personOptions = []; + } + if(this.personOptions.length === 0){ + this.$message({ + type: 'warning', + message: '璇ヤ腑闃熶笅娌℃湁浜哄憳' + }) + } }) .catch(err => { this.$message({ - type: 'error', - message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�' - }) + type: 'error', + message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�' + }) }) }, // 閮ㄩ棬鏇存敼 async handleTopChange(id) { this.dispatch.lawEnforcer = ''; this.dispatch.enforcementTeam = ''; + this.dispatch.contactWay = ''; + this.dispatch.lawEnforcerName = ''; await this.getTeamList(id); - if(this.squadronOptions.length===0){ - await this.getDepartUserList(id); - } + // if (this.squadronOptions.length === 0) { + // await this.getDepartUserList(id); + // } }, // 涓槦鏇存敼 async handleMidChange(id) { this.dispatch.lawEnforcer = ''; + this.dispatch.contactWay = ''; + this.dispatch.lawEnforcerName = ''; await this.getDepartUserList(id); }, // 浜哄憳鏇存敼 - async handlePerChange(id){ - let obj = await this.getLawUser(id); + async handlePerChange(id) { + let obj = await this.getLawUser(id); this.dispatch.lawEnforcerName = obj.nickName; this.dispatch.contactWay = obj.mobile; }, // 鑾峰彇鎵ф硶浜哄憳淇℃伅 - async getLawUser(id){ + async getLawUser(id) { let obj = {} await this.$axios({ - method:'get', - url:`sccg/admin/${id}` + method: 'get', + url: `sccg/admin/${id}` }) - .then(res=>{ - obj = res.data; - }) + .then(res => { + obj = res.data; + }) return obj; } + }, + watch: { + 'squadronOptions.length': { + handler(newval, oldval) { + console.log(newval); + if (newval === 0) { + console.log(1); + this.$message({ + type: 'warning', + message: '璇ラ儴闂ㄤ笅娌℃湁涓槦' + }) + } + }, + deep: true + }, } } </script> diff --git a/src/components/edit/index.vue b/src/components/edit/index.vue index 7752241..ec89cb5 100644 --- a/src/components/edit/index.vue +++ b/src/components/edit/index.vue @@ -11,6 +11,7 @@ editor: null } }, + props:['getMyBody'], mounted() { this.editor = new E('#edit'); this.editor.config.height = 450; @@ -18,6 +19,11 @@ '#4b9bb7', '#09152f' ] + + this.editor.config.onchange =(html)=>{ + // 绗簩姝ワ紝鐩戞帶鍙樺寲锛屽悓姝ユ洿鏂板埌 textarea + this.$emit('getMyBody',html); + } this.editor.create(); }, beforeDestroy() { @@ -28,14 +34,15 @@ } </script> <style lang="scss" scoped> - #edit{ - :deep(.w-e-toolbar){ - background-color: #09152f !important; - color: #4b9bb7; - } - :deep(.w-e-text-container){ - background-color: #09152f !important; - color: #4b9bb7; - } +#edit { + :deep(.w-e-toolbar) { + background-color: #09152f !important; + color: #4b9bb7; } + + :deep(.w-e-text-container) { + background-color: #09152f !important; + color: #4b9bb7; + } +} </style> \ No newline at end of file diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue index 12af55c..b2ae36c 100644 --- a/src/components/illdetail/index.vue +++ b/src/components/illdetail/index.vue @@ -79,8 +79,8 @@ <div class="show-wrap"> <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> - <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> - <MyScene v-else :currentSitVo="currentSitVo"></MyScene> + <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :handlePassVo="handlePassVo"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene> </div> </div> </div> @@ -122,20 +122,18 @@ baseCase:{}, handlePassVo:{}, currentSitVo:{}, - problemProVo:{}, filesPictureVo:{} } - }, + }, created() { console.log('created'); const {info} = this; this.baseCase = info.baseCase; this.handlePassVo = info.handlePassVo; this.currentSitVo = info.currentSitVo; - this.problemProVo = info.problemProVo; this.filesPictureVo = info.filesPictureVo; - console.log(info); + console.log(info); }, methods: { changeComponent(index) { diff --git a/src/components/process/index.vue b/src/components/process/index.vue index 09afaa4..20f092a 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -30,7 +30,7 @@ <div class="desc-title">鐜妭鐢ㄦ椂:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].linkTime : ''}}</div> <div class="desc-content" v-if="active > index"> <div class="desc-content-message">1111111</div> - <div class="desc-content-endtime">{{item.disposeRecords.length !==0 ? item.disposeRecords[0].endTime:''}}</div> + <div class="desc-content-endtime">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}}</div> </div> </div> </div> @@ -38,6 +38,7 @@ </div> </template> <script> +import helper from '@/utils/mydate' export default { data() { return { @@ -65,6 +66,14 @@ } this.list = mylist; }, + methods:{ + filterTime(time){ + if(time){ + return helper(time) + } + return; + } + } } </script> <style lang="scss" scoped> diff --git a/src/components/scene/index.vue b/src/components/scene/index.vue index 09f384f..b382cc8 100644 --- a/src/components/scene/index.vue +++ b/src/components/scene/index.vue @@ -11,19 +11,20 @@ <div class="scene-item" v-if="active === 1"> <el-form ref="arrivalSituation" label-position="right" label-width="120px" :model="arrivalSituation"> <el-form-item label="鍒拌揪鏃堕棿:"> - <el-input v-model="arrivalSituation.arrivalTime"></el-input> + <el-input disabled v-model="arrivalSituation.arrivalTime"></el-input> </el-form-item> <el-form-item label="鍒拌揪鍦板潃:"> - <el-input v-model="arrivalSituation.arrivalAddress"></el-input> + <el-input disabled v-model="arrivalSituation.arrivalAddress"></el-input> </el-form-item> <el-form-item label="鐜板満鎯呭喌璇存槑:"> - <el-input v-model="arrivalSituation.situationExplain"></el-input> + <el-input disabled v-model="arrivalSituation.situationExplain"></el-input> </el-form-item> <el-form-item label="淇¤鍥炲璇存槑:"> - <el-input v-model="arrivalSituation.replyExplain"></el-input> + <el-input disabled v-model="arrivalSituation.replyExplain"></el-input> </el-form-item> <el-form-item label="鐜板満鎯呭喌鐓х墖:"> - <el-input v-model="arrivalSituation.situationPic"></el-input> + <img class="img" :src="arrivalSituation.situationPic" alt="" v-if="arrivalSituation.situationPic"> + <!-- <el-input disabled v-model=""></el-input> --> </el-form-item> </el-form> </div> @@ -31,73 +32,74 @@ <el-form ref="investigation" label-position="right" label-width="120px" :model="investigation"> <div class="inves-item"> <el-form-item label="鎵垮姙闃熷憳:"> - <el-input v-model="investigation.name"></el-input> + <el-input disabled v-model="investigation.undertaker"></el-input> </el-form-item> <el-form-item label="鍗忓姙闃熷憳:"> - <el-input v-model="investigation.assistant"></el-input> + <el-input disabled v-model="investigation.assistant"></el-input> </el-form-item> </div> <el-form-item label="鏃堕棿:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="investigation.investigationTime"></el-input> </el-form-item> <el-form-item label="鍦板潃:"> - <el-input v-model="investigation.address"></el-input> + <el-input disabled v-model="investigation.address"></el-input> </el-form-item> <el-form-item label="妗堢敱:"> - <el-input v-model="investigation.caseAction"></el-input> + <el-input disabled v-model="investigation.caseAction"></el-input> </el-form-item> <el-form-item label="褰撲簨浜轰俊鎭�:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="investigation.type"></el-input> </el-form-item> <el-form-item label="鎯呭喌鎻忚堪:"> - <el-input v-model="investigation.description"></el-input> + <el-input disabled v-model="investigation.description"></el-input> </el-form-item> <el-form-item label="鐓х墖闄勪欢:"> - <el-input v-model="investigation.pic"></el-input> + <img class="img" :src="investigation.pic" alt="" v-if="investigation.pic"> + <!-- <el-input disabled v-model="investigation.pic"></el-input> --> </el-form-item> <el-form-item label="绫诲瀷:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="mybaseCase.categoryText"></el-input> </el-form-item> <div class="inves-item"> <el-form-item label="褰撲簨浜哄鍚�:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.name"></el-input> </el-form-item> <el-form-item label="鎵嬫満鍙风爜:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.phoneCode"></el-input> </el-form-item> </div> <div class="inves-item"> <el-form-item label="璇佷欢绫诲瀷:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.certificateTypeText"></el-input> </el-form-item> <el-form-item label="璇佷欢鍙风爜:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.certificateCode"></el-input> </el-form-item> </div> <div class="inves-item"> <el-form-item label="鏂囧寲绋嬪害:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.educationDegreeText"></el-input> </el-form-item> <el-form-item label="鑱屼笟:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.career"></el-input> </el-form-item> </div> <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.work"></el-input> </el-form-item> <div class="inves-item"> <el-form-item label="姘戞棌:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.nationText"></el-input> </el-form-item> <el-form-item label="绫嶈疮:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.nativePlace"></el-input> </el-form-item> </div> <el-form-item label="鐜颁綇鍧�:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.liveAddress"></el-input> </el-form-item> <el-form-item label="鎴风睄鎵�鍦ㄥ湴:"> - <el-input v-model="investigation.type"></el-input> + <el-input disabled v-model="partyInfo.registerAddress"></el-input> </el-form-item> </el-form> <el-button>杩斿洖</el-button> @@ -105,7 +107,7 @@ <div class="scene-item" v-if="active === 3"> <el-form ref="writ" label-position="right" label-width="120px" :model="writ"> <el-form-item label="绫诲瀷:"> - <el-input v-model="writ.name"></el-input> + <el-input disabled v-model="writ.name"></el-input> </el-form-item> </el-form> </div> @@ -130,21 +132,30 @@ label: '鍛婄煡杩濇硶' } ], + mybaseCase: {}, arrivalSituation: {}, investigation: {}, - writ: {} - + writ: {}, + partyInfo: {} } }, - props: ['currentSitVo'], + props: ['currentSitVo', 'baseCase'], created() { - const { currentSitVo: { arrivalSituation: mylist,investigation:invesList } } = this; + const { currentSitVo: { arrivalSituation: mylist, investigation: invesList }, baseCase } = this; + if (invesList) { + const { partyInfo } = invesList; + if (invesList) { + this.investigation = invesList; + } + if (partyInfo) { + this.partyInfo = partyInfo; + } + } if (mylist) { this.arrivalSituation = mylist; } - if(invesList){ - this.investigation = invesList; - } + this.mybaseCase = baseCase; + console.log(baseCase); console.log(this.currentSitVo); }, methods: { @@ -203,7 +214,11 @@ border: 1px solid #17324c; } } - .inves-item{ + .img{ + width: 60px; + height:60px; + } + .inves-item { display: flex; } } diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue index f9f9be8..9223300 100644 --- a/src/components/solveProblem/index.vue +++ b/src/components/solveProblem/index.vue @@ -1,60 +1,104 @@ <template> <div class="sovle-problem"> <div class="sovle-header"> - <div class="sovle-limit">澶勭悊鏃堕檺:{{}}</div> - <div class="sovle-limit">鍓╀綑鏃堕棿:23灏忔椂</div> + <div class="sovle-limit">澶勭悊鏃堕檺:{{dispatchInfo.disposeDate}}</div> + <div class="sovle-limit">鍓╀綑鏃堕棿:{{getRestTime(dispatchInfo.disposeDate)}}</div> </div> <div class="sovle-timeline"> <el-timeline> <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id"> <div class="title"> - <div class="title-left">銆恵{item.name}}銆憑{item.name === '娲鹃仯' ? '娲鹃仯鍛�':item.name === '澶勭悊' ? '澶勭悊浜�':'璇勫畾浜�'}}:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].handleId : ''}}</div> - <div class="title-right">{{item.disposeRecords.length !==0 ? item.disposeRecords[0].endTime:''}}</div> + <div class="title-left">銆恵{item.name}}銆憑{item.name === '娲鹃仯' ? '娲鹃仯鍛�':item.name === '澶勭悊' ? + '澶勭悊浜�':'璇勫畾浜�'}}:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].handleId : ''}} + </div> + <div class="title-right">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}} + </div> </div> - <div class="message">銆恵{item.name === '娲鹃仯' ? '娲鹃仯鎰忚':item.name === '澶勭悊' ? '澶勭悊缁撴灉':'璇勫畾缁撴灉'}}銆戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div> - </el-timeline-item> + <div class="message">{{filterPerson(item.name)}}</div> + </el-timeline-item> </el-timeline> </div> </div> -</template> +</template> <script> - export default{ - data(){ - return{ - mycolor:'#02a7f0', - list:[] +import helper from '@/utils/mydate' +import {computeTime} from '@/utils/helper' +export default { + data() { + return { + mycolor: '#02a7f0', + list: [], + dispatchInfo: {}, + } + }, + props: ['handlePassVo', 'baseCase'], + created() { + const { handlePassVo: mylist, baseCase } = this; + console.log(baseCase, mylist); + if (mylist) { + this.list = mylist.workflowConfigSteps; + } + if (baseCase.dispatchInfo) { + this.dispatchInfo = baseCase.dispatchInfo; + } + }, + methods: { + // 鑾峰緱鎰忚 + filterPerson(name) { + const { baseCase, dispatchInfo } = this; + if (name === '璋冨害') { + return '銆愭淳閬f剰瑙併��' + dispatchInfo.dispatchOpinion + } else if (name === '鏍告煡') { + return '銆愭牳鏌ョ粨鏋溿��' + baseCase.handlingOpinion + } else if (name === '缁撴') { + return '銆愯瘎瀹氱粨鏋溿��' + baseCase.finalOpinion + } else { + return '銆愬鐞嗙粨鏋溿��' + baseCase.handlingOpinion } }, - props:['problemProVo'], - created(){ - const {problemProVo:{workflowConfigSteps:mylist}} = this; - console.log(mylist); - this.list = mylist; - } + // 澶勭悊鏃堕棿 + filterTime(time){ + if(time){ + return helper(time) + }else{ + return + } + + }, + // 鑾峰緱鍓╀綑鏃堕棿 + getRestTime(limitTime){ + if(limitTime){ + return computeTime(limitTime) + } + return + } } +} </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; - } +.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/router/index.js b/src/router/index.js index d1422bc..f4aa33d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -21,39 +21,76 @@ component: () => import('@/views/systemSetting'), children: [ { - path: "user", - name: "user", - component: () => import('@/views/systemSetting/baseSetting/user') + path: 'userSetting', + name: 'userSetting', + component: () => import('@/views/systemSetting/baseSetting'), + children: [ + { + path: "user", + name: "user", + component: () => import('@/views/systemSetting/baseSetting/user') + }, + { + path: 'role', + name: 'role', + component: () => import('@/views/systemSetting/baseSetting/role') + }, + { + path: 'authority', + name: 'authority', + component: () => import('@/views/systemSetting/baseSetting/authority') + }, + { + path: 'department', + name: 'department', + component: () => import('@/views/systemSetting/baseSetting/department') + }, + + ] }, { - path: 'role', - name: 'role', - component: () => import('@/views/systemSetting/baseSetting/role') + path: 'platform', + name: 'platform', + component: () => import('@/views/systemSetting/platform'), + children: [ + { + path: 'portalSetting', + name: 'portalSetting', + component: () => import('@/views/systemSetting/platform/portalSetting') + }, + { + path: 'otherInterface', + name: 'otherInterface', + component: () => import('@/views/systemSetting/platform/otherInterface') + }, + { + path: 'mySetting', + name: 'mySetting', + component: () => import('@/views/systemSetting/platform/mySetting') + } + ] }, { - path: 'authority', - name: 'authority', - component: () => import('@/views/systemSetting/baseSetting/authority') - }, - { - path: 'department', - name: 'department', - component: () => import('@/views/systemSetting/baseSetting/department') - }, - { - path: 'portalSetting', - name: 'portalSetting', - component: () => import('@/views/systemSetting/platform/portalSetting') - }, - { - path: 'otherInterface', - name: 'otherInterface', - component: () => import('@/views/systemSetting/platform/otherInterface') - }, - { - path: 'mySetting', - name: 'mySetting', - component: () => import('@/views/systemSetting/platform/mySetting') + path: 'device', + name: 'device', + component: () => import('@/views/systemSetting/device'), + children: [ + { + path: 'bayonet', + name: 'bayonet', + component: () => import('@/views/systemSetting/device/bayonet') + }, + { + path: 'grid', + name: 'grid', + component: () => import('@/views/systemSetting/device/grid'), + }, + { + path: 'point', + name: 'point', + component: () => import('@/views/systemSetting/device/point'), + } + ] } ] }, @@ -189,13 +226,13 @@ component: () => import('@/views/operate/car/myIndex'), }, { - path:'lawTrajectory', - name:'lawTrajectory', + path: 'lawTrajectory', + name: 'lawTrajectory', component: () => import('@/views/operate/car/lawCar'), }, { - path:'soilTrajectory', - name:'soilTrajectory', + path: 'soilTrajectory', + name: 'soilTrajectory', component: () => import('@/views/operate/car/soilCar'), } ] @@ -211,8 +248,8 @@ component: () => import('@/views/operate/message/myIndex'), }, { - path:'mycontrol', - name:'mycontrol', + path: 'mycontrol', + name: 'mycontrol', component: () => import('@/views/operate/message/mycontrol'), }, ] diff --git a/src/utils/request.js b/src/utils/request.js index 5b3db90..e6b7b9b 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -3,7 +3,8 @@ // 寮曞叆elementUI import tip from 'element-ui'; const api = axios.create({ - baseURL: '/', // 璇锋眰鐨勫叕鍏卞湴鍧�閮ㄥ垎 + // http://42.193.1.25:8082 + baseURL: 'http://42.193.1.25:8082/', // 璇锋眰鐨勫叕鍏卞湴鍧�閮ㄥ垎 timeout: 15000 }) // 鎷︽埅鍣� @@ -28,10 +29,10 @@ return result; } else if (response.status === 200 && result.code === 500) { - tip.Message({ - type: 'error', - message: '鏈嶅姟鍣ㄥ姫鍔涘姞杞戒腑', - }) + // tip.Message({ + // type: 'error', + // message: '鏈嶅姟鍣ㄥ姫鍔涘姞杞戒腑', + // }) return result; } else if (response.status === 200 && result.code === 401) { @@ -47,7 +48,16 @@ } }, (error) => { - console.log(error); + let msg ='' + if (error.code === 'ERR_NETWORK') { + msg = '缃戠粶璇锋眰瓒呮椂' + }else{ + msg = '缃戠粶閿欒' + } + tip.Message({ + type: 'error', + message: msg + }) }, ) export default api; \ No newline at end of file diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue index 8169db6..5498981 100644 --- a/src/views/layout/components/Header/index.vue +++ b/src/views/layout/components/Header/index.vue @@ -11,12 +11,14 @@ <div class="header-right"> <!-- 鎼滅储妗� --> <div class="menu-right__item search"> - <el-input suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"></el-input> + <el-input suffix-icon="el-icon-search" v-model="keyword" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"></el-input> </div> <!-- 鐧诲綍鐢ㄦ埛 --> <div class="menu-right__item user" @mousemove="flag.user=true" @mouseleave="flag.user=false"> - <el-avatar :size="20" src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"></el-avatar> - <span style="padding: 0 5px;">Admin</span> + <el-avatar :size="20" :src="user.icon" v-if="user.icon"></el-avatar> + <el-avatar :size="20" src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png" v-else> + </el-avatar> + <span style="padding: 0 5px;">{{user.username? user.username:'Admin'}}</span> <i class="el-icon-arrow-down"></i> <!-- 鐢ㄦ埛鎿嶄綔 --> <div class="user-card" v-if="flag.user" @mouseleave="flag.user = false"> @@ -91,6 +93,7 @@ user: false, message: false }, + user: '', menuMessageList: [ { label: '鍏ㄩ儴娑堟伅', @@ -112,8 +115,12 @@ num: 10, id: '4m' }, - ] + ], + keyword: '', }; + }, + created() { + this.getLoginInfo(); }, methods: { // 閫�鍑哄姛鑳� @@ -126,7 +133,7 @@ sessionStorage.removeItem('token'); sessionStorage.removeItem('tokenHead'); this.$router.push({ path: "/login" }) - }).catch(err=>{ + }).catch(err => { console.log(err); }) }, @@ -140,6 +147,23 @@ } }) }, + // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 + getLoginInfo() { + const info = JSON.parse(sessionStorage.getItem('user')); + if (info) { + this.user = info; + } else { + const name = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info?name=' + name, + }) + .then(res => { + sessionStorage.setItem('user', JSON.stringify(res.data)); + this.user = res.data; + }) + } + } } }; </script> @@ -167,7 +191,8 @@ display: block; line-height: 40px; width: 100%; - &:hover{ + + &:hover { cursor: pointer; color: #fff; } diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index 9dc05a4..635f444 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -5,7 +5,7 @@ <h2 class="siderbar-title">閬傛槍鎵ф硶骞冲彴</h2> <el-scrollbar> <!-- 璺敱 --> - <el-menu router class="el-menu-vertical" :default-active="$route.path"> + <el-menu router class="el-menu-vertical" :default-active="$route.path" > <!-- 绯荤粺璁剧疆妯″潡 --> <el-submenu index="/home/system" class="firstMenu"> <template slot="title"> @@ -16,51 +16,34 @@ <span class="fisrtSpan">绯荤粺璁剧疆</span> </template> <!-- 鍩烘湰璁剧疆 --> - <el-submenu index="/home/system/base" class="secondMenu"> + <el-submenu index="/home/system/userSetting" class="secondMenu"> <template slot="title"> <span class="secondSpan">鍩烘湰璁剧疆</span> </template> <!-- 鐢ㄦ埛绠$悊 --> - <el-menu-item index="/home/system/user">鐢ㄦ埛绠$悊</el-menu-item> - <!-- <el-submenu index="/home/system/base/user" class="thirdMenu"> - <template slot="title"> - <span class="thirdSpan">鐢ㄦ埛绠$悊</span> - </template> - <el-menu-item index="/home/system/user">鐢ㄦ埛鍒楄〃</el-menu-item> - </el-submenu> --> + <el-menu-item index="/home/system/userSetting/user">鐢ㄦ埛绠$悊</el-menu-item> <!-- 瑙掕壊绠$悊 --> - <el-menu-item index="/home/system/role">瑙掕壊绠$悊</el-menu-item> - <!-- <el-submenu index="/home/system/base/role" class="thirdMenu"> - <template slot="title"> - <span class="thirdSpan">瑙掕壊绠$悊</span> - </template> - <el-menu-item index="/home/system/role">瑙掕壊绠$悊鍒楄〃</el-menu-item> - </el-submenu> --> - <!-- 鏉冮檺绠$悊 --> - <!-- <el-menu-item index="/home/system/authority">鏉冮檺绠$悊</el-menu-item> --> - <!-- <el-submenu index="/home/system/base/authority" class="thirdMenu"> - <template slot="title"> - <span class="thirdSpan">鏉冮檺绠$悊</span> - </template> - <el-menu-item index="/home/system/authority">璁剧疆鏉冮檺</el-menu-item> - </el-submenu> --> + <el-menu-item index="/home/system/userSetting/role">瑙掕壊绠$悊</el-menu-item> <!-- 閮ㄩ棬绠$悊 --> - <el-menu-item index="/home/system/department">閮ㄩ棬绠$悊</el-menu-item> - <!-- <el-submenu index="/home/system/base/department" class="thirdMenu"> - <template slot="title"> - <span class="thirdSpan">閮ㄩ棬绠$悊</span> - </template> - <el-menu-item index="/home/system/department">閮ㄩ棬绠$悊</el-menu-item> - </el-submenu> --> + <el-menu-item index="/home/system/userSetting/department">閮ㄩ棬绠$悊</el-menu-item> </el-submenu> <!-- 骞冲彴璁剧疆 --> - <el-submenu index="/home/operate/add" class="secondMenu"> + <el-submenu index="/home/system/add" class="secondMenu"> <template slot="title"> <span class="secondSpan">闂ㄦ埛绠$悊</span> </template> <el-menu-item index="/home/system/mySetting">鑷畾涔夎彍鍗�</el-menu-item> <el-menu-item index="/home/system/portalSetting">logo绠$悊</el-menu-item> <el-menu-item index="/home/system/otherInterface">绗笁鏂规帴鍙g鐞�</el-menu-item> + </el-submenu> + <!-- 璁惧绠$悊 --> + <el-submenu index="/home/system/device" class="secondMenu"> + <template slot="title"> + <span class="secondSpan">璁惧绠$悊</span> + </template> + <el-menu-item index="/home/system/device/bayonet">鍗″彛璁惧绠$悊</el-menu-item> + <el-menu-item index="/home/system/device/point">鐐逛綅绠$悊</el-menu-item> + <el-menu-item index="/home/system/device/grid">缃戞牸绠$悊</el-menu-item> </el-submenu> </el-submenu> <!-- 杩愯惀绠$悊妯″潡 --> @@ -77,7 +60,7 @@ </template> <el-menu-item index="/home/operate/baseSetting/violation">杩濊浜嬮」璁剧疆</el-menu-item> <el-menu-item index="/home/operate/baseSetting/illegalBuild">杩濆缓浜嬮」璁剧疆</el-menu-item> - <el-menu-item index="/home/operate/baseSetting/threepack">闂ㄥ墠涓夊寘璁剧疆</el-menu-item> + <!-- <el-menu-item index="/home/operate/baseSetting/threepack">闂ㄥ墠涓夊寘璁剧疆</el-menu-item> --> </el-submenu> <el-submenu index="/home/operate/disposal" class="secondMenu"> <template slot="title"> diff --git a/src/views/operate/baseSetting/violation/createUser/index.vue b/src/views/operate/baseSetting/violation/createUser/index.vue index 01669a3..b55af77 100644 --- a/src/views/operate/baseSetting/violation/createUser/index.vue +++ b/src/views/operate/baseSetting/violation/createUser/index.vue @@ -19,9 +19,6 @@ <!-- 鐖剁骇id --> <el-form-item class="optionItem" label="鐖剁骇:" prop="parentId"> <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵被鍨�" :disabled="things.level===1"> - <!-- <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id" - v-if="things.level===1"> - </el-option> --> <el-option :value="mylabel"> <el-tree ref="tree" :check-strictly="true" :data="parentList" :props="defaultProps" show-checkbox @check-change="handleCheck" default-expand-all node-key="id"> @@ -109,7 +106,12 @@ }, defaultProps: { children: 'children', - label: 'name' + label: 'name', + disabled:(data,node)=>{ + if (data.level<this.things.level-1) { + return !data.leaf + } + } }, mylabel:'' } @@ -210,6 +212,7 @@ }, // 妗堜欢绾у埆鍙樺寲 async resetParentList(index) { + this.things.parentId='' this.selectOrg.orgsid = []; if (index === 1) { // this.getTypeThird(); diff --git a/src/views/operate/car/myIndex/index.vue b/src/views/operate/car/myIndex/index.vue index 0f0b869..c3de32e 100644 --- a/src/views/operate/car/myIndex/index.vue +++ b/src/views/operate/car/myIndex/index.vue @@ -65,10 +65,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -302,7 +302,6 @@ opernDialog(data){ this.dialogAdd = true; this.caseId = data.id; - // console.log(data); }, // 鍏抽棴鐣岄潰 closeDialog({flag,index}){ @@ -418,12 +417,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 6314ab2..effa791 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -95,10 +95,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -467,7 +467,9 @@ justify-content: space-between; align-items: center; padding: 0 20px; - + .funs-sp{ + border: 1px solid #17324c; + } .funs { display: flex; @@ -475,7 +477,6 @@ line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue index 449b57b..61e13cf 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue @@ -33,7 +33,7 @@ </div> <div class="upload" v-if="arrive.situationPic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="50" :on-success="handleSuccess" list-type="picture" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue index eda2ad9..ea68e71 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue @@ -59,7 +59,7 @@ </div> <div class="upload" v-if="book.writPic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="4" :on-success="handleSuccess1" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> @@ -78,7 +78,7 @@ </div> <div class="upload" v-if="book.originalPic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="4" :on-success="handleSuccess2" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> @@ -97,7 +97,7 @@ </div> <div class="upload" v-if="book.rectifiedPic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="4" :on-success="handleSuccess3" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> @@ -116,7 +116,7 @@ </div> <div class="upload" v-if="book.otherPic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="4" :on-success="handleSuccess4" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue index 7d70c90..511566a 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue @@ -46,7 +46,7 @@ </div> <div class="upload" v-if="evidence.pic.length<4"> <el-upload :file-list="fileList" class="upload-demo" - action="/sccg/file/medias" multiple :show-file-list="false" + action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" :limit="4" :on-success="handleSuccess2" :headers="getToken()"> <i class="el-icon-plus"></i> </el-upload> diff --git a/src/views/operate/disposal/casepool/escalation/index.vue b/src/views/operate/disposal/casepool/escalation/index.vue index 3f78a38..31434d3 100644 --- a/src/views/operate/disposal/casepool/escalation/index.vue +++ b/src/views/operate/disposal/casepool/escalation/index.vue @@ -90,10 +90,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -545,12 +545,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/disposal/casepool/learn/index.vue b/src/views/operate/disposal/casepool/learn/index.vue index 69dbf6e..ceeb418 100644 --- a/src/views/operate/disposal/casepool/learn/index.vue +++ b/src/views/operate/disposal/casepool/learn/index.vue @@ -91,10 +91,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -481,12 +481,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/disposal/casepool/notDeal/index.vue b/src/views/operate/disposal/casepool/notDeal/index.vue index 97519f6..a0e23fc 100644 --- a/src/views/operate/disposal/casepool/notDeal/index.vue +++ b/src/views/operate/disposal/casepool/notDeal/index.vue @@ -84,10 +84,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -464,12 +464,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; 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 7c84c25..b6d8f0c 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -28,7 +28,7 @@ </div> <div class="user-item"> <!-- 灏忕被鍚嶇О --> - <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId" > + <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId"> <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О" @change="handleSmallKindChange"> <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id"> @@ -45,12 +45,11 @@ </el-form-item> </div> <!-- 妗堢敱 --> - <el-form-item class="optionItem" label="妗堢敱:" prop="actionCause"> - <el-select v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"> - <el-option v-for="item in anYouList" :key="item.id" :label="item.name" - :value="item.id" > - </el-option> - </el-select> + <el-form-item class="optionItem anyou" label="妗堢敱:" prop="actionCause"> + <el-select v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�" filterable @blur="selectBlur"> + <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name" > + </el-option> + </el-select> <!-- <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input> --> </el-form-item> <!-- 鎵�灞炲尯鍘� --> @@ -141,7 +140,8 @@ </template> <script> import MyMap from '@/components/map' -import { validateName, validatePhone, validateCarNum } from '@/utils/validate' +import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate' +import {getTypeList} from '@/utils/helper' export default { components: { MyMap @@ -223,21 +223,21 @@ } const checkName = (rule, value, callback) => { if (value) { - validateName(value) ? callback():callback(new Error('璇疯緭鍏ユ纭殑濮撳悕')) + validateName(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑濮撳悕')) } else { callback() } } const checkCardId = (rule, value, callback) => { if (value) { - callback(); + validateCardId(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�')) } else { callback() } } const checkPhone = (rule, value, callback) => { if (value) { - validatePhone(value) ? callback():callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')); + validatePhone(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')); } else { callback() } @@ -246,9 +246,9 @@ if (value) { callback(); } else { - if(this.vio.linkShop===1){ + if (this.vio.linkShop === 1) { callback(new Error('鍏宠仈鍟嗛摵鍚嶅瓧涓嶈兘涓虹┖')); - }else{ + } else { callback(); } } @@ -303,23 +303,23 @@ required: true, trigger: 'blur', validator: checkDesc } ], - informant:[ + informant: [ { required: false, trigger: 'blur', validator: checkName } ], - informantIdCard:[ + informantIdCard: [ { required: false, trigger: 'blur', validator: checkCardId } ], - informantPhoneCode:[ + informantPhoneCode: [ { required: false, trigger: 'blur', validator: checkPhone } ], // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�) - shopName:[ + shopName: [ { required: false, trigger: 'blur', validator: checkLink } @@ -370,11 +370,11 @@ ], streetList: [], communityList: [], - anYouList:[], + anYouList: [], } }, created() { - const { setBigKindList,getStreetList,getEventLevel } = this; + const { setBigKindList, getStreetList, getEventLevel } = this; console.log(this.mytype); this.vio.category = this.mytype + 1; setBigKindList(); @@ -386,23 +386,23 @@ this.refresh(); }, // 璁剧疆澶х被 - async setBigKindList(){ - this.bigKindList = await this.getBigKind(); + async setBigKindList() { + this.bigKindList = await this.getBigKind(); }, // 璁剧疆灏忕被 - async setSmallKindList(id){ + async setSmallKindList(id) { let arr = await this.getSmallKind(); - this.smallKindList = arr.filter(item=>{ - if(item.parentId===id){ + this.smallKindList = arr.filter(item => { + if (item.parentId === id) { return item; } }) }, // 璁剧疆妗堢敱 - async setAnYouList(id){ + async setAnYouList(id) { let arr = await this.getAnYouList(); - this.anYouList = arr.filter(item=>{ - if(item.parentId===id){ + this.anYouList = arr.filter(item => { + if (item.parentId === id) { return item; } }) @@ -433,14 +433,8 @@ return arr }, // 鑾峰彇妗堜欢绛夌骇鍒楄〃 - getEventLevel() { - this.$axios({ - method: 'get', - url: 'sccg/violations/query/event_type' - }) - .then(res => { - this.eventLevelList = res.data; - }) + async getEventLevel() { + this.eventLevelList = await getTypeList(1,'02'); }, // 鏌ヨ鎵�灞炴鐢� async getAnYouList() { @@ -491,19 +485,14 @@ this.$emit('changeDialog', { flag: false }) }, // 鑾峰彇琛楅亾淇℃伅 - getStreetList() { - this.$axios({ - method: 'get', - url: 'sccg/dict/query_Street_type' - }) - .then(res => { - this.streetList = res.data; - }) + async getStreetList() { + this.streetList = await getTypeList(1,'10'); }, // 琛楅亾鏇存敼 handleStreet(id) { console.log(id); this.vio.communityId = ''; + // this.communityList = getTypeList(1,'11') this.$axios({ method: 'get', url: 'sccg/dict/query_social_type?id=' + id @@ -517,16 +506,23 @@ value === 0 ? this.vio.shopName = '' : ''; }, // 澶х被閫変腑 - handleBigKindChange(id){ + handleBigKindChange(id) { this.vio.actionCause = ''; this.vio.typeId = ''; this.setSmallKindList(id); }, // 灏忕被閫変腑 - handleSmallKindChange(id){ + handleSmallKindChange(id) { this.vio.actionCause = ''; this.setAnYouList(id); - } + }, + // 妗堢敱杈撳叆 + selectBlur(e){ + if(e.target.value){ + this.vio.actionCause = e.target.value; + console.log(e.target.value); + } + } }, props: ['mytype', 'changeDialog', 'refresh'] } @@ -586,53 +582,9 @@ .map-area { flex: 1; } - - .not-need { - color: #4b9bb7; - - .not-need__header { - line-height: 40px; - } - - .my-sp-item { - display: flex; - - .not-item-left, - .not-item-right { - display: flex; - - .el-input { - flex: 1; - } - } - } - - .not-need-item { - line-height: 40px; - margin-bottom: 22px; - display: flex; - - label { - width: 100px; - padding-right: 12px; - text-align: right; - } - - .el-input { - flex: 1; - } - - .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; - } + .anyou{ + :deep(.el-select){ + display: block; } } diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index e49a982..7af8961 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -94,6 +94,9 @@ <span class="line">|</span> <span @click="handleNotDeal(scope.row)">鏆備笉澶勭悊</span> </div> + <div class="operation" v-else> + <span @click="JumpView(scope.row)">鏌ョ湅</span> + </div> </template> </el-table-column> </el-table> @@ -112,11 +115,11 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()" :disabled="tableData.length !== 0 ? false : true">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -442,6 +445,7 @@ url: `sccg/base_case/baseCaseDetail/${code}` }) .then(res => { + console.log(res); this.info = res.data; this.dialogView = true; }) @@ -640,12 +644,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/fivepack/shop/components/createUser/index.vue b/src/views/operate/fivepack/shop/components/createUser/index.vue index dbf7350..b773949 100644 --- a/src/views/operate/fivepack/shop/components/createUser/index.vue +++ b/src/views/operate/fivepack/shop/components/createUser/index.vue @@ -142,7 +142,7 @@ } }, created() { - const that = this; + this.getCodeList(); }, methods: { handleUser() { @@ -184,6 +184,16 @@ }, handleBack(){ this.$emit('sendDialog',{flag:false}) + }, + // 鑾峰彇瀛楀吀 + getCodeList(){ + this.$axios({ + method:'get', + url:'sccg/dict/queryByCode?code='+"03" + }) + .then(res=>{ + console.log(res); + }) } }, props: ['sendDialog'] diff --git a/src/views/operate/fivepack/shop/components/header/index.vue b/src/views/operate/fivepack/shop/components/header/index.vue index 280fe26..ba96679 100644 --- a/src/views/operate/fivepack/shop/components/header/index.vue +++ b/src/views/operate/fivepack/shop/components/header/index.vue @@ -6,10 +6,10 @@ <span>杈撳叆鏌ヨ:</span> <el-input placeholder="搴楅摵(闂ㄥ簵)鍚嶇О" v-model="search"></el-input> </div> - <div class="status"> + <!-- <div class="status"> <span>搴楅摵鐘舵��:</span> <el-input placeholder="閫夋嫨搴楅摵鐘舵��" v-model="shopStatus"></el-input> - </div> + </div> --> <div class="findBtn"> <el-button type="primary" @click="setSearch" icon="el-icon-search">鏌ヨ</el-button> <el-button icon="el-icon-delete-solid" @click="clearSearch">閲嶇疆</el-button> diff --git a/src/views/operate/management/myIndex/components/closure/index.vue b/src/views/operate/management/myIndex/components/closure/index.vue index bddc83d..71dd4ac 100644 --- a/src/views/operate/management/myIndex/components/closure/index.vue +++ b/src/views/operate/management/myIndex/components/closure/index.vue @@ -15,28 +15,28 @@ <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> </el-form-item> <el-form-item label="浜嬩欢绛夌骇:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.gradeText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="澶х被鍚嶇О:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> </el-form-item> <el-form-item label="灏忕被鍚嶇О:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="鎵�灞炲尯鍘�:"> - <span class="data-detail">xxxx</span> + <span class="data-detail"></span> </el-form-item> <el-form-item label="鎵�灞炶閬�:"> - <span class="data-detail">{{baseCase.streetId}}</span> + <span class="data-detail">{{baseCase.streetText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="鎵�灞炵ぞ鍖�:"> - <span class="data-detail">{{baseCase.communityId}}</span> + <span class="data-detail">{{baseCase.communityText}}</span> </el-form-item> </div> <div class="data-item"> @@ -44,25 +44,25 @@ <span class="data-detail">{{baseCase.site}}</span> </el-form-item> <el-form-item label="杞︾墝鍙�:"> - <span class="data-detail">xxxxx</span> + <span class="data-detail">{{baseCase.violations.carNumber}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="鍏宠仈鍟嗛摵鍚嶇О:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.shopName}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="闂鎻忚堪:"> - <span class="data-detail">xxxxxxx</span> + <span class="data-detail">{{baseCase.violations.description}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="鍙嶆槧浜�:"> - <span class="data-detail">xxxxxxx</span> + <span class="data-detail">{{baseCase.violations.informant}}</span> </el-form-item> <el-form-item label="鑱旂郴鏂瑰紡:"> - <span class="data-detail">xxxxxxx</span> + <span class="data-detail">{{baseCase.violations.informantPhoneCode}}</span> </el-form-item> </div> <!-- 瀹℃牳鎰忚 @@ -99,13 +99,13 @@ </el-form> <div class="form-footer"> <el-button type="primary" @click.native.prevent="handleSubmit">缁撴</el-button> - <el-button>杩斿洖</el-button> + <el-button @click.native.prevent="handleBack">杩斿洖</el-button> </div> </div> <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> - <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo"></MyFilePicture> - <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> - <MyScene v-else :currentSitVo="currentSitVo"></MyScene> + <MyFilePicture v-else-if="activeIndex === 2" :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :problemProVo="problemProVo"></MySovleProblem> + <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene> </div> </div> </div> @@ -193,6 +193,9 @@ changeComponent(index) { this.activeIndex = index; }, + handleBack(){ + this.$emit('closeDialog', { flag: false }); + }, // 鎻愪氦瀹℃牳鎰忚 handleSubmit() { const { baseCase } = this; diff --git a/src/views/operate/management/myIndex/components/examine/index.vue b/src/views/operate/management/myIndex/components/examine/index.vue index 62b985a..6bd340d 100644 --- a/src/views/operate/management/myIndex/components/examine/index.vue +++ b/src/views/operate/management/myIndex/components/examine/index.vue @@ -15,20 +15,20 @@ <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> </el-form-item> <el-form-item label="澶х被鍚嶇О:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="灏忕被鍚嶇О:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.typeText}}</span> </el-form-item> <el-form-item label="浜嬩欢绛夌骇:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.gradeText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="妗堢敱:"> - <span class="data-detail">xxxxx</span> + <span class="data-detail">{{baseCase.violations.actionCause}}</span> </el-form-item> </div> <div class="data-item"> @@ -36,12 +36,12 @@ <span class="data-detail">xxxx</span> </el-form-item> <el-form-item label="鎵�灞炶閬�:"> - <span class="data-detail">{{baseCase.streetId}}</span> + <span class="data-detail">{{baseCase.streetText}}</span> </el-form-item> </div> <div class="data-item"> <el-form-item label="鎵�灞炵ぞ鍖�:"> - <span class="data-detail">{{baseCase.communityId}}</span> + <span class="data-detail">{{baseCase.communityText}}</span> </el-form-item> </div> <div class="data-item"> @@ -51,7 +51,7 @@ </div> <div class="data-item"> <el-form-item label="闂鎻忚堪:"> - <span class="data-detail">xxxxxx</span> + <span class="data-detail">{{baseCase.violations.description}}</span> </el-form-item> </div> <div class="data-item"> @@ -84,10 +84,10 @@ </div> <div class="show-item"> <div class="show-wrap"> - <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> - <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo"></MyFilePicture> - <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> - <MyScene v-else :currentSitVo="currentSitVo"></MyScene> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :problemProVo="problemProVo"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene> </div> </div> </div> diff --git a/src/views/operate/management/myIndex/index.vue b/src/views/operate/management/myIndex/index.vue index ede3dd1..f39c4ae 100644 --- a/src/views/operate/management/myIndex/index.vue +++ b/src/views/operate/management/myIndex/index.vue @@ -87,10 +87,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -405,12 +405,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue index aff2598..64cc64d 100644 --- a/src/views/operate/message/myIndex/createUser/index.vue +++ b/src/views/operate/message/myIndex/createUser/index.vue @@ -14,7 +14,7 @@ </el-option> </el-select> </div> - <span class="message-add" @click='dialogCreate = true'>娣诲姞鏍忕洰</span> + <span class="message-add" @click='dialogCreate = true'> 娣诲姞鏍忕洰</span> </div> </el-form-item> <!-- 娑堟伅鏍囬 --> @@ -26,9 +26,9 @@ <!-- 鎺ユ敹瀵硅薄 --> <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo"> <div class="message-item__left"> - <el-select v-model="role.targetTo" multiple :placeholder="checkNum"> + <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄"> <el-option :value="role.targetTo"> - <el-tree ref="tree" :data="departList" :props="defaultProps" + <el-tree ref="tree" check-strictly :data="departList" :props="defaultProps" show-checkbox @check="handleCheck" default-expand-all node-key="id"> </el-tree> </el-option> @@ -37,7 +37,7 @@ </el-form-item> <!-- 娑堟伅鍐呭 --> <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> - <MyEditor :content="role.body"></MyEditor> + <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> </el-form-item> <!-- 鎻愰啋鏂瑰紡 --> @@ -53,11 +53,11 @@ <div class="optionBtn"> <el-button type="primary" class="btn save">淇濆瓨 </el-button> - <el-button type="primary" class="btn submit">鍙戝竷 + <el-button type="primary" @click.native.prevent="handleSubmit" class="btn submit">鍙戝竷 </el-button> <el-button type="primary" class="btn submit">棰勮 </el-button> - <el-button class="btn cancel">閲嶇疆</el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button> </div> </el-form-item> </el-form> @@ -91,10 +91,10 @@ } }; const validateTruename = (rule, value, callback) => { - if (value) { + if (value.length !== 0) { callback(); } else { - callback(); + callback(new Error('璇烽�夋嫨鎺ユ敹瀵硅薄')); } }; return { @@ -106,19 +106,18 @@ channelCode: 1, }, createRoleRules: { - name: [ + messageType: [ { required: true, trigger: "blur", validator: validateNickname }, ], - type: [ + head: [ { required: false, trigger: "blur", validator: validatePass }, ], - description: [ + targetTo: [ { required: false, trigger: "blur", validator: validateTruename }, ], }, colList: [], departList: [], - checkNum: '璇烽�夋嫨鎺ユ敹瀵硅薄', typeList: [], dialogCreate: false, defaultProps: { @@ -128,8 +127,9 @@ if (data.createTime) { return !data.leaf } - } + } }, + checkedList: [] } }, created() { @@ -200,11 +200,11 @@ if (obj.children !== null) { if (obj.children.length !== 0) { obj.children.forEach(item => { - return this.setChildren(item); + return this.setChildren(item); }) } } else { - if (obj.userInfoDTOS.length !== 0) { + if (obj.userInfoDTOS.length !== 0) { obj.children = []; obj.userInfoDTOS.forEach(item => { obj.children.push({ id: item.userId, departName: item.username }) @@ -214,16 +214,57 @@ }, // 閫変腑id handleCheck(data, node) { - console.log(node.checkedKeys); - // this.checkList = node.checkedKeys; - // if(node.checkedKeys.length === 1){ - // this.role.targetTo = data.departName; - // } - // let per = node.checkedKeys.length; - // per ===0 ? this.checkNum="璇烽�夋嫨鎺ユ敹瀵硅薄" : this.checkNum = ''+per; + console.log(data, node); + this.checkedList = node.checkedKeys; + this.role.targetTo = node.checkedKeys.length + '浜�'; + }, + // 鏂板缓娑堟伅 + handleSubmit() { + console.log(this.role); + this.$refs.user.validate((valid) => { + console.log(valid) + if (valid) { + const {role,checkedList} = this; + this.$axios({ + method: 'post', + url: 'sccg/message/sendMessage', + data: { + body: role.body, + channelCode: role.channelCode, + head: role.head, + messageType: role.messageType, + sendTime: new Date(), + targetTo: checkedList.join(',') + } + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'鍙戦�佹垚鍔�', + }) + this.$emit('closeMyDialog',{flag:false,index:1}); + } + }) + } else { + return false; + } + }) + }, + // 鑾峰緱娑堟伅浣� + getMyBody(obj) { + console.log(obj); + this.role.body = obj; + }, + // 閲嶇疆琛ㄥ崟 + handleReset(){ + this.$refs.edit.editor.txt.clear(); + // this.$refs.edit.wangEditor.txt.html('<p><br></p>') + this.setDepartList(); + this.$refs.user.resetFields(); } }, - props: [''] + props: ['closeMyDialog'] } </script> <style lang="scss" scoped> diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue index 039a410..bad32ed 100644 --- a/src/views/operate/message/myIndex/index.vue +++ b/src/views/operate/message/myIndex/index.vue @@ -51,7 +51,8 @@ </el-table-column> <el-table-column prop="channelCode" label="娑堟伅鍒嗙被" min-width="10"> <template slot-scope="scope"> - <span>{{scope.row.channelCode === '01' ? '绔欏唴淇�':scope.row.channelCode ==='02'?"閭欢":'鐭俊'}}</span> + <span>{{scope.row.channelCode === '01' ? '绔欏唴淇�':scope.row.channelCode + ==='02'?"閭欢":'鐭俊'}}</span> </template> </el-table-column> <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> @@ -64,7 +65,8 @@ <div class="operation"> <el-link icon="el-icon-view" :underline="false" @click="dialogView = true">鏌ョ湅</el-link> <el-link icon="el-icon-edit" class="leftPx" :underline="false">缂栬緫</el-link> - <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> </div> </template> </el-table-column> @@ -72,7 +74,7 @@ <!-- 鏂板缓娑堟伅 --> <el-dialog title="鏂板缓娑堟伅" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%" :before-close="handleConfirmClose"> - <MyCreate></MyCreate> + <MyCreate @closeMyDialog="closeDialog"></MyCreate> </el-dialog> <!-- 娑堟伅璇︽儏 --> <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%" @@ -82,10 +84,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -113,14 +115,14 @@ import MyCreate from './createUser' export default { components: { - MyView,MyCreate + MyView, MyCreate }, data() { return { tableData: [], context: "", - dialogCreate:false, - dialogView:false, + dialogCreate: false, + dialogView: false, totalNum: null, pageSize: 10, currentPage: 1, @@ -154,25 +156,25 @@ this.setTableData(); }, methods: { - handleDelete(idarr){ + handleDelete(idarr) { this.$axios({ - method:'post', - url:'sccg/message/delete?ids='+idarr, + method: 'post', + url: 'sccg/message/delete?ids=' + idarr, }) - .then(res=>{ - if(res.code===200){ - this.$message({ - type:'success', - message:'鍒犻櫎鎴愬姛', - }) - this.setTableData(); - }else{ - this.$message({ - type:'error', - message:res.message - }) - } - }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛', + }) + this.setTableData(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + }) }, // 璁剧疆琛ㄦ牸鏁版嵁 async setTableData() { @@ -183,7 +185,7 @@ // 鑾峰彇娑堟伅鏁版嵁 async getMessageList() { let arr = []; - const {currentPage,pageSize} = this; + const { currentPage, pageSize } = this; await this.$axios({ method: 'post', url: 'sccg/message/list', @@ -306,23 +308,24 @@ this.search(); }, // 鍏抽棴寮圭獥 - handleClose(done){ + handleClose(done) { done(); }, // 纭鍏抽棴寮圭獥 - handleConfirmClose(done){ + handleConfirmClose(done) { this.$confirm('纭鍏抽棴?') - .then(_=>{ - done(); - }) - .catch(err=>{ - console.log(err); - }) + .then(_ => { + done(); + }) + .catch(err => { + console.log(err); + }) }, // 鑷畾涔夊叧闂脊绐� - closeDialog({flag,index}){ + closeDialog({ flag, index }) { + this.dialogCreate = flag; this.dialogView = flag; - if(index ===1 ){ + if (index === 1) { this.setTableData(); } } @@ -396,12 +399,15 @@ margin-top: 20px; padding-bottom: 50px; border: 1pox solid #fff; - .el-link{ + + .el-link { color: #4b9bb7; } - .leftPx{ + + .leftPx { margin-left: 10px; } + .mainTitle { line-height: 60px; } @@ -422,11 +428,15 @@ .funs { display: flex; + .funs-sp { + border: 1px solid #17324c; + } + .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; + border-radius: 4px; font-size: 12px; margin-left: 10px; diff --git a/src/views/systemSetting/baseSetting/department/createUser/index.vue b/src/views/systemSetting/baseSetting/department/createUser/index.vue index d0e0582..f07eccf 100644 --- a/src/views/systemSetting/baseSetting/department/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/createUser/index.vue @@ -11,8 +11,10 @@ <!-- 涓婄骇閮ㄩ棬 --> <el-form-item class="optionItems" label="涓婄骇閮ㄩ棬:" prop="parentId"> <el-select v-model="depart.parentId" placeholder="璇疯緭鍏ヤ笂绾ч儴闂�"> - <el-option v-for="item in departList" :key="item.departName" :label="item.departName" - :value="item.id" :disabled="item.disabled"> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="departList" :props="defaultProps" + show-checkbox @check-change="handleCheck" default-expand-all node-key="id"> + </el-tree> </el-option> </el-select> </el-form-item> @@ -23,15 +25,19 @@ :value="item.id"> </el-option> </el-select> - <!-- <el-input v-model="depart.departType" placeholder="璇烽�夋嫨閮ㄩ棬绫诲瀷"></el-input> --> </el-form-item> <!--娣诲姞浜哄憳 --> <el-form-item class="optionItem add" label="娣诲姞浜哄憳:"> <ul class="addPerson"> - <li><i class="el-icon-user-solid"></i></li> - <li><i class="el-icon-user-solid"></i></li> - <li><i class="el-icon-user-solid"></i></li> - <li><i class="el-icon-plus" @click="openUser = true"></i></li> + <li v-for="(item,index) in cehckedList" :key="index" @click="setLeader(index)"> + <div class="li-item"> + <div class="li-icon"> + <i :class="['el-icon-user-solid',item.checked ? 'leader': '']"></i> + </div> + <label style="font-size: 12px;" :class="[item.checked ? 'leader': '']">{{item.username}}</label> + </div> + </li> + <li class="li-btn"><i class="el-icon-plus" @click="openUser = true"></i></li> </ul> <div class="card" v-if="openUser"> <el-card class="box-card"> @@ -66,6 +72,7 @@ </div> </template> <script> +import { getTypeList } from '@/utils/helper' export default { data() { const validateNickname = (rule, value, callback) => { @@ -86,10 +93,6 @@ if (!value) { callback(); } else { - // const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - // if (!rep.test(value)) { - // callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - // } callback(); } }; @@ -117,8 +120,17 @@ userList: [], departList: [], checkedUser: [], + cehckedList: [], openUser: false, departTypeList: [], + selectOrg: { + orgsid: [] + }, + mylabel: '', + defaultProps: { + children: 'children', + label: 'departName', + }, } }, created() { @@ -134,23 +146,18 @@ handleUser() { this.$refs.user.validate((valid) => { if (valid) { - const { depart, checkedUser, userList } = this; - console.log(depart); - console.log(checkedUser); + const { depart,cehckedList,selectOrg } = this; const arr = []; - checkedUser.forEach(item => { - userList.forEach(child => { - if (item === child.id) { - arr.push({ isLeader: 0, userId: item,}); - } - }) + cehckedList.forEach(item => { + arr.push({ isLeader: item.isLeader, userId: item.id, }); }) + console.log(arr); this.$axios({ method: 'post', - url:'/sccg/depart/create', + url: '/sccg/depart/create', data: { departName: depart.departName, - parentId: depart.parentId, departType: depart.departType, departDes: depart.departDes, + parentId: selectOrg.orgsid[0], departType: depart.departType, departDes: depart.departDes, departManagerList: arr } }).then(res => { @@ -180,6 +187,7 @@ url: 'sccg/depart/tree', }) .then(res => { + console.log(res); res.data.unshift({ id: 0, departName: '椤剁骇鑿滃崟' }) this.departList = res.data; }) @@ -195,21 +203,65 @@ }, addUser() { console.log(this.checkedUser); + console.log(this.userList); + this.cehckedList = []; + this.userList.forEach(item => { + this.checkedUser.forEach(child => { + if (item.id == child) { + this.cehckedList.push({ id: item.id, username: item.username, isLeader: 0, checked: false }); + } + }) + }) + this.cehckedList[0].isLeader = 1; + this.cehckedList[0].checked = true; this.openUser = false; }, handleClose() { this.$emit('changMyDialog', { flag: false }); }, // 鑾峰彇閮ㄩ棬绫诲瀷 - getDepartTypeList() { - this.$axios({ - method: 'get', - url: 'sccg/dict/query_depart_type', - }) - .then(res => { - console.log(res); - this.departTypeList = res.data; + async getDepartTypeList() { + this.departTypeList = await getTypeList(1, '08') + }, + handleCheck(data, checked) { + this.depart.parentId = data.departName; + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id) + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: '鍙兘閫夋嫨涓�涓儴闂紒', + type: 'warning', + showClose: true }) + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false) + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = [] + this.selectOrg.orgsid.push(data.id) + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = [] + this.depart.parentId = ''; + } + }, + // 璁剧疆棰嗗 + setLeader(idx){ + this.cehckedList.forEach((item,index)=>{ + if(index === idx){ + item.checked = true; + item.isLeader = 1; + }else{ + item.checked = false; + item.isLeader = 0; + } + }) } }, props: ['refresh', 'changMyDialog'] @@ -341,6 +393,15 @@ } } + .li-item { + display: flex; + flex-direction: column; + } + + .leader { + color: red; + } + footer { border-top: 1px solid #fff; height: 80px; diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue index 0379968..b248dfa 100644 --- a/src/views/systemSetting/baseSetting/department/index.vue +++ b/src/views/systemSetting/baseSetting/department/index.vue @@ -40,8 +40,9 @@ </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)"> + <!-- @change="handleChangeStatus(scope.row)" --> + <el-switch class="switchStyle" v-model="scope.row.status" + active-color="#3fef9a" inactive-color="#000212" disabled> </el-switch> </template> </el-table-column> @@ -66,10 +67,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -401,7 +402,9 @@ justify-content: space-between; align-items: center; padding: 0 20px; - + .funs-sp{ + border: 1px solid #17324c; + } .funs { display: flex; @@ -409,7 +412,6 @@ line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; @@ -477,34 +479,34 @@ } } } - &::v-deep .switchStyle .el-switch__label { - position: absolute; - display: none; - color: #fff; - } + // &::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 .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--left { + // z-index: 9; + // left: 20px; + // } - &::v-deep .switchStyle .el-switch__label--right { - z-index: 9; - left: 4px; - } + // &::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__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 .switchStyle.el-switch .el-switch__core, + // &::v-deep .el-switch .el-switch__label { + // width: 50px !important; + // } } } </style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/department/updateUser/index.vue b/src/views/systemSetting/baseSetting/department/updateUser/index.vue index 6f1c887..fecebad 100644 --- a/src/views/systemSetting/baseSetting/department/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/updateUser/index.vue @@ -7,18 +7,18 @@ <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" label-position="right"> - <!-- 閮ㄩ棬id --> + <!-- 閮ㄩ棬id <el-form-item class="optionItem" label="閮ㄩ棬id:" prop="id"> <el-input v-model="user.id" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" :disabled="!updateFlag"></el-input> - </el-form-item> + </el-form-item> --> <!-- 閮ㄩ棬鍚嶇О --> <el-form-item class="optionItem" label="閮ㄩ棬鍚嶇О:" prop="departName"> <el-input v-model="user.departName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 涓婄骇閮ㄩ棬 --> <el-form-item class="optionItems" label="涓婄骇閮ㄩ棬:" prop="parentId"> - <el-select v-model="user.parentId" placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.departName" :label="item.departName" + <el-select v-model="user.parentId" placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" disabled> + <el-option v-for="item in departList" :key="item.departName" :label="item.departName" :value="item.id"> </el-option> </el-select> @@ -26,7 +26,7 @@ <!-- 閮ㄩ棬绫诲瀷 --> <el-form-item class="optionItem" label="閮ㄩ棬绫诲瀷:" prop="departType"> <el-select v-model="user.departType" placeholder="璇烽�夋嫨閮ㄩ棬绫诲瀷" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> @@ -47,6 +47,7 @@ </div> </template> <script> +import {getTypeList} from '@/utils/helper' export default { data() { const validateNickname = (rule, value, callback) => { @@ -110,8 +111,8 @@ { required: false, trigger: "blur" }, ], }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } + departList: [ + ], typeList: [] } @@ -119,16 +120,11 @@ created() { const that = this; this.user = JSON.parse(JSON.stringify(that.userInfo)); - // 鑾峰彇瑙掕壊鍒楄〃 - // this.$axios.get('') - // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃 - // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{ - // console.log(res); - // }) - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) + that.departList = res.data.records; + }); + // 鑾峰彇閮ㄩ棬绫诲瀷 + this.getDepartType(); }, methods: { handleUser() { @@ -154,6 +150,10 @@ return false; } }) + }, + // 鑾峰彇閮ㄩ棬绫诲瀷 + async getDepartType(){ + this.typeList = await getTypeList(1,'08') } }, props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog'] @@ -163,28 +163,6 @@ .updateUser { border-radius: 1px; background-color: #09152f; - - // header { - // display: flex; - // justify-content: center; - // height: 60px; - // line-height: 60px; - // padding: 0 20px; - // border: 1px solid #fff; - - // .headerTitle { - // color: #4b9bb7; - // font-weight: 600; - // } - - // .headerTip span { - // color: #ff3b6c; - // } - - // .headerTip label { - // color: #4b9bb7; - // } - // } main { // border: 1px solid #fff; diff --git a/src/views/systemSetting/baseSetting/index.vue b/src/views/systemSetting/baseSetting/index.vue new file mode 100644 index 0000000..e3bc8ac --- /dev/null +++ b/src/views/systemSetting/baseSetting/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view></router-view> +</template> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/role/createUser/index.vue b/src/views/systemSetting/baseSetting/role/createUser/index.vue index e967385..442819b 100644 --- a/src/views/systemSetting/baseSetting/role/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/role/createUser/index.vue @@ -34,6 +34,7 @@ </div> </template> <script> +import { getTypeList } from '@/utils/helper' export default { data() { const validateNickname = (rule, value, callback) => { @@ -113,15 +114,8 @@ this.refresh(); }, // 鑾峰彇瑙掕壊绫诲瀷 - getRoleTypeList(){ - this.$axios({ - method:'get', - url:'sccg/dict/query_role_type', - }) - .then(res=>{ - console.log(res); - this.typeList = res.data; - }) + async getRoleTypeList(){ + this.typeList = await getTypeList(1,'09'); } }, props: ['refresh'] diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue index 712b7c8..38ead8d 100644 --- a/src/views/systemSetting/baseSetting/role/index.vue +++ b/src/views/systemSetting/baseSetting/role/index.vue @@ -516,34 +516,34 @@ } } } - &::v-deep .switchStyle .el-switch__label { - position: absolute; - display: none; - color: #fff; - } + // &::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 .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--left { + // z-index: 9; + // left: 20px; + // } - &::v-deep .switchStyle .el-switch__label--right { - z-index: 9; - left: 4px; - } + // &::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__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 .switchStyle.el-switch .el-switch__core, + // &::v-deep .el-switch .el-switch__label { + // width: 50px !important; + // } } } </style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue index ab14172..2ef5e07 100644 --- a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue @@ -5,93 +5,163 @@ <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" label-position="right"> <!-- 鐢ㄦ埛鍚嶇О --> - <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username"> - <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" autoComplete="new-username"></el-input> - </el-form-item> - <!-- 鐢ㄦ埛瀵嗙爜 --> - <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" autoComplete="new-password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�"></el-input> - </el-form-item> - <!-- 鎵�灞炵敤鎴峰鍚� --> - <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName"> - <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> - </el-form-item> - <!-- 鎬у埆 --> - <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> - <el-radio-group v-model="user.sex"> - <el-radio :label="1">鐢�</el-radio> - <el-radio :label="0">濂�</el-radio> - </el-radio-group> - </el-form-item> - <!-- 鏄惁鍏氬憳 --> - <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> - <el-radio-group v-model="user.isDy"> - <el-radio :label="1">鏄�</el-radio> - <el-radio :label="0">鍚�</el-radio> - </el-radio-group> - </el-form-item> - <!-- 鎵�灞炴墜鏈哄彿鐮� --> - <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> - <el-input v-model="user.mobile" maxlength="11" placeholder="璇峰~鍐欐墜鏈哄彿鐮�"></el-input> - </el-form-item> - <!-- 閭鍦板潃 --> - <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> - <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�"></el-input> - </el-form-item> - <!-- 閫夋嫨瑙掕壊 --> - <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags> - <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"> - </el-option> - </el-select> - <!-- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�"> - <el-option v-for="item in roleList" :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="userType"> - <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷"> - <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <!-- 搴ф満/鍒嗘満 --> <div class="user-item"> - <el-form-item label="搴ф満/鍒嗘満:" prop="zjarea"> - <el-input v-model="user.zjarea" placeholder="鐢佃瘽鍖哄彿"> - </el-input> - </el-form-item> - <el-form-item prop="zjnumber" class="left-px"> - <el-input v-model="user.zjnumber" placeholder="鐢佃瘽鍙风爜"> - </el-input> - </el-form-item> - <el-form-item prop="zjother" class="left-px"> - <el-input v-model="user.zjother" placeholder="鍒嗘満鍙风爜"> - </el-input> - </el-form-item> + <div class="item-left"> + <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username"> + <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" autoComplete="new-username"> + </el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鐢ㄦ埛瀵嗙爜 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> + <el-input v-model="user.password" type="password" autoComplete="new-password" + placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�"></el-input> + </el-form-item> + </div> + <div class="item-right">閲嶆柊杈撳叆瀵嗙爜鍗充负淇敼锛屽瘑鐮佹湁鏁堟湡榛樿涓�3涓湀</div> + </div> + <!-- 鎵�灞炵敤鎴峰鍚� --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName"> + <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鎬у埆 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> + <el-radio-group v-model="user.sex"> + <el-radio :label="1">鐢�</el-radio> + <el-radio :label="0">濂�</el-radio> + </el-radio-group> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鏄惁鍏氬憳 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> + <el-radio-group v-model="user.isDy"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鎵�灞炴墜鏈哄彿鐮� --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> + <el-input v-model="user.mobile" maxlength="11" placeholder="璇峰~鍐欐墜鏈哄彿鐮�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 閭鍦板潃 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> + <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 閫夋嫨瑙掕壊 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> + <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags> + <el-option v-for="item in roleList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鐢ㄦ埛绫诲瀷 --> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> + <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷"> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 搴ф満/鍒嗘満 --> + <div class="user-item sp-item"> + <div class="item-left"> + <el-form-item label="搴ф満/鍒嗘満:" prop="zjarea"> + <el-input v-model="user.zjarea" placeholder="鐢佃瘽鍖哄彿"> + </el-input> + </el-form-item> + <el-form-item prop="zjnumber" class="left-px"> + <el-input v-model="user.zjnumber" placeholder="鐢佃瘽鍙风爜"> + </el-input> + </el-form-item> + <el-form-item prop="zjother" class="left-px"> + <el-input v-model="user.zjother" placeholder="鍒嗘満鍙风爜"> + </el-input> + </el-form-item> + </div> + <div class="item-right"></div> </div> <!-- 鎵�灞為儴闂� --> - <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" @change="getDepartName"> - <el-option v-for="item in departList" :key="item.name" :label="item.departName" - :value="item.id"> - </el-option> - </el-select> - </el-form-item> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> + <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" @change="getDepartName"> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="departList" + :props="defaultProps" show-checkbox @check-change="handleCheck" + default-expand-all node-key="id"> + </el-tree> + </el-option> + </el-select> + </el-form-item> + </div> + <div class="item-right"></div> + </div> <!-- 褰撳墠鑱屽姟 --> - <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> - <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�"></el-input> - </el-form-item> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> + <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> <!-- 濉啓鎵�灞瀖ac鍦板潃 --> - <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> - <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input> - </el-form-item> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> + <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> <!-- 濉啓鎵�灞瀒p鍦板潃 --> - <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> - <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></el-input> - </el-form-item> + <div class="user-item"> + <div class="item-left"> + <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> + <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> <el-form-item> <div class="optionBtn"> <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 @@ -106,6 +176,7 @@ </div> </template> <script> +import { getTypeList } from '@/utils/helper' export default { data() { const validateNickname = (rule, value, callback) => { @@ -131,12 +202,7 @@ if (!value) { callback(new Error("鐢ㄦ埛濮撳悕涓嶈兘涓虹┖")); } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } else { - callback(); - } + callback(); } }; const validatePhone = (rule, value, callback) => { @@ -156,10 +222,10 @@ const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if (!rep.test(value)) { callback(new Error("璇疯緭鍏ユ纭殑閭")) - }else{ + } else { callback(); } - }else{ + } else { callback(); } }; @@ -194,14 +260,14 @@ const validateMac = (rule, value, callback) => { if (value) { callback(); - }else{ + } else { callback() } }; const validateIp = (rule, value, callback) => { if (value) { callback(); - }else{ + } else { callback() } }; @@ -244,7 +310,7 @@ { required: true, trigger: "blur", validator: validatePhone }, ], email: [ - { required: false, trigger: "blur", validator: validateMail }, + { required: true, trigger: "blur", validator: validateMail }, ], role: [ { required: true, trigger: "change", validator: validateRole }, @@ -269,24 +335,34 @@ ], }, roleList: [ - + ], typeList: [ - + ], - departList: [] + departList: [], + mylabel: '', + defaultProps: { + children: 'children', + label: 'departName', + disabled: (data, node) => { + if (node.level === 1 && node.childNodes.length !== 0) { + return !data.leaf + } + } + }, + selectOrg: { + orgsid: [] + }, } }, created() { - const that = this; // 鑾峰彇瑙掕壊鍒楄〃 this.getRoleList(); - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.departList = res.data.records; - }) // 鑾峰彇鐢ㄦ埛绫诲瀷 this.getUserTypeList(); + // 鑾峰彇閮ㄩ棬 + this.getDepartList(); }, methods: { // 鎻愪氦娉ㄥ唽 @@ -294,41 +370,41 @@ this.$refs['user'].validate((valid) => { console.log(valid); if (valid) { - const { user } = this; + const { user, selectOrg } = this; console.log(user); this.$axios.post('sccg/admin/register', { - departmentId: user.departmentId, + departmentId: selectOrg.orgsid[0], email: user.email, - icon:'', + icon: '', isDy: `${user.isDy}`, jobTitle: user.jobTitle, mobile: user.mobile, - note:'', - roleIds:user.role, + note: '', + roleIds: user.role, // nickName: user.nickName, - sex:`${user.sex}`, + sex: `${user.sex}`, password: user.password, userType: `${user.userType}`, username: user.username, - zj:user.zjarea+`${user.zjnumber}`+user.zjother, + zj: user.zjarea + `${user.zjnumber}` + user.zjother, // departName:user.departName, }).then(res => { if (res.code === 200) { console.log(1); this.$message({ - type:'success', - message:res.message, + type: 'success', + message: res.message, }) this.$emit('sendDialog', { flag: false }); - }else if(res.code === 500 && res.message === "鎿嶄綔澶辫触"){ + } else if (res.code === 500 && res.message === "鎿嶄綔澶辫触") { this.$message({ - type:'warning', - message:'璇ョ敤鎴峰凡娉ㄥ唽' + type: 'warning', + message: '璇ョ敤鎴峰凡娉ㄥ唽' }) - }else{ + } else { this.$message({ - type:'warning', - message:res.message + type: 'warning', + message: res.message }) } }) @@ -360,16 +436,47 @@ }) }, // 鑾峰彇鐢ㄦ埛绫诲瀷 - getUserTypeList(){ + async getUserTypeList() { + this.typeList = await getTypeList(1, '07'); + }, + // 鑾峰彇閮ㄩ棬鏍� + getDepartList() { this.$axios({ - method:'get', - url:'sccg/dict/query_user_type' + method: 'get', + url: 'sccg/depart/tree' }) - .then(res=>{ - console.log(res); - this.typeList = res.data; - }) - } + .then(res => { + this.departList = res.data; + }) + }, + handleCheck(data, checked) { + this.user.departmentId = data.departName; + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id) + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: '鍙兘閫夋嫨涓�涓儴闂紒', + type: 'warning', + showClose: true + }) + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false) + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = [] + this.selectOrg.orgsid.push(data.id) + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = [] + this.user.departmentId = ''; + } + }, }, props: ['sendDialog'] } @@ -388,9 +495,9 @@ .mainContent { display: flex; - justify-content: center; + // justify-content: center; margin-top: 50px; - + width: 100%; &::v-deep .el-form-item__label { color: #4b9bb7; } @@ -402,29 +509,45 @@ .el-form-item__content { width: 400px; - .el-select { width: 100%; } } + .sp-item { + .item-left{ + display: flex; + } + } + .user-item { display: flex; + justify-content: space-between; + .item-left { + width: 500px; + } + .item-right { + line-height: 40px; + color: #4b9bb7; + font-size: 12px; + // margin-left: 16px; + } .left-px :deep(.el-form-item__content) { margin-left: 0px !important; } } - .optionBtn { - display: flex; - margin-top: 20px; - .btn { - padding: 12px 50px; - } + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; } - } + } } +} </style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/header/index.vue b/src/views/systemSetting/baseSetting/user/components/header/index.vue index 48daecc..d5e5dea 100644 --- a/src/views/systemSetting/baseSetting/user/components/header/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/header/index.vue @@ -11,7 +11,7 @@ <div class="addUser"> <!-- :before-close="handleClose" --> <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞鐢ㄦ埛</el-button> - <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="45%" v-if="dialogCreate" + <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="60%" v-if="dialogCreate" :before-close="handleClose"> <createUser @sendDialog="sendDialog" /> </el-dialog> diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue index 1ecd2f8..0b3024f 100644 --- a/src/views/systemSetting/baseSetting/user/components/main/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue @@ -33,8 +33,9 @@ </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)"> + <!-- @change="handleChangeStatus(scope.row)" --> + <el-switch class="switchStyle" v-model="scope.row.status" + active-color="#3fef9a" inactive-color="#000212" disabled> </el-switch> </template> </el-table-column> @@ -65,10 +66,10 @@ <!-- tools --> <div class="tools"> <div class="funs"> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> </div> - <div class="funsItem"> + <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> </div> <div class="funsItem"> @@ -399,12 +400,13 @@ .funs { display: flex; - + .funs-sp{ + border: 1px solid #17324c; + } .funsItem { line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; @@ -472,33 +474,33 @@ } } } - &::v-deep .switchStyle .el-switch__label { - position: absolute; - display: none; - color: #fff; - } + // &::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 .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--left { + // z-index: 9; + // left: 20px; + // } - &::v-deep .switchStyle .el-switch__label--right { - z-index: 9; - left: 4px; - } + // &::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__label.is-active { + // display: block; + // } - &::v-deep .switchStyle.el-switch .el-switch__core, - &::v-deep .el-switch .el-switch__label { - width: 56px !important; - } + // &::v-deep .switchStyle.el-switch .el-switch__core, + // &::v-deep .el-switch .el-switch__label { + // width: 56px !important; + // } } </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 bcad673..bdb2020 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -409,11 +409,6 @@ background-color: #09152f; color: #4b9bb7; } - - // .el-select-dropdown__item :deep(.selected){ - // background-color: #09152f; - // color: #4b9bb7; - // } main { text-align: left; padding: 0 55px; diff --git a/src/views/systemSetting/device/bayonet/create/index.vue b/src/views/systemSetting/device/bayonet/create/index.vue new file mode 100644 index 0000000..9995ea1 --- /dev/null +++ b/src/views/systemSetting/device/bayonet/create/index.vue @@ -0,0 +1,137 @@ +<template> + <div class="create"> + <el-form ref="device" label-position="right" label-width="120px" :model="bayonet" :rule="rules"> + <!-- 鍗″彛鍚嶇О --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鍗″彛鍚嶇О:" prop="name"> + <el-input v-model="bayonet.name" placeholder="璇峰~鍐欏崱鍙e悕绉�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 缁忕含搴︿綅缃� --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="缁忕含搴︿綅缃�:" prop="longitude"> + <el-input v-model="bayonet.longitude" placeholder="璇峰~鍐欑粡搴︿綅缃�"></el-input> + </el-form-item> + <el-form-item prop="latitude"> + <el-input v-model="bayonet.latitude" placeholder="璇峰~鍐欑含搴︿綅缃�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鎵�灞炲尯鍩� --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鎵�灞炲尯鍩�:" prop="area"> + <el-input v-model="bayonet.area" placeholder="璇峰~鍐欏尯鍩熷悕绉�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鍩熷悕/ip --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鍩熷悕/IP:" prop="domainName"> + <el-input v-model="bayonet.domainName" placeholder="璇峰~鍐欏煙鍚嶆垨鑰匢P"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 绔彛鍙� --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="绔彛鍙�:" prop="port"> + <el-input v-model="bayonet.port" placeholder="璇疯緭鍏ョ鍙e彿"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鍓嶇绫诲瀷 --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鍓嶇绫诲瀷:" prop="webType"> + <el-input v-model="bayonet.webType" placeholder="璇疯緭鍏ュ墠绔被鍨�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鍑哄叆鍩庣被鍨� --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鍑哄叆鍩庣被鍨�:" prop="cityType"> + <el-input v-model="bayonet.cityType" placeholder="鍑哄煄/鍏ュ煄"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鎻忚堪 --> + <div class="device-item"> + <div class="item-left"> + <el-form-item label="鎻忚堪:" prop="description"> + <el-input type="textarea" :rows='5' maxlength="200" v-model="bayonet.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> + </el-form-item> + </div> + <div class="item-right"></div> + </div> + <!-- 鎸夐挳 --> + <div class="device-btn"> + <el-button>杩斿洖</el-button> + <el-button type="primary">纭畾</el-button> + </div> + </el-form> + </div> +</template> +<script> +export default { + data() { + return { + bayonet: { + name: '', + latitude: '', + longitude: '', + area: '', + domainName: '', + port: '', + webType: '', + cityType: '', + description: '', + }, + rules: { + + } + } + }, + +} +</script> +<style lang="scss" scoped> +.create { + padding: 20px; + + .device-item { + display: flex; + + .item-left { + flex: 6; + display: flex; + + .el-form-item { + flex: 1; + } + } + + .item-right { + flex: 4; + } + } + + .device-btn { + padding-top: 20px; + display: flex; + justify-content: center; + } +} +</style> \ No newline at end of file diff --git a/src/views/systemSetting/device/bayonet/index.vue b/src/views/systemSetting/device/bayonet/index.vue new file mode 100644 index 0000000..90eabef --- /dev/null +++ b/src/views/systemSetting/device/bayonet/index.vue @@ -0,0 +1,376 @@ +<template> + <div class="userList"> + <header> + <div class="header-content"> + <div class="search"> + <span>绛涢�夋潯浠�:</span> + <el-select v-model="value" placeholder="璇烽�夋嫨"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + <!-- <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> --> + </div> + </div> + </header> + <main> + <div class="main-content"> + <div class="main-title"> + <el-button class="el-icon-plus" type="primary" @click="dialogCreate = true">娣诲姞</el-button> + <el-button class="">瀵煎嚭鍗″彛</el-button> + </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="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="鍩熷悕/IP" min-width="10"> + </el-table-column> + <el-table-column prop="description" label="绔彛鍙�" min-width="10"> + </el-table-column> + <el-table-column prop="description" label="鍓嶇绫诲瀷" min-width="10"> + </el-table-column> + <el-table-column prop="description" label="鍑哄叆鍩庣被鍨�" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <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> + <footer> + <!-- 娣诲姞鍗″彛 --> + <el-dialog title="娣诲姞鍗″彛" :visible.sync="dialogCreate" width="60%" :before-close="handleClose"> + <MyCreate></MyCreate> + </el-dialog> + </footer> + </div> +</template> +<script> +import helper from "@/utils/mydate.js" +import MyCreate from './create' +export default { + components: { + MyCreate + }, + data() { + return { + tableData: [], + context: "", + dialogCreate: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: '绂荤嚎', + }, + { + value: 1, + label: '鍦ㄧ嚎', + } + ], + tempList: [] + } + }, + created() { + }, + methods: { + async selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) + }, + tableChange(list) { + this.tempList = []; + 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(_ => { }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + }, + // 鍏抽棴寮圭獥 + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + done(); + }) + .catch(_ => { }); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: #09152f; + border: 1pox solid #fff; + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + + } + } + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + + .main-title { + line-height: 60px; + padding: 10px 20px; + } + + .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; + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/systemSetting/device/grid/index.vue b/src/views/systemSetting/device/grid/index.vue new file mode 100644 index 0000000..2baad4a --- /dev/null +++ b/src/views/systemSetting/device/grid/index.vue @@ -0,0 +1,5 @@ +<template> + <div class="grid"> + 222 + </div> +</template> \ No newline at end of file diff --git a/src/views/systemSetting/device/index.vue b/src/views/systemSetting/device/index.vue new file mode 100644 index 0000000..e3bc8ac --- /dev/null +++ b/src/views/systemSetting/device/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view></router-view> +</template> \ No newline at end of file diff --git a/src/views/systemSetting/device/point/index.vue b/src/views/systemSetting/device/point/index.vue new file mode 100644 index 0000000..acc4e86 --- /dev/null +++ b/src/views/systemSetting/device/point/index.vue @@ -0,0 +1,5 @@ +<template> + <div class="point"> + 111 + </div> +</template> \ No newline at end of file diff --git a/src/views/systemSetting/platform/index.vue b/src/views/systemSetting/platform/index.vue new file mode 100644 index 0000000..e3bc8ac --- /dev/null +++ b/src/views/systemSetting/platform/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view></router-view> +</template> \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 7da1cd2..46b037b 100644 --- a/vue.config.js +++ b/vue.config.js @@ -42,7 +42,7 @@ target: `http://42.193.1.25:8082`, changeOrigin: true, pathRewrite: { - "^/api": '' + "^/sccg": '' } } }, -- Gitblit v1.8.0