From b9b2d3d63335fa9c72078e64f1ac1b365cf2d8dd Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期五, 21 十月 2022 00:10:27 +0800 Subject: [PATCH] 修改用户管理 --- dist.rar | 0 src/api/system/role.js | 28 src/components/Table/index.vue | 141 ++-- src/views/operate/management/message/index.vue | 279 +++++++++ src/views/operate/myWait/index.vue | 22 src/views/layout/components/Menu/index.vue | 9 src/utils/helper.js | 24 src/views/operate/disposal/casepool/pool/index.vue | 1 src/components/illdetail/index.vue | 9 src/views/systemSetting/baseSetting/department/index.vue | 3 src/views/systemSetting/device/bayonet/index.vue | 268 ++------ src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 452 ++++---------- src/views/systemSetting/device/bayonet/create/index.vue | 8 src/store/operate/managenment/shortMessage/index.js | 14 src/views/operate/message/myIndex/createUser/index.vue | 1 src/views/systemSetting/baseSetting/user/components/main/index.vue | 20 src/store/index.js | 4 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 83 + src/views/layout/components/Header/index.vue | 3 src/router/index.js | 7 src/views/operate/disposal/casepool/dispatch/index.vue | 6 /dev/null | 5 src/api/operate/management.js | 16 src/store/system/bayonet/index.js | 22 src/views/systemSetting/baseSetting/user/components/myView/index.vue | 202 ++++++ src/api/system/bayonet.js | 29 src/components/solveProblem/index.vue | 37 src/views/systemSetting/baseSetting/role/index.vue | 72 +- 28 files changed, 1,092 insertions(+), 673 deletions(-) diff --git a/dist.rar b/dist.rar index 8482614..0f915f9 100644 --- a/dist.rar +++ b/dist.rar Binary files differ diff --git a/src/api/operate/management.js b/src/api/operate/management.js new file mode 100644 index 0000000..876f555 --- /dev/null +++ b/src/api/operate/management.js @@ -0,0 +1,16 @@ +import axios from "axios"; +import {getToken} from '@/utils/helper' +const baseUrl = '/sccg/message_audit' +const token = { + 'Authorization':getToken() +} +export default { + // 鑾峰彇鐭俊瀹℃牳鍒楄〃 + getMessageList: (data) => axios({ + method: 'post', + url: baseUrl+'/list', + headers:{...token}, + data: data + }), + // +}; diff --git a/src/api/system/bayonet.js b/src/api/system/bayonet.js new file mode 100644 index 0000000..e183620 --- /dev/null +++ b/src/api/system/bayonet.js @@ -0,0 +1,29 @@ +import axios from "axios"; +import {getToken} from '@/utils/helper' +const baseUrl = '/sccg/equipment_bayonet' +const token = { + 'Authorization':getToken() +} +export default { + // 鑾峰彇鍗″彛鍒楄〃 + getBayonetList: (data) => axios({ + method: 'get', + url: baseUrl+'/query', + headers:{...token}, + params: data + }), + // 瀵煎嚭鍗″彛璁惧 + exportBayonetList:(data)=>axios({ + method:'get', + url:baseUrl + '/export', + headers:{...token}, + params:data + }), + // 鏂板鍗″彛 + addBayonet:(data)=>axios({ + method:'post', + url:baseUrl + '/addition', + headers:{...token}, + data:data + }) +}; diff --git a/src/api/system/role.js b/src/api/system/role.js new file mode 100644 index 0000000..8b3d3b9 --- /dev/null +++ b/src/api/system/role.js @@ -0,0 +1,28 @@ +import axios from "axios"; +import {getToken} from '@/utils/helper' +const baseUrl = '/sccg/role' +const token = { + 'Authorization':getToken() +} +export default { + // 鑾峰彇瑙掕壊鍒楄〃 + getRoleList: (data) => axios({ + method: 'get', + url: baseUrl+'/query', + headers:{...token}, + params: data + }), + // 鑾峰彇瑙掕壊绫诲瀷 + getRoleTypeList:() => axios({ + method:'get', + url:baseUrl+'/query_operationType', + headers:{...token}, + }), + // 瀵煎嚭鏃ュ織 + exportLogs:(data)=>axios({ + method:'post', + url:baseUrl+'/export', + headers:{...token}, + params:data + }) +}; diff --git a/src/components/Table/index.vue b/src/components/Table/index.vue index 42c1d51..ca39951 100644 --- a/src/components/Table/index.vue +++ b/src/components/Table/index.vue @@ -12,22 +12,18 @@ <div v-if="item.type === 'text'"> {{scope.row[item.prop]}} </div> - <slot v-else name="operation" :info="scope"> - <div class="operationBox"> - <div class="divider" v-for="(child,index) in item.children" :key="child.operationName"> - <!-- @click="backMykey(scope.$index,child.mykey)" --> - <span>{{child.operationName}}</span> - <el-divider direction="vertical" v-if="index !== item.children.length-1"> - </el-divider> - </div> - </div> + <slot v-else-if="item.type === 'operation'" name="operation" :info="scope"> + </slot> + <slot name="status" v-else-if="item.type === 'status'" :info="scope"> + </slot> + <div class=""></div> </template> </el-table-column> </el-table> </div> <!-- tools --> - <div class="tools"> + <div class="tools" v-if="pageShow"> <div class="funs"> <div class="funsItem sp-item"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> @@ -93,20 +89,25 @@ // 寮圭獥 openDialog: { type: Function, - default: () => {} + default: () => { } }, // 鑾峰彇褰撳墠椤� - getCurrentPage:{ + getCurrentPage: { type: Function, - default: () => {} + default: () => { } }, // 鍒嗛〉鎬绘暟 - totalNum:{ - type:Number, - default:1 + totalNum: { + type: Number, + default: 1 + }, + // 鏄惁灞曠ず鍒嗛〉 + pageShow:{ + type: Boolean, + default: false, } }, - created(){ + created() { this.myTotalNum = JSON.parse(JSON.stringify(this.totalNum)); }, computed: { @@ -127,7 +128,7 @@ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.$emit('getCurrentPage',page); + this.$emit('getCurrentPage', page); }, // 鍏ㄩ�� selectAll() { @@ -169,68 +170,72 @@ .el-table { color: #4b9bb7; } + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { display: flex; - justify-content: space-between; - align-items: center; - padding: 0 20px; - .funs { - display: flex; - .sp-item{ - border: 1px solid #17324c; - } - .funsItem { - line-height: 28px; - display: flex; - align-items: center; - 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 .el-checkbox { - color: #4b9bb7; - } - } - + .sp-item { + border: 1px solid #17324c; } - .pagination { - margin-top: 50px; + .funsItem { + line-height: 28px; display: flex; - line-height: 50px; - justify-content: center; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; - .el-pagination { + .el-checkbox { + width: 80px; + padding: 0 10px; + } - &::v-deep li, - &::v-deep .btn-prev, - &::v-deep .btn-next { - background-color: #071f39; - color: #4b9bb7; - } + .el-select { + width: 120px; + } - &::v-deep .active { - background-color: #409eff; - color: #fff; - } + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; } } } + } + &::v-deep .warning-row { background-color: #06122c; } diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue index b2ae36c..700cca5 100644 --- a/src/components/illdetail/index.vue +++ b/src/components/illdetail/index.vue @@ -7,7 +7,7 @@ <span class="data-detail">杩濆缓</span> </el-form-item> <el-form-item label="杩濆缓绫诲埆:"> - <span class="data-detail">{{baseCase.illegalBuilding.categoryText}}</span> + <span class="data-detail">{{baseCase.categoryText}}</span> </el-form-item> </div> <div class="data-item"> @@ -27,7 +27,7 @@ </div> <div class="data-item"> <el-form-item label="杩濆缓鍦扮偣:"> - <span class="data-detail">{{baseCase.illegalBuilding.site}}</span> + <span class="data-detail">{{baseCase.site}}</span> </el-form-item> <el-form-item label="鎵�灞炵ぞ鍖�:"> <span class="data-detail">{{baseCase.communityText}}</span> @@ -150,15 +150,16 @@ .view-data { color: #4b9bb7; - flex: 4; + // flex: 4; padding: 0 30px 0 20px; img{ width: 100px; height: 100px; + border-radius: 4px; } .data-item { display: flex; - justify-content: space-between; + // justify-content: space-between; line-height: 20px; } diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue index 414bece..6e36f23 100644 --- a/src/components/solveProblem/index.vue +++ b/src/components/solveProblem/index.vue @@ -8,9 +8,11 @@ <el-timeline> <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id"> <div class="title"> - <div class="title-left">銆恵{item.name}}銆戝鐞嗕汉: {{item.disposeRecords && item.disposeRecords.length != 0 ? item.disposeRecords[0].handlerText:''}} + <div class="title-left">銆恵{item.name}}銆戝鐞嗕汉: {{item.disposeRecords && item.disposeRecords.length + != 0 ? item.disposeRecords[0].handlerText:''}} {{item.disposeRecords && item.disposeRecords.length}} </div> - <div class="title-right">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}} + <div class="title-right">{{item.disposeRecords.length !==0 ? + filterTime(item.disposeRecords[0].endTime):''}} </div> </div> <div class="message">{{filterPerson(item.name)}}</div> @@ -21,7 +23,7 @@ </template> <script> import helper from '@/utils/mydate' -import {computeTime} from '@/utils/helper' +import { computeTime } from '@/utils/helper' export default { data() { return { @@ -33,9 +35,11 @@ props: ['handlePassVo', 'baseCase'], created() { const { handlePassVo: mylist, baseCase } = this; - console.log(baseCase, mylist); + console.log(baseCase, mylist); if (mylist) { - this.list = mylist.workflowConfigSteps; + this.list = mylist.workflowConfigSteps.filter(item => { + return item.id !== 2 + }); } if (baseCase.dispatchInfo) { this.dispatchInfo = baseCase.dispatchInfo; @@ -44,32 +48,31 @@ methods: { // 鑾峰緱鎰忚 filterPerson(name) { - const { baseCase, dispatchInfo } = this; + const { dispatchInfo } = this; if (name === '璋冨害') { return '銆愭淳閬f剰瑙併��' + dispatchInfo.dispatchOpinion } else if (name === '鏍告煡') { - return '銆愭牳鏌ョ粨鏋溿��' + baseCase.handlingOpinion + return '銆愭牳鏌ョ粨鏋溿��' } else if (name === '缁撴') { - return '銆愯瘎瀹氱粨鏋溿��' + baseCase.finalOpinion - } else { - return '銆愬鐞嗙粨鏋溿��' + baseCase.handlingOpinion + return '銆愯瘎瀹氱粨鏋溿��' } + return }, // 澶勭悊鏃堕棿 - filterTime(time){ - if(time){ + filterTime(time) { + if (time) { return helper(time) - }else{ + } else { return } - + }, // 鑾峰緱鍓╀綑鏃堕棿 - getRestTime(limitTime){ - if(limitTime){ + getRestTime(limitTime) { + if (limitTime) { return computeTime(limitTime) } - return + return } } } diff --git a/src/router/index.js b/src/router/index.js index 035541c..4c1fc58 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -202,7 +202,12 @@ path: 'myIndex', name: 'myIndex', component: () => import('@/views/operate/management/myIndex'), - } + }, + { + path: 'managementMessage', + name: 'managementMessage', + component: () => import('@/views/operate/management/message'), + }, ] }, { diff --git a/src/store/index.js b/src/store/index.js index 3b44862..6a2d4a6 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2,6 +2,8 @@ import Vuex from 'vuex' import users from "./users" import logs from "./logs" +import bayonet from './system/bayonet' +import shortMessage from './operate/managenment/shortMessage' Vue.use(Vuex) export default new Vuex.Store({ @@ -14,6 +16,6 @@ actions: { }, modules: { - users,logs + users,logs,bayonet,shortMessage } }) diff --git a/src/store/operate/managenment/shortMessage/index.js b/src/store/operate/managenment/shortMessage/index.js new file mode 100644 index 0000000..894f93a --- /dev/null +++ b/src/store/operate/managenment/shortMessage/index.js @@ -0,0 +1,14 @@ +import mangenmentApi from "@/api/operate/management"; +// import { Message } from "element-ui"; +export default { + namespaced: true, + state: { + userInfo: {}, + }, + actions: { + async getMessageList({ state }, params) { + const res = await mangenmentApi.getMessageList(params); + return res; + }, + }, +}; diff --git a/src/store/system/bayonet/index.js b/src/store/system/bayonet/index.js new file mode 100644 index 0000000..aaf1c3f --- /dev/null +++ b/src/store/system/bayonet/index.js @@ -0,0 +1,22 @@ +import bayonetApi from "@/api/system/bayonet"; +// import { Message } from "element-ui"; +export default { + namespaced: true, + state: { + userInfo: {}, + }, + actions: { + async getBayonetList({ state }, params) { + const res = await bayonetApi.getBayonetList(params); + return res; + }, + async exportBayonetList({ state },params) { + const res = await bayonetApi.exportBayonetList(params); + return res; + }, + async addBayonet({ state },params) { + const res = await bayonetApi.addBayonet(params); + return res; + }, + }, +}; diff --git a/src/utils/helper.js b/src/utils/helper.js index 2c1f075..1df5e96 100644 --- a/src/utils/helper.js +++ b/src/utils/helper.js @@ -33,6 +33,30 @@ }) return arr; } +export async function myDownLoad(arr){ + let fileName = arr.headers['content-disposition']; + console.log(fileName); + if (fileName) { + fileName = fileName.slice(fileName.indexOf('filename=') + 9); + } + const blob = new Blob([arr.data], { + type: 'application/octet-stream' + }) + // content-disposition + const downloadElement = document.createElement('a') + // 鍒涘缓涓嬭浇鐨勯摼鎺� + const href = window.URL.createObjectURL(blob) + downloadElement.href = href + // // 涓嬭浇鍚庢枃浠跺悕 + downloadElement.download = fileName + document.body.appendChild(downloadElement) + // 鐐瑰嚮涓嬭浇 + downloadElement.click() + // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + document.body.removeChild(downloadElement) + // 閲婃斁鎺塨lob瀵硅薄 + window.URL.revokeObjectURL(href) +} // 鑾峰彇token export function getToken() { const token = sessionStorage.getItem('token'); diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue index 7570cb8..60dbf0b 100644 --- a/src/views/layout/components/Header/index.vue +++ b/src/views/layout/components/Header/index.vue @@ -130,8 +130,7 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - sessionStorage.removeItem('token'); - sessionStorage.removeItem('tokenHead'); + sessionStorage.clear(); this.$router.push({ path: "/login" }) }).catch(err => { console.log(err); diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index acc142b..7a0c60f 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -72,7 +72,14 @@ <el-menu-item index="/home/operate/casepool/learn">鍐嶅涔犵鐞�</el-menu-item> <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item> </el-submenu> - <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item> + <el-submenu index="/home/operate/management" class="secondMenu"> + <template slot="title"> + <span class="secondSpan">瀹℃牳绠$悊</span> + </template> + <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item> + <el-menu-item index="/home/operate/management/managementMessage">鐭俊瀹℃牳绠$悊</el-menu-item> + <!-- <el-menu-item index="/home/operate/baseSetting/threepack">闂ㄥ墠涓夊寘璁剧疆</el-menu-item> --> + </el-submenu> <el-menu-item index="/home/operate/myWait">鎴戠殑寰呭姙</el-menu-item> <el-submenu index="/home/operate/rectification" class="secondMenu"> <template slot="title"> diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 78a7bbf..fb5bc52 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -58,7 +58,7 @@ </template> </el-table-column> <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" - :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="10"> + :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="12"> </el-table-column> <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="mystatus===1"> <template slot-scope="scope"> @@ -66,9 +66,9 @@ </template> </el-table-column> <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" - :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="10"> + :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="12"> </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> <div class="operation"> <div class="btn"> 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 853168f..b3348c0 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -47,10 +47,9 @@ <!-- 妗堢敱 --> <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 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> <!-- 鎵�灞炲尯鍘� --> <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status"> @@ -64,16 +63,16 @@ <!-- 鎵�灞炶閬� --> <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId"> <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�" @change="handleStreet"> - <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id" - :disabled="item.disabled"> + <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id" + > </el-option> </el-select> </el-form-item> <!-- 鎵�灞炵ぞ鍖� --> <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId"> <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> - <el-option v-for="item in communityList" :key="item.id" :label="item.name" - :value="item.id" :disabled="item.disabled"> + <el-option v-for="item in communityList" :key="item.id" :label="item.regionName" + :value="item.id" > </el-option> </el-select> </el-form-item> @@ -106,11 +105,18 @@ v-model="vio.description"> </el-input> </el-form-item> - <!-- 鎶ヨ鏃堕棿 --> - <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> - <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿"> - </el-date-picker> - </el-form-item> + <div class="user-item"> + <!-- 鎶ヨ鏃堕棿 --> + <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> + <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿"> + </el-date-picker> + </el-form-item> + <!-- 璋冨害鏃堕檺 --> + <el-form-item class="optionItems" label="璋冨害鏃堕檺:" prop="limitTime"> + <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="閫夋嫨璋冨害鏃堕檺"> + </el-date-picker> + </el-form-item> + </div> <!-- 濉啓鍙嶆槧浜轰俊鎭� --> <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�"> </el-form-item> @@ -141,8 +147,8 @@ <script> import MyMap from '@/components/map' import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate' -import {getTypeList} from '@/utils/helper' -import {parseTime} from "@/utils/index" +import { getTypeList } from '@/utils/helper' +import { parseTime } from "@/utils/index" export default { components: { MyMap @@ -254,6 +260,13 @@ } } } + const checkLimit = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖')) + } + } return { vio: { actionCause: "",//妗堢敱 @@ -271,7 +284,8 @@ streetId: '',//鎵�灞炶閬� typeId: '',//灏忕被 gradeId: '',//妗堜欢绛夌骇 - alarmTime: '' + alarmTime: '', + limitTime: '',//璋冨害鏃堕檺 }, createRoleRules: { //妗堢敱 @@ -353,6 +367,11 @@ { required: true, trigger: 'change', validator: checkDate } + ], + limitTime: [ + { + required: true, trigger: 'change', validator: checkLimit + } ] }, @@ -379,7 +398,7 @@ console.log(this.mytype); this.vio.category = this.mytype + 1; setBigKindList(); - getStreetList(); + getStreetList(0); getEventLevel(); }, methods: { @@ -435,7 +454,7 @@ }, // 鑾峰彇妗堜欢绛夌骇鍒楄〃 async getEventLevel() { - this.eventLevelList = await getTypeList(1,'02'); + this.eventLevelList = await getTypeList(1, '02'); }, // 鏌ヨ鎵�灞炴鐢� async getAnYouList() { @@ -460,7 +479,8 @@ url: 'sccg/base_case/addition_violation', data: { ...vio, - alarmTime:parseTime(vio.alarmTime), + alarmTime: parseTime(vio.alarmTime), + limitTime:parseTime(vio.limitTime), } }) .then(res => { @@ -489,8 +509,18 @@ this.$emit('changeDialog', { flag: false }) }, // 鑾峰彇琛楅亾淇℃伅 - async getStreetList() { - this.streetList = await getTypeList(1,'10'); + async getStreetList(id) { + let arr + await this.$axios({ + method:'get', + url:`sccg/sccg_region/getChildren/${id}`, + }) + .then(res=>{ + if(res.code === 200){ + arr = res.data; + } + }) + this.streetList = arr; }, // 琛楅亾鏇存敼 handleStreet(id) { @@ -499,7 +529,7 @@ // this.communityList = getTypeList(1,'11') this.$axios({ method: 'get', - url: 'sccg/dict/query_social_type?id=' + id + url: `sccg/sccg_region/getChildren/${id}` }) .then(res => { this.communityList = res.data; @@ -521,8 +551,8 @@ this.setAnYouList(id); }, // 妗堢敱杈撳叆 - selectBlur(e){ - if(e.target.value){ + selectBlur(e) { + if (e.target.value) { this.vio.actionCause = e.target.value; console.log(e.target.value); } @@ -537,7 +567,7 @@ padding: 20px 10px 50px; .input-area { - flex: 1; + flex: 3; padding: 10px 20px; .input-header { @@ -584,10 +614,11 @@ } .map-area { - flex: 1; + flex: 2; } - .anyou{ - :deep(.el-select){ + + .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 2976df9..cd0bff0 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -422,6 +422,7 @@ item.checked = false; } }) + this.mystatus = 1 this.typeList[0].checked = true; this.typeList[1].checked = false; this.statusArr[0] = this.tagList[idx].value; diff --git a/src/views/operate/management/message/index.vue b/src/views/operate/management/message/index.vue new file mode 100644 index 0000000..cd90cf5 --- /dev/null +++ b/src/views/operate/management/message/index.vue @@ -0,0 +1,279 @@ +<template> + <div class="message"> + <header> + <div class="header-title">绛涢�夋潯浠�</div> + <div class="header-content"> + <div class="search"> + <span>ID:</span> + <el-input placeholder="ID" v-model="context"></el-input> + </div> + <div class="status"> + <span>鐭俊鐘舵��:</span> + <el-radio-group v-model="status"> + <el-radio :label="0">寰呭鏍�</el-radio> + <el-radio :label="1">宸插鏍�</el-radio> + </el-radio-group> + </div> + <div class="btns"> + <el-button type="primary" icon="el-icon-search">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid">閲嶇疆</el-button> + </div> + </div> + </header> + <main> + <div class="main-content"> + <div class="main-title"> + 鏁版嵁鍒楄〃 + </div> + <!-- 鏁版嵁灞曠ず --> + <MyTable :tableOption="tableOption" :tableData="list" :pageShow="false"> + <template #operation="info"> + <el-link :underline="false" style="color:#4b9bb7">缂栬緫</el-link> + </template> + </MyTable> + </div> + </main> + <footer> + + </footer> + </div> +</template> +<script> +import MyTable from '@/components/Table' +import { myDownLoad } from '@/utils/helper' +import { createNamespacedHelpers } from "vuex"; +const { mapActions } = createNamespacedHelpers("shortMessage"); +export default { + components: { + MyTable, + }, + data() { + return { + context: '', + status:0, + options: [ + { + value: 0, + label: '绂荤嚎', + }, + { + value: 1, + label: '鍦ㄧ嚎', + } + ], + list: [], + current: 1, + pageSize: 10, + total:1, + tableOption: { + group: [ + { + label: 'ID', + type: 'text', + prop: 'messageId', + 'min-width':8 + }, + { + label: '鐭俊鏍囬', + type: 'text', + prop: 'latitude', + 'min-width':12 + }, + { + label: '鐭俊鍐呭', + type: 'text', + prop: 'text', + 'min-width':12 + }, + { + label: '鐭俊绛惧悕', + type: 'text', + prop: 'ipAddress', + 'min-width':10 + }, + { + label: '鏇存柊鏃堕棿', + type: 'time', + prop: 'updateTime', + 'min-width':12 + }, + { + label: '鏇存柊浜�', + type: 'text', + prop: 'updateUser', + 'min-width':8 + }, + { + label: '鎿嶄綔', + type: 'operation', + prop: 'operation', + 'min-width':15 + }, + ] + }, + } + }, + created() { + const { setTableData } = this; + setTableData(); + }, + methods: { + // 寮圭獥鍏抽棴 + handleClose(done) { + this.$confirm('纭鍏抽棴?') + .then(_ => { + done(); + }) + }, + ...mapActions(['getMessageList']), + // 璁剧疆tableData + async setTableData() { + const { current, pageSize, context } = this; + let arr = await this.getMessageList({ + current,pageSize,messageId:parseFloat(context) + }) + this.list = arr.data.data.records + this.total = arr.data.data.total + }, + } +} +</script> +<style lang="scss" scoped> +.message { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: #09152f; + border: 1pox solid #fff; + .header-title{ + line-height: 40px; + padding: 0 20px; + border-bottom: 1px solid #4b9bb7; + } + .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/operate/management/mydetail/index.vue b/src/views/operate/management/mydetail/index.vue deleted file mode 100644 index d21e829..0000000 --- a/src/views/operate/management/mydetail/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <div> - 璇︽儏椤� - </div> -</template> \ No newline at end of file diff --git a/src/views/operate/management/mysovle/index.vue b/src/views/operate/management/mysovle/index.vue deleted file mode 100644 index 95edd3e..0000000 --- a/src/views/operate/management/mysovle/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <div> - 缁撴 - </div> -</template> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue index a3e141e..9b2fdc5 100644 --- a/src/views/operate/message/myIndex/createUser/index.vue +++ b/src/views/operate/message/myIndex/createUser/index.vue @@ -238,6 +238,7 @@ sendTime: new Date(), targetTo: checkedList.join(','), targetFrom:`${role.targetFrom}`, + status:1, } }) .then(res=>{ diff --git a/src/views/operate/myWait/index.vue b/src/views/operate/myWait/index.vue index 6efd191..fb682ce 100644 --- a/src/views/operate/myWait/index.vue +++ b/src/views/operate/myWait/index.vue @@ -25,14 +25,20 @@ </el-table-column> <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> </el-table-column> - <el-table-column prop="category" label="闂灏忕被" min-width="10"> - </el-table-column> - <el-table-column prop="eventSource" label="闂鎻忚堪" min-width="10"> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10"> <template slot-scope="scope"> - <span>{{scope.row.eventSource===1 ? '杩濊': '杩濆缓'}}</span> + <span>{{scope.row.eventSource===1 ? '瑙嗛宸℃煡': '浜哄伐涓婃姤'}}</span> + </template> + </el-table-column> + <el-table-column prop="category" label="闂绫诲埆" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.category===1 ? '杩濊': '杩濆缓'}}</span> </template> </el-table-column> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + <template slot-scope="scope"> + <span>{{changeTime(scope.row.createTime)}}</span> + </template> </el-table-column> <el-table-column prop="type" label="鍓╀綑鏃堕棿" min-width="10"> <template slot-scope="scope"> @@ -91,6 +97,7 @@ import updateUser from "./updateUser" import createUser from "./createUser" import {computeTime} from '@/utils/helper' +import filterTime from '@/utils/mydate' export default { components: { updateUser,createUser @@ -266,8 +273,13 @@ }, // 璁$畻鏃堕棿 getRestTime(time2){ - console.log(time2); return computeTime(time2); + }, + // 鏀瑰彉鏃ユ湡鏍煎紡 + changeTime(time){ + if(time){ + return filterTime(time); + } } } } diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue index 8d1a6b9..cec4db5 100644 --- a/src/views/systemSetting/baseSetting/department/index.vue +++ b/src/views/systemSetting/baseSetting/department/index.vue @@ -57,11 +57,8 @@ </el-table-column> <el-table-column prop="departDes" label="閮ㄩ棬鎻忚堪" min-width="30"> </el-table-column> - <!-- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> - </el-table-column> --> <el-table-column prop="status" label="鍚敤" min-width="5"> <template slot-scope="scope"> - <!-- @change="handleChangeStatus(scope.row)" --> <el-switch class="switchStyle" v-model="scope.row.status" diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue index 04857a4..cad254b 100644 --- a/src/views/systemSetting/baseSetting/role/index.vue +++ b/src/views/systemSetting/baseSetting/role/index.vue @@ -13,7 +13,7 @@ <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button> <el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate" :before-close="handleClose2"> - <createUser :refresh="context==='' ? getUserList : search" /> + <createUser :refresh="context==='' ? getRoleList : search" /> </el-dialog> </div> </div> @@ -27,20 +27,14 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <!-- <el-table-column label="鐢ㄦ埛ID" min-width="5"> - <template slot-scope="scope">{{ scope.row.id }}</template> - </el-table-column> --> <el-table-column prop="name" label="瑙掕壊鍚嶇О" min-width="10"> </el-table-column> <el-table-column prop="typeText" label="瑙掕壊绫诲瀷" min-width="10"> </el-table-column> - <!-- <el-table-column prop="adminCount" label="榛樿瑙掕壊" min-width="10"> - </el-table-column> --> <el-table-column prop="description" label="澶囨敞" min-width="10"> </el-table-column> <el-table-column prop="status" label="鍚敤" min-width="5"> <template slot-scope="scope"> - <!-- active-text="寮�" inactive-text="鍏�" --> <el-switch class="switchStyle" v-model="scope.row.status" active-color="#3fef9a" inactive-color="#000212" disabled> </el-switch> @@ -49,11 +43,8 @@ <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> <div class="operation"> - <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> --> <span @click="handleFind(scope.row)">鏌ョ湅</span> <span class="line">|</span> - <!-- <span>淇敼瀵嗙爜</span> --> - <!-- <span>鍒犻櫎</span> --> <span @click="handleUpdate(scope.row)">鏉冮檺璁剧疆</span> <span class="line">|</span> <span @click="handleChangeStatus(scope.row)">{{scope.row.status === true ?'鍋滅敤':'鍚敤' }}</span> @@ -62,25 +53,25 @@ </div> </template> </el-table-column> - </el-table> + </el-table> <!-- 淇敼椤甸潰 --> <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'" v-if="dialogUpdate" :before-close="handleClose"> <updateUser :updateFlag="updateFlag" :userInfo=userInfo - :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" /> + :getRoleList=" context ? getRoleList : getRoleList" @changeDialog="changeDialog" /> </el-dialog> <!-- 鏌ョ湅椤甸潰 --> - <el-dialog :visible.sync="dialogView" width="45%" title="鏌ョ湅瑙掕壊淇℃伅" - v-if="dialogView" :before-close="handleClose"> + <el-dialog :visible.sync="dialogView" width="45%" title="鏌ョ湅瑙掕壊淇℃伅" v-if="dialogView" + :before-close="handleClose"> <MyView :userInfo=userInfo @changeDialog="changeDialog" /> </el-dialog> <!-- 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"> @@ -89,7 +80,7 @@ :value="item.value" :disabled="item.disabled"> </el-option> </el-select> - </div> --> + </div> </div> <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" @@ -107,9 +98,10 @@ import updateUser from "./updateUser" import helper from "@/utils/mydate.js" import MyView from './viewRole' +import MyTable from '@/components/Table' export default { components: { - createUser, updateUser,MyView + createUser, updateUser, MyView, MyTable }, data() { return { @@ -117,7 +109,7 @@ context: "", dialogCreate: false, dialogUpdate: false, - dialogView:false, + dialogView: false, updateFlag: false, userInfo: '', totalNum: null, @@ -146,11 +138,11 @@ label: '鎵归噺鍒犻櫎', } ], - tempList: [] + tempList: [], } }, created() { - this.getUserList(); + this.getRoleList(); }, methods: { async selectChange(list) { @@ -186,7 +178,7 @@ type: 'success', message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', }) - this.getUserList(); + this.getRoleList(); } else { this.$message({ type: 'error', @@ -239,7 +231,7 @@ message: res.message }) - this.getUserList(); + this.getRoleList(); }) }) .catch(_ => { }); @@ -255,14 +247,13 @@ let { id, status } = obj; status == true ? status = 0 : status = 1; this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => { - if(res.code ===200){ + if (res.code === 200) { this.search(); } }) }, // 鑾峰彇鐢ㄦ埛鍒楄〃 - getUserList() { - const that = this; + getRoleList() { this.dialogCreate = false; // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� this.$axios.get('sccg/role/listAll').then(res => { @@ -337,26 +328,26 @@ this.currentPage = page; this.search(); }, - changeDialog({flag}) { + changeDialog({ flag }) { this.dialogUpdate = flag; this.dialogCreate = flag; this.dialogView = flag; }, handleClose(done) { - if(this.updateFlag){ + if (this.updateFlag) { this.$confirm('纭鍏抽棴锛�') - .then(_ => { - this.dialogUpdate = false; - this.dialogCreate = false; - this.updateFlag = false; - done(); - }) - .catch(_ => { }); - }else{ + .then(_ => { + this.dialogUpdate = false; + this.dialogCreate = false; + this.updateFlag = false; + done(); + }) + .catch(_ => { }); + } else { done(); } }, - handleClose2(done){ + handleClose2(done) { this.$confirm('纭鍏抽棴锛�') .then(_ => { done(); @@ -440,7 +431,9 @@ justify-content: space-between; align-items: center; padding: 0 20px; - + .funs-sp{ + border: 1px solid #17324c; + } .funs { display: flex; @@ -448,7 +441,6 @@ line-height: 28px; display: flex; align-items: center; - border: 1px solid #17324c; border-radius: 4px; font-size: 12px; margin-left: 10px; @@ -504,6 +496,7 @@ .el-table { color: #4b9bb7; font-size: 10px; + .operation { display: flex; @@ -516,6 +509,7 @@ } } } + // &::v-deep .switchStyle .el-switch__label { // position: absolute; // display: none; diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue index 803720a..755ab53 100644 --- a/src/views/systemSetting/baseSetting/user/components/main/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue @@ -55,9 +55,14 @@ </template> </el-table-column> </el-table> - <!-- 鏌ョ湅淇敼椤甸潰 --> + <!-- 鏌ョ湅椤甸潰 --> + <el-dialog :visible.sync="dialogView" width="45%" v-if="dialogView" + title="鏌ョ湅鐢ㄦ埛淇℃伅"> + <MyView :userInfo=userInfo></MyView> + </el-dialog> + <!-- 淇敼椤甸潰 --> <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate" - :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :'鏌ョ湅鐢ㄦ埛淇℃伅'" + :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :''" :before-close="handleClose"> <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog" :getUserList="getUserList" v-if="!flag.password" /> @@ -94,15 +99,17 @@ import helper from '@/utils/mydate' import updateUser from '../updateUser'; import MyPwd from '../password' +import MyView from '../myView' export default { components: { - updateUser, MyPwd + updateUser, MyPwd,MyView }, data() { return { tableData: [], search: "", dialogUpdate: false, + dialogView:false, updateFlag: false, userInfo: '', totalNum: 200, @@ -327,13 +334,8 @@ }, // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) handleFind(rowData) { - this.dialogUpdate = true; - this.updateFlag = false; + this.dialogView = true; this.userInfo = rowData; - const { flag } = this; - for (let key in flag) { - flag[key] = false; - } }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { diff --git a/src/views/systemSetting/baseSetting/user/components/myView/index.vue b/src/views/systemSetting/baseSetting/user/components/myView/index.vue new file mode 100644 index 0000000..8608360 --- /dev/null +++ b/src/views/systemSetting/baseSetting/user/components/myView/index.vue @@ -0,0 +1,202 @@ +<template> + <div class="updateUser"> + <main> + <div class="mainContent"> + <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="濉啓鐢ㄦ埛鍚嶇О" disabled></el-input> + </el-form-item> + <!-- 鐢ㄦ埛瀵嗙爜 --> + <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> + <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled> + </el-input> + </el-form-item> + <!-- 鎵�灞炵敤鎴峰鍚� --> + <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName"> + <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�" disabled></el-input> + </el-form-item> + <!-- 鎬у埆 --> + <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> + <el-radio-group v-model="user.sex" disabled> + <el-radio :label="1">鐢�</el-radio> + <el-radio :label="0">濂�</el-radio> + </el-radio-group> + </el-form-item> + <!-- 鏄惁鍏氬憳 --> + <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> + <el-radio-group v-model="user.isDy" disabled> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + <!-- 鎵�灞炴墜鏈哄彿鐮� --> + <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> + <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" disabled></el-input> + </el-form-item> + <!-- 閭鍦板潃 --> + <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> + <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" disabled></el-input> + </el-form-item> + <!-- 閫夋嫨瑙掕壊 --> + <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> + <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags + disabled> + <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鐢ㄦ埛绫诲瀷 --> + <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> + <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎵�灞為儴闂� --> + <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> + <el-input v-model="user.departName"></el-input> + </el-form-item> + <!-- 褰撳墠鑱屽姟 --> + <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> + <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" disabled></el-input> + </el-form-item> + <!-- 濉啓鎵�灞瀖ac鍦板潃 --> + <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> + <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃" disabled></el-input> + </el-form-item> + <!-- 濉啓鎵�灞瀒p鍦板潃 --> + <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> + <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃" disabled></el-input> + </el-form-item> + </el-form> + </div> + </main> + </div> +</template> +<script> +export default { + data() { + return { + user: { + }, + createUserRules: { + }, + roleList: [ + + ], + typeList: [], + departList: [], + } + }, + created() { + const that = this; + this.user = JSON.parse(JSON.stringify(that.userInfo)); + this.user.departName = this.user.departName ? this.user.departName : '鏆傛棤鎵�灞為儴闂�' + // 鑾峰彇鎵�鏈夎鑹插垪琛� + this.getRoleList(); + // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃 + this.getUserRole(this.user.id) + // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 + this.$axios.get('/sccg/depart/tree').then(res => { + this.departList = res.data; + }) + }, + methods: { + // 鑾峰彇瑙掕壊鍒楄〃 + getRoleList() { + this.$axios({ + method: 'get', + url: 'sccg/role/listAll', + }) + .then(res => { + this.roleList = res.data; + }) + }, + // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛� + getUserRole(id) { + this.$axios({ + method: 'get', + url: `sccg/admin/role/${id}` + }) + .then(res => { + const arr = []; + res.data.forEach(item => { + arr.push(item.id); + }) + this.user.role = arr; + }) + }, + }, + props: ['userInfo'] +} +</script> +<style lang="scss" scoped> +.updateUser { + border-radius: 1px; + background-color: #09152f; + + :deep(.el-tag) { + background-color: #09152f; + } + + .el-select-dropdown.is-multiple .el-select-dropdown__item.selected { + background-color: #09152f; + color: #4b9bb7; + } + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } +} + +.updateUser::v-deep .el-form-item__label { + color: #4b9bb7; +} + +.updateUser::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; +} +</style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index bdb2020..86f30f7 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -4,94 +4,25 @@ <div class="mainContent"> <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="濉啓鐢ㄦ埛鍚嶇О" :disabled="true"></el-input> - </el-form-item> - <!-- 鐢ㄦ埛瀵嗙爜 --> - <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled> - </el-input> - </el-form-item> - <!-- 鎵�灞炵敤鎴峰鍚� --> - <!-- <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="true_name"> - <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> - </el-form-item> --> - <!-- 鎬у埆 --> - <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> - <el-radio-group v-model="user.sex" :disabled="!flag.role"> - <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" disabled> - <el-radio :label="1">鏄�</el-radio> - <el-radio :label="0">鍚�</el-radio> - </el-radio-group> - </el-form-item> - <!-- 鎵�灞炴墜鏈哄彿鐮� --> - <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> - <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" :disabled="true"></el-input> - </el-form-item> - <!-- 閭鍦板潃 --> - <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> - <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" :disabled="true"></el-input> - </el-form-item> <!-- 閫夋嫨瑙掕壊 --> - <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags - @change="handleChangeRole" :disabled="!flag.role"> + <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role" v-if="flag.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="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> - <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id" - :disabled="item.disabled"> - </el-option> - </el-select> --> </el-form-item> - <!-- 鐢ㄦ埛绫诲瀷 --> - <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> - <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled> - <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <!-- 搴ф満/鍒嗘満 --> - <!-- <el-form-item class="optionItem" label="搴ф満/鍒嗘満:" prop="zj"> - <div class="optionHandleSp"> - <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="鐢佃瘽鍖哄彿"> - </el-input> - <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="鐢佃瘽鍙风爜"> - </el-input> - <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="鍒嗘満鍙风爜"> - </el-input> - </div> - </el-form-item> --> <!-- 鎵�灞為儴闂� --> - <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" - @change="changeDepart"> - <el-option v-for="item in departList" :key="item.id" :label="item.departName" - :value="item.id"> + <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId" v-else> + <el-select v-model="user.departName" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart"> + <el-option :value="mylabel"> + <el-tree ref="tree" :check-strictly="true" :data="departList" :props="defaultProps" + show-checkbox @check-change="handleCheck" + :default-checked-keys="[selectOrg.orgsid[0],]" default-expand-all node-key="id"> + </el-tree> </el-option> </el-select> </el-form-item> - <!-- 褰撳墠鑱屽姟 --> - <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> - <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" :disabled="true"></el-input> - </el-form-item> - <!-- 濉啓鎵�灞瀖ac鍦板潃 --> - <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> - <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃" disabled></el-input> - </el-form-item> - <!-- 濉啓鎵�灞瀒p鍦板潃 --> - <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> - <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃" disabled></el-input> - </el-form-item> - <el-form-item v-if="updateFlag"> + <el-form-item> <div class="optionBtn"> <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 </el-button> @@ -106,194 +37,43 @@ <script> export default { data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); - } else { - callback(); - } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - // const rep = /^\w+$/; - // if (!rep.test(value)) { - // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - // } else { - // callback(); - // } - } - }; - const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - callback(); - // const rep = /^[\u4E00-\u9FA5]{2,4}$/; - // if (!rep.test(value)) { - // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - // } else { - // callback(); - // } - } - }; - const validatePhone = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); - } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } else { - callback(); - } - } - }; - const validateMail = (rule, value, callback) => { - if (value) { - const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; - if (!rep.test(value)) { - callback(new Error("璇疯緭鍏ユ纭殑閭")) - } else { - callback(); - } - } else { - callback(); - } - }; - // const validateRole = (rule, value, callback) => { - // console.log(value); - // if (!value) { - // callback(new Error("璇烽�夋嫨鐢ㄦ埛瑙掕壊")); - // } else { - // callback(); - // } - // }; - const validateType = (rule, value, callback) => { - if (!value && value !== 0) { - callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷")); - } else { - callback(); - } - }; - const validateDepartment = (rule, value, callback) => { - if (!value && value !== 0) { - callback(new Error("璇烽�夋嫨鎵�灞為儴闂�")); - } else { - callback(); - } - }; - const validateWork = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欏綋鍓嶈亴鍔�")); - } else { - callback(); - } - }; - const validateMac = (rule, value, callback) => { - if (!value) { - callback(); - } else { - callback(); - } - }; - const validateIp = (rule, value, callback) => { - if (!value) { - callback(); - } else { - callback(); - } - }; return { user: { - nickName: '', - password: '', - username: '', - sex: 1, - isDy: 1, - mobile: '', - email: '', - // role: null, - userType: null, - zj: { - areaNumber: '', - phoneNumber: "", - moreNumber: "", - }, - // departmentId: null, - // jobTitle: null, - mac: '', - ip: '', }, createUserRules: { - nickName: [ - { required: true, trigger: "blur", validator: validateNickname }, - ], - password: [ - { required: true, trigger: "blur", validator: validatePass }, - ], - username: [ - { required: true, trigger: "blur", validator: validateTruename }, - ], - sex: [ - { required: true, trigger: "blur" }, - ], - isDy: [ - { required: true, trigger: "blur" }, - ], - mobile: [ - { required: true, trigger: "blur", validator: validatePhone }, - ], - email: [ - { required: false, trigger: "blur", validator: validateMail }, - ], - // role: [ - // { required: true, trigger: "change", validator: validateRole }, - // ], - userType: [ - { required: true, trigger: "change", validator: validateType }, - ], - zj: [ - { required: false, trigger: "blur" }, - ], - departmentId: [ - { required: true, trigger: "change", validator: validateDepartment }, - ], - jobTitle: [ - { required: true, trigger: "blur", validator: validateWork }, - ], - // mac: [ - // { required: false, trigger: "blur", validator: validateMac }, - // ], - // ip: [ - // { required: false, trigger: "blur", validator: validateIp }, - // ], }, roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } + ], - typeList: [], - departList: [] + departList: [], + mylabel: "", + defaultProps: { + children: "children", + label: "departName", + }, + selectOrg: { + orgsid: [], + }, + tempName: '', + tempRole: [] } }, created() { - const that = this; - this.user = JSON.parse(JSON.stringify(that.userInfo)); - console.log(this.user); + this.user = JSON.parse(JSON.stringify(this.userInfo)); + this.tempName = this.user.departName; + this.selectOrg.orgsid.push(this.user.departmentId); // 鑾峰彇鎵�鏈夎鑹插垪琛� this.getRoleList(); // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃 this.getUserRole(this.user.id) // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.departList = res.data.records; + this.$axios.get('/sccg/depart/tree').then(res => { + this.departList = res.data; }) }, methods: { + // 淇敼閮ㄩ棬 changeDepart(data) { - console.log(data); this.departList.forEach(item => { if (item.id === data) { this.user.departName = item.departName; @@ -302,60 +82,87 @@ }, // 淇敼鐢ㄦ埛淇℃伅 handleUser() { - const { depart, role } = this.flag; + const { flag, user, tempName, selectOrg, tempRole, isArraySame } = this; this.$refs.user.validate((valid) => { if (valid) { - const { user } = this; user.isDy = `${user.isDy}`; - if (depart) { - console.log(this.user); - this.$axios({ - method: 'post', - url: `sccg/admin/update/${user.id}`, - data: { - "id": user.id, - "username": user.username, - "password": user.password, - "icon": user.icon, - "email": user.email, - "nickName": user.nickName, - "note": user.note, - "createTime": user.createTime, - "loginTime": user.loginTime, - "status": user.status ? 1 : 0, - "macAddress": user.macAddress, - "ipAddress": user.ipAddress, - "isDy": `${user.isDy}`, - "sex": `${user.sex}`, - "jobTitle": user.jobTitle, - "departmentId": user.departmentId, - "departName": user.departName, - "userType": user.userType, - "zj": user.zj, - "mobile": user.mobile, + if (flag.depart) { + if (tempName === user.departName) { + this.$message({ + type: 'warning', + message: '鎮ㄧ殑閮ㄩ棬杩樻湭鏇存敼' + }) + } else { + if (user.departName) { + this.$axios({ + method: 'post', + url: `sccg/admin/update/${user.id}`, + data: { + "id": user.id, + "username": user.username, + "password": user.password, + "icon": user.icon, + "email": user.email, + "nickName": user.nickName, + "note": user.note, + "createTime": user.createTime, + "loginTime": user.loginTime, + "status": user.status ? 1 : 0, + "macAddress": user.macAddress, + "ipAddress": user.ipAddress, + "isDy": `${user.isDy}`, + "sex": `${user.sex}`, + "jobTitle": user.jobTitle, + "departmentId": selectOrg.orgsid[0], + "departName": user.departName, + "userType": user.userType, + "zj": user.zj, + "mobile": user.mobile, + } + }) + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message, + }) + this.getUserList(); + this.$emit('closeDialog', { flag: false }); + }) + } else { + this.$message({ + type: 'warning', + message: '鐢ㄦ埛閮ㄩ棬涓嶈兘涓虹┖' + }) } - }) - .then(res => { - this.$message({ - type: res.code === 200 ? 'success' : 'warning', - message: res.message, - }) - this.getUserList(); - this.$emit('closeDialog', { flag: false }); - }) + } + } else { - this.$axios({ - method: 'post', - url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role, - }) - .then(res => { - this.$message({ - type: res.code === 200 ? 'success' : 'warning', - message: res.message, - }) - this.getUserList(); - this.$emit('closeDialog', { flag: false }); + if (user.role.length === 0) { + this.$message({ + type: 'warning', + message: '鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖', }) + } + else if (isArraySame(tempRole, user.role) && tempRole.length === user.role.length) { + this.$message({ + type: 'warning', + message: '鎮ㄨ繕鏈洿鏀硅鑹�', + }) + } + else { + this.$axios({ + method: 'post', + url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role, + }) + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message, + }) + this.getUserList(); + this.$emit('closeDialog', { flag: false }); + }) + } } } else { return false; @@ -372,11 +179,6 @@ this.roleList = res.data; }) }, - // 鏀瑰彉鐢ㄦ埛瑙掕壊 - handleChangeRole(data) { - console.log(this.user.role); - // console.log(data); - }, // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛� getUserRole(id) { this.$axios({ @@ -384,16 +186,59 @@ url: `sccg/admin/role/${id}` }) .then(res => { - console.log(res); const arr = []; res.data.forEach(item => { arr.push(item.id); }) this.user.role = arr; + this.tempRole = arr; }) + }, + // 閮ㄩ棬淇敼 + handleCheck(data, checked) { + this.user.departName = 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.departName = '' + } + }, + // 鍒ゆ柇鏁扮粍鏄惁鐩哥瓑 + isArraySame(arr1, arr2) { + let flag = true + arr1.sort((a, b) => a - b) + arr2.sort((a, b) => a - b) + arr1.forEach(item => { + arr2.forEach(child => { + if (item !== child) { + flag = false + } + }) + }) + return flag } }, - props: ['userInfo', 'updateFlag', 'flag', 'closeDialog', 'getUserList'] + props: ['userInfo', 'flag', 'closeDialog', 'getUserList'] } </script> <style lang="scss" scoped> @@ -409,6 +254,7 @@ 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 index 9995ea1..a97553f 100644 --- a/src/views/systemSetting/device/bayonet/create/index.vue +++ b/src/views/systemSetting/device/bayonet/create/index.vue @@ -89,14 +89,14 @@ data() { return { bayonet: { - name: '', + bayonetName: '', latitude: '', longitude: '', area: '', - domainName: '', + ipAddress: '', port: '', - webType: '', - cityType: '', + frontEndType: '', + inOutCityType: '', description: '', }, rules: { diff --git a/src/views/systemSetting/device/bayonet/index.vue b/src/views/systemSetting/device/bayonet/index.vue index 23b3a98..00ff0a4 100644 --- a/src/views/systemSetting/device/bayonet/index.vue +++ b/src/views/systemSetting/device/bayonet/index.vue @@ -8,7 +8,6 @@ <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> @@ -16,90 +15,41 @@ <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> + <el-button @click="handleExport">瀵煎嚭鍗″彛</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> --> + <MyTable + :tableOption="tableOption" + :tableData="list" + :pageShow="false"> + <template #operation="info"> + <el-link :underline="false" style="color:#4b9bb7">缂栬緫</el-link> + </template> + </MyTable> </div> </main> <footer> <!-- 娣诲姞鍗″彛 --> <el-dialog title="娣诲姞鍗″彛" :visible.sync="dialogCreate" width="60%" :before-close="handleClose"> - <MyCreate></MyCreate> + <MyCreate :addBayonet="addBayonet"></MyCreate> </el-dialog> </footer> </div> </template> <script> -import helper from "@/utils/mydate.js" import MyCreate from './create' +import MyTable from '@/components/Table' +import {myDownLoad} from '@/utils/helper' +import { createNamespacedHelpers } from "vuex"; +const { mapActions } = createNamespacedHelpers("bayonet"); export default { components: { - MyCreate + MyCreate, MyTable, }, data() { return { - tableData: [], - context: 0, dialogCreate: false, - totalNum: null, - pageSize: 10, - currentPage: 1, - all: false, - unsame: false, - myIdx: 0, - preMyIdx: 0, + context: 0, options: [ { value: 0, @@ -110,131 +60,85 @@ label: '鍦ㄧ嚎', } ], - tempList: [] + list: [], + current: 1, + size: 10, + tableOption: { + group: [ + { + label: '鍗″彛鍚嶇О', + type: 'text', + prop: 'bayonetName', + }, + { + label: '缁忕含搴︿綅缃�', + type: 'text', + prop: 'latitude', + }, + // { + // label: '鎵�灞炲尯鍩�', + // type: 'text', + // prop: '', + // }, + { + label: '鍩熷悕/IP', + type: 'text', + prop: 'ipAddress', + }, + { + label: '绔彛鍙�', + type: 'text', + prop: 'port', + }, + { + label: '鍓嶇绫诲瀷', + type: 'text', + prop: 'frontEndType', + }, + { + label: '鍑哄叆鍩庣被鍨�', + type: 'text', + prop: 'inOutCityType', + }, + { + label: '鎿嶄綔', + type: 'operation', + prop: 'operation', + }, + ] + }, } }, created() { + const { setTableData } = this; + setTableData(); }, 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('纭鍏抽棴锛�') + this.$confirm('纭鍏抽棴?') .then(_ => { done(); }) - .catch(_ => { }); + }, + ...mapActions(['getBayonetList', 'exportBayonetList','addBayonet']), + // 璁剧疆tableData + async setTableData() { + const { current, size, context } = this; + let arr = await this.getBayonetList({ + // bayonetName:context, + current, size + }) + this.list = arr.data.data + }, + // 瀵煎嚭 + async handleExport(){ + const { current, size, context } = this; + let arr = await this.exportBayonetList({ + current, size + }) + myDownLoad(arr); + console.log(arr); } } } -- Gitblit v1.8.0