update
init
This commit is contained in:
@@ -0,0 +1,839 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table';
|
||||
import { h } from 'vue';
|
||||
import { Image, message } from 'ant-design-vue';
|
||||
import { getFamaleDefaultImage, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
||||
import { getSecondaryDepartmentList, getThirdDepartmentList } from '/@/views/system/user/user.api';
|
||||
import { allSecondaryDepartsNew, getFourthDepartsNew } from '/@/utils/system/api';
|
||||
import { rules } from '/@/utils/helper/validator';
|
||||
import { checkPassword } from '/@/hooks/checkPassword/checkPassword';
|
||||
import { isShowIdCard } from '/@/utils/getEnv';
|
||||
|
||||
//列表数据
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '员工账号',
|
||||
align: 'center',
|
||||
fixed: 'left',
|
||||
dataIndex: 'username',
|
||||
},
|
||||
{
|
||||
title: '员工姓名',
|
||||
align: 'center',
|
||||
fixed: 'left',
|
||||
dataIndex: 'realname',
|
||||
},
|
||||
{
|
||||
title: '性别',
|
||||
align: 'center',
|
||||
dataIndex: 'sex_dictText',
|
||||
width: 64,
|
||||
},
|
||||
{
|
||||
title: '员工编号',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empSysno'],
|
||||
width: 80,
|
||||
},
|
||||
{
|
||||
title: '头像',
|
||||
align: 'center',
|
||||
dataIndex: 'avatar',
|
||||
width: 64,
|
||||
customRender: ({ text, record }) => {
|
||||
return h(Image, {
|
||||
placeholder: true,
|
||||
src: getFileAccessHttpUrl(text) || '',
|
||||
height: 40,
|
||||
width: 40,
|
||||
fallback: getFamaleDefaultImage(record.sex),
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '身份证号',
|
||||
align: 'center',
|
||||
dataIndex: 'idCard',
|
||||
width: 160,
|
||||
ifShow: isShowIdCard(),
|
||||
},
|
||||
{
|
||||
title: '手机号',
|
||||
align: 'center',
|
||||
dataIndex: 'phone',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'status_dictText',
|
||||
width: 80,
|
||||
slots: { customRender: 'statusTag' },
|
||||
},
|
||||
{
|
||||
title: '单位名称',
|
||||
align: 'center',
|
||||
dataIndex: ['secondDepart', 'departName'],
|
||||
},
|
||||
{
|
||||
title: '部门名称',
|
||||
align: 'center',
|
||||
dataIndex: ['departTree', '2'],
|
||||
width: 180,
|
||||
},
|
||||
{
|
||||
title: '四级部门名称',
|
||||
align: 'center',
|
||||
dataIndex: ['departTree', '3'],
|
||||
width: 180,
|
||||
},
|
||||
{
|
||||
title: '出生日期',
|
||||
align: 'center',
|
||||
dataIndex: 'birthday',
|
||||
},
|
||||
{
|
||||
title: '职务',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empJob_dictText'],
|
||||
},
|
||||
{
|
||||
title: '行政级别',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empLevel_dictText'],
|
||||
},
|
||||
{
|
||||
title: '民族',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empNation_dictText'],
|
||||
},
|
||||
{
|
||||
title: '学历',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empDegree_dictText'],
|
||||
},
|
||||
{
|
||||
title: '婚姻状况',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empMarriage_dictText'],
|
||||
},
|
||||
{
|
||||
title: '籍贯',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empNativeplace'],
|
||||
},
|
||||
{
|
||||
title: '工种',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'medicalWorkTypeCode_dictText'],
|
||||
},
|
||||
{
|
||||
title: '用工形式',
|
||||
align: 'center',
|
||||
dataIndex: ['extension', 'empType_dictText'],
|
||||
},
|
||||
];
|
||||
|
||||
//查询数据
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
label: '员工账号',
|
||||
field: 'username',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '员工姓名',
|
||||
field: 'realname',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '员工编号',
|
||||
field: 'empNo',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '身份证号',
|
||||
field: 'idCard',
|
||||
component: 'Input',
|
||||
ifShow: isShowIdCard(),
|
||||
},
|
||||
{
|
||||
label: '手机号',
|
||||
field: 'phone',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '单位名称',
|
||||
field: 'orgCode',
|
||||
component: 'ApiSelect',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
api: allSecondaryDepartsNew,
|
||||
resultField: 'result',
|
||||
labelField: 'departName',
|
||||
valueField: 'orgCode',
|
||||
immediate: true,
|
||||
onChange: (_value, option) => {
|
||||
formModel.departId = option?.id || '';
|
||||
formModel.orgCode2 = '';
|
||||
},
|
||||
onDeselect: () => {
|
||||
formModel.departId = '';
|
||||
formModel.orgCode2 = '';
|
||||
},
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '部门名称',
|
||||
field: 'orgCode2',
|
||||
component: 'ApiSelect',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
api: getThirdDepartmentList,
|
||||
resultField: 'list',
|
||||
labelField: 'departName',
|
||||
params: {
|
||||
secondDepartId: formModel?.departId || '',
|
||||
},
|
||||
valueField: 'orgCode',
|
||||
immediate: false,
|
||||
onFocus: () => {
|
||||
if (!formModel.departId) {
|
||||
return message.warn('请先选择单位!');
|
||||
}
|
||||
},
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '四级部门名称',
|
||||
field: 'deptCode',
|
||||
component: 'ApiSelect',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
api: getFourthDepartsNew,
|
||||
resultField: 'result',
|
||||
labelField: 'departName',
|
||||
params: {
|
||||
idOrCode: formModel.orgCode2 || '',
|
||||
},
|
||||
valueField: 'orgCode',
|
||||
immediate: false,
|
||||
onFocus: () => {
|
||||
if (!formModel.orgCode2) {
|
||||
return message.warn('请先选择部门!');
|
||||
}
|
||||
},
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
//表单数据
|
||||
export const formSchema: (isUpdate: boolean) => FormSchema[] = (isUpdate) => {
|
||||
return [
|
||||
{
|
||||
label: '员工账号',
|
||||
field: 'username',
|
||||
component: 'Input',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
onInput: () => {
|
||||
formModel.username = formModel.username.replace(/[^a-zA-Z0-9_]/g, '');
|
||||
},
|
||||
autocomplete: 'off',
|
||||
placeholder: '请输入员工姓名全拼+数字',
|
||||
};
|
||||
},
|
||||
required: true,
|
||||
dynamicDisabled: isUpdate,
|
||||
},
|
||||
{
|
||||
label: '密码',
|
||||
field: 'password',
|
||||
component: 'StrengthMeter',
|
||||
componentProps: {
|
||||
autocomplete: 'new-password',
|
||||
readOnly: true,
|
||||
onfocus: (field) => {
|
||||
field.target.readOnly = false;
|
||||
},
|
||||
},
|
||||
dynamicRules: () => {
|
||||
return [
|
||||
{
|
||||
required: true,
|
||||
validator: (_, value) => {
|
||||
let { message } = checkPassword(value);
|
||||
if (message === 'ok') {
|
||||
return Promise.resolve();
|
||||
} else {
|
||||
return Promise.reject(message);
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
];
|
||||
},
|
||||
required: !isUpdate,
|
||||
ifShow: !isUpdate,
|
||||
},
|
||||
{
|
||||
label: '员工姓名',
|
||||
field: 'realname',
|
||||
component: 'Input',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
label: '员工编号',
|
||||
field: 'empSysno',
|
||||
component: 'Input',
|
||||
required: true,
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
onInput: () => {
|
||||
formModel.empSysno = formModel.empSysno.replace(/[^0-9]/g, '');
|
||||
},
|
||||
};
|
||||
},
|
||||
dynamicRules: ({ model, schema }) =>
|
||||
rules.duplicateCheckRuleAndDelFlag('health_user_employee_ex', 'emp_sysno', 'false', model, schema, false),
|
||||
},
|
||||
{
|
||||
label: '性别',
|
||||
field: 'sex',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'sex2',
|
||||
},
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
label: '头像',
|
||||
field: 'avatar',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
maxCount: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'secondDepartName',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
dynamicDisabled: true,
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '部门',
|
||||
field: 'orgCode',
|
||||
component: 'JSelectDeptStaff',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
sync: true,
|
||||
checkStrictly: true,
|
||||
defaultExpandLevel: 1,
|
||||
initOptions: isUpdate
|
||||
? [
|
||||
{
|
||||
value: formModel.departId,
|
||||
label: ' ' + formModel.secondDepartName + ' - ' + formModel.departName + ' ',
|
||||
},
|
||||
]
|
||||
: [],
|
||||
};
|
||||
},
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
label: '出生日期',
|
||||
field: 'birthday',
|
||||
component: 'DatePicker',
|
||||
componentProps: {
|
||||
showTime: false,
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '身份证号',
|
||||
field: 'idCard',
|
||||
component: 'Input',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
onInput: () => {
|
||||
formModel.idCard = formModel.idCard.replace(/[^Xx0-9]/g, '');
|
||||
},
|
||||
};
|
||||
},
|
||||
// rules: [
|
||||
// {
|
||||
// required: true,
|
||||
// },
|
||||
// {
|
||||
// pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/,
|
||||
// message: '${label}格式有误',
|
||||
// },
|
||||
// ],
|
||||
dynamicRules: ({ model, schema }) =>
|
||||
rules.idcard(true).concat(rules.duplicateCheckRuleAndDelFlag('sys_user', 'id_card', 'false', model, schema, false)),
|
||||
// dynamicRules: ({ model, schema }) => rules.idcard(true).concat(rules.duplicateCheckRule('sys_user', 'id_card', model, schema, false)),
|
||||
},
|
||||
|
||||
/*{
|
||||
label: '身份证正面',
|
||||
field: 'empIdcardFace',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
maxCount: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '身份证反面',
|
||||
field: 'empIdcardBack',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
maxCount: 1,
|
||||
},
|
||||
},*/
|
||||
{
|
||||
label: '手机号',
|
||||
field: 'phone',
|
||||
component: 'Input',
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
onInput: () => {
|
||||
formModel.phone = formModel.phone.replace(/[^0-9]/g, '');
|
||||
},
|
||||
};
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
pattern: /^1[3456789][0-9]{9}$/,
|
||||
message: '${label}格式有误',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '邮箱',
|
||||
field: 'email',
|
||||
component: 'Input',
|
||||
rules: [
|
||||
{
|
||||
pattern: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
||||
message: '${label}格式有误',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '职务',
|
||||
field: 'empJob',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'e_job',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '职称',
|
||||
field: 'empTitle',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'e_title',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
// {
|
||||
// label: '子组',
|
||||
// field: 'empGroup',
|
||||
// component: 'JDictSelectTag',
|
||||
// componentProps: {
|
||||
// dictCode: 'emp_group',
|
||||
// showSearch: true,
|
||||
// filterOption: (input: string, option: any): boolean => {
|
||||
// const str: string = input.trim().toLowerCase();
|
||||
// return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
{
|
||||
label: '职位',
|
||||
field: 'empPosition',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'emp_position',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
label: '行政级别',
|
||||
field: 'empLevel',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'emp_level',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '员工状态',
|
||||
field: 'empStatus',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'emp_status',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '政治面貌',
|
||||
field: 'empPolitical',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'emp_political',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '民族',
|
||||
field: 'empNation',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'nation',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '学历',
|
||||
field: 'empDegree',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'emp_education',
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.trim().toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '婚姻状况',
|
||||
field: 'empMarriage',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'mr_state',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '籍贯',
|
||||
field: 'empNativeplace',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '入职时间',
|
||||
field: 'empWorktime',
|
||||
component: 'DatePicker',
|
||||
componentProps: {
|
||||
showTime: false,
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '体检形式',
|
||||
field: 'medicalOnJob',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'medical_on_job',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '工种',
|
||||
field: 'medicalWorkTypeCode',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'medical_worktype',
|
||||
showSearch: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '其他工种',
|
||||
field: 'medicalWorkTypeOther',
|
||||
component: 'Input',
|
||||
ifShow: ({ model }) => {
|
||||
return model.medicalWorkTypeCode === '0014' || model.medicalWorkTypeCode === '0033' || model.medicalWorkTypeCode === '999999';
|
||||
},
|
||||
required: ({ model }) => {
|
||||
return model.medicalWorkTypeCode === '0014' || model.medicalWorkTypeCode === '0033' || model.medicalWorkTypeCode === '999999';
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '危害因素',
|
||||
field: 'medicalHazardFactorCode',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'medical_hazard',
|
||||
showSearch: true,
|
||||
mode: 'multiple',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '其他危害',
|
||||
field: 'medicalHazardFactorOther',
|
||||
component: 'Input',
|
||||
ifShow: ({ model }) => {
|
||||
return model.medicalHazardFactorCode?.join(',').indexOf('0999') > -1;
|
||||
},
|
||||
required: ({ model }) => {
|
||||
return model.medicalHazardFactorCode?.join(',').indexOf('0999') > -1;
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '接害时间',
|
||||
field: 'medicalHazardDate',
|
||||
component: 'DatePicker',
|
||||
componentProps: {
|
||||
showTime: false,
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '用工形式',
|
||||
field: 'empType',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
dictCode: 'contract',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '上市员工',
|
||||
field: 'listedFlag',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps: {
|
||||
type: 'radio',
|
||||
dictCode: 'sf_10',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '工作地点',
|
||||
field: 'workSpace',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '居住地点',
|
||||
field: 'liveSpace',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'personType',
|
||||
component: 'Input',
|
||||
defaultValue: '1',
|
||||
dynamicDisabled: true,
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'departName',
|
||||
component: 'Input',
|
||||
dynamicDisabled: true,
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'departId',
|
||||
component: 'Input',
|
||||
dynamicDisabled: true,
|
||||
show: false,
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
//迁移用户
|
||||
export const migrateUserFormSchema: FormSchema[] = [
|
||||
{
|
||||
label: '员工姓名',
|
||||
field: 'realname',
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '员工编号',
|
||||
field: 'workNo',
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '单位名称',
|
||||
field: 'oldSecond',
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '部门名称',
|
||||
field: 'oldThird',
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '迁移单位',
|
||||
field: 'toDepartCode',
|
||||
component: 'ApiTreeSelect',
|
||||
required: true,
|
||||
componentProps: ({ formModel }) => {
|
||||
let treeData: any;
|
||||
return {
|
||||
api: getSecondaryDepartmentList,
|
||||
fieldNames: {
|
||||
label: 'departName',
|
||||
value: 'orgCode',
|
||||
},
|
||||
immediate: true,
|
||||
onSelect: (val, v) => {
|
||||
formModel.toDepartId = v.id;
|
||||
},
|
||||
onOptionsChange: (data) => {
|
||||
treeData = data;
|
||||
},
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any): boolean => {
|
||||
const str: string = input.toLowerCase();
|
||||
return option.label.toLowerCase().indexOf(str) >= 0;
|
||||
},
|
||||
loadData: async (treeNode: any) => {
|
||||
return new Promise(async (resolve) => {
|
||||
const { id } = treeNode.dataRef;
|
||||
const result = await getThirdDepartmentList({ secondDepartId: id });
|
||||
|
||||
const add = (pid, children, treeArray) => {
|
||||
if (treeArray && treeArray.length > 0) {
|
||||
// @ts-ignore
|
||||
for (const item of treeArray) {
|
||||
if (item.id == pid) {
|
||||
if (!children || children.length == 0) {
|
||||
item.isLeaf = true;
|
||||
} else {
|
||||
item['children'] = children;
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
add(pid, children, item.children);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
add(id, result, treeData);
|
||||
resolve(treeData);
|
||||
});
|
||||
},
|
||||
getPopupContainer: () => document.body,
|
||||
};
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'isBind',
|
||||
component: 'ApiSelect',
|
||||
slot: 'isBind',
|
||||
required: true,
|
||||
componentProps: {
|
||||
options: [
|
||||
{
|
||||
label: '是(解除绑定,手表仍属于当前单位)',
|
||||
value: '1',
|
||||
},
|
||||
{
|
||||
label: '否(不解除绑定,手表跟随用户一并迁移至新单位)',
|
||||
value: '0',
|
||||
},
|
||||
],
|
||||
},
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '是否解绑',
|
||||
field: 'watchStatus',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '迁移部门id',
|
||||
field: 'toDepartId',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '原部门Code',
|
||||
field: 'fromDepartCode',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '原部门Id',
|
||||
field: 'fromDepartId',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
field: 'userId',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user