You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
4.4 KiB
198 lines
4.4 KiB
import { Ref } from 'vue'; |
|
import { duplicateCheckDelay } from '/@/views/system/user/user.api'; |
|
import { BasicColumn, FormSchema } from '/@/components/Table'; |
|
import { DescItem } from '/@/components/Description'; |
|
import { findTree } from '/@/utils/common/compUtils'; |
|
|
|
// 用户信息 columns |
|
export const userInfoColumns: BasicColumn[] = [ |
|
{ |
|
title: '用户账号', |
|
dataIndex: 'username', |
|
width: 150, |
|
}, |
|
{ |
|
title: '用户名称', |
|
dataIndex: 'realname', |
|
width: 180, |
|
}, |
|
{ |
|
title: '部门', |
|
dataIndex: 'orgCode', |
|
width: 200, |
|
}, |
|
{ |
|
title: '性别', |
|
dataIndex: 'sex_dictText', |
|
width: 80, |
|
}, |
|
{ |
|
title: '电话', |
|
dataIndex: 'phone', |
|
width: 120, |
|
}, |
|
]; |
|
|
|
// 用户信息查询条件表单 |
|
export const userInfoSearchFormSchema: FormSchema[] = [ |
|
{ |
|
field: 'username', |
|
label: '用户账号', |
|
component: 'Input', |
|
}, |
|
]; |
|
|
|
// 部门角色 columns |
|
export const departRoleColumns: BasicColumn[] = [ |
|
{ |
|
title: '部门角色名称', |
|
dataIndex: 'roleName', |
|
width: 100, |
|
}, |
|
{ |
|
title: '部门角色编码', |
|
dataIndex: 'roleCode', |
|
width: 100, |
|
}, |
|
{ |
|
title: '部门', |
|
dataIndex: 'departId_dictText', |
|
width: 100, |
|
}, |
|
{ |
|
title: '备注', |
|
dataIndex: 'description', |
|
width: 100, |
|
}, |
|
]; |
|
|
|
// 部门角色查询条件表单 |
|
export const departRoleSearchFormSchema: FormSchema[] = [ |
|
{ |
|
field: 'roleName', |
|
label: '部门角色名称', |
|
component: 'Input', |
|
}, |
|
]; |
|
|
|
// 部门角色弹窗form表单 |
|
export const departRoleModalFormSchema: FormSchema[] = [ |
|
{ |
|
label: 'id', |
|
field: 'id', |
|
component: 'Input', |
|
show: false, |
|
}, |
|
{ |
|
field: 'roleName', |
|
label: '部门角色名称', |
|
component: 'Input', |
|
rules: [ |
|
{ required: true, message: '部门角色名称不能为空!' }, |
|
{ min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }, |
|
], |
|
}, |
|
{ |
|
field: 'roleCode', |
|
label: '部门角色编码', |
|
component: 'Input', |
|
dynamicDisabled: ({ values }) => { |
|
return !!values.id; |
|
}, |
|
dynamicRules: ({ model }) => { |
|
return [ |
|
{ required: true, message: '部门角色编码不能为空!' }, |
|
{ min: 0, max: 64, message: '长度不能超过 64 个字符', trigger: 'blur' }, |
|
{ |
|
validator: (_, value) => { |
|
if (/[\u4E00-\u9FA5]/g.test(value)) { |
|
return Promise.reject('部门角色编码不可输入汉字!'); |
|
} |
|
return new Promise((resolve, reject) => { |
|
let params = { |
|
tableName: 'sys_depart_role', |
|
fieldName: 'role_code', |
|
fieldVal: value, |
|
dataId: model.id, |
|
}; |
|
duplicateCheckDelay(params) |
|
.then((res) => { |
|
res.success ? resolve() : reject(res.message || '校验失败'); |
|
}) |
|
.catch((err) => { |
|
reject(err.message || '验证失败'); |
|
}); |
|
}); |
|
}, |
|
}, |
|
]; |
|
}, |
|
}, |
|
{ |
|
field: 'description', |
|
label: '描述', |
|
component: 'Input', |
|
rules: [{ min: 0, max: 126, message: '长度不能超过 126 个字符', trigger: 'blur' }], |
|
}, |
|
]; |
|
|
|
// 基本信息form |
|
export function useBaseInfoForm(treeData: Ref<any[]>) { |
|
const descItems: DescItem[] = [ |
|
{ |
|
field: 'departName', |
|
label: '机构名称', |
|
}, |
|
{ |
|
field: 'parentId', |
|
label: '上级部门', |
|
render(val) { |
|
if (val) { |
|
let data = findTree(treeData.value, (item) => item.key == val); |
|
return data?.title ?? val; |
|
} |
|
return val; |
|
}, |
|
}, |
|
{ |
|
field: 'orgCode', |
|
label: '机构编码', |
|
}, |
|
{ |
|
field: 'orgCategory', |
|
label: '机构类型', |
|
render(val) { |
|
if (val === '1') { |
|
// return '公司'; |
|
return '管理单位'; |
|
} else if (val === '2') { |
|
// return '部门'; |
|
return '直属法人单位'; |
|
} else if (val === '3') { |
|
// return '岗位'; |
|
return '县区法人单位'; |
|
} |
|
return val; |
|
}, |
|
}, |
|
{ |
|
field: 'departOrder', |
|
label: '排序', |
|
}, |
|
|
|
{ |
|
field: 'mobile', |
|
label: '手机号', |
|
}, |
|
{ |
|
field: 'address', |
|
label: '地址', |
|
}, |
|
{ |
|
field: 'memo', |
|
label: '备注', |
|
}, |
|
]; |
|
|
|
return { descItems }; |
|
}
|
|
|