基本信息
Showing
12 changed files
with
810 additions
and
1380 deletions
... | @@ -78,12 +78,12 @@ export const api = { | ... | @@ -78,12 +78,12 @@ export const api = { |
78 | crudPut: crud + '/rest/put', // crudPut | 78 | crudPut: crud + '/rest/put', // crudPut |
79 | crudDel: crud + '/rest/delete', // crudDel | 79 | crudDel: crud + '/rest/delete', // crudDel |
80 | crudMetadata: crud + '/rest/metadata', //crudMetadata | 80 | crudMetadata: crud + '/rest/metadata', //crudMetadata |
81 | crudBusiness : crud + '/rest/business', // crudBusiness | 81 | crudBusiness: crud + '/rest/business', // crudBusiness |
82 | crudDatasources : crud + '/rest/datasources', // crudDatasources | 82 | crudDatasources: crud + '/rest/datasources', // crudDatasources |
83 | } | 83 | } |
84 | 84 | ||
85 | // 根据code获取字典 params={isTree:true}) | 85 | // 根据code获取字典 params={isTree:true}) |
86 | export function getDictItems(code, params = {}) { | 86 | export function getDictItems (code, params = {}) { |
87 | return request({ | 87 | return request({ |
88 | url: `${api.baseDataCategory}/${code}/base-datas`, | 88 | url: `${api.baseDataCategory}/${code}/base-datas`, |
89 | method: 'get', | 89 | method: 'get', |
... | @@ -91,21 +91,21 @@ export function getDictItems(code, params = {}) { | ... | @@ -91,21 +91,21 @@ export function getDictItems(code, params = {}) { |
91 | }) | 91 | }) |
92 | } | 92 | } |
93 | // 获取一级字典值下级接口 | 93 | // 获取一级字典值下级接口 |
94 | export function getDictItemsChild(id) { | 94 | export function getDictItemsChild (id) { |
95 | return request({ | 95 | return request({ |
96 | url: `${api.baseData}/dict/${id}`, | 96 | url: `${api.baseData}/dict/${id}`, |
97 | method: 'get' | 97 | method: 'get' |
98 | }) | 98 | }) |
99 | } | 99 | } |
100 | // 获取传入字段的所有级别字典值 | 100 | // 获取传入字段的所有级别字典值 |
101 | export function getAllDictItems(name) { | 101 | export function getAllDictItems (name) { |
102 | return request({ | 102 | return request({ |
103 | url: `${api.baseDataCategory}/${name}/base-datas`, | 103 | url: `${api.baseDataCategory}/${name}/base-datas`, |
104 | method: 'get' | 104 | method: 'get' |
105 | }) | 105 | }) |
106 | } | 106 | } |
107 | // get公共方法 | 107 | // get公共方法 |
108 | export function getAction(url, params = {}) { | 108 | export function getAction (url, params = {}) { |
109 | return request({ | 109 | return request({ |
110 | url, | 110 | url, |
111 | method: 'get', | 111 | method: 'get', |
... | @@ -113,7 +113,7 @@ export function getAction(url, params = {}) { | ... | @@ -113,7 +113,7 @@ export function getAction(url, params = {}) { |
113 | }) | 113 | }) |
114 | } | 114 | } |
115 | // post公共方法 | 115 | // post公共方法 |
116 | export function postAction(url, data = null) { | 116 | export function postAction (url, data = null) { |
117 | return request({ | 117 | return request({ |
118 | url, | 118 | url, |
119 | method: 'post', | 119 | method: 'post', |
... | @@ -121,7 +121,7 @@ export function postAction(url, data = null) { | ... | @@ -121,7 +121,7 @@ export function postAction(url, data = null) { |
121 | }) | 121 | }) |
122 | } | 122 | } |
123 | // method= {post | put} | 123 | // method= {post | put} |
124 | export function httpAction(url, data, method) { | 124 | export function httpAction (url, data, method) { |
125 | return request({ | 125 | return request({ |
126 | url, | 126 | url, |
127 | method, | 127 | method, |
... | @@ -129,7 +129,7 @@ export function httpAction(url, data, method) { | ... | @@ -129,7 +129,7 @@ export function httpAction(url, data, method) { |
129 | }) | 129 | }) |
130 | } | 130 | } |
131 | // put公共方法 | 131 | // put公共方法 |
132 | export function putAction(url, data = null) { | 132 | export function putAction (url, data = null) { |
133 | return request({ | 133 | return request({ |
134 | url, | 134 | url, |
135 | method: 'put', | 135 | method: 'put', |
... | @@ -137,7 +137,7 @@ export function putAction(url, data = null) { | ... | @@ -137,7 +137,7 @@ export function putAction(url, data = null) { |
137 | }) | 137 | }) |
138 | } | 138 | } |
139 | // delete | 139 | // delete |
140 | export function deleteAction(url, data = null) { | 140 | export function deleteAction (url, data = null) { |
141 | return request({ | 141 | return request({ |
142 | url, | 142 | url, |
143 | method: 'delete', | 143 | method: 'delete', |
... | @@ -146,7 +146,7 @@ export function deleteAction(url, data = null) { | ... | @@ -146,7 +146,7 @@ export function deleteAction(url, data = null) { |
146 | } | 146 | } |
147 | 147 | ||
148 | // 批量删除 | 148 | // 批量删除 |
149 | export function deleteBranch(url, data) { | 149 | export function deleteBranch (url, data) { |
150 | return request({ | 150 | return request({ |
151 | url, | 151 | url, |
152 | method: 'delete', | 152 | method: 'delete', | ... | ... |
... | @@ -121,3 +121,6 @@ export const getRoleAuthorityList = ( | ... | @@ -121,3 +121,6 @@ export const getRoleAuthorityList = ( |
121 | export const roleAuthority = (id, permissionDtos) => { | 121 | export const roleAuthority = (id, permissionDtos) => { |
122 | return putAction(`${api.rolePermissions}/${id}`, permissionDtos) | 122 | return putAction(`${api.rolePermissions}/${id}`, permissionDtos) |
123 | } | 123 | } |
124 | export const updateUserPassword = (data) => { | ||
125 | return putAction(`${api.users}/update-password`, data) | ||
126 | } | ... | ... |
... | @@ -6,8 +6,7 @@ | ... | @@ -6,8 +6,7 @@ |
6 | label-width="100px" | 6 | label-width="100px" |
7 | :model="form" | 7 | :model="form" |
8 | class="form-wrapper" | 8 | class="form-wrapper" |
9 | :rules="rules" | 9 | :rules="rules"> |
10 | > | ||
11 | <el-form-item label="用户名:" required> | 10 | <el-form-item label="用户名:" required> |
12 | <el-input v-model="form.loginName" clearable disabled /> | 11 | <el-input v-model="form.loginName" clearable disabled /> |
13 | </el-form-item> | 12 | </el-form-item> |
... | @@ -19,9 +18,7 @@ | ... | @@ -19,9 +18,7 @@ |
19 | <el-radio | 18 | <el-radio |
20 | v-for="(item, index) in sexList" | 19 | v-for="(item, index) in sexList" |
21 | :key="index" | 20 | :key="index" |
22 | :label="item.value" | 21 | :label="item.value">{{ item.name }}</el-radio> |
23 | >{{ item.name }}</el-radio | ||
24 | > | ||
25 | </el-radio-group> | 22 | </el-radio-group> |
26 | </el-form-item> | 23 | </el-form-item> |
27 | <el-form-item label="身份证号:" prop="idCard"> | 24 | <el-form-item label="身份证号:" prop="idCard"> |
... | @@ -30,7 +27,7 @@ | ... | @@ -30,7 +27,7 @@ |
30 | <el-form-item label="手机号码:" prop="mobilePhone"> | 27 | <el-form-item label="手机号码:" prop="mobilePhone"> |
31 | <el-input v-model="form.mobilePhone" clearable /> | 28 | <el-input v-model="form.mobilePhone" clearable /> |
32 | </el-form-item> | 29 | </el-form-item> |
33 | <el-form-item label="办公电话:" prop="telephone"> | 30 | <el-form-item label="办公电话:"> |
34 | <el-input v-model="form.telephone" clearable /> | 31 | <el-input v-model="form.telephone" clearable /> |
35 | </el-form-item> | 32 | </el-form-item> |
36 | <el-form-item label="办公地址:"> | 33 | <el-form-item label="办公地址:"> |
... | @@ -45,200 +42,117 @@ | ... | @@ -45,200 +42,117 @@ |
45 | </template> | 42 | </template> |
46 | 43 | ||
47 | <script> | 44 | <script> |
48 | // import { api, getAction, putAction, getDictItems } from '@api/manageApi' | 45 | import { api, getAction, putAction, getDictItems } from '@/api/manageApi' |
49 | export default { | 46 | export default { |
50 | props: { | 47 | props: { |
51 | // userInfo: { | 48 | userInfo: { |
52 | // type: Object, | 49 | type: Object, |
53 | // default: null | 50 | default: null |
54 | // } | 51 | } |
55 | }, | 52 | }, |
56 | data() { | 53 | data () { |
57 | return { | 54 | return { |
58 | form: { | 55 | form: {}, |
59 | id: "3127e455-43ba-45ff-9326-0e02ef89485e", | 56 | sexList: [], |
60 | name: "超级管理员", | 57 | rules: { |
61 | sort: 1, | 58 | mobilePhone: [ |
62 | loginName: "admin", | 59 | { |
63 | email: null, | 60 | pattern: |
64 | lastLoginTime: null, | 61 | /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, |
65 | mobilePhone: "18291003568", | 62 | message: '手机号码格式有误', |
66 | isLocked: false, | 63 | trigger: 'blur' |
67 | status: "ACTIVE", | 64 | } |
68 | passwordChangeTime: "2021-12-10T08:01:01.569+0000", | 65 | ], |
69 | idCard: "612725202111021521", | 66 | idCard: [ |
70 | departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b", | 67 | { |
71 | departmentName: null, | 68 | pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, |
72 | organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa", | 69 | message: '身份证号格式有误', |
73 | sex: "0", | 70 | trigger: 'blur' |
74 | isDuty: true, | 71 | } |
75 | code: "123324", | 72 | ] |
76 | jobLevel: null, | 73 | } |
77 | telephone: "028-87720898", | 74 | } |
78 | address: "办公地点修改测试", | 75 | }, |
79 | }, | 76 | watch: { |
80 | sexList: [], | 77 | userInfo: { |
81 | rules: { | 78 | handler: function (val) { |
82 | mobilePhone: [ | 79 | if (val) { |
83 | { | 80 | this.getUserInfo(val.id) |
84 | pattern: | 81 | } |
85 | /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, | 82 | } |
86 | message: "手机号码格式有误", | 83 | } |
87 | trigger: "blur", | 84 | }, |
88 | }, | 85 | mounted () { |
89 | ], | 86 | this.sexList = [ |
90 | idCard: [ | 87 | { |
91 | { | 88 | "name": "男", |
92 | pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, | 89 | "value": "0", |
93 | message: "身份证号格式有误", | 90 | }, |
94 | trigger: "blur", | 91 | { |
95 | }, | 92 | |
96 | ], | 93 | "name": "女", |
97 | telephone: [ | 94 | "value": "1", |
98 | { | 95 | }, |
99 | pattern: /\d{3}-\d{8}|\d{4}-\d{7}/, | 96 | |
100 | message: "办公电话格式有误", | 97 | { |
101 | trigger: "blur", | 98 | "name": "保密", |
102 | }, | 99 | "value": "2", |
103 | ], | ||
104 | }, | ||
105 | }; | ||
106 | }, | ||
107 | watch: { | ||
108 | // userInfo: { | ||
109 | // handler: function(val) { | ||
110 | // if (val) { | ||
111 | // this.getUserInfo(val.id) | ||
112 | // } | ||
113 | // } | ||
114 | // } | ||
115 | }, | ||
116 | mounted() { | ||
117 | // getDictItems('XB').then((res) => { | ||
118 | // if (res.status === 1) { | ||
119 | this.sexList = [ | ||
120 | { | ||
121 | id: "079c72b2-f3de-4a4f-b2a1-e5c8f085cc5f", | ||
122 | createdAt: "2021-06-11T02:42:02.000+0000", | ||
123 | updatedAt: "2021-09-03T09:21:46.000+0000", | ||
124 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
125 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
126 | sort: 2, | ||
127 | name: "男", | ||
128 | description: "", | ||
129 | code: "N362", | ||
130 | value: "0", | ||
131 | parentId: null, | ||
132 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
133 | version: 1, | ||
134 | valid: true, | ||
135 | standard: false, | ||
136 | standardName: null, | ||
137 | standardValue: null, | ||
138 | children: [], | ||
139 | commonName: "男(N362)", | ||
140 | }, | ||
141 | { | ||
142 | id: "4d6f845d-6f6a-4848-8fc2-a3760764c196", | ||
143 | createdAt: "2021-06-11T02:42:12.000+0000", | ||
144 | updatedAt: "2021-09-03T09:21:46.000+0000", | ||
145 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
146 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
147 | sort: 1, | ||
148 | name: "女", | ||
149 | description: "", | ||
150 | code: "N922", | ||
151 | value: "1", | ||
152 | parentId: null, | ||
153 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
154 | version: 1, | ||
155 | valid: true, | ||
156 | standard: false, | ||
157 | standardName: null, | ||
158 | standardValue: null, | ||
159 | children: [], | ||
160 | commonName: "女(N922)", | ||
161 | }, | ||
162 | { | ||
163 | id: "637c360b-d4e2-4afb-aa18-33624cf3abcb", | ||
164 | createdAt: "2021-06-11T02:42:29.000+0000", | ||
165 | updatedAt: "2021-09-03T09:21:43.000+0000", | ||
166 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
167 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
168 | sort: 0, | ||
169 | name: "保密", | ||
170 | description: "", | ||
171 | code: "BM816", | ||
172 | value: "2", | ||
173 | parentId: null, | ||
174 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
175 | version: 1, | ||
176 | valid: true, | ||
177 | standard: false, | ||
178 | standardName: null, | ||
179 | standardValue: null, | ||
180 | children: [], | ||
181 | commonName: "保密(BM816)", | ||
182 | }, | ||
183 | ]; | ||
184 | // } else { | ||
185 | // this.$message.error({ message: res.message, showClose: true }) | ||
186 | // } | ||
187 | // }) | ||
188 | }, | ||
189 | methods: { | ||
190 | // getUserInfo(id) { | ||
191 | // getAction(`${api.users}/${id}`).then((res) => { | ||
192 | // if (res.status === 1) { | ||
193 | 100 | ||
194 | // } else { | 101 | } |
195 | // this.$message.error({ message: res.message, showClose: true }) | 102 | ] |
196 | // } | ||
197 | // }) | ||
198 | // }, | ||
199 | // 更新信息 | ||
200 | updateInfo() { | ||
201 | // this.$refs.form.validate((valid) => { | ||
202 | // if (valid) { | ||
203 | // putAction(`${api.users}/${this.form.id}`, this.form).then((res) => { | ||
204 | // if (res.status === 1) { | ||
205 | // this.$message.success({ message: res.message, showClose: true }) | ||
206 | // this.getUserInfo(this.form.id) | ||
207 | // } else { | ||
208 | // this.$message.error({ message: res.message, showClose: true }) | ||
209 | // } | ||
210 | // }) | ||
211 | // } | ||
212 | // }) | ||
213 | }, | 103 | }, |
214 | }, | 104 | methods: { |
215 | }; | 105 | getUserInfo (id) { |
106 | getAction(`${api.users}/${id}`).then((res) => { | ||
107 | if (res.status === 1) { | ||
108 | this.form = res.content | ||
109 | } else { | ||
110 | this.$message.error({ message: res.message, showClose: true }) | ||
111 | } | ||
112 | }) | ||
113 | }, | ||
114 | updateInfo () { | ||
115 | this.$refs.form.validate((valid) => { | ||
116 | if (valid) { | ||
117 | putAction(`${api.users}/${this.form.id}`, this.form).then((res) => { | ||
118 | if (res.status === 1) { | ||
119 | this.$message.success({ message: res.message, showClose: true }) | ||
120 | this.getUserInfo(this.form.id) | ||
121 | } else { | ||
122 | this.$message.error({ message: res.message, showClose: true }) | ||
123 | } | ||
124 | }) | ||
125 | } | ||
126 | }) | ||
127 | } | ||
128 | } | ||
129 | } | ||
216 | </script> | 130 | </script> |
217 | 131 | ||
218 | <style scoped lang="scss"> | 132 | <style scoped lang="scss"> |
219 | .user-info { | 133 | .user-info { |
220 | margin: 0.1875rem 1.0417rem; | 134 | margin: 0.1875rem 1.0417rem; |
221 | background: #ffffff; | 135 | background: #ffffff; |
222 | max-height: 90%; | 136 | max-height: 90%; |
223 | overflow-y: auto; | 137 | overflow-y: auto; |
224 | .form-wrapper { | 138 | .form-wrapper { |
225 | padding: 24px 120px 0px; | 139 | padding: 24px 120px 0px; |
226 | .el-form-item { | 140 | .el-form-item { |
227 | margin-bottom: 24px; | 141 | margin-bottom: 24px; |
228 | .el-form-item__label { | 142 | .el-form-item__label { |
229 | color: #747e8c; | 143 | color: #747e8c; |
230 | } | 144 | } |
231 | ::v-deep .el-input .el-input__inner { | 145 | ::v-deep .el-input .el-input__inner { |
232 | padding: 0 8px; | 146 | padding: 0 8px; |
233 | height: 40px; | 147 | height: 40px; |
234 | line-height: 40px; | 148 | line-height: 40px; |
235 | border: 1px solid #6BC1FC; | 149 | border: 1px solid #6bc1fc; |
150 | } | ||
236 | } | 151 | } |
237 | } | 152 | } |
153 | .bottom-wrapper { | ||
154 | padding: 32px 120px 24px; | ||
155 | text-align: right; | ||
156 | } | ||
238 | } | 157 | } |
239 | .bottom-wrapper { | ||
240 | padding: 32px 120px 24px; | ||
241 | text-align: right; | ||
242 | } | ||
243 | } | ||
244 | </style> | 158 | </style> | ... | ... |
... | @@ -15,69 +15,74 @@ | ... | @@ -15,69 +15,74 @@ |
15 | </div> | 15 | </div> |
16 | <div class="from-clues-content"> | 16 | <div class="from-clues-content"> |
17 | <div class="contentbox"> | 17 | <div class="contentbox"> |
18 | <base-set v-show="isshow" /> | 18 | <base-set v-show="isshow" :user-info="userData" /> |
19 | <password-edit v-show="!isshow" /> | 19 | <password-edit v-show="!isshow" :user-info="userData" /> |
20 | </div> | 20 | </div> |
21 | </div> | 21 | </div> |
22 | </div> | 22 | </div> |
23 | </template> | 23 | </template> |
24 | <script> | 24 | <script> |
25 | import "@/utils/flexible.js"; | 25 | import "@/utils/flexible.js"; |
26 | import BaseSet from "./base-set.vue"; | 26 | import BaseSet from "./base-set.vue"; |
27 | import PasswordEdit from "./password-edit.vue"; | 27 | import PasswordEdit from "./password-edit.vue"; |
28 | export default { | 28 | export default { |
29 | components: { | 29 | components: { |
30 | BaseSet, | 30 | BaseSet, |
31 | PasswordEdit, | 31 | PasswordEdit, |
32 | }, | ||
33 | data() { | ||
34 | return { | ||
35 | active: "baseSet", | ||
36 | isshow: true, | ||
37 | }; | ||
38 | }, | ||
39 | computed: {}, | ||
40 | watch: {}, | ||
41 | created() {}, | ||
42 | mounted() {}, | ||
43 | methods: { | ||
44 | information() { | ||
45 | this.isshow = true; | ||
46 | }, | 32 | }, |
47 | password() { | 33 | data () { |
48 | this.isshow = false; | 34 | return { |
35 | isshow: true, | ||
36 | userData: null | ||
37 | }; | ||
49 | }, | 38 | }, |
50 | }, | 39 | computed: { |
51 | }; | 40 | departmentid () { |
41 | return this.$store.state.user.userInfo; | ||
42 | }, | ||
43 | }, | ||
44 | watch: {}, | ||
45 | created () { }, | ||
46 | mounted () { | ||
47 | if (this.departmentid) { | ||
48 | this.userData = this.departmentid | ||
49 | } | ||
50 | |||
51 | }, | ||
52 | methods: { | ||
53 | information () { | ||
54 | this.isshow = true; | ||
55 | }, | ||
56 | password () { | ||
57 | this.isshow = false; | ||
58 | }, | ||
59 | }, | ||
60 | }; | ||
52 | </script> | 61 | </script> |
53 | 62 | ||
54 | <style scoped lang="scss"> | 63 | <style scoped lang="scss"> |
55 | @import "~@/styles/mixin.scss"; | 64 | @import "~@/styles/mixin.scss"; |
56 | @import "~@/styles/public.scss"; | 65 | @import "~@/styles/public.scss"; |
57 | .information{ | 66 | .information { |
58 | .btnColRight{ | 67 | .btnColRight { |
59 | margin-top: 20px; | 68 | margin-top: 20px; |
60 | } | 69 | } |
61 | /deep/.content { | 70 | /deep/.content { |
62 | .el-input__inner{ | 71 | .el-input__inner { |
63 | background: none; | 72 | background: none; |
64 | } | 73 | } |
65 | .user-info { | 74 | .user-info { |
66 | background: none; | 75 | background: none; |
67 | } | 76 | } |
77 | } | ||
78 | /deep/.el-tabs { | ||
79 | .el-tabs__content { | ||
80 | height: 100%; | ||
81 | width: 100%; | ||
82 | } | ||
83 | } | ||
84 | .contentbox { | ||
85 | height: 3.0854rem; | ||
68 | } | 86 | } |
69 | /deep/.el-tabs { | ||
70 | |||
71 | .el-tabs__content { | ||
72 | height: 100%; | ||
73 | width: 100%; | ||
74 | |||
75 | |||
76 | } | 87 | } |
77 | } | ||
78 | .contentbox{ | ||
79 | height: 3.0854rem; | ||
80 | } | ||
81 | } | ||
82 | |||
83 | </style> | 88 | </style> | ... | ... |
... | @@ -6,31 +6,27 @@ | ... | @@ -6,31 +6,27 @@ |
6 | label-width="100px" | 6 | label-width="100px" |
7 | :model="form" | 7 | :model="form" |
8 | class="form-wrapper" | 8 | class="form-wrapper" |
9 | :rules="rules" | 9 | :rules="rules"> |
10 | > | 10 | <el-form-item label="旧密码:" prop="oldPassword"> |
11 | <el-form-item label="旧密码:" required prop="oldPassword"> | ||
12 | <el-input | 11 | <el-input |
13 | v-model="form.oldPassword" | 12 | v-model="form.oldPassword" |
14 | clearable | 13 | clearable |
15 | type="password" | 14 | type="password" |
16 | show-password | 15 | show-password /> |
17 | /> | ||
18 | </el-form-item> | 16 | </el-form-item> |
19 | <el-form-item label="新密码:" required prop="newPassword"> | 17 | <el-form-item label="新密码:" prop="newPassword"> |
20 | <el-input | 18 | <el-input |
21 | v-model="form.newPassword" | 19 | v-model="form.newPassword" |
22 | clearable | 20 | clearable |
23 | type="password" | 21 | type="password" |
24 | show-password | 22 | show-password /> |
25 | /> | ||
26 | </el-form-item> | 23 | </el-form-item> |
27 | <el-form-item label="确认密码:" required prop="confirmPassword"> | 24 | <el-form-item label="确认密码:" prop="confirmPassword"> |
28 | <el-input | 25 | <el-input |
29 | v-model="form.confirmPassword" | 26 | v-model="form.confirmPassword" |
30 | clearable | 27 | clearable |
31 | type="password" | 28 | type="password" |
32 | show-password | 29 | show-password /> |
33 | /> | ||
34 | </el-form-item> | 30 | </el-form-item> |
35 | </el-form> | 31 | </el-form> |
36 | <div class="bottom-wrapper"> | 32 | <div class="bottom-wrapper"> |
... | @@ -41,96 +37,95 @@ | ... | @@ -41,96 +37,95 @@ |
41 | </template> | 37 | </template> |
42 | 38 | ||
43 | <script> | 39 | <script> |
44 | // import { updateUserPassword } from '@api/organizationManage' | 40 | import { updateUserPassword } from "@/api/quanxianmanagement"; |
45 | export default { | 41 | export default { |
46 | props: { | 42 | props: { |
47 | // userInfo: { | 43 | userInfo: { |
48 | // type: Object, | 44 | type: Object, |
49 | // default: null | 45 | default: null |
50 | // } | ||
51 | }, | ||
52 | data() { | ||
53 | return { | ||
54 | form: {}, | ||
55 | sexList: [], | ||
56 | userId: '', | ||
57 | rules: { | ||
58 | oldPassword: [ | ||
59 | { required: true, message: '旧密码不能为空', trigger: 'blur' } | ||
60 | ], | ||
61 | newPassword: [ | ||
62 | { required: true, message: '新密码不能为空', trigger: 'blur' } | ||
63 | ], | ||
64 | confirmPassword: [ | ||
65 | { required: true, message: '确认密码不能为空', trigger: 'blur' }, | ||
66 | { validator: this.validatorConfirmPassword, trigger: 'blur' } | ||
67 | ] | ||
68 | } | 46 | } |
69 | } | 47 | }, |
70 | }, | 48 | data () { |
71 | computed: {}, | 49 | return { |
72 | watch: { | 50 | form: {}, |
73 | // userInfo: { | 51 | sexList: [], |
74 | // handler: function(val) { | 52 | userId: '', |
75 | // if (val) { | 53 | rules: { |
76 | // this.userId = val.id | 54 | oldPassword: [ |
77 | // } | 55 | { required: true, message: '旧密码不能为空', trigger: 'blur' } |
78 | // } | 56 | ], |
79 | // } | 57 | newPassword: [ |
80 | }, | 58 | { required: true, message: '新密码不能为空', trigger: 'blur' } |
81 | mounted() {}, | 59 | ], |
82 | methods: { | 60 | confirmPassword: [ |
83 | validatorConfirmPassword(rule, value, callback) { | 61 | { required: true, message: '确认密码不能为空', trigger: 'blur' }, |
84 | const { newPassword } = this.form | 62 | { validator: this.validatorConfirmPassword, trigger: 'blur' } |
85 | if (value !== newPassword) { | 63 | ] |
86 | callback('两次输入密码不一致') | 64 | } |
87 | } else { | 65 | } |
88 | callback() | 66 | }, |
67 | computed: {}, | ||
68 | watch: { | ||
69 | userInfo: { | ||
70 | handler: function (val) { | ||
71 | if (val) { | ||
72 | this.userId = val.id | ||
73 | } | ||
74 | } | ||
89 | } | 75 | } |
90 | }, | 76 | }, |
91 | // 确认修改 | 77 | mounted () { }, |
92 | updatePassword() { | 78 | methods: { |
93 | // this.$refs.form.validate((valid) => { | 79 | validatorConfirmPassword (rule, value, callback) { |
94 | // if (valid) { | 80 | const { newPassword } = this.form |
95 | // const params = Object.assign({}, this.form, { id: this.userId }) | 81 | if (value !== newPassword) { |
96 | // updateUserPassword(params).then((res) => { | 82 | callback('两次输入密码不一致') |
97 | // if (res.status === 1) { | 83 | } else { |
98 | // this.$message.success({ message: res.message, showClose: true }) | 84 | callback() |
99 | // } else { | 85 | } |
100 | // this.$message.error({ message: res.message, showClose: true }) | 86 | }, |
101 | // } | 87 | updatePassword () { |
102 | // }) | 88 | this.$refs.form.validate((valid) => { |
103 | // } | 89 | if (valid) { |
104 | // }) | 90 | const params = Object.assign({}, this.form, { id: this.userId }) |
91 | updateUserPassword(params).then((res) => { | ||
92 | if (res.status === 1) { | ||
93 | this.$message.success({ message: res.message, showClose: true }) | ||
94 | } else { | ||
95 | this.$message.error({ message: res.message, showClose: true }) | ||
96 | } | ||
97 | }) | ||
98 | } | ||
99 | }) | ||
100 | } | ||
105 | } | 101 | } |
106 | } | 102 | } |
107 | } | ||
108 | </script> | 103 | </script> |
109 | 104 | ||
110 | <style scoped lang="scss"> | 105 | <style scoped lang="scss"> |
111 | .user-info { | 106 | .user-info { |
112 | margin: 36px 200px; | 107 | margin: 36px 200px; |
113 | background: #ffffff; | 108 | background: #ffffff; |
114 | max-height: 90%; | 109 | max-height: 90%; |
115 | overflow-y: auto; | 110 | overflow-y: auto; |
116 | .form-wrapper { | 111 | .form-wrapper { |
117 | padding: 24px 120px 0px; | 112 | padding: 24px 120px 0px; |
118 | .el-form-item { | 113 | .el-form-item { |
119 | margin-bottom: 24px; | 114 | margin-bottom: 24px; |
120 | .el-form-item__label { | 115 | .el-form-item__label { |
121 | color: #747e8c; | 116 | color: #747e8c; |
122 | } | 117 | } |
123 | ::v-deep .el-input .el-input__inner { | 118 | ::v-deep .el-input .el-input__inner { |
124 | padding: 0 8px; | 119 | padding: 0 8px; |
125 | height: 40px; | 120 | height: 40px; |
126 | line-height: 40px; | 121 | line-height: 40px; |
127 | border: 1px solid #6BC1FC; | 122 | border: 1px solid #6bc1fc; |
123 | } | ||
128 | } | 124 | } |
129 | } | 125 | } |
126 | .bottom-wrapper { | ||
127 | padding: 32px 120px 24px; | ||
128 | text-align: right; | ||
129 | } | ||
130 | } | 130 | } |
131 | .bottom-wrapper { | ||
132 | padding: 32px 120px 24px; | ||
133 | text-align: right; | ||
134 | } | ||
135 | } | ||
136 | </style> | 131 | </style> | ... | ... |
1 | <template> | ||
2 | <div class="content"> | ||
3 | <div class="user-info"> | ||
4 | <el-form | ||
5 | ref="form" | ||
6 | label-width="100px" | ||
7 | :model="form" | ||
8 | class="form-wrapper" | ||
9 | :rules="rules" | ||
10 | > | ||
11 | <el-form-item label="用户名:" required> | ||
12 | <el-input v-model="form.loginName" clearable disabled /> | ||
13 | </el-form-item> | ||
14 | <el-form-item label="姓名:"> | ||
15 | <el-input v-model="form.name" clearable /> | ||
16 | </el-form-item> | ||
17 | <el-form-item label="性别:"> | ||
18 | <el-radio-group v-model="form.sex"> | ||
19 | <el-radio | ||
20 | v-for="(item, index) in sexList" | ||
21 | :key="index" | ||
22 | :label="item.value" | ||
23 | >{{ item.name }}</el-radio | ||
24 | > | ||
25 | </el-radio-group> | ||
26 | </el-form-item> | ||
27 | <el-form-item label="身份证号:" prop="idCard"> | ||
28 | <el-input v-model="form.idCard" clearable /> | ||
29 | </el-form-item> | ||
30 | <el-form-item label="手机号码:" prop="mobilePhone"> | ||
31 | <el-input v-model="form.mobilePhone" clearable /> | ||
32 | </el-form-item> | ||
33 | <el-form-item label="办公电话:" prop="telephone"> | ||
34 | <el-input v-model="form.telephone" clearable /> | ||
35 | </el-form-item> | ||
36 | <el-form-item label="办公地址:"> | ||
37 | <el-input v-model="form.address" clearable /> | ||
38 | </el-form-item> | ||
39 | </el-form> | ||
40 | <div class="bottom-wrapper"> | ||
41 | <el-button type="primary" @click="updateInfo">更新信息</el-button> | ||
42 | </div> | ||
43 | </div> | ||
44 | </div> | ||
45 | </template> | ||
46 | |||
47 | <script> | ||
48 | // import { api, getAction, putAction, getDictItems } from '@api/manageApi' | ||
49 | export default { | ||
50 | props: { | ||
51 | // userInfo: { | ||
52 | // type: Object, | ||
53 | // default: null | ||
54 | // } | ||
55 | }, | ||
56 | data() { | ||
57 | return { | ||
58 | form: { | ||
59 | id: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
60 | name: "超级管理员", | ||
61 | sort: 1, | ||
62 | loginName: "admin", | ||
63 | email: null, | ||
64 | lastLoginTime: null, | ||
65 | mobilePhone: "18291003568", | ||
66 | isLocked: false, | ||
67 | status: "ACTIVE", | ||
68 | passwordChangeTime: "2021-12-10T08:01:01.569+0000", | ||
69 | idCard: "612725202111021521", | ||
70 | departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b", | ||
71 | departmentName: null, | ||
72 | organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa", | ||
73 | sex: "0", | ||
74 | isDuty: true, | ||
75 | code: "123324", | ||
76 | jobLevel: null, | ||
77 | telephone: "028-87720898", | ||
78 | address: "办公地点修改测试", | ||
79 | }, | ||
80 | sexList: [], | ||
81 | rules: { | ||
82 | mobilePhone: [ | ||
83 | { | ||
84 | pattern: | ||
85 | /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, | ||
86 | message: "手机号码格式有误", | ||
87 | trigger: "blur", | ||
88 | }, | ||
89 | ], | ||
90 | idCard: [ | ||
91 | { | ||
92 | pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, | ||
93 | message: "身份证号格式有误", | ||
94 | trigger: "blur", | ||
95 | }, | ||
96 | ], | ||
97 | telephone: [ | ||
98 | { | ||
99 | pattern: /\d{3}-\d{8}|\d{4}-\d{7}/, | ||
100 | message: "办公电话格式有误", | ||
101 | trigger: "blur", | ||
102 | }, | ||
103 | ], | ||
104 | }, | ||
105 | }; | ||
106 | }, | ||
107 | watch: { | ||
108 | // userInfo: { | ||
109 | // handler: function(val) { | ||
110 | // if (val) { | ||
111 | // this.getUserInfo(val.id) | ||
112 | // } | ||
113 | // } | ||
114 | // } | ||
115 | }, | ||
116 | mounted() { | ||
117 | // getDictItems('XB').then((res) => { | ||
118 | // if (res.status === 1) { | ||
119 | this.sexList = [ | ||
120 | { | ||
121 | id: "079c72b2-f3de-4a4f-b2a1-e5c8f085cc5f", | ||
122 | createdAt: "2021-06-11T02:42:02.000+0000", | ||
123 | updatedAt: "2021-09-03T09:21:46.000+0000", | ||
124 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
125 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
126 | sort: 2, | ||
127 | name: "男", | ||
128 | description: "", | ||
129 | code: "N362", | ||
130 | value: "0", | ||
131 | parentId: null, | ||
132 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
133 | version: 1, | ||
134 | valid: true, | ||
135 | standard: false, | ||
136 | standardName: null, | ||
137 | standardValue: null, | ||
138 | children: [], | ||
139 | commonName: "男(N362)", | ||
140 | }, | ||
141 | { | ||
142 | id: "4d6f845d-6f6a-4848-8fc2-a3760764c196", | ||
143 | createdAt: "2021-06-11T02:42:12.000+0000", | ||
144 | updatedAt: "2021-09-03T09:21:46.000+0000", | ||
145 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
146 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
147 | sort: 1, | ||
148 | name: "女", | ||
149 | description: "", | ||
150 | code: "N922", | ||
151 | value: "1", | ||
152 | parentId: null, | ||
153 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
154 | version: 1, | ||
155 | valid: true, | ||
156 | standard: false, | ||
157 | standardName: null, | ||
158 | standardValue: null, | ||
159 | children: [], | ||
160 | commonName: "女(N922)", | ||
161 | }, | ||
162 | { | ||
163 | id: "637c360b-d4e2-4afb-aa18-33624cf3abcb", | ||
164 | createdAt: "2021-06-11T02:42:29.000+0000", | ||
165 | updatedAt: "2021-09-03T09:21:43.000+0000", | ||
166 | createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
167 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
168 | sort: 0, | ||
169 | name: "保密", | ||
170 | description: "", | ||
171 | code: "BM816", | ||
172 | value: "2", | ||
173 | parentId: null, | ||
174 | baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019", | ||
175 | version: 1, | ||
176 | valid: true, | ||
177 | standard: false, | ||
178 | standardName: null, | ||
179 | standardValue: null, | ||
180 | children: [], | ||
181 | commonName: "保密(BM816)", | ||
182 | }, | ||
183 | ]; | ||
184 | // } else { | ||
185 | // this.$message.error({ message: res.message, showClose: true }) | ||
186 | // } | ||
187 | // }) | ||
188 | }, | ||
189 | methods: { | ||
190 | // getUserInfo(id) { | ||
191 | // getAction(`${api.users}/${id}`).then((res) => { | ||
192 | // if (res.status === 1) { | ||
193 | |||
194 | // } else { | ||
195 | // this.$message.error({ message: res.message, showClose: true }) | ||
196 | // } | ||
197 | // }) | ||
198 | // }, | ||
199 | // 更新信息 | ||
200 | updateInfo() { | ||
201 | // this.$refs.form.validate((valid) => { | ||
202 | // if (valid) { | ||
203 | // putAction(`${api.users}/${this.form.id}`, this.form).then((res) => { | ||
204 | // if (res.status === 1) { | ||
205 | // this.$message.success({ message: res.message, showClose: true }) | ||
206 | // this.getUserInfo(this.form.id) | ||
207 | // } else { | ||
208 | // this.$message.error({ message: res.message, showClose: true }) | ||
209 | // } | ||
210 | // }) | ||
211 | // } | ||
212 | // }) | ||
213 | }, | ||
214 | }, | ||
215 | }; | ||
216 | </script> | ||
217 | |||
218 | <style scoped lang="scss"> | ||
219 | .user-info { | ||
220 | margin: 0.1875rem 1.0417rem; | ||
221 | background: #ffffff; | ||
222 | max-height: 90%; | ||
223 | overflow-y: auto; | ||
224 | .form-wrapper { | ||
225 | padding: 24px 120px 0px; | ||
226 | .el-form-item { | ||
227 | margin-bottom: 24px; | ||
228 | .el-form-item__label { | ||
229 | color: #747e8c; | ||
230 | } | ||
231 | ::v-deep .el-input .el-input__inner { | ||
232 | padding: 0 8px; | ||
233 | height: 40px; | ||
234 | line-height: 40px; | ||
235 | border: 1px solid #6BC1FC; | ||
236 | } | ||
237 | } | ||
238 | } | ||
239 | .bottom-wrapper { | ||
240 | padding: 32px 120px 24px; | ||
241 | text-align: right; | ||
242 | } | ||
243 | } | ||
244 | </style> |
1 | <template> | ||
2 | <div class="information from-clues"> | ||
3 | <div class="from-clues-header"> | ||
4 | <el-form ref="ruleForm" label-width="100px"> | ||
5 | <el-form-item> | ||
6 | <Breadcrumb /> | ||
7 | </el-form-item> | ||
8 | <el-row class="mb-5"> | ||
9 | <el-col :span="3" class="btnColRight"> | ||
10 | <btn nativeType="cx" @click="information">基本信息</btn> | ||
11 | <btn nativeType="cx" @click="password">修改密码</btn> | ||
12 | </el-col> | ||
13 | </el-row> | ||
14 | </el-form> | ||
15 | </div> | ||
16 | <div class="from-clues-content"> | ||
17 | <div class="contentbox"> | ||
18 | <base-set v-show="isshow" /> | ||
19 | <password-edit v-show="!isshow" /> | ||
20 | </div> | ||
21 | </div> | ||
22 | </div> | ||
23 | </template> | ||
24 | <script> | ||
25 | import "@/utils/flexible.js"; | ||
26 | import BaseSet from "./base-set.vue"; | ||
27 | import PasswordEdit from "./password-edit.vue"; | ||
28 | export default { | ||
29 | components: { | ||
30 | BaseSet, | ||
31 | PasswordEdit, | ||
32 | }, | ||
33 | data() { | ||
34 | return { | ||
35 | active: "baseSet", | ||
36 | isshow: true, | ||
37 | }; | ||
38 | }, | ||
39 | computed: {}, | ||
40 | watch: {}, | ||
41 | created() {}, | ||
42 | mounted() {}, | ||
43 | methods: { | ||
44 | information() { | ||
45 | this.isshow = true; | ||
46 | }, | ||
47 | password() { | ||
48 | this.isshow = false; | ||
49 | }, | ||
50 | }, | ||
51 | }; | ||
52 | </script> | ||
53 | |||
54 | <style scoped lang="scss"> | ||
55 | @import "~@/styles/mixin.scss"; | ||
56 | @import "~@/styles/public.scss"; | ||
57 | .information{ | ||
58 | .btnColRight{ | ||
59 | margin-top: 20px; | ||
60 | } | ||
61 | /deep/.content { | ||
62 | .el-input__inner{ | ||
63 | background: none; | ||
64 | } | ||
65 | .user-info { | ||
66 | background: none; | ||
67 | } | ||
68 | } | ||
69 | /deep/.el-tabs { | ||
70 | |||
71 | .el-tabs__content { | ||
72 | height: 100%; | ||
73 | width: 100%; | ||
74 | |||
75 | |||
76 | } | ||
77 | } | ||
78 | .contentbox{ | ||
79 | height: 3.0854rem; | ||
80 | } | ||
81 | } | ||
82 | |||
83 | </style> |
1 | <template> | ||
2 | <div class="content"> | ||
3 | <div class="user-info"> | ||
4 | <el-form | ||
5 | ref="form" | ||
6 | label-width="100px" | ||
7 | :model="form" | ||
8 | class="form-wrapper" | ||
9 | :rules="rules" | ||
10 | > | ||
11 | <el-form-item label="旧密码:" required prop="oldPassword"> | ||
12 | <el-input | ||
13 | v-model="form.oldPassword" | ||
14 | clearable | ||
15 | type="password" | ||
16 | show-password | ||
17 | /> | ||
18 | </el-form-item> | ||
19 | <el-form-item label="新密码:" required prop="newPassword"> | ||
20 | <el-input | ||
21 | v-model="form.newPassword" | ||
22 | clearable | ||
23 | type="password" | ||
24 | show-password | ||
25 | /> | ||
26 | </el-form-item> | ||
27 | <el-form-item label="确认密码:" required prop="confirmPassword"> | ||
28 | <el-input | ||
29 | v-model="form.confirmPassword" | ||
30 | clearable | ||
31 | type="password" | ||
32 | show-password | ||
33 | /> | ||
34 | </el-form-item> | ||
35 | </el-form> | ||
36 | <div class="bottom-wrapper"> | ||
37 | <el-button type="primary" @click="updatePassword">确认修改</el-button> | ||
38 | </div> | ||
39 | </div> | ||
40 | </div> | ||
41 | </template> | ||
42 | |||
43 | <script> | ||
44 | // import { updateUserPassword } from '@api/organizationManage' | ||
45 | export default { | ||
46 | props: { | ||
47 | // userInfo: { | ||
48 | // type: Object, | ||
49 | // default: null | ||
50 | // } | ||
51 | }, | ||
52 | data() { | ||
53 | return { | ||
54 | form: {}, | ||
55 | sexList: [], | ||
56 | userId: '', | ||
57 | rules: { | ||
58 | oldPassword: [ | ||
59 | { required: true, message: '旧密码不能为空', trigger: 'blur' } | ||
60 | ], | ||
61 | newPassword: [ | ||
62 | { required: true, message: '新密码不能为空', trigger: 'blur' } | ||
63 | ], | ||
64 | confirmPassword: [ | ||
65 | { required: true, message: '确认密码不能为空', trigger: 'blur' }, | ||
66 | { validator: this.validatorConfirmPassword, trigger: 'blur' } | ||
67 | ] | ||
68 | } | ||
69 | } | ||
70 | }, | ||
71 | computed: {}, | ||
72 | watch: { | ||
73 | // userInfo: { | ||
74 | // handler: function(val) { | ||
75 | // if (val) { | ||
76 | // this.userId = val.id | ||
77 | // } | ||
78 | // } | ||
79 | // } | ||
80 | }, | ||
81 | mounted() {}, | ||
82 | methods: { | ||
83 | validatorConfirmPassword(rule, value, callback) { | ||
84 | const { newPassword } = this.form | ||
85 | if (value !== newPassword) { | ||
86 | callback('两次输入密码不一致') | ||
87 | } else { | ||
88 | callback() | ||
89 | } | ||
90 | }, | ||
91 | // 确认修改 | ||
92 | updatePassword() { | ||
93 | // this.$refs.form.validate((valid) => { | ||
94 | // if (valid) { | ||
95 | // const params = Object.assign({}, this.form, { id: this.userId }) | ||
96 | // updateUserPassword(params).then((res) => { | ||
97 | // if (res.status === 1) { | ||
98 | // this.$message.success({ message: res.message, showClose: true }) | ||
99 | // } else { | ||
100 | // this.$message.error({ message: res.message, showClose: true }) | ||
101 | // } | ||
102 | // }) | ||
103 | // } | ||
104 | // }) | ||
105 | } | ||
106 | } | ||
107 | } | ||
108 | </script> | ||
109 | |||
110 | <style scoped lang="scss"> | ||
111 | .user-info { | ||
112 | margin: 36px 200px; | ||
113 | background: #ffffff; | ||
114 | max-height: 90%; | ||
115 | overflow-y: auto; | ||
116 | .form-wrapper { | ||
117 | padding: 24px 120px 0px; | ||
118 | .el-form-item { | ||
119 | margin-bottom: 24px; | ||
120 | .el-form-item__label { | ||
121 | color: #747e8c; | ||
122 | } | ||
123 | ::v-deep .el-input .el-input__inner { | ||
124 | padding: 0 8px; | ||
125 | height: 40px; | ||
126 | line-height: 40px; | ||
127 | border: 1px solid #6BC1FC; | ||
128 | } | ||
129 | } | ||
130 | } | ||
131 | .bottom-wrapper { | ||
132 | padding: 32px 120px 24px; | ||
133 | text-align: right; | ||
134 | } | ||
135 | } | ||
136 | </style> |
... | @@ -4,8 +4,7 @@ | ... | @@ -4,8 +4,7 @@ |
4 | :title="title" | 4 | :title="title" |
5 | :show.sync="visible" | 5 | :show.sync="visible" |
6 | :width="'767px'" | 6 | :width="'767px'" |
7 | @close="close()" | 7 | @close="close()"> |
8 | > | ||
9 | <template slot="content"> | 8 | <template slot="content"> |
10 | <el-form ref="form" :model="form" :rules="rules"> | 9 | <el-form ref="form" :model="form" :rules="rules"> |
11 | <el-row :gutter="24"> | 10 | <el-row :gutter="24"> |
... | @@ -25,20 +24,18 @@ | ... | @@ -25,20 +24,18 @@ |
25 | :props="setProps" | 24 | :props="setProps" |
26 | placeholder="请选择上级菜单" | 25 | placeholder="请选择上级菜单" |
27 | clearable | 26 | clearable |
28 | @change="handleChange" | 27 | @change="handleChange" /> |
29 | /> | ||
30 | </el-form-item> | 28 | </el-form-item> |
31 | </el-col> | 29 | </el-col> |
32 | 30 | ||
33 | </el-row> | 31 | </el-row> |
34 | <el-row :gutter="24"> | 32 | <el-row :gutter="24"> |
35 | <el-col :span="12"> | 33 | <el-col :span="12"> |
36 | <el-form-item label="代码:" prop="code" label-width="54px"> | 34 | <el-form-item label="代码:" prop="code" label-width="54px"> |
37 | <el-input | 35 | <el-input |
38 | v-model="codeComputed" | 36 | v-model="codeComputed" |
39 | placeholder="请输入菜单代码" | 37 | placeholder="请输入菜单代码" |
40 | :disabled="type === 1" | 38 | :disabled="type === 1" /> |
41 | /> | ||
42 | </el-form-item> | 39 | </el-form-item> |
43 | </el-col> | 40 | </el-col> |
44 | </el-row> | 41 | </el-row> |
... | @@ -54,14 +51,12 @@ | ... | @@ -54,14 +51,12 @@ |
54 | <el-form-item label="浏览器跳转模式:" label-width="124px"> | 51 | <el-form-item label="浏览器跳转模式:" label-width="124px"> |
55 | <el-select | 52 | <el-select |
56 | v-model="form.jumpMode" | 53 | v-model="form.jumpMode" |
57 | placeholder="请选择浏览器跳转模式" | 54 | placeholder="请选择浏览器跳转模式"> |
58 | > | ||
59 | <el-option | 55 | <el-option |
60 | v-for="item in jumpModeList" | 56 | v-for="item in jumpModeList" |
61 | :key="item.value" | 57 | :key="item.value" |
62 | :label="item.name" | 58 | :label="item.name" |
63 | :value="item.value" | 59 | :value="item.value" /> |
64 | /> | ||
65 | </el-select> | 60 | </el-select> |
66 | </el-form-item> | 61 | </el-form-item> |
67 | </el-col> | 62 | </el-col> |
... | @@ -71,13 +66,11 @@ | ... | @@ -71,13 +66,11 @@ |
71 | <el-form-item | 66 | <el-form-item |
72 | label="配置参数:" | 67 | label="配置参数:" |
73 | label-width="124px" | 68 | label-width="124px" |
74 | class="form-item-mb0" | 69 | class="form-item-mb0"> |
75 | > | ||
76 | <!-- 配置参数 --> | 70 | <!-- 配置参数 --> |
77 | <JsonEditor | 71 | <JsonEditor |
78 | :result-infos="form.metadata" | 72 | :result-infos="form.metadata" |
79 | @getJsonString="getJsonString" | 73 | @getJsonString="getJsonString" /> |
80 | /> | ||
81 | </el-form-item> | 74 | </el-form-item> |
82 | </el-col> | 75 | </el-col> |
83 | </el-row> | 76 | </el-row> |
... | @@ -86,11 +79,9 @@ | ... | @@ -86,11 +79,9 @@ |
86 | <template slot="footer"> | 79 | <template slot="footer"> |
87 | <el-button class="cancel-button" @click="close()">取消</el-button> | 80 | <el-button class="cancel-button" @click="close()">取消</el-button> |
88 | 81 | ||
89 | |||
90 | <el-button | 82 | <el-button |
91 | type="primary" | 83 | type="primary" |
92 | @click="submitForm()" | 84 | @click="submitForm()">保存</el-button> |
93 | >保存</el-button> | ||
94 | </template> | 85 | </template> |
95 | </Dialog> | 86 | </Dialog> |
96 | <!-- 图标列表 --> | 87 | <!-- 图标列表 --> |
... | @@ -99,186 +90,186 @@ | ... | @@ -99,186 +90,186 @@ |
99 | </template> | 90 | </template> |
100 | 91 | ||
101 | <script> | 92 | <script> |
102 | import Dialog from "@/components/Dialog/"; | 93 | import Dialog from "@/components/Dialog/"; |
103 | import { getParentMenuListAction } from '@/api/quanxianmanagement' | 94 | import { getParentMenuListAction } from '@/api/quanxianmanagement' |
104 | import JsonEditor from '@/components/JsonEditors' | 95 | import JsonEditor from '@/components/JsonEditors' |
105 | import IconList from '@/components/IconList' | 96 | import IconList from '@/components/IconList' |
106 | import { validateCode } from '@/utils/validate'; | 97 | import { validateCode } from '@/utils/validate'; |
107 | import { api, httpAction } from '@/api/manageApi' | 98 | import { api, httpAction } from '@/api/manageApi' |
108 | export default { | 99 | export default { |
109 | name: 'MenuModal', | 100 | name: 'MenuModal', |
110 | components: { | 101 | components: { |
111 | IconList, | 102 | IconList, |
112 | JsonEditor, | 103 | JsonEditor, |
113 | Dialog | 104 | Dialog |
114 | }, | ||
115 | props: { | ||
116 | productId: { | ||
117 | type: String, | ||
118 | default: '' | ||
119 | } | ||
120 | }, | ||
121 | data() { | ||
122 | return { | ||
123 | form: { | ||
124 | icon: '', | ||
125 | code: '' | ||
126 | }, | ||
127 | rules: { | ||
128 | name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }], | ||
129 | code: [ | ||
130 | { required: true, message: '必填', trigger: 'blur' }, | ||
131 | { validator: validateCode, trigger: 'blur' } | ||
132 | ] | ||
133 | }, | ||
134 | title: '', | ||
135 | type: '', | ||
136 | visible: false, | ||
137 | parentMenuList: [], | ||
138 | menuKey: 0, | ||
139 | jumpModeList: [ | ||
140 | { name: '在当前页面显示', value: 1 }, | ||
141 | { name: '跳转到新页面', value: 2 } | ||
142 | ], | ||
143 | setProps: { | ||
144 | value: 'id', | ||
145 | label: 'name', | ||
146 | children: 'children', | ||
147 | expandTrigger: 'hover', | ||
148 | checkStrictly: true, // 可取消关联,选择任意一级选项 | ||
149 | emitPath: false | ||
150 | }, | ||
151 | dataUrl: api.menus | ||
152 | } | ||
153 | }, | ||
154 | computed: { | ||
155 | codeComputed: { | ||
156 | get: function() { | ||
157 | return this.form.code | ||
158 | }, | ||
159 | set: function(val) { | ||
160 | this.form.code = val.toUpperCase() | ||
161 | } | ||
162 | } | ||
163 | }, | ||
164 | created() {}, | ||
165 | mounted() {}, | ||
166 | methods: { | ||
167 | // 获取父级菜单 | ||
168 | getParentMenuList(id) { | ||
169 | |||
170 | getParentMenuListAction(id).then((res) => { | ||
171 | if (res.status === 1) { | ||
172 | const list = this.$dealArrChildren(res.content) | ||
173 | if (id) { | ||
174 | this.parentMenuList = this.$dealArrDisabled( | ||
175 | this.$deepCopy(list), | ||
176 | id | ||
177 | ) | ||
178 | this.menuKey++ | ||
179 | } else { | ||
180 | this.parentMenuList = list | ||
181 | } | ||
182 | } else { | ||
183 | this.$message.error({ message: res.message, showClose: true }) | ||
184 | } | ||
185 | }) | ||
186 | }, | ||
187 | getIconList() { | ||
188 | this.$refs.iconList.show(true) | ||
189 | }, | ||
190 | getIconName(data) { | ||
191 | this.form.icon = data | ||
192 | }, | 105 | }, |
193 | // 配置参数 | 106 | props: { |
194 | getJsonString(data) { | 107 | productId: { |
195 | this.form.metadata = data | 108 | type: String, |
196 | }, | 109 | default: '' |
197 | // 新增菜单 | 110 | } |
198 | add() { | ||
199 | this.getParentMenuList("2925fdeb-ddeb-4c15-8ee0-7bc3aa75ec2b") | ||
200 | this.visible = true | ||
201 | this.type = 0 | ||
202 | this.form.jumpMode = 1 | ||
203 | }, | 111 | }, |
204 | // 编辑菜单 | 112 | data () { |
205 | edit(record) { | 113 | return { |
206 | this.type = 1 | 114 | form: { |
207 | // 若有id为编辑 | 115 | icon: '', |
208 | if (record.id) { | 116 | code: '' |
209 | this.$nextTick(() => { | 117 | }, |
210 | this.form = Object.assign({}, record) | 118 | rules: { |
211 | this.getParentMenuList(this.productId) | 119 | name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }], |
212 | }) | 120 | code: [ |
121 | { required: true, message: '必填', trigger: 'blur' }, | ||
122 | { validator: validateCode, trigger: 'blur' } | ||
123 | ] | ||
124 | }, | ||
125 | title: '', | ||
126 | type: '', | ||
127 | visible: false, | ||
128 | parentMenuList: [], | ||
129 | menuKey: 0, | ||
130 | jumpModeList: [ | ||
131 | { name: '在当前页面显示', value: 1 }, | ||
132 | { name: '跳转到新页面', value: 2 } | ||
133 | ], | ||
134 | setProps: { | ||
135 | value: 'id', | ||
136 | label: 'name', | ||
137 | children: 'children', | ||
138 | expandTrigger: 'hover', | ||
139 | checkStrictly: true, // 可取消关联,选择任意一级选项 | ||
140 | emitPath: false | ||
141 | }, | ||
142 | dataUrl: api.menus | ||
213 | } | 143 | } |
214 | this.visible = true | ||
215 | }, | 144 | }, |
216 | // 选择上级菜单 | 145 | computed: { |
217 | handleChange(value) { | 146 | codeComputed: { |
218 | this.form.parentId = value | 147 | get: function () { |
148 | return this.form.code | ||
149 | }, | ||
150 | set: function (val) { | ||
151 | this.form.code = val.toUpperCase() | ||
152 | } | ||
153 | } | ||
219 | }, | 154 | }, |
220 | // 保存 | 155 | created () { }, |
221 | submitForm(submitType) { | 156 | mounted () { }, |
222 | this.$refs.form.validate((valid) => { | 157 | methods: { |
223 | if (valid) { | 158 | // 获取父级菜单 |
224 | let method = '' | 159 | getParentMenuList (id) { |
225 | let url = '' | 160 | |
226 | const formData = this.form | 161 | getParentMenuListAction(id).then((res) => { |
227 | formData.productId = this.productId | 162 | if (res.status === 1) { |
228 | if (!formData.id) { | 163 | const list = this.$dealArrChildren(res.content) |
229 | method = 'post' | 164 | if (id) { |
230 | url = this.dataUrl | 165 | this.parentMenuList = this.$dealArrDisabled( |
166 | this.$deepCopy(list), | ||
167 | id | ||
168 | ) | ||
169 | this.menuKey++ | ||
170 | } else { | ||
171 | this.parentMenuList = list | ||
172 | } | ||
231 | } else { | 173 | } else { |
232 | method = 'put' | 174 | this.$message.error({ message: res.message, showClose: true }) |
233 | url = `${this.dataUrl}/${formData.id}` | ||
234 | } | 175 | } |
235 | httpAction(url, formData, method) | 176 | }) |
236 | .then((res) => { | 177 | }, |
237 | if (res.status === 1) { | 178 | getIconList () { |
238 | this.$message.success({ | 179 | this.$refs.iconList.show(true) |
239 | message: res.message, | 180 | }, |
240 | showClose: true | 181 | getIconName (data) { |
241 | }) | 182 | this.form.icon = data |
183 | }, | ||
184 | // 配置参数 | ||
185 | getJsonString (data) { | ||
186 | this.form.metadata = data | ||
187 | }, | ||
188 | // 新增菜单 | ||
189 | add () { | ||
190 | this.getParentMenuList(this.productId) | ||
191 | this.visible = true | ||
192 | this.type = 0 | ||
193 | this.form.jumpMode = 1 | ||
194 | }, | ||
195 | // 编辑菜单 | ||
196 | edit (record) { | ||
197 | this.type = 1 | ||
198 | // 若有id为编辑 | ||
199 | if (record.id) { | ||
200 | this.$nextTick(() => { | ||
201 | this.form = Object.assign({}, record) | ||
202 | this.getParentMenuList(this.productId) | ||
203 | }) | ||
204 | } | ||
205 | this.visible = true | ||
206 | }, | ||
207 | // 选择上级菜单 | ||
208 | handleChange (value) { | ||
209 | this.form.parentId = value | ||
210 | }, | ||
211 | // 保存 | ||
212 | submitForm (submitType) { | ||
213 | this.$refs.form.validate((valid) => { | ||
214 | if (valid) { | ||
215 | let method = '' | ||
216 | let url = '' | ||
217 | const formData = this.form | ||
218 | formData.productId = this.productId | ||
219 | if (!formData.id) { | ||
220 | method = 'post' | ||
221 | url = this.dataUrl | ||
222 | } else { | ||
223 | method = 'put' | ||
224 | url = `${this.dataUrl}/${formData.id}` | ||
225 | } | ||
226 | httpAction(url, formData, method) | ||
227 | .then((res) => { | ||
228 | if (res.status === 1) { | ||
229 | this.$message.success({ | ||
230 | message: res.message, | ||
231 | showClose: true | ||
232 | }) | ||
242 | 233 | ||
243 | this.resetForm() | 234 | this.resetForm() |
244 | this.$emit('ok') | 235 | this.$emit('ok') |
245 | } else { | 236 | } else { |
246 | this.$message.error({ message: res.message, showClose: true }) | 237 | this.$message.error({ message: res.message, showClose: true }) |
247 | } | 238 | } |
248 | }) | 239 | }) |
249 | .catch((err) => { | 240 | .catch((err) => { |
250 | console.log(err) | 241 | console.log(err) |
251 | }) | 242 | }) |
243 | } | ||
244 | }) | ||
245 | }, | ||
246 | resetForm () { | ||
247 | this.$refs.form.resetFields() | ||
248 | this.form = { | ||
249 | icon: '', | ||
250 | code: '' | ||
252 | } | 251 | } |
253 | }) | 252 | }, |
254 | }, | 253 | close () { |
255 | resetForm() { | 254 | this.resetForm() |
256 | this.$refs.form.resetFields() | 255 | this.visible = false |
257 | this.form = { | ||
258 | icon: '', | ||
259 | code: '' | ||
260 | } | 256 | } |
261 | }, | ||
262 | close() { | ||
263 | this.resetForm() | ||
264 | this.visible = false | ||
265 | } | 257 | } |
266 | } | 258 | } |
267 | } | ||
268 | </script> | 259 | </script> |
269 | <style scoped lang="scss"> | 260 | <style scoped lang="scss"> |
270 | /deep/.el-dialog__header { | 261 | /deep/.el-dialog__header { |
271 | text-align: center; | 262 | text-align: center; |
272 | margin-bottom: 10px; | 263 | margin-bottom: 10px; |
273 | .el-dialog__title { | 264 | .el-dialog__title { |
274 | color: white; | 265 | color: white; |
266 | } | ||
275 | } | 267 | } |
276 | } | ||
277 | 268 | ||
278 | /deep/.el-form-item__label{ | 269 | /deep/.el-form-item__label { |
279 | color: white; | 270 | color: white; |
280 | } | 271 | } |
281 | /deep/.el-input__inner{ | 272 | /deep/.el-input__inner { |
282 | background-color: #07388B; | 273 | background-color: #07388b; |
283 | } | 274 | } |
284 | </style> | 275 | </style> | ... | ... |
... | @@ -15,7 +15,7 @@ | ... | @@ -15,7 +15,7 @@ |
15 | <el-tab-pane label="菜单配置" name="second"></el-tab-pane> | 15 | <el-tab-pane label="菜单配置" name="second"></el-tab-pane> |
16 | </el-tabs> | 16 | </el-tabs> |
17 | <lb-table | 17 | <lb-table |
18 | v-show="activeName == 'first'" | 18 | v-if="activeName == 'first'" |
19 | ref="multipleTable" | 19 | ref="multipleTable" |
20 | :pagination="false" | 20 | :pagination="false" |
21 | :column="usertableData.column" | 21 | :column="usertableData.column" |
... | @@ -26,7 +26,7 @@ | ... | @@ -26,7 +26,7 @@ |
26 | </lb-table> | 26 | </lb-table> |
27 | <lb-table | 27 | <lb-table |
28 | :key="menukey" | 28 | :key="menukey" |
29 | v-show="activeName == 'second'" | 29 | v-if="activeName == 'second'" |
30 | ref="multipleTable1" | 30 | ref="multipleTable1" |
31 | :pagination="false" | 31 | :pagination="false" |
32 | :column="menutableData.column" | 32 | :column="menutableData.column" |
... | @@ -55,14 +55,8 @@ | ... | @@ -55,14 +55,8 @@ |
55 | menutableData: { | 55 | menutableData: { |
56 | column: [ | 56 | column: [ |
57 | { | 57 | { |
58 | label: "序号", | ||
59 | type: "index", | ||
60 | width: "50", | ||
61 | // index: this.indexMethod, | ||
62 | }, | ||
63 | { | ||
64 | prop: "name", | 58 | prop: "name", |
65 | width: 330, | 59 | width: 830, |
66 | label: "菜单名称", | 60 | label: "菜单名称", |
67 | } | 61 | } |
68 | ].concat([ | 62 | ].concat([ | ... | ... |
... | @@ -15,9 +15,7 @@ | ... | @@ -15,9 +15,7 @@ |
15 | v-for="(item, index) in sexList" | 15 | v-for="(item, index) in sexList" |
16 | :key="index" | 16 | :key="index" |
17 | v-model="form.sex" | 17 | v-model="form.sex" |
18 | :label="item.value" | 18 | :label="item.value">{{ item.name }}</el-radio> |
19 | >{{ item.name }}</el-radio | ||
20 | > | ||
21 | </el-form-item> | 19 | </el-form-item> |
22 | </el-col> | 20 | </el-col> |
23 | <el-col :span="6"> | 21 | <el-col :span="6"> |
... | @@ -36,8 +34,7 @@ | ... | @@ -36,8 +34,7 @@ |
36 | <el-input | 34 | <el-input |
37 | v-model="form.loginName" | 35 | v-model="form.loginName" |
38 | :disabled="showLoginName" | 36 | :disabled="showLoginName" |
39 | placeholder="用户名" | 37 | placeholder="用户名" /> |
40 | /> | ||
41 | </el-form-item> | 38 | </el-form-item> |
42 | </el-col> | 39 | </el-col> |
43 | </el-row> | 40 | </el-row> |
... | @@ -51,12 +48,10 @@ | ... | @@ -51,12 +48,10 @@ |
51 | <el-form-item | 48 | <el-form-item |
52 | label="手机号码:" | 49 | label="手机号码:" |
53 | prop="mobilePhone" | 50 | prop="mobilePhone" |
54 | label-width="72px" | 51 | label-width="72px"> |
55 | > | ||
56 | <el-input | 52 | <el-input |
57 | v-model="form.mobilePhone" | 53 | v-model="form.mobilePhone" |
58 | placeholder="手机号码" | 54 | placeholder="手机号码" /> |
59 | /> | ||
60 | </el-form-item> | 55 | </el-form-item> |
61 | </el-col> | 56 | </el-col> |
62 | </el-row> | 57 | </el-row> |
... | @@ -65,14 +60,12 @@ | ... | @@ -65,14 +60,12 @@ |
65 | <el-form-item label="最高职务级别:" label-width="100px"> | 60 | <el-form-item label="最高职务级别:" label-width="100px"> |
66 | <el-select | 61 | <el-select |
67 | v-model="form.jobLevel" | 62 | v-model="form.jobLevel" |
68 | placeholder="最高职务级别" | 63 | placeholder="最高职务级别"> |
69 | > | ||
70 | <el-option | 64 | <el-option |
71 | v-for="item in levelList" | 65 | v-for="item in levelList" |
72 | :key="item.value" | 66 | :key="item.value" |
73 | :label="item.name" | 67 | :label="item.name" |
74 | :value="item.value" | 68 | :value="item.value" /> |
75 | /> | ||
76 | </el-select> | 69 | </el-select> |
77 | </el-form-item> | 70 | </el-form-item> |
78 | </el-col> | 71 | </el-col> |
... | @@ -87,8 +80,7 @@ | ... | @@ -87,8 +80,7 @@ |
87 | <el-form-item | 80 | <el-form-item |
88 | label="办公地点:" | 81 | label="办公地点:" |
89 | label-width="100px" | 82 | label-width="100px" |
90 | class="form-item-mb0" | 83 | class="form-item-mb0"> |
91 | > | ||
92 | <el-input v-model="form.address" placeholder="办公地点" /> | 84 | <el-input v-model="form.address" placeholder="办公地点" /> |
93 | </el-form-item> | 85 | </el-form-item> |
94 | </el-col> | 86 | </el-col> |
... | @@ -103,87 +95,87 @@ | ... | @@ -103,87 +95,87 @@ |
103 | </template> | 95 | </template> |
104 | 96 | ||
105 | <script> | 97 | <script> |
106 | import { api, httpAction } from '@/api/manageApi' | 98 | import { api, httpAction } from '@/api/manageApi' |
107 | import Dialog from "@/components/Dialog/"; | 99 | import Dialog from "@/components/Dialog/"; |
108 | export default { | 100 | export default { |
109 | name: "", | 101 | name: "", |
110 | components: { Dialog }, | 102 | components: { Dialog }, |
111 | props: {}, | 103 | props: {}, |
112 | data() { | 104 | data () { |
113 | return { | 105 | return { |
114 | form: { | 106 | form: { |
115 | sex: "0", | 107 | sex: "0", |
116 | }, | 108 | }, |
117 | rules: { | 109 | rules: { |
118 | name: [{ required: true, message: "请输入姓名", trigger: "blur" }], | 110 | name: [{ required: true, message: "请输入姓名", trigger: "blur" }], |
119 | code: [{ required: true, message: "请输入工号", trigger: "blur" }], | 111 | code: [{ required: true, message: "请输入工号", trigger: "blur" }], |
120 | mobilePhone: [{ validator: "sddd", trigger: "blur" }], | 112 | mobilePhone: [{ validator: "sddd", trigger: "blur" }], |
121 | loginName: [ | 113 | loginName: [ |
122 | { required: true, message: "请输入用户名", trigger: "blur" }, | 114 | { required: true, message: "请输入用户名", trigger: "blur" }, |
123 | ], | 115 | ], |
124 | }, | 116 | }, |
125 | title: "", | 117 | title: "", |
126 | visible: false, | 118 | visible: false, |
127 | showLoginName: false, | 119 | showLoginName: false, |
128 | sexList: [{lable:"0",value:"0",name:"男"},{lable:"1",value:"1",name:"女"}], | 120 | sexList: [{ lable: "0", value: "0", name: "男" }, { lable: "1", value: "1", name: "女" }], |
129 | levelList: [{lable:"0",value:"0",name:"干事"},{lable:"1",value:"1",name:"经理"}], | 121 | levelList: [{ lable: "0", value: "0", name: "干事" }, { lable: "1", value: "1", name: "经理" }], |
130 | dataUrl: api.users | 122 | dataUrl: api.users |
131 | }; | 123 | }; |
132 | }, | ||
133 | computed: { | ||
134 | departmentid() { | ||
135 | return this.$store.state.user.userInfo; | ||
136 | }, | ||
137 | }, | ||
138 | watch: {}, | ||
139 | created() {}, | ||
140 | mounted() {}, | ||
141 | methods: { | ||
142 | // initDictConfig() { | ||
143 | // getDictItems('XB').then((res) => { | ||
144 | // if (res.status === 1) { | ||
145 | // this.sexList = res.content | ||
146 | // } else { | ||
147 | // this.$message.error({ message: res.message, showClose: true }) | ||
148 | // } | ||
149 | // }) | ||
150 | // getDictItems('ZWJB').then((res) => { | ||
151 | // if (res.status === 1) { | ||
152 | // this.levelList = res.content | ||
153 | // } else { | ||
154 | // this.$message.error({ message: res.message, showClose: true }) | ||
155 | // } | ||
156 | // }) | ||
157 | // }, | ||
158 | // 添加人员 | ||
159 | add() { | ||
160 | this.visible = true; | ||
161 | // this.type = 0 | ||
162 | this.showLoginName = false | ||
163 | }, | 124 | }, |
164 | // 编辑 | 125 | computed: { |
165 | edit(record) { | 126 | departmentid () { |
166 | // this.initDictConfig() | 127 | return this.$store.state.user.userInfo; |
167 | this.showLoginName = true | 128 | }, |
168 | // 若有id为编辑 | ||
169 | if (record) { | ||
170 | this.$nextTick(() => { | ||
171 | this.form = Object.assign({}, record) | ||
172 | }) | ||
173 | } | ||
174 | this.visible = true | ||
175 | }, | ||
176 | handleChange(value) { | ||
177 | this.form.departmentId = value; | ||
178 | }, | 129 | }, |
179 | // 保存 | 130 | watch: {}, |
180 | submitForm(submitType) { | 131 | created () { }, |
132 | mounted () { }, | ||
133 | methods: { | ||
134 | // initDictConfig() { | ||
135 | // getDictItems('XB').then((res) => { | ||
136 | // if (res.status === 1) { | ||
137 | // this.sexList = res.content | ||
138 | // } else { | ||
139 | // this.$message.error({ message: res.message, showClose: true }) | ||
140 | // } | ||
141 | // }) | ||
142 | // getDictItems('ZWJB').then((res) => { | ||
143 | // if (res.status === 1) { | ||
144 | // this.levelList = res.content | ||
145 | // } else { | ||
146 | // this.$message.error({ message: res.message, showClose: true }) | ||
147 | // } | ||
148 | // }) | ||
149 | // }, | ||
150 | // 添加人员 | ||
151 | adds () { | ||
152 | this.visible = true; | ||
153 | // this.type = 0 | ||
154 | this.showLoginName = false | ||
155 | }, | ||
156 | // 编辑 | ||
157 | edit (record) { | ||
158 | // this.initDictConfig() | ||
159 | this.showLoginName = true | ||
160 | // 若有id为编辑 | ||
161 | if (record) { | ||
162 | this.$nextTick(() => { | ||
163 | this.form = Object.assign({}, record) | ||
164 | }) | ||
165 | } | ||
166 | this.visible = true | ||
167 | }, | ||
168 | handleChange (value) { | ||
169 | this.form.departmentId = value; | ||
170 | }, | ||
171 | // 保存 | ||
172 | submitForm (submitType) { | ||
181 | this.$refs.form.validate((valid) => { | 173 | this.$refs.form.validate((valid) => { |
182 | if (valid) { | 174 | if (valid) { |
183 | let method = '' | 175 | let method = '' |
184 | let url = '' | 176 | let url = '' |
185 | this.form.organizationId=this.departmentid.organizationId; | 177 | this.form.organizationId = this.departmentid.organizationId; |
186 | this.form.departmentId=this.departmentid.departmentId; | 178 | this.form.departmentId = this.departmentid.departmentId; |
187 | const formData = this.form | 179 | const formData = this.form |
188 | if (!formData.id) { | 180 | if (!formData.id) { |
189 | method = 'post' | 181 | method = 'post' |
... | @@ -197,11 +189,11 @@ export default { | ... | @@ -197,11 +189,11 @@ export default { |
197 | if (res.status === 1) { | 189 | if (res.status === 1) { |
198 | this.$message.success({ message: res.message, showClose: true }) | 190 | this.$message.success({ message: res.message, showClose: true }) |
199 | 191 | ||
200 | this.resetForm() | 192 | this.resetForm() |
201 | 193 | ||
202 | this.close() | 194 | this.close() |
203 | 195 | ||
204 | this.$emit('ok') | 196 | this.$emit('ok') |
205 | } else { | 197 | } else { |
206 | this.$message.error({ message: res.message, showClose: true }) | 198 | this.$message.error({ message: res.message, showClose: true }) |
207 | } | 199 | } |
... | @@ -212,30 +204,30 @@ export default { | ... | @@ -212,30 +204,30 @@ export default { |
212 | } | 204 | } |
213 | }) | 205 | }) |
214 | }, | 206 | }, |
215 | resetForm() { | 207 | resetForm () { |
216 | this.form = { | 208 | this.form = { |
217 | sex: '0' | 209 | sex: '0' |
210 | } | ||
211 | this.$refs.form.resetFields() | ||
212 | }, | ||
213 | close () { | ||
214 | this.resetForm() | ||
215 | this.visible = false | ||
218 | } | 216 | } |
219 | this.$refs.form.resetFields() | ||
220 | }, | 217 | }, |
221 | close() { | 218 | }; |
222 | this.resetForm() | ||
223 | this.visible = false | ||
224 | } | ||
225 | }, | ||
226 | }; | ||
227 | </script> | 219 | </script> |
228 | <style scoped lang="scss"> | 220 | <style scoped lang="scss"> |
229 | /deep/.el-input__inner { | 221 | /deep/.el-input__inner { |
230 | background: #07388B; | 222 | background: #07388b; |
231 | border-radius: 2px; | 223 | border-radius: 2px; |
232 | border: 1px solid #6BC1FC; | 224 | border: 1px solid #6bc1fc; |
233 | } | 225 | } |
234 | /deep/.el-textarea__inner{ | 226 | /deep/.el-textarea__inner { |
235 | background: #07388B; | 227 | background: #07388b; |
236 | color: #fff; | 228 | color: #fff; |
237 | } | 229 | } |
238 | /deep/.el-form-item__label{ | 230 | /deep/.el-form-item__label { |
239 | color:#fff; | 231 | color: #fff; |
240 | } | 232 | } |
241 | </style> | 233 | </style> | ... | ... |
... | @@ -25,296 +25,295 @@ | ... | @@ -25,296 +25,295 @@ |
25 | :column="tableData.columns" | 25 | :column="tableData.columns" |
26 | :data="tableData.data" | 26 | :data="tableData.data" |
27 | :expand-row-keys="keyList" | 27 | :expand-row-keys="keyList" |
28 | row-key="dictid" | 28 | row-key="dictid"> |
29 | > | ||
30 | </lb-table> | 29 | </lb-table> |
31 | </div> | 30 | </div> |
32 | <edit-dialog ref="dialogForm" @ok="reloadTableData"/> | 31 | <EditDialog ref="dialogForm" @ok="reloadTableData" /> |
33 | </div> | 32 | </div> |
34 | </template> | 33 | </template> |
35 | <script> | 34 | <script> |
36 | import { | 35 | import { |
37 | getUuid, | 36 | getUuid, |
38 | judgeSort, | 37 | judgeSort, |
39 | realMove, | 38 | realMove, |
40 | findParents, | 39 | findParents, |
41 | removeTreeListItem, | 40 | removeTreeListItem, |
42 | } from "@/utils/operation"; | 41 | } from "@/utils/operation"; |
43 | import { | 42 | import { |
44 | resetPassword, | 43 | resetPassword, |
45 | getUserList, | 44 | getUserList, |
46 | } from "@/api/quanxianmanagement"; | 45 | } from "@/api/quanxianmanagement"; |
47 | import { api, deleteAction } from '@/api/manageApi' | 46 | import { api, deleteAction } from '@/api/manageApi' |
48 | import data from "./data"; | 47 | import data from "./data"; |
49 | import { deleteDomStr } from '@/utils/proDomStr' | 48 | import { deleteDomStr } from '@/utils/proDomStr' |
50 | import sjsbTask from "@/api/sjsbTask.js"; | 49 | import sjsbTask from "@/api/sjsbTask.js"; |
51 | import tableMixin from "@/mixins/tableMixin.js"; | 50 | import tableMixin from "@/mixins/tableMixin.js"; |
52 | import EditDialog from "./edit-dialog.vue"; | 51 | import EditDialog from "./edit-dialog.vue"; |
53 | export default { | 52 | export default { |
54 | name: "menus", | 53 | name: "menus", |
55 | mixins: [tableMixin], | 54 | mixins: [tableMixin], |
56 | components: { | 55 | components: { |
57 | EditDialog, | 56 | EditDialog, |
58 | }, | 57 | }, |
59 | data() { | 58 | data () { |
60 | return { | 59 | return { |
61 | taskData: null, | 60 | taskData: null, |
62 | keyList: [], | 61 | keyList: [], |
63 | form: { | 62 | form: { |
64 | job_name: "", | 63 | job_name: "", |
65 | currentPage: 1, | 64 | currentPage: 1, |
66 | }, | ||
67 | queryParam: {}, | ||
68 | selectType: "0", | ||
69 | queryName: "", | ||
70 | organizationId: "", // 组织机构ID | ||
71 | departmentId: "", // 部门ID | ||
72 | departmentList: [], // 部门列表 | ||
73 | levelList: [], // 职务级别 | ||
74 | sexList: [], | ||
75 | typeOptions: [ | ||
76 | { | ||
77 | value: "0", | ||
78 | label: "姓名", | ||
79 | }, | ||
80 | { | ||
81 | value: "1", | ||
82 | label: "工号", | ||
83 | }, | ||
84 | { | ||
85 | value: "2", | ||
86 | label: "部门", | ||
87 | }, | ||
88 | { | ||
89 | value: "3", | ||
90 | label: "机构", | ||
91 | }, | 65 | }, |
92 | ], | 66 | queryParam: {}, |
93 | 67 | selectType: "0", | |
94 | selectionList: [], | 68 | queryName: "", |
95 | tableData: { | 69 | organizationId: "", // 组织机构ID |
96 | columns: [ | 70 | departmentId: "", // 部门ID |
71 | departmentList: [], // 部门列表 | ||
72 | levelList: [], // 职务级别 | ||
73 | sexList: [], | ||
74 | typeOptions: [ | ||
75 | { | ||
76 | value: "0", | ||
77 | label: "姓名", | ||
78 | }, | ||
79 | { | ||
80 | value: "1", | ||
81 | label: "工号", | ||
82 | }, | ||
97 | { | 83 | { |
98 | label: "序号", | 84 | value: "2", |
99 | type: "index", | 85 | label: "部门", |
100 | width: "50", | ||
101 | index: this.indexMethod, | ||
102 | }, | 86 | }, |
103 | ] | 87 | { |
104 | .concat(data.columns()) | 88 | value: "3", |
105 | .concat([ | 89 | label: "机构", |
106 | { | ||
107 | label: "负责人", | ||
108 | render: (h, scope) => { | ||
109 | return ( | ||
110 | <i v-show={scope.row.isDuty!==null} class="el-icon-check" /> | ||
111 | ) | ||
112 | } | ||
113 | }, | 90 | }, |
91 | ], | ||
92 | |||
93 | selectionList: [], | ||
94 | tableData: { | ||
95 | columns: [ | ||
114 | { | 96 | { |
115 | label: "排序", | 97 | label: "序号", |
116 | width: 280, | 98 | type: "index", |
117 | render: (h, scope) => { | 99 | width: "50", |
118 | return ( | 100 | index: this.indexMethod, |
119 | <div> | ||
120 | <el-button | ||
121 | type="text" | ||
122 | disabled={scope.row.isTop} | ||
123 | onClick={() => { | ||
124 | this.moveUpward(scope.$index, scope.row); | ||
125 | }} | ||
126 | > | ||
127 | 上移 | ||
128 | </el-button> | ||
129 | <el-button | ||
130 | type="text" | ||
131 | disabled={scope.row.isBottom} | ||
132 | onClick={() => { | ||
133 | this.moveDown(scope.$index, scope.row); | ||
134 | }} | ||
135 | > | ||
136 | 下移 | ||
137 | </el-button> | ||
138 | </div> | ||
139 | ); | ||
140 | }, | ||
141 | }, | 101 | }, |
142 | { | 102 | ] |
143 | label: "操作", | 103 | .concat(data.columns()) |
144 | width: 380, | 104 | .concat([ |
145 | render: (h, scope) => { | 105 | { |
146 | return ( | 106 | label: "负责人", |
147 | <div> | 107 | render: (h, scope) => { |
148 | <el-button | 108 | return ( |
149 | type="text" | 109 | <i v-show={scope.row.isDuty !== null} class="el-icon-check" /> |
150 | size="mini" | 110 | ) |
151 | icon="el-icon-video-pause" | 111 | } |
152 | onClick={() => { | ||
153 | this.resetPassword(scope.row.id); | ||
154 | }} | ||
155 | > | ||
156 | 重置 | ||
157 | </el-button> | ||
158 | <el-button | ||
159 | type="text" | ||
160 | size="mini" | ||
161 | icon="el-icon-edit" | ||
162 | onClick={() => { | ||
163 | this.handleEdit(scope.row); | ||
164 | }} | ||
165 | > | ||
166 | 修改 | ||
167 | </el-button> | ||
168 | <el-button | ||
169 | type="text" | ||
170 | size="mini" | ||
171 | icon="el-icon-delete" | ||
172 | style="color:#F56C6C" | ||
173 | onClick={() => { | ||
174 | this.handleDelete(scope.row.id, scope.row.name); | ||
175 | }} | ||
176 | > | ||
177 | 删除 | ||
178 | </el-button> | ||
179 | </div> | ||
180 | ); | ||
181 | }, | 112 | }, |
182 | }, | 113 | { |
183 | ]), | 114 | label: "排序", |
184 | data: [], | 115 | width: 280, |
185 | }, | 116 | render: (h, scope) => { |
186 | pageData: { | 117 | return ( |
187 | total: 5, | 118 | <div> |
188 | pageSize: 15, | 119 | <el-button |
189 | current: 1, | 120 | type="text" |
190 | }, | 121 | disabled={scope.row.isTop} |
191 | }; | 122 | onClick={() => { |
192 | }, | 123 | this.moveUpward(scope.$index, scope.row); |
193 | created() { | 124 | }} |
194 | this.getTableList(); | 125 | > |
195 | }, | 126 | 上移 |
196 | computed: { | 127 | </el-button> |
197 | departmentid() { | 128 | <el-button |
198 | return this.$store.state.user.userInfo; | 129 | type="text" |
130 | disabled={scope.row.isBottom} | ||
131 | onClick={() => { | ||
132 | this.moveDown(scope.$index, scope.row); | ||
133 | }} | ||
134 | > | ||
135 | 下移 | ||
136 | </el-button> | ||
137 | </div> | ||
138 | ); | ||
139 | }, | ||
140 | }, | ||
141 | { | ||
142 | label: "操作", | ||
143 | width: 380, | ||
144 | render: (h, scope) => { | ||
145 | return ( | ||
146 | <div> | ||
147 | <el-button | ||
148 | type="text" | ||
149 | size="mini" | ||
150 | icon="el-icon-video-pause" | ||
151 | onClick={() => { | ||
152 | this.resetPassword(scope.row.id); | ||
153 | }} | ||
154 | > | ||
155 | 重置 | ||
156 | </el-button> | ||
157 | <el-button | ||
158 | type="text" | ||
159 | size="mini" | ||
160 | icon="el-icon-edit" | ||
161 | onClick={() => { | ||
162 | this.handleEdit(scope.row); | ||
163 | }} | ||
164 | > | ||
165 | 修改 | ||
166 | </el-button> | ||
167 | <el-button | ||
168 | type="text" | ||
169 | size="mini" | ||
170 | icon="el-icon-delete" | ||
171 | style="color:#F56C6C" | ||
172 | onClick={() => { | ||
173 | this.handleDelete(scope.row.id, scope.row.name); | ||
174 | }} | ||
175 | > | ||
176 | 删除 | ||
177 | </el-button> | ||
178 | </div> | ||
179 | ); | ||
180 | }, | ||
181 | }, | ||
182 | ]), | ||
183 | data: [], | ||
184 | }, | ||
185 | pageData: { | ||
186 | total: 5, | ||
187 | pageSize: 15, | ||
188 | current: 1, | ||
189 | }, | ||
190 | }; | ||
199 | }, | 191 | }, |
200 | }, | 192 | created () { |
201 | methods: { | 193 | this.getTableList(); |
202 | handleAdd() { | ||
203 | this.$refs.dialogForm.add(); | ||
204 | this.$refs.dialogForm.title = "添加"; | ||
205 | }, | 194 | }, |
206 | getTableList() { | 195 | computed: { |
207 | this.loading = true; | 196 | departmentid () { |
208 | this.queryParam = { | 197 | return this.$store.state.user.userInfo; |
209 | organizationId: this.departmentid.organizationId, | 198 | }, |
210 | departmentId: this.departmentid.departmentId, | ||
211 | }; | ||
212 | getUserList(this.queryParam).then((res) => { | ||
213 | if (res.status === 1) { | ||
214 | this.loading = false; | ||
215 | this.tableData.data = res.content; | ||
216 | this.tableData.data = judgeSort(this.tableData.data); | ||
217 | } else { | ||
218 | this.$message.error({ message: res.message, showClose: true }); | ||
219 | } | ||
220 | }); | ||
221 | }, | 199 | }, |
200 | methods: { | ||
201 | handleAdd () { | ||
202 | this.$refs.dialogForm.adds(); | ||
203 | this.$refs.dialogForm.title = "添加"; | ||
204 | }, | ||
205 | getTableList () { | ||
206 | this.loading = true; | ||
207 | this.queryParam = { | ||
208 | organizationId: this.departmentid.organizationId, | ||
209 | departmentId: this.departmentid.departmentId, | ||
210 | }; | ||
211 | getUserList(this.queryParam).then((res) => { | ||
212 | if (res.status === 1) { | ||
213 | this.loading = false; | ||
214 | this.tableData.data = res.content; | ||
215 | this.tableData.data = judgeSort(this.tableData.data); | ||
216 | } else { | ||
217 | this.$message.error({ message: res.message, showClose: true }); | ||
218 | } | ||
219 | }); | ||
220 | }, | ||
222 | 221 | ||
223 | // 重置用户密码 | 222 | // 重置用户密码 |
224 | resetPassword(data) { | 223 | resetPassword (data) { |
225 | const ids = [] | 224 | const ids = [] |
226 | if (data instanceof Array) { | 225 | if (data instanceof Array) { |
227 | data.forEach((item) => { | 226 | data.forEach((item) => { |
228 | ids.push(item.id) | 227 | ids.push(item.id) |
229 | }) | 228 | }) |
230 | } else { | 229 | } else { |
231 | ids.push(data) | 230 | ids.push(data) |
232 | } | 231 | } |
233 | if (ids.length === 0) { | 232 | if (ids.length === 0) { |
234 | this.$message({ | 233 | this.$message({ |
235 | message: '请选择需要重置密码的用户!', | 234 | message: '请选择需要重置密码的用户!', |
236 | showClose: true | 235 | showClose: true |
237 | }) | 236 | }) |
238 | return | 237 | return |
239 | } | 238 | } |
240 | this.$confirm( | 239 | this.$confirm( |
241 | `<div class="customer-message-wrapper"> | 240 | `<div class="customer-message-wrapper"> |
242 | <h5 class="title">确定要重置密码吗</h5> | 241 | <h5 class="title">确定要重置密码吗</h5> |
243 | <p class="result">执行后,数据将 | 242 | <p class="result">执行后,数据将 |
244 | <span >无法恢复</span> | 243 | <span >无法恢复</span> |
245 | </p> | 244 | </p> |
246 | </div>`, | 245 | </div>`, |
247 | '执行确认', | 246 | '执行确认', |
248 | { | 247 | { |
248 | dangerouslyUseHTMLString: true, | ||
249 | customClass: 'customer-delete', | ||
250 | confirmButtonText: '确定', | ||
251 | cancelButtonText: '取消', | ||
252 | type: 'warning' | ||
253 | } | ||
254 | ) | ||
255 | .then(() => { | ||
256 | resetPassword(ids).then((res) => { | ||
257 | if (res.status === 1) { | ||
258 | this.$message.success({ message: res.message, showClose: true }) | ||
259 | this.getTableList() | ||
260 | } else { | ||
261 | this.$message.error({ message: res.message, showClose: true }) | ||
262 | } | ||
263 | }) | ||
264 | }) | ||
265 | .catch(() => { }) | ||
266 | }, | ||
267 | // 上移下移 | ||
268 | moveUpward (index, row) { | ||
269 | realMove(row.dictid, "UP", this.tableData.data); | ||
270 | this.key++; | ||
271 | let id = findParents(this.tableData.data, row.dictid); | ||
272 | this.keyList = id; | ||
273 | }, | ||
274 | moveDown (index, row) { | ||
275 | realMove(row.dictid, "DOWN", this.tableData.data); | ||
276 | this.key++; | ||
277 | let id = findParents(this.tableData.data, row.dictid); | ||
278 | this.keyList = id; | ||
279 | }, | ||
280 | // 修改人员信息 | ||
281 | handleEdit (row) { | ||
282 | this.$refs.dialogForm.edit(row); | ||
283 | this.$refs.dialogForm.title = "修改"; | ||
284 | }, | ||
285 | // 删除 | ||
286 | handleDelete (id, content) { | ||
287 | this.$confirm(deleteDomStr(content), '执行确认', { | ||
249 | dangerouslyUseHTMLString: true, | 288 | dangerouslyUseHTMLString: true, |
250 | customClass: 'customer-delete', | 289 | customClass: 'customer-delete', |
251 | confirmButtonText: '确定', | 290 | confirmButtonText: '确定', |
252 | cancelButtonText: '取消', | 291 | cancelButtonText: '取消', |
253 | type: 'warning' | 292 | type: 'warning' |
254 | } | ||
255 | ) | ||
256 | .then(() => { | ||
257 | resetPassword(ids).then((res) => { | ||
258 | if (res.status === 1) { | ||
259 | this.$message.success({ message: res.message, showClose: true }) | ||
260 | this.getTableList() | ||
261 | } else { | ||
262 | this.$message.error({ message: res.message, showClose: true }) | ||
263 | } | ||
264 | }) | ||
265 | }) | 293 | }) |
266 | .catch(() => {}) | 294 | .then(() => { |
267 | }, | 295 | deleteAction(`${api.users}/${id}`).then((res) => { |
268 | // 上移下移 | 296 | if (res.status === 1) { |
269 | moveUpward(index, row) { | 297 | this.$message.success({ message: res.message, showClose: true }) |
270 | realMove(row.dictid, "UP", this.tableData.data); | 298 | } else { |
271 | this.key++; | 299 | this.$message.error({ message: res.message, showClose: true }) |
272 | let id = findParents(this.tableData.data, row.dictid); | 300 | } |
273 | this.keyList = id; | 301 | this.getTableList() |
274 | }, | 302 | }) |
275 | moveDown(index, row) { | ||
276 | realMove(row.dictid, "DOWN", this.tableData.data); | ||
277 | this.key++; | ||
278 | let id = findParents(this.tableData.data, row.dictid); | ||
279 | this.keyList = id; | ||
280 | }, | ||
281 | // 修改人员信息 | ||
282 | handleEdit(row) { | ||
283 | this.$refs.dialogForm.edit(row); | ||
284 | this.$refs.dialogForm.title = "修改"; | ||
285 | }, | ||
286 | // 删除 | ||
287 | handleDelete(id, content) { | ||
288 | this.$confirm(deleteDomStr(content), '执行确认', { | ||
289 | dangerouslyUseHTMLString: true, | ||
290 | customClass: 'customer-delete', | ||
291 | confirmButtonText: '确定', | ||
292 | cancelButtonText: '取消', | ||
293 | type: 'warning' | ||
294 | }) | ||
295 | .then(() => { | ||
296 | deleteAction(`${api.users}/${id}`).then((res) => { | ||
297 | if (res.status === 1) { | ||
298 | this.$message.success({ message: res.message, showClose: true }) | ||
299 | } else { | ||
300 | this.$message.error({ message: res.message, showClose: true }) | ||
301 | } | ||
302 | this.getTableList() | ||
303 | }) | 303 | }) |
304 | }) | 304 | .catch(() => { }) |
305 | .catch(() => {}) | 305 | }, |
306 | }, | 306 | // 新增回显 |
307 | // 新增回显 | 307 | reloadTableData () { |
308 | reloadTableData() { | 308 | this.getTableList() |
309 | this.getTableList() | 309 | }, |
310 | }, | 310 | }, |
311 | }, | 311 | }; |
312 | }; | ||
313 | </script> | 312 | </script> |
314 | <style scoped lang="scss"> | 313 | <style scoped lang="scss"> |
315 | @import "~@/styles/mixin.scss"; | 314 | @import "~@/styles/mixin.scss"; |
316 | @import "~@/styles/public.scss"; | 315 | @import "~@/styles/public.scss"; |
317 | .btnColRight { | 316 | .btnColRight { |
318 | margin-top: 20px; | 317 | margin-top: 20px; |
319 | } | 318 | } |
320 | </style> | 319 | </style> | ... | ... |
-
Please register or sign in to post a comment