sunlupeng 1 year ago
parent
commit
5b08c455c6
3 changed files with 36 additions and 52 deletions
  1. 2 0
      src/utils/dict.js
  2. 10 34
      src/views/personnel/employee/data.vue
  3. 24 18
      src/views/personnel/employee/index.vue

+ 2 - 0
src/utils/dict.js

@@ -11,6 +11,8 @@ export const DICT_TYPE = {
   TERMINAL: 'terminal',
   //离职原因字典
   TURNOVER_REASON: 'turnover_reason',
+  //员工状态字典
+  EMPLOYEE_STATUS: 'employee_status',
 
   // ========== SYSTEM 模块 ==========
   SYSTEM_USER_TYPE: 'system_user_type',

+ 10 - 34
src/views/personnel/employee/data.vue

@@ -1,23 +1,21 @@
 <template>
   <div class="app-container">
     <el-table v-loading="loading" :data="dataList" >
-      <el-table-column label="员工ID" align="center" prop="id" />
+      <!-- <el-table-column label="员工ID" align="center" prop="id" /> -->
       <el-table-column label="姓名" align="center" prop="name" />
       <el-table-column label="部门" align="center" prop="deptName" />
       <el-table-column label="职位" align="center" prop="position" />
-      <el-table-column label="员工编号" align="center" prop="employeeNumber" />
+      <!-- <el-table-column label="员工编号" align="center" prop="employeeNumber" /> -->
       <el-table-column label="入职时间" align="center" prop="entryDate" />
       <el-table-column label="员工状态" align="center" prop="employeeStatus">
         <template v-slot="scope">
-          <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.employeeStatus"/>
+          <dict-tag :type="DICT_TYPE.EMPLOYEE_STATUS" :value="scope.row.employeeStatus"/>
         </template>
       </el-table-column>
       <el-table-column label="当前可用年假" align="center" prop="remainingAnnualLeave"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template v-slot="scope">
           <el-button size="mini" type="text" icon="el-icon-detail" @click="handleDetail(scope.row)">详情</el-button>
-          <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-                     v-hasPermi="['employee:info:delete']">删除</el-button> -->
         </template>
       </el-table-column>
     </el-table>
@@ -36,14 +34,14 @@
           <span :title="form.name">{{ form.name }}</span>
         </div>
       </div>
-      <div class="fx-field x-grid-col-12">
+      <!-- <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工ID</div>
         </div>
         <div class="field-component">
           <span :title="form.id">{{ form.id }}</span>
         </div>
-      </div>
+      </div> -->
       <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工部门</div>
@@ -61,14 +59,14 @@
           <span>{{ form.position }}</span>
         </div>
       </div>
-      <div class="fx-field x-grid-col-12">
+      <!-- <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工编号</div>
         </div>
         <div class="field-component">
           <span>{{ form.employeeNumber }}</span>
         </div>
-      </div>
+      </div> -->
 
       <div class="fx-field x-grid-col-12">
         <div class="field-label">
@@ -207,8 +205,7 @@
   </div>
 </template>
 <script>
-import { listHistoryData, getHistoryData, delHistoryData, exportHistoryData } from "@/api/personnel/employee/data";
-import { DICT_TYPE } from '@/utils/dict'
+import { listHistoryData, getHistoryData, } from "@/api/personnel/employee/data";
 
 export default {
   name: "SystemDictData",
@@ -231,7 +228,7 @@ export default {
       queryParams : {
         pageNo: 1,
         pageSize: 10,
-        id: ''
+        employeeId: ''
       },
     };
   },
@@ -242,7 +239,7 @@ export default {
   methods: {
     /** 查询字典数据列表 */
     getList(dataId) {
-      this.queryParams.id = dataId;
+      this.queryParams.employeeId = dataId;
       this.loading = true;
       listHistoryData(this.queryParams).then(response => {
         this.dataList = response.data.list;
@@ -259,27 +256,6 @@ export default {
         this.title = "详情";
       });
     },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id;
-      this.$modal.confirm('是否确认删除字典编码为"' + ids + '"的数据项?').then(function() {
-          return delHistoryData(ids);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      const queryParams = this.queryParams;
-      this.$modal.confirm('是否确认导出所有数据项?').then(() => {
-          this.exportLoading = true;
-          return exportHistoryData(queryParams);
-        }).then(response => {
-          this.$download.excel(response, '字典数据.xls');
-          this.exportLoading = false;
-      }).catch(() => {});
-    }
   }
 };
 </script>

+ 24 - 18
src/views/personnel/employee/index.vue

@@ -4,12 +4,12 @@
       <el-form-item label="员工名称" prop="name">
         <el-input v-model="queryParams.name" placeholder="请输入员工名称" clearable style="width: 240px" @keyup.enter.native="handleQuery"/>
       </el-form-item>
-      <el-form-item label="员工编号" prop="employeeNumber">
+      <!-- <el-form-item label="员工编号" prop="employeeNumber">
         <el-input v-model="queryParams.employeeNumber" placeholder="请输入" clearable style="width: 240px" @keyup.enter.native="handleQuery"/>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="员工状态" prop="employeeStatus">
         <el-select v-model="queryParams.employeeStatus" placeholder="员工状态" clearable style="width: 240px">
-          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" :key="parseInt(dict.value)" :label="dict.label" :value="parseInt(dict.value)"/>
+          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.EMPLOYEE_STATUS)" :key="parseInt(dict.value)" :label="dict.label" :value="parseInt(dict.value)"/>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -31,7 +31,7 @@
     </el-row>
 
     <el-table v-loading="loading" :data="typeList">
-      <el-table-column label="员工ID" align="center" prop="id" />
+      <!-- <el-table-column label="员工ID" align="center" prop="id" /> -->
       <el-table-column label="姓名" align="center" :show-overflow-tooltip="true">
         <template v-slot="scope">
           <router-link :to="'/employee/historyData/' + scope.row.id" class="link-type">
@@ -43,10 +43,9 @@
       <el-table-column label="职位" align="center" prop="position" />
       <el-table-column label="员工编号" align="center" prop="employeeNumber" />
       <el-table-column label="入职时间" align="center" prop="entryDate" />
-      
       <el-table-column label="员工状态" align="center" prop="employeeStatus">
         <template v-slot="scope">
-          <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.employeeStatus"/>
+          <dict-tag :type="DICT_TYPE.EMPLOYEE_STATUS" :value="scope.row.employeeStatus"/>
         </template>
       </el-table-column>
       <el-table-column label="当前可用年假" align="center" prop="remainingAnnualLeave"/>
@@ -86,14 +85,16 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="员工职位" prop="position">
-              <el-input v-model="form.position" placeholder="请选择职位" />
+              <el-select v-model="form.position" placeholder="请选择" style="width: 100%">
+                <el-option v-for="item in postOptions" :key="item.name" :label="item.name" :value="item.name"></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="员工编号" prop="employeeNumber">
               <el-input v-model="form.employeeNumber" placeholder="请输入员工编号" />
             </el-form-item>
-          </el-col>
+          </el-col> -->
           <el-col :span="12">
             <el-form-item label="入职时间" prop="entryDate">
               <el-date-picker value-format="yyyy-MM-dd" v-model="form.entryDate" type="date" placeholder="选择日期"
@@ -112,7 +113,7 @@
           <el-col :span="12">
             <el-form-item label="员工状态" prop="employeeStatus">
               <el-select v-model="form.employeeStatus" placeholder="请选择员工状态" clearable  style="width: 100%;">
-          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.PROMOTION_ACTIVITY_STATUS)"
+          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.EMPLOYEE_STATUS)"
                        :key="dict.value" :label="dict.label" :value="dict.value"/>
         </el-select>
             </el-form-item>
@@ -130,7 +131,7 @@
           <el-col :span="12">
             <el-form-item label="性别" prop="gender">
               <el-select v-model="form.gender" placeholder="性别" clearable  style="width: 100%;">
-                <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)" :key="parseInt(dict.value)" :label="dict.label" :value="parseInt(dict.value)"/>
+                <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)" :key="dict.value" :label="dict.label" :value="dict.value"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -211,14 +212,14 @@
           <span :title="form.name">{{ form.name }}</span>
         </div>
       </div>
-      <div class="fx-field x-grid-col-12">
+      <!-- <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工ID</div>
         </div>
         <div class="field-component">
           <span :title="form.id">{{ form.id }}</span>
         </div>
-      </div>
+      </div> -->
       <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工部门</div>
@@ -236,14 +237,14 @@
           <span>{{ form.position }}</span>
         </div>
       </div>
-      <div class="fx-field x-grid-col-12">
+      <!-- <div class="fx-field x-grid-col-12">
         <div class="field-label">
           <div class="field-name">员工编号</div>
         </div>
         <div class="field-component">
           <span>{{ form.employeeNumber }}</span>
         </div>
-      </div>
+      </div> -->
 
       <div class="fx-field x-grid-col-12">
         <div class="field-label">
@@ -383,13 +384,11 @@
 </template>
 
 <script>
+import { listSimplePosts } from "@/api/system/post";
 import { listEmployee, getEmployee, delEmployee, addEmployee, updateEmployee, exportEmployee } from "@/api/personnel/employee/index";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { listDept } from "@/api/system/dept";
-import { CommonStatusEnum } from '@/utils/constants'
-import { getDictDatas, DICT_TYPE } from '@/utils/dict'
-
 export default {
   name: "SystemDictType",
   components: {
@@ -399,6 +398,7 @@ export default {
     return {
       // 部门列表
       deptOptions: [], // 部门属性结构
+      postOptions: [],
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -445,6 +445,7 @@ export default {
         ],
         phone: [
           {
+            required: true,
             pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
             message: "请输入正确的手机号码",
             trigger: "blur"
@@ -463,6 +464,11 @@ export default {
       listDept().then(response => {
         this.deptOptions = this.handleTree(response.data, "id");
       });
+      listSimplePosts().then(response => {
+        // 处理 postOptions 参数
+        this.postOptions = [];
+        this.postOptions.push(...response.data);
+      });
     },
     /** 转换部门数据结构 */
     normalizer(node) {