hldy_vue/src/views/system/depart/depart.data.ts

335 lines
7.5 KiB
TypeScript

import { FormSchema } from '/@/components/Form';
// 部门基础表单
export function useBasicFormSchema() {
const basicFormSchema: FormSchema[] = [
{
field: 'parentId',
label: '上级',
component: 'TreeSelect',
ifShow: (v_) => {
return !!v_.values.parentId;
},
componentProps: {
treeData: [],
placeholder: '无',
dropdownStyle: { maxHeight: '200px', overflow: 'auto' },
},
},
{
field: 'departName',
label: '名称',
component: 'Input',
componentProps: {
placeholder: '请输入名称',
},
rules: [{ required: true, message: '名称不能为空' }],
},
{
field: 'orgCode',
label: '编码',
component: 'Input',
componentProps: {
placeholder: '请输入编码',
},
},
// {
// field: 'orgCategory',
// label: '类型',
// component: 'RadioButtonGroup',
// componentProps: { options: [] },
// },
{
field: 'url',
label: '协议域名',
component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
placeholder: '请输入协议域名',
},
},
{
field: 'contextPath',
label: '项目访问路径',
component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
placeholder: '请输入项目访问路径',
},
},
// {
// field: 'province',
// label: '省份',
// component: 'Input',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// slot: 'province',
// },
// {
// field: 'city',
// label: '城市',
// component: 'Input',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// slot: 'city',
// },
// {
// field: 'district',
// label: '区县',
// component: 'Input',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// slot: 'district',
// },
{
field: 'platType',
label: '业务平台类型',
defaultValue: 'ywjg',
component: 'JDictSelectTag',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
dictCode: 'iz_test_site',
},
rules: [
{
required: true,
message: '请选择平台类型',
},
],
},
// {
// field: 'payableAmount',
// label: '入住应缴金额',
// component: 'InputNumber',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// rules: [
// {
// required: true,
// message: '请填写护理单元长者入住应缴金额',
// },
// ],
// },
// {
// field: 'operationStartTime',
// label: '运营开始时间',
// component: 'DatePicker',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// componentProps: {
// valueFormat: 'YYYY-MM-DD',
// style: {
// width: '100%',
// },
// },
// },
// {
// field: 'operationEndTime',
// label: '运营到期时间',
// component: 'DatePicker',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// componentProps: {
// valueFormat: 'YYYY-MM-DD',
// style: {
// width: '100%',
// },
// },
// },
// {
// field: 'contractStartTime',
// label: '合同开始时间',
// component: 'DatePicker',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// componentProps: {
// valueFormat: 'YYYY-MM-DD',
// style: {
// width: '100%',
// },
// },
// },
// {
// field: 'contractEndTime',
// label: '合同到期时间',
// component: 'DatePicker',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// componentProps: {
// valueFormat: 'YYYY-MM-DD',
// style: {
// width: '100%',
// },
// },
// },
// {
// field: 'mobile',
// label: '电话',
// component: 'Input',
// componentProps: {
// placeholder: '请输入电话',
// },
// },
// {
// field: 'fax',
// label: '传真',
// component: 'Input',
// componentProps: {
// placeholder: '请输入传真',
// },
// },
// {
// field: 'address',
// label: '地址',
// component: 'Input',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// componentProps: {
// placeholder: '请输入地址',
// },
// },
{
field: 'memo',
label: '备注',
component: 'InputTextArea',
componentProps: {
placeholder: '请输入备注',
},
},
{
field: 'departOrder',
label: '排序',
component: 'InputNumber',
componentProps: {},
},
// {
// field: 'picUrl',
// label: '机构图片',
// component: 'JImageUpload',
// ifShow: (v_) => {
// return !v_.values.parentId;
// },
// },
];
return { basicFormSchema };
}
// 机构类型选项
export const orgCategoryOptions = {
// 一级部门
root: [{ value: '1', label: '机构' }],
// 子级部门
child: [{ value: '2', label: '部门' }],
};
export const tplinkUseFormSchema: FormSchema[] = [
{
field: 'id',
label: 'id',
component: 'Input',
show: false,
},
{
field: 'orgCode',
label: '所属机构',
component: 'Input',
required: true,
dynamicDisabled: true,
},
{
field: 'tumsProjectId',
label: '所属项目ID',
component: 'Input',
required: true,
show: false,
},
{
field: 'tumsProjectName',
label: '所属项目',
component: 'Input',
required: true,
dynamicDisabled: true,
},
{
field: 'tumsUsername',
label: '用户名',
component: 'Input',
required: true,
},
{
field: 'tumsPassword',
label: '密码',
required: true,
component: 'StrengthMeter',
rules: [
{
required: true,
message: '请输入登录密码',
},
{
pattern:
/^(?!.*(.)\1{2})(?=(?:.*[0-9].*[A-Z])|(?:.*[0-9].*[a-z])|(?:.*[0-9].*[~!@#$%^&*()_+={[}\]|\\:;'"<,>.?/ -])|(?:.*[A-Z].*[a-z])|(?:.*[A-Z].*[~!@#$%^&*()_+={[}\]|\\:;'"<,>.?/ -])|(?:.*[a-z].*[~!@#$%^&*()_+={[}\]|\\:;'"<,>.?/ -]))[0-9A-Za-z~!@#$%^&*()_+={[}\]|\\:;'"<,>.?/ -]{8,64}$/,
message: '密码由8位数字、大小写字母和特殊符号组成!',
},
],
// dynamicDisabled: ({ values }) => {
// return !!values.id;
// },
},
{
field: 'tumsRoleId',
label: '角色',
required: true,
component: 'JDictSelectTag',
componentProps: {
placeholder: '请选择类型',
options: [
{ label: '超级管理员', value: '1' },
{ label: '项目管理员', value: '2' },
{ label: '项目查看员', value: '3' },
{ label: '视频监控员', value: '4' },
],
},
},
{
field: 'ftpIp',
label: 'FTP地址',
component: 'Input',
},
{
field: 'ftpPort',
label: 'FTP端口',
component: 'Input',
},
{
field: 'ftpUsername',
label: 'FTP用户',
component: 'Input',
},
{
field: 'ftpPassword',
label: 'FTP密码',
component: 'InputPassword',
},
{
field: 'ftpUploadpath',
label: 'FTP上传路径',
component: 'Input',
},
];