|
@@ -0,0 +1,114 @@
|
|
1
|
+<template>
|
|
2
|
+ <div>
|
|
3
|
+ <el-form :inline="true">
|
|
4
|
+ <el-form-item label="姓名:">
|
|
5
|
+ <el-input v-model="queryParams.nickName"></el-input>
|
|
6
|
+ </el-form-item>
|
|
7
|
+ <el-form-item label="部门:">
|
|
8
|
+ <el-select v-model="queryParams.deptId" clearable @change="getList">
|
|
9
|
+ <el-option v-for="item in deptList" :key="item.id" :label="item.label" :value="item.id">
|
|
10
|
+ </el-option>
|
|
11
|
+ </el-select>
|
|
12
|
+ </el-form-item>
|
|
13
|
+ <el-form-item>
|
|
14
|
+ <el-button @click="getList">搜索</el-button>
|
|
15
|
+ </el-form-item>
|
|
16
|
+ </el-form>
|
|
17
|
+ <el-table ref="chooseUser" :data="userList" @selection-change="handleSelectionChange" :row-key="getRowKeys">
|
|
18
|
+ <el-table-column type="selection" width="50" align="center" :reserve-selection="true" />
|
|
19
|
+ <!-- <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> -->
|
|
20
|
+ <el-table-column label="姓名" align="center" key="nickName" prop="nickName" :show-overflow-tooltip="true" />
|
|
21
|
+ <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" :show-overflow-tooltip="true" />
|
|
22
|
+ <el-table-column label="年龄" align="center" key="age" prop="age" :show-overflow-tooltip="true" />
|
|
23
|
+ <el-table-column label="性别" align="center" key="sex" prop="sex" :show-overflow-tooltip="true">
|
|
24
|
+ <template slot-scope="scope">
|
|
25
|
+ {{ scope.row.sex == 0 ? '男' : '女' }}
|
|
26
|
+ </template>
|
|
27
|
+ </el-table-column>
|
|
28
|
+ <el-table-column label="岗级" align="center" key="postLevel" :show-overflow-tooltip="true">
|
|
29
|
+ <template slot-scope="scope">
|
|
30
|
+ {{ formatLevel(scope.row.postLevel, scope.row.salaryLevel,
|
|
31
|
+ dict.type.sys_user_postlevel, dict.type.sys_user_salarylevel) }}
|
|
32
|
+ </template>
|
|
33
|
+ </el-table-column>
|
|
34
|
+ </el-table>
|
|
35
|
+ <div style="text-align: right;">
|
|
36
|
+ <el-pagination @current-change="getList" :current-page.sync="queryParams.pageNum"
|
|
37
|
+ :page-size="queryParams.pageSize" layout="total, prev, pager, next" :total="total">
|
|
38
|
+ </el-pagination>
|
|
39
|
+ </div>
|
|
40
|
+ <div>
|
|
41
|
+ 已选人员:<el-tag v-for="item in chooseUser" style="margin: 5px;">{{ item.nickName }}</el-tag>
|
|
42
|
+ </div>
|
|
43
|
+ <div style="text-align: center;margin-top: 20px;">
|
|
44
|
+ <el-button type="primary" @click="confirmChoose">确认选择</el-button>
|
|
45
|
+ <el-button @click="clearChoose">清空选择</el-button>
|
|
46
|
+ </div>
|
|
47
|
+ </div>
|
|
48
|
+</template>
|
|
49
|
+
|
|
50
|
+<script>
|
|
51
|
+import { listUser, deptTreeSelect } from "@/api/system/user";
|
|
52
|
+export default {
|
|
53
|
+ dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_user_titles', 'sys_user_certificates', 'sys_user_pmlevel', 'sys_user_postlevel', 'sys_user_salarylevel'],
|
|
54
|
+ data() {
|
|
55
|
+ return {
|
|
56
|
+ queryParams: {
|
|
57
|
+ pageNum: 1,
|
|
58
|
+ pageSize: 10
|
|
59
|
+ },
|
|
60
|
+ userList: [],
|
|
61
|
+ dateRange: [],
|
|
62
|
+ deptList: [],
|
|
63
|
+ chooseUser: [],
|
|
64
|
+ deptOptions: undefined,
|
|
65
|
+ total: 0
|
|
66
|
+ }
|
|
67
|
+ },
|
|
68
|
+ created() {
|
|
69
|
+ this.getList();
|
|
70
|
+ this.getDeptTree();
|
|
71
|
+ },
|
|
72
|
+ methods: {
|
|
73
|
+ /** 查询用户列表 */
|
|
74
|
+ getList() {
|
|
75
|
+ listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
|
76
|
+ this.userList = response.rows.slice(1);
|
|
77
|
+ this.total = response.total;
|
|
78
|
+ }
|
|
79
|
+ );
|
|
80
|
+ },
|
|
81
|
+ /** 查询部门 */
|
|
82
|
+ getDeptTree() {
|
|
83
|
+ deptTreeSelect().then(response => {
|
|
84
|
+ this.deptOptions = response.data;
|
|
85
|
+ this.deptList = response.data[0].children
|
|
86
|
+ });
|
|
87
|
+ },
|
|
88
|
+ // 格式化表格里的薪资岗级
|
|
89
|
+ formatLevel(postLevel, salaryLevel, postLevelList, salaryLevelList) {
|
|
90
|
+ if (postLevel && salaryLevel) {
|
|
91
|
+ let post = postLevelList[postLevel].label
|
|
92
|
+ let salary = salaryLevelList[salaryLevel].label
|
|
93
|
+ return post + salary
|
|
94
|
+ } else {
|
|
95
|
+ return ''
|
|
96
|
+ }
|
|
97
|
+ },
|
|
98
|
+ handleSelectionChange(val) {
|
|
99
|
+ this.chooseUser = val
|
|
100
|
+ },
|
|
101
|
+ getRowKeys(row) {
|
|
102
|
+ return row.userId;
|
|
103
|
+ },
|
|
104
|
+ confirmChoose() {
|
|
105
|
+ this.$emit('chooseUser', this.chooseUser)
|
|
106
|
+ },
|
|
107
|
+ clearChoose() {
|
|
108
|
+ this.$refs.chooseUser.clearSelection();
|
|
109
|
+ }
|
|
110
|
+ },
|
|
111
|
+}
|
|
112
|
+</script>
|
|
113
|
+
|
|
114
|
+<style lang="scss" scoped></style>
|