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