style:用户中心
Showing
1 changed file
with
62 additions
and
197 deletions
... | @@ -3,35 +3,20 @@ | ... | @@ -3,35 +3,20 @@ |
3 | <div class="from-clues-header"> | 3 | <div class="from-clues-header"> |
4 | <el-form ref="ruleForm" :model="form" label-width="100px"> | 4 | <el-form ref="ruleForm" :model="form" label-width="100px"> |
5 | <el-row class="mb-5"> | 5 | <el-row class="mb-5"> |
6 | |||
7 | <el-col :span="3"> | 6 | <el-col :span="3"> |
8 | <el-select v-model="selectType" placeholder="请选择" class="select"> | 7 | <el-select v-model="selectType" placeholder="请选择" class="select"> |
9 | <el-option | 8 | <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" /> |
10 | v-for="item in typeOptions" | ||
11 | :key="item.value" | ||
12 | :label="item.label" | ||
13 | :value="item.value" | ||
14 | /> | ||
15 | </el-select> | 9 | </el-select> |
16 | </el-col> | 10 | </el-col> |
17 | <el-col :span="3"> | 11 | <el-col :span="3"> |
18 | <el-input | 12 | <el-input v-model="queryName" class="selectName" clearable placeholder="请输入"> |
19 | v-model="queryName" | 13 | <el-button slot="append" icon="el-icon-search" @click="searchQuery()" /> |
20 | class="selectName" | ||
21 | clearable | ||
22 | placeholder="请输入" | ||
23 | > | ||
24 | <el-button | ||
25 | slot="append" | ||
26 | icon="el-icon-search" | ||
27 | @click="searchQuery()" | ||
28 | /> | ||
29 | </el-input> | 14 | </el-input> |
30 | </el-col> | 15 | </el-col> |
31 | <!-- 按钮操作 --> | 16 | <!-- 按钮操作 --> |
32 | <el-col :span="6" class="btnColRight"> | 17 | <el-col :span="6" class="btnColRight"> |
33 | <el-form-item> | 18 | <el-form-item> |
34 | <btn nativeType="cz" @click="handleAdd" >添加人员</btn> | 19 | <btn nativeType="cz" @click="handleAdd">添加人员</btn> |
35 | <btn nativeType="cx" @click="resetPassword(selectionRows)">重置密码</btn> | 20 | <btn nativeType="cx" @click="resetPassword(selectionRows)">重置密码</btn> |
36 | <btn nativeType="sb" @click="resetSearch()">重置</btn> | 21 | <btn nativeType="sb" @click="resetSearch()">重置</btn> |
37 | </el-form-item> | 22 | </el-form-item> |
... | @@ -41,191 +26,72 @@ | ... | @@ -41,191 +26,72 @@ |
41 | </el-form> | 26 | </el-form> |
42 | </div> | 27 | </div> |
43 | <div class="from-clues-content"> | 28 | <div class="from-clues-content"> |
44 | <vxe-table | 29 | <vxe-table ref="xTree" v-loading="loading" class="header-bg-type1" :data="tableData" show-overflow border |
45 | ref="xTree" | 30 | :checkbox-config="{ highlight: true }" :empty-render="{ name: 'NotData' }" highlight-hover-row max-height="90%" |
46 | v-loading="loading" | 31 | @checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent"> |
47 | class="header-bg-type1" | ||
48 | :data="tableData" | ||
49 | show-overflow | ||
50 | border | ||
51 | :checkbox-config="{ highlight: true }" | ||
52 | :empty-render="{ name: 'NotData' }" | ||
53 | highlight-hover-row | ||
54 | max-height="90%" | ||
55 | @checkbox-all="selectAllEvent" | ||
56 | @checkbox-change="selectChangeEvent" | ||
57 | > | ||
58 | <template #empty> | 32 | <template #empty> |
59 | <table-empty /> | 33 | <table-empty /> |
60 | </template> | 34 | </template> |
61 | <vxe-table-column | 35 | <vxe-table-column type="checkbox" width="36" align="center" fixed="left" /> |
62 | type="checkbox" | 36 | <vxe-table-column field="code" title="工号" width="80" align="left" show-header-overflow="tooltip" |
63 | width="36" | 37 | show-overflow="tooltip" fixed="left" /> |
64 | align="center" | 38 | <vxe-table-column title="姓名" width="140" align="left" show-header-overflow="tooltip" show-overflow="tooltip" |
65 | fixed="left" | 39 | fixed="left"> |
66 | /> | ||
67 | <vxe-table-column | ||
68 | field="code" | ||
69 | title="工号" | ||
70 | width="80" | ||
71 | align="left" | ||
72 | show-header-overflow="tooltip" | ||
73 | show-overflow="tooltip" | ||
74 | fixed="left" | ||
75 | /> | ||
76 | <vxe-table-column | ||
77 | title="姓名" | ||
78 | width="140" | ||
79 | align="left" | ||
80 | show-header-overflow="tooltip" | ||
81 | show-overflow="tooltip" | ||
82 | fixed="left" | ||
83 | > | ||
84 | <template slot-scope="scope"> | 40 | <template slot-scope="scope"> |
85 | <svg-icon | 41 | <svg-icon :icon-class=" |
86 | :icon-class=" | 42 | scope.row.sex === '0' |
87 | scope.row.sex === '0' | 43 | ? 'male' |
88 | ? 'male' | 44 | : scope.row.sex === '1' |
89 | : scope.row.sex === '1' | ||
90 | ? 'female' | 45 | ? 'female' |
91 | : 'secrecy' | 46 | : 'secrecy' |
92 | " | 47 | " /> |
93 | /> | ||
94 | {{ scope.row.name }} | 48 | {{ scope.row.name }} |
95 | </template> | 49 | </template> |
96 | </vxe-table-column> | 50 | </vxe-table-column> |
97 | <vxe-table-column | 51 | <vxe-table-column field="loginName" title="用户名" width="110" align="left" show-header-overflow="tooltip" |
98 | field="loginName" | 52 | show-overflow="tooltip" fixed="left" /> |
99 | title="用户名" | 53 | <vxe-table-column title="负责人" align="left" show-header-overflow="tooltip" show-overflow="tooltip"> |
100 | width="110" | ||
101 | align="left" | ||
102 | show-header-overflow="tooltip" | ||
103 | show-overflow="tooltip" | ||
104 | fixed="left" | ||
105 | /> | ||
106 | <vxe-table-column | ||
107 | title="负责人" | ||
108 | align="left" | ||
109 | show-header-overflow="tooltip" | ||
110 | show-overflow="tooltip" | ||
111 | > | ||
112 | <template slot-scope="scope"> | 54 | <template slot-scope="scope"> |
113 | <i v-if="scope.row.isDuty" class="el-icon-check" /> | 55 | <i v-if="scope.row.isDuty" class="el-icon-check" /> |
114 | </template> | 56 | </template> |
115 | </vxe-table-column> | 57 | </vxe-table-column> |
116 | <vxe-table-column | 58 | <vxe-table-column field="departmentName" title="所属部门" align="left" width="140" min-width="140" |
117 | field="departmentName" | 59 | show-header-overflow="tooltip" show-overflow="tooltip" /> |
118 | title="所属部门" | 60 | <vxe-table-column field="jobLevel" :formatter="formatterjobLevel" title="职位" align="left" width="140" |
119 | align="left" | 61 | min-width="140" show-header-overflow="tooltip" show-overflow="tooltip" /> |
120 | width="140" | 62 | <vxe-table-column field="mobilePhone" title="电话" width="140" show-header-overflow="tooltip" |
121 | min-width="140" | 63 | show-overflow="tooltip" align="left" /> |
122 | show-header-overflow="tooltip" | ||
123 | show-overflow="tooltip" | ||
124 | /> | ||
125 | <vxe-table-column | ||
126 | field="jobLevel" | ||
127 | :formatter="formatterjobLevel" | ||
128 | title="职位" | ||
129 | align="left" | ||
130 | width="140" | ||
131 | min-width="140" | ||
132 | show-header-overflow="tooltip" | ||
133 | show-overflow="tooltip" | ||
134 | /> | ||
135 | <vxe-table-column | ||
136 | field="mobilePhone" | ||
137 | title="电话" | ||
138 | width="140" | ||
139 | show-header-overflow="tooltip" | ||
140 | show-overflow="tooltip" | ||
141 | align="left" | ||
142 | /> | ||
143 | <vxe-table-column title="状态" width="50"> | 64 | <vxe-table-column title="状态" width="50"> |
144 | <template scope="scope"> | 65 | <template scope="scope"> |
145 | <el-switch | 66 | <el-switch v-model="scope.row.switch" class="switch" active-color="#32BAD4" inactive-color="#B1B9C5" |
146 | v-model="scope.row.switch" | 67 | active-text="启" inactive-text="禁" @change="changeStatus(scope.row)" /> |
147 | class="switch" | ||
148 | active-color="#32BAD4" | ||
149 | inactive-color="#B1B9C5" | ||
150 | active-text="启" | ||
151 | inactive-text="禁" | ||
152 | @change="changeStatus(scope.row)" | ||
153 | /> | ||
154 | </template> | 68 | </template> |
155 | </vxe-table-column> | 69 | </vxe-table-column> |
156 | <vxe-table-column | 70 | <vxe-table-column title="排序" width="148" min-width="148" align="left" fixed="right"> |
157 | title="排序" | ||
158 | width="148" | ||
159 | min-width="148" | ||
160 | align="left" | ||
161 | fixed="right" | ||
162 | > | ||
163 | <template #header> | 71 | <template #header> |
164 | <p class="ml8">排序</p> | 72 | <p class="ml8">排序</p> |
165 | </template> | 73 | </template> |
166 | <template slot-scope="scope"> | 74 | <template slot-scope="scope"> |
167 | <sort-table | 75 | <sort-table :scope-data="scope" :sort-url="tableUrl" @sortOk="getTableList" /> |
168 | :scope-data="scope" | ||
169 | :sort-url="tableUrl" | ||
170 | @sortOk="getTableList" | ||
171 | /> | ||
172 | </template> | 76 | </template> |
173 | </vxe-table-column> | 77 | </vxe-table-column> |
174 | <vxe-table-column | 78 | <vxe-table-column title="操作" width="148" min-width="148" align="left" fixed="right"> |
175 | title="操作" | ||
176 | width="148" | ||
177 | min-width="148" | ||
178 | align="left" | ||
179 | fixed="right" | ||
180 | > | ||
181 | <template #header> | 79 | <template #header> |
182 | <p class="ml8">操作</p> | 80 | <p class="ml8">操作</p> |
183 | </template> | 81 | </template> |
184 | <template slot-scope="scope"> | 82 | <template slot-scope="scope"> |
185 | <el-button type="text" size="small"> | 83 | <el-button type="text" size="small"> |
186 | <el-tooltip | 84 | <el-tooltip class="item" effect="dark" content="解锁" placement="top"> |
187 | class="item" | 85 | <i class="icon-platform-unlock iconfont" @click="updateLock(scope.row.id, scope.row.name)" /> |
188 | effect="dark" | ||
189 | content="解锁" | ||
190 | placement="top" | ||
191 | > | ||
192 | <i | ||
193 | class="icon-platform-unlock iconfont" | ||
194 | @click="updateLock(scope.row.id, scope.row.name)" | ||
195 | /> | ||
196 | </el-tooltip> | 86 | </el-tooltip> |
197 | <el-tooltip | 87 | <el-tooltip class="item" effect="dark" content="重置" placement="top"> |
198 | class="item" | 88 | <i class="icon-platform-reset iconfont" @click="resetPassword(scope.row.id)" /> |
199 | effect="dark" | ||
200 | content="重置" | ||
201 | placement="top" | ||
202 | > | ||
203 | <i | ||
204 | class="icon-platform-reset iconfont" | ||
205 | @click="resetPassword(scope.row.id)" | ||
206 | /> | ||
207 | </el-tooltip> | 89 | </el-tooltip> |
208 | <el-tooltip | 90 | <el-tooltip class="item" effect="dark" content="修改" placement="top"> |
209 | class="item" | 91 | <i class="icon-platform-edit iconfont" @click="handleEdit(scope.row)" /> |
210 | effect="dark" | ||
211 | content="修改" | ||
212 | placement="top" | ||
213 | > | ||
214 | <i | ||
215 | class="icon-platform-edit iconfont" | ||
216 | @click="handleEdit(scope.row)" | ||
217 | /> | ||
218 | </el-tooltip> | 92 | </el-tooltip> |
219 | <el-tooltip | 93 | <el-tooltip class="item" effect="dark" content="删除" placement="top"> |
220 | class="item" | 94 | <i class="icon-platform-delete iconfont" @click="handleDelete(scope.row.id, scope.row.name)" /> |
221 | effect="dark" | ||
222 | content="删除" | ||
223 | placement="top" | ||
224 | > | ||
225 | <i | ||
226 | class="icon-platform-delete iconfont" | ||
227 | @click="handleDelete(scope.row.id, scope.row.name)" | ||
228 | /> | ||
229 | </el-tooltip> | 95 | </el-tooltip> |
230 | </el-button> | 96 | </el-button> |
231 | </template> | 97 | </template> |
... | @@ -236,11 +102,10 @@ | ... | @@ -236,11 +102,10 @@ |
236 | </template> | 102 | </template> |
237 | <script> | 103 | <script> |
238 | // 定时任务 | 104 | // 定时任务 |
239 | |||
240 | export default { | 105 | export default { |
241 | name: "users", | 106 | name: "users", |
242 | components: {}, | 107 | components: {}, |
243 | data() { | 108 | data () { |
244 | return { | 109 | return { |
245 | title: '', | 110 | title: '', |
246 | queryParam: {}, | 111 | queryParam: {}, |
... | @@ -279,7 +144,7 @@ export default { | ... | @@ -279,7 +144,7 @@ export default { |
279 | }, | 144 | }, |
280 | }; | 145 | }; |
281 | }, | 146 | }, |
282 | created() { | 147 | created () { |
283 | // 获取区域和组织机构id | 148 | // 获取区域和组织机构id |
284 | eventBus.$on('getSelectedId', (res) => { | 149 | eventBus.$on('getSelectedId', (res) => { |
285 | if (!res.organizationId) { | 150 | if (!res.organizationId) { |
... | @@ -295,13 +160,13 @@ export default { | ... | @@ -295,13 +160,13 @@ export default { |
295 | this.initDictConfig() | 160 | this.initDictConfig() |
296 | }) | 161 | }) |
297 | }, | 162 | }, |
298 | updated() { | 163 | updated () { |
299 | this.tableData.forEach((element) => { | 164 | this.tableData.forEach((element) => { |
300 | element.switch = element.status === 'ACTIVE' | 165 | element.switch = element.status === 'ACTIVE' |
301 | }) | 166 | }) |
302 | }, | 167 | }, |
303 | methods: { | 168 | methods: { |
304 | initDictConfig() { | 169 | initDictConfig () { |
305 | getDictItems('XB').then((res) => { | 170 | getDictItems('XB').then((res) => { |
306 | if (res.status === 1) { | 171 | if (res.status === 1) { |
307 | this.sexList = res.content | 172 | this.sexList = res.content |
... | @@ -317,7 +182,7 @@ export default { | ... | @@ -317,7 +182,7 @@ export default { |
317 | } | 182 | } |
318 | }) | 183 | }) |
319 | }, | 184 | }, |
320 | getDepartData() { | 185 | getDepartData () { |
321 | getDeptsByIdAction(this.organizationId).then((res) => { | 186 | getDeptsByIdAction(this.organizationId).then((res) => { |
322 | if (res.status === 1) { | 187 | if (res.status === 1) { |
323 | this.departmentList = res.content | 188 | this.departmentList = res.content |
... | @@ -326,7 +191,7 @@ export default { | ... | @@ -326,7 +191,7 @@ export default { |
326 | } | 191 | } |
327 | }) | 192 | }) |
328 | }, | 193 | }, |
329 | getTableList() { | 194 | getTableList () { |
330 | this.loading = true | 195 | this.loading = true |
331 | this.queryParam = { | 196 | this.queryParam = { |
332 | organizationId: this.organizationId, | 197 | organizationId: this.organizationId, |
... | @@ -342,7 +207,7 @@ export default { | ... | @@ -342,7 +207,7 @@ export default { |
342 | }) | 207 | }) |
343 | }, | 208 | }, |
344 | // 查询 | 209 | // 查询 |
345 | searchQuery() { | 210 | searchQuery () { |
346 | switch (this.selectType) { | 211 | switch (this.selectType) { |
347 | case '0': | 212 | case '0': |
348 | this.queryParam.type = 'NAME' | 213 | this.queryParam.type = 'NAME' |
... | @@ -369,7 +234,7 @@ export default { | ... | @@ -369,7 +234,7 @@ export default { |
369 | }) | 234 | }) |
370 | }, | 235 | }, |
371 | // 重置搜索 | 236 | // 重置搜索 |
372 | resetSearch() { | 237 | resetSearch () { |
373 | this.selectType = '0' | 238 | this.selectType = '0' |
374 | this.queryName = '' | 239 | this.queryName = '' |
375 | this.queryParam = { | 240 | this.queryParam = { |
... | @@ -379,7 +244,7 @@ export default { | ... | @@ -379,7 +244,7 @@ export default { |
379 | this.getTableList() | 244 | this.getTableList() |
380 | }, | 245 | }, |
381 | // 性别 | 246 | // 性别 |
382 | formatterSex({ cellValue }) { | 247 | formatterSex ({ cellValue }) { |
383 | if (this.sexList.length !== 0) { | 248 | if (this.sexList.length !== 0) { |
384 | if (cellValue !== null) { | 249 | if (cellValue !== null) { |
385 | const sex = this.sexList.find((item) => item.value === cellValue).name | 250 | const sex = this.sexList.find((item) => item.value === cellValue).name |
... | @@ -390,7 +255,7 @@ export default { | ... | @@ -390,7 +255,7 @@ export default { |
390 | } | 255 | } |
391 | }, | 256 | }, |
392 | // 职务级别 | 257 | // 职务级别 |
393 | formatterjobLevel({ cellValue }) { | 258 | formatterjobLevel ({ cellValue }) { |
394 | if (this.levelList.length !== 0) { | 259 | if (this.levelList.length !== 0) { |
395 | if (cellValue) { | 260 | if (cellValue) { |
396 | const jobLevel = this.levelList.find( | 261 | const jobLevel = this.levelList.find( |
... | @@ -403,7 +268,7 @@ export default { | ... | @@ -403,7 +268,7 @@ export default { |
403 | } | 268 | } |
404 | }, | 269 | }, |
405 | // 删除 | 270 | // 删除 |
406 | handleDelete(id, content) { | 271 | handleDelete (id, content) { |
407 | this.$confirm(deleteDomStr(content), '执行确认', { | 272 | this.$confirm(deleteDomStr(content), '执行确认', { |
408 | dangerouslyUseHTMLString: true, | 273 | dangerouslyUseHTMLString: true, |
409 | customClass: 'customer-delete', | 274 | customClass: 'customer-delete', |
... | @@ -421,10 +286,10 @@ export default { | ... | @@ -421,10 +286,10 @@ export default { |
421 | this.getTableList() | 286 | this.getTableList() |
422 | }) | 287 | }) |
423 | }) | 288 | }) |
424 | .catch(() => {}) | 289 | .catch(() => { }) |
425 | }, | 290 | }, |
426 | // 修改状态 | 291 | // 修改状态 |
427 | changeStatus(row) { | 292 | changeStatus (row) { |
428 | this.$confirm('确定要修改状态吗?', '提示', { | 293 | this.$confirm('确定要修改状态吗?', '提示', { |
429 | customClass: 'customer-update', | 294 | customClass: 'customer-update', |
430 | confirmButtonText: '确定', | 295 | confirmButtonText: '确定', |
... | @@ -448,7 +313,7 @@ export default { | ... | @@ -448,7 +313,7 @@ export default { |
448 | }) | 313 | }) |
449 | }, | 314 | }, |
450 | // 更新用户解锁状态 | 315 | // 更新用户解锁状态 |
451 | updateLock(id, name) { | 316 | updateLock (id, name) { |
452 | this.$confirm( | 317 | this.$confirm( |
453 | `<div class="customer-message-wrapper"> | 318 | `<div class="customer-message-wrapper"> |
454 | <h5 class="title">确定要更新用户解锁状态吗</h5> | 319 | <h5 class="title">确定要更新用户解锁状态吗</h5> |
... | @@ -475,10 +340,10 @@ export default { | ... | @@ -475,10 +340,10 @@ export default { |
475 | } | 340 | } |
476 | }) | 341 | }) |
477 | }) | 342 | }) |
478 | .catch(() => {}) | 343 | .catch(() => { }) |
479 | }, | 344 | }, |
480 | // 重置用户密码 | 345 | // 重置用户密码 |
481 | resetPassword(data) { | 346 | resetPassword (data) { |
482 | const ids = [] | 347 | const ids = [] |
483 | if (data instanceof Array) { | 348 | if (data instanceof Array) { |
484 | data.forEach((item) => { | 349 | data.forEach((item) => { |
... | @@ -521,20 +386,20 @@ export default { | ... | @@ -521,20 +386,20 @@ export default { |
521 | } | 386 | } |
522 | }) | 387 | }) |
523 | }) | 388 | }) |
524 | .catch(() => {}) | 389 | .catch(() => { }) |
525 | }, | 390 | }, |
526 | // 新增回显 | 391 | // 新增回显 |
527 | reloadTableData() { | 392 | reloadTableData () { |
528 | this.getTableList() | 393 | this.getTableList() |
529 | }, | 394 | }, |
530 | showimport() { | 395 | showimport () { |
531 | this.$refs.leadingIn.import(this.tableUrl, '人员') | 396 | this.$refs.leadingIn.import(this.tableUrl, '人员') |
532 | } | 397 | } |
533 | } | 398 | } |
534 | } | 399 | } |
535 | </script> | 400 | </script> |
536 | 401 | ||
537 | <style scoped lang="less"> | 402 | <style scoped lang="scss"> |
538 | .content { | 403 | .content { |
539 | .top-wrapper { | 404 | .top-wrapper { |
540 | .el-button + .el-button { | 405 | .el-button + .el-button { | ... | ... |
-
Please register or sign in to post a comment