Browse Source

新增人事管理按岗级排序

余思翰 1 year ago
parent
commit
418e95452f
1 changed files with 43 additions and 18 deletions
  1. 43
    18
      oa-ui/src/views/oa/staff/index.vue

+ 43
- 18
oa-ui/src/views/oa/staff/index.vue View File

@@ -15,28 +15,29 @@
15 15
       </el-col>
16 16
       <!--用户数据-->
17 17
       <el-col :span="19" :xs="24">
18
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
18
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
19
+          label-width="68px">
19 20
           <el-form-item label="姓名" prop="nickName">
20 21
             <el-input v-model="queryParams.nickName" placeholder="请输入姓名" clearable style="width: 140px"
21 22
               @keyup.enter.native="handleQuery" />
22 23
           </el-form-item>
23 24
           <el-form-item label="职称" prop="titles">
24 25
             <el-select v-model="queryParams.titles" clearable placeholder="请输入职称" style="width:100%;">
25
-                <el-option v-for="dict in dict.type.sys_user_titles" :key="dict.value" :label="dict.label"
26
-                  :value="dict.value" />
27
-              </el-select>
26
+              <el-option v-for="dict in dict.type.sys_user_titles" :key="dict.value" :label="dict.label"
27
+                :value="dict.value" />
28
+            </el-select>
28 29
           </el-form-item>
29 30
           <el-form-item label="执业证书" prop="certificates">
30 31
             <el-select v-model="queryParams.certificates" clearable placeholder="请输入执业证书" style="width:100%;">
31
-                <el-option v-for="dict in dict.type.sys_user_certificates" :key="dict.value" :label="dict.label"
32
-                  :value="dict.value" />
33
-              </el-select>
32
+              <el-option v-for="dict in dict.type.sys_user_certificates" :key="dict.value" :label="dict.label"
33
+                :value="dict.value" />
34
+            </el-select>
34 35
           </el-form-item>
35 36
           <el-form-item label="学历" prop="degree">
36 37
             <el-select v-model="queryParams.degree" clearable placeholder="请输入学历" style="width:100%;">
37
-                <el-option v-for="dict in dict.type.sys_user_degree" :key="dict.value" :label="dict.label"
38
-                  :value="dict.value" />
39
-              </el-select>
38
+              <el-option v-for="dict in dict.type.sys_user_degree" :key="dict.value" :label="dict.label"
39
+                :value="dict.value" />
40
+            </el-select>
40 41
           </el-form-item>
41 42
           <el-form-item>
42 43
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -65,6 +66,9 @@
65 66
             <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
66 67
               v-hasPermi="['system:user:export']">导出</el-button>
67 68
           </el-col>
69
+          <el-col :span="1.5">
70
+            <div style="text-align:right;font-size:14px;line-height:28px;">共{{ total }}条数据</div>
71
+          </el-col>
68 72
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
69 73
         </el-row>
70 74
 
@@ -78,7 +82,8 @@
78 82
           <!-- <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> -->
79 83
           <el-table-column label="姓名" align="center" key="nickName" prop="nickName" v-if="columns[0].visible"
80 84
             :show-overflow-tooltip="true" />
81
-          <el-table-column label="年龄" align="center" key="age" prop="age" v-if="columns[1].visible" sortable :sort-method="sortAge">
85
+          <el-table-column label="年龄" align="center" key="age" prop="age" v-if="columns[1].visible" sortable
86
+            :sort-method="sortAge">
82 87
             <template slot-scope="scope">
83 88
               {{ getAgeByIdCard(scope.row.idCard) }}
84 89
             </template>
@@ -94,10 +99,10 @@
94 99
           <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[4].visible"
95 100
             :show-overflow-tooltip="true" />
96 101
           <el-table-column label="岗级" align="center" key="postLevel" v-if="columns[5].visible"
97
-            :show-overflow-tooltip="true">
102
+            :show-overflow-tooltip="true" sortable :sort-method="sortPostLevel">
98 103
             <template slot-scope="scope">
99 104
               {{ selectDictLabel(dict.type.sys_user_postlevel, scope.row.postLevel) +
100
-                selectDictLabel(dict.type.sys_user_salarylevel, scope.row.salaryLevel) }}
105
+      selectDictLabel(dict.type.sys_user_salarylevel, scope.row.salaryLevel) }}
101 106
             </template>
102 107
           </el-table-column>
103 108
           <el-table-column label="职称" align="center" key="titles" prop="titles" v-if="columns[6].visible"
@@ -156,9 +161,8 @@
156 161
             </template>
157 162
           </el-table-column>
158 163
         </el-table>
159
-
160
-        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
161
-          @pagination="getList" />
164
+        <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
165
+          @pagination="getList" /> -->
162 166
       </el-col>
163 167
     </el-row>
164 168
     <!-- 添加或修改用户配置对话框 -->
@@ -239,7 +243,8 @@
239 243
                 value-format="yyyy-MM" />
240 244
             </el-form-item>
241 245
             <el-form-item label="政治面貌" prop="politicalAffiliation">
242
-              <el-select v-model="form.politicalAffiliation" multiple clearable placeholder="请选择政治面貌" style="width:100%;">
246
+              <el-select v-model="form.politicalAffiliation" multiple clearable placeholder="请选择政治面貌"
247
+                style="width:100%;">
243 248
                 <el-option v-for="dict in dict.type.sys_user_political" :key="dict.value" :label="dict.label"
244 249
                   :value="dict.value" />
245 250
               </el-select>
@@ -407,7 +412,7 @@ export default {
407 412
       // 查询参数
408 413
       queryParams: {
409 414
         pageNum: 1,
410
-        pageSize: 20,
415
+        pageSize: 300,
411 416
         userName: undefined,
412 417
         phonenumber: undefined,
413 418
         status: undefined,
@@ -759,6 +764,26 @@ export default {
759 764
     },
760 765
     sortAge(a, b) {
761 766
       return this.getAgeByIdCard(a.idCard) - this.getAgeByIdCard(b.idCard);
767
+    },
768
+    sortPostLevel(a, b) {
769
+      // 安全地解析postLevel,如果无法解析,则视为Infinity  
770
+      let aPostLevel = parseInt(a.postLevel, 10);
771
+      if (isNaN(aPostLevel)) {
772
+        aPostLevel = Infinity; // 无法解析时视为无穷大  
773
+      }
774
+      let bPostLevel = parseInt(b.postLevel, 10);
775
+      if (isNaN(bPostLevel)) {
776
+        bPostLevel = Infinity; // 同上  
777
+      }
778
+      // 首先比较postLevel  
779
+      if (aPostLevel !== bPostLevel) {
780
+        return aPostLevel - bPostLevel; // 注意:这里直接返回差值,但由于Infinity的特殊性,它会按预期工作  
781
+      }
782
+      // 如果postLevel相等,则比较salaryLevel(同样需要安全解析)  
783
+      let aSalaryLevel = parseInt(a.salaryLevel, 10) || 0; // 如果无法解析,则视为0  
784
+      let bSalaryLevel = parseInt(b.salaryLevel, 10) || 0; // 同上  
785
+      // 返回salaryLevel的差值  
786
+      return aSalaryLevel - bSalaryLevel;
762 787
     }
763 788
   }
764 789
 };

Loading…
Cancel
Save