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.
511 lines
11 KiB
511 lines
11 KiB
import website from '@/config/website'; |
|
import { getDeptLazyTree } from '@/api/system/dept'; |
|
|
|
export const userOption = safe => { |
|
const validatePass = (rule, value, callback) => { |
|
if (value === '') { |
|
callback(new Error('请输入密码')); |
|
} else { |
|
callback(); |
|
} |
|
}; |
|
const validatePass2 = (rule, value, callback) => { |
|
if (value === '') { |
|
callback(new Error('请再次输入密码')); |
|
} else if (value !== safe.form.password) { |
|
callback(new Error('两次输入密码不一致!')); |
|
} else { |
|
callback(); |
|
} |
|
}; |
|
return { |
|
height: 'auto', |
|
calcHeight: 150, |
|
tip: false, |
|
searchShow: true, |
|
searchMenuSpan: 6, |
|
border: true, |
|
index: true, |
|
selection: true, |
|
addBtn: false, |
|
viewBtn: true, |
|
dialogType: 'drawer', |
|
dialogWidth: 1000, |
|
dialogClickModal: false, |
|
column: [ |
|
{ |
|
label: '登录账号', |
|
prop: 'account', |
|
search: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '所属租户', |
|
prop: 'tenantName', |
|
slot: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户姓名', |
|
prop: 'realName', |
|
search: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '所属角色', |
|
prop: 'roleName', |
|
slot: true, |
|
overHidden: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '所属部门', |
|
prop: 'deptName', |
|
slot: true, |
|
overHidden: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户平台', |
|
prop: 'userTypeName', |
|
width: 100, |
|
slot: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户平台', |
|
type: 'select', |
|
dicUrl: '/blade-system/dict/dictionary?code=user_type', |
|
props: { |
|
label: 'dictValue', |
|
value: 'dictKey', |
|
}, |
|
dataType: 'number', |
|
search: true, |
|
hide: true, |
|
display: false, |
|
prop: 'userType', |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择用户平台', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
], |
|
group: [ |
|
{ |
|
label: '基础信息', |
|
prop: 'baseInfo', |
|
icon: 'el-icon-user-solid', |
|
column: [ |
|
{ |
|
label: '所属租户', |
|
prop: 'tenantId', |
|
type: 'tree', |
|
dicUrl: '/blade-system/tenant/select', |
|
props: { |
|
label: 'tenantName', |
|
value: 'tenantId', |
|
}, |
|
hide: !website.tenantMode, |
|
addDisplay: website.tenantMode, |
|
editDisplay: website.tenantMode, |
|
viewDisplay: website.tenantMode, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请输入所属租户', |
|
trigger: 'click', |
|
}, |
|
], |
|
span: 24, |
|
}, |
|
{ |
|
label: '登录账号', |
|
prop: 'account', |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请输入登录账号', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '用户平台', |
|
type: 'select', |
|
dicUrl: '/blade-system/dict/dictionary?code=user_type', |
|
props: { |
|
label: 'dictValue', |
|
value: 'dictKey', |
|
}, |
|
dataType: 'number', |
|
slot: true, |
|
prop: 'userType', |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择用户平台', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '密码', |
|
prop: 'password', |
|
hide: true, |
|
editDisplay: false, |
|
viewDisplay: false, |
|
rules: [{ required: true, validator: validatePass, trigger: 'blur' }], |
|
}, |
|
{ |
|
label: '确认密码', |
|
prop: 'password2', |
|
hide: true, |
|
editDisplay: false, |
|
viewDisplay: false, |
|
rules: [{ required: true, validator: validatePass2, trigger: 'blur' }], |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '详细信息', |
|
prop: 'detailInfo', |
|
icon: 'el-icon-s-order', |
|
column: [ |
|
{ |
|
label: '用户昵称', |
|
prop: 'name', |
|
hide: true, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请输入用户昵称', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '用户姓名', |
|
prop: 'realName', |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请输入用户姓名', |
|
trigger: 'blur', |
|
}, |
|
{ |
|
min: 2, |
|
max: 10, |
|
message: '姓名长度在2到5个字符', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '手机号码', |
|
prop: 'phone', |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '电子邮箱', |
|
prop: 'email', |
|
hide: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '用户性别', |
|
prop: 'sex', |
|
type: 'select', |
|
dicData: [ |
|
{ |
|
label: '男', |
|
value: 1, |
|
}, |
|
{ |
|
label: '女', |
|
value: 2, |
|
}, |
|
{ |
|
label: '未知', |
|
value: 3, |
|
}, |
|
], |
|
hide: true, |
|
}, |
|
{ |
|
label: '用户生日', |
|
type: 'date', |
|
prop: 'birthday', |
|
format: 'YYYY-MM-DD HH:mm:ss', |
|
valueFormat: 'YYYY-MM-DD HH:mm:ss', |
|
hide: true, |
|
}, |
|
{ |
|
label: '账号状态', |
|
prop: 'statusName', |
|
hide: true, |
|
display: false, |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '职责信息', |
|
prop: 'dutyInfo', |
|
icon: 'el-icon-s-custom', |
|
column: [ |
|
{ |
|
label: '用户编号', |
|
prop: 'code', |
|
}, |
|
{ |
|
label: '所属角色', |
|
prop: 'roleId', |
|
multiple: true, |
|
type: 'tree', |
|
dicData: [], |
|
props: { |
|
label: 'title', |
|
}, |
|
checkStrictly: true, |
|
slot: true, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择所属角色', |
|
trigger: 'click', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '所属部门', |
|
prop: 'deptId', |
|
type: 'tree', |
|
multiple: true, |
|
dicData: [], |
|
props: { |
|
label: 'title', |
|
}, |
|
checkStrictly: true, |
|
slot: true, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择所属部门', |
|
trigger: 'click', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '所属岗位', |
|
prop: 'postId', |
|
type: 'tree', |
|
multiple: true, |
|
dicData: [], |
|
props: { |
|
label: 'postName', |
|
value: 'id', |
|
}, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择所属岗位', |
|
trigger: 'click', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '直属主管', |
|
prop: 'leaderId', |
|
type: 'tree', |
|
multiple: true, |
|
filterable: true, |
|
dicData: [], |
|
props: { |
|
label: 'realName', |
|
value: 'id', |
|
}, |
|
clearable: true, |
|
}, |
|
{ |
|
label: '是否主管', |
|
prop: 'isLeader', |
|
type: 'switch', |
|
dicData: [ |
|
{ |
|
label: '否', |
|
value: 0, |
|
}, |
|
{ |
|
label: '是', |
|
value: 1, |
|
}, |
|
], |
|
value: 0, |
|
}, |
|
], |
|
}, |
|
], |
|
}; |
|
}; |
|
|
|
export const platformOption = { |
|
tip: false, |
|
searchShow: true, |
|
searchMenuSpan: 6, |
|
border: true, |
|
index: true, |
|
selection: true, |
|
viewBtn: true, |
|
dialogClickModal: false, |
|
menuWidth: 120, |
|
editBtnText: '配置', |
|
searchLabelPosition:'left', |
|
searchLabelPosition:'left', |
|
searchGutter:24, |
|
searchSpan:6, |
|
menuAlign: 'left', |
|
gridBtn:false, |
|
searchMenuPosition:'right', |
|
addBtnIcon: ' ', |
|
viewBtnIcon: ' ', |
|
delBtnIcon: ' ', |
|
editBtnIcon: ' ', |
|
column: [ |
|
{ |
|
label: '登录账号', |
|
prop: 'account', |
|
search: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '所属租户', |
|
prop: 'tenantName', |
|
slot: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户姓名', |
|
prop: 'realName', |
|
search: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户平台', |
|
prop: 'userTypeName', |
|
slot: true, |
|
display: false, |
|
}, |
|
{ |
|
label: '用户平台', |
|
type: 'select', |
|
dicUrl: '/blade-system/dict/dictionary?code=user_type', |
|
props: { |
|
label: 'dictValue', |
|
value: 'dictKey', |
|
}, |
|
dataType: 'number', |
|
search: true, |
|
hide: true, |
|
display: false, |
|
prop: 'userType', |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择用户平台', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '用户拓展', |
|
prop: 'userExt', |
|
type: 'textarea', |
|
minRows: 8, |
|
span: 24, |
|
overHidden: true, |
|
row: true, |
|
hide: true, |
|
}, |
|
], |
|
}; |
|
|
|
export const excelOption = { |
|
submitBtn: false, |
|
emptyBtn: false, |
|
column: [ |
|
{ |
|
label: '模板上传', |
|
prop: 'excelFile', |
|
type: 'upload', |
|
drag: true, |
|
loadText: '模板上传中,请稍等', |
|
span: 24, |
|
propsHttp: { |
|
res: 'data', |
|
}, |
|
tip: '请上传 .xls,.xlsx 标准格式文件', |
|
action: '/blade-system/user/import-user', |
|
}, |
|
{ |
|
label: '数据覆盖', |
|
prop: 'isCovered', |
|
type: 'switch', |
|
align: 'center', |
|
width: 80, |
|
dicData: [ |
|
{ |
|
label: '否', |
|
value: 0, |
|
}, |
|
{ |
|
label: '是', |
|
value: 1, |
|
}, |
|
], |
|
value: 0, |
|
slot: true, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请选择是否覆盖', |
|
trigger: 'blur', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '模板下载', |
|
prop: 'excelTemplate', |
|
formslot: true, |
|
span: 24, |
|
}, |
|
], |
|
}; |
|
|
|
export const treeOption = { |
|
nodeKey: 'id', |
|
lazy: true, |
|
treeLoad: function (node, resolve) { |
|
const parentId = node.level === 0 ? 0 : node.data.id; |
|
getDeptLazyTree(parentId).then(res => { |
|
resolve( |
|
res.data.data.map(item => { |
|
return { |
|
...item, |
|
leaf: !item.hasChildren, |
|
}; |
|
}) |
|
); |
|
}); |
|
}, |
|
addBtn: false, |
|
menu: false, |
|
size: 'small', |
|
props: { |
|
labelText: '标题', |
|
label: 'title', |
|
value: 'value', |
|
children: 'children', |
|
}, |
|
};
|
|
|