src/views/hrm/employee/data.ts
@@ -10,6 +10,7 @@
import { Button } from 'ant-design-vue';
import { z } from '#/adapter/form';
import { getSalaryStructureList } from '#/api/hrm/salary/structure';
import { getDeptList } from '#/api/system/dept';
import { getSimplePostList } from '#/api/system/post';
import { getSimpleRoleList } from '#/api/system/role';
@@ -94,14 +95,15 @@
      rules: 'selectRequired',
    },
    {
      fieldName: 'postId',
      fieldName: 'postIds',
      label: '岗位',
      component: 'ApiSelect',
      componentProps: {
        api: getSimplePostList,
        labelField: 'name',
        valueField: 'id',
        placeholder: '请选择岗位',
        mode: 'multiple',
        placeholder: '请选择岗位(可多选)',
      },
      rules: 'selectRequired',
    },
@@ -149,6 +151,18 @@
        options: getDictOptions(DICT_TYPE.HRM_EMPLOYEE_STATUS, 'number'),
      },
      rules: z.number().default(1),
    },
    {
      fieldName: 'employeeCategory',
      label: '员工类别',
      component: 'RadioGroup',
      componentProps: {
        buttonStyle: 'solid',
        optionType: 'button',
        options: getDictOptions(DICT_TYPE.HRM_EMPLOYEE_CATEGORY, 'number'),
      },
      rules: z.number().default(1),
      help: '普通员工按岗位加班时薪;技工加班按 1:1;管理不计加班工资',
    },
    {
      fieldName: 'birthday',
@@ -242,6 +256,19 @@
      },
    },
    {
      fieldName: 'salaryStructureId',
      label: '薪酬结构',
      component: 'ApiSelect',
      componentProps: {
        api: () => getSalaryStructureList({ status: 0 }),
        labelField: 'name',
        valueField: 'id',
        allowClear: true,
        placeholder: '请选择薪酬结构',
      },
      help: '决定工作日加班倍率;未选择时使用系统默认 1.5 倍',
    },
    {
      fieldName: 'baseSalary',
      label: '基本工资',
      component: 'InputNumber',
@@ -276,6 +303,18 @@
      componentProps: {
        placeholder: '请输入居住地址',
      },
    },
    {
      fieldName: 'blobIds',
      label: '附件',
      component: 'FileUpload',
      componentProps: {
        valueKey: 'id',
        maxNumber: 10,
        multiple: true,
        help: '可上传身份证、学历证书、体检报告等资料作为留档',
      },
      formItemClass: 'col-span-2',
    },
  ];
}
@@ -328,6 +367,16 @@
        placeholder: '请选择员工状态',
      },
    },
    {
      fieldName: 'employeeCategory',
      label: '员工类别',
      component: 'Select',
      componentProps: {
        allowClear: true,
        options: getDictOptions(DICT_TYPE.HRM_EMPLOYEE_CATEGORY, 'number'),
        placeholder: '请选择员工类别',
      },
    },
  ];
}
@@ -353,7 +402,7 @@
    },
    { field: 'phone', title: '手机号码', minWidth: 120 },
    { field: 'deptName', title: '部门', minWidth: 120 },
    { field: 'postName', title: '岗位', minWidth: 120 },
    { field: 'postNames', title: '岗位', minWidth: 120 },
    { field: 'nation', title: '民族', width: 90 },
    { field: 'age', title: '年龄', width: 70 },
    { field: 'education', title: '学历', width: 90 },
@@ -363,6 +412,14 @@
      width: 100,
      slots: {
        default: 'employeeStatus',
      },
    },
    {
      field: 'employeeCategory',
      title: '员工类别',
      width: 100,
      slots: {
        default: 'employeeCategory',
      },
    },
    { field: 'hireDate', title: '入职日期', width: 110 },
@@ -417,7 +474,7 @@
    { field: 'employeeNo', title: '员工编号', minWidth: 120 },
    { field: 'name', title: '员工姓名', minWidth: 100 },
    { field: 'deptName', title: '部门', minWidth: 120 },
    { field: 'postName', title: '岗位', minWidth: 120 },
    { field: 'postNames', title: '岗位', minWidth: 120 },
    { field: 'phone', title: '手机号码', minWidth: 120 },
  ];
}