/** * 项目:视频监控平台 * 模型分组:用户管理 * 模型名称:区域表 * @Author: xiongwei * @Date: 2024-09-26 11:50:00 */ import { BasicColumn } from '@/components/Table'; import { FormSchema } from '@/components/Table'; const colProps = { xs: { span: 12 }, sm: { span: 12 }, lg: { span: 6 } }; const colPropsInDrawer = { span: 24 }; export const schema = { model: 'Region', viewInPage: false, properties: [ { field: 'id', label: 'ID系统自动生成', defaultValue: undefined, form: { componentProps: { allowClear: false, placeholder: 'ID系统自动生成', }, colProps, component: 'InputNumber', rules: [{ required: true, message: '请输入ID系统自动生成!' }], }, table: { }, }, { field: 'code', label: '编号', defaultValue: undefined, form: { componentProps: { allowClear: true, placeholder: '编号', }, colProps, component: 'Input', rules: [{ required: true, message: '请输入编号!' }], }, table: { }, }, { field: 'name', label: '名称', defaultValue: undefined, form: { componentProps: { allowClear: true, placeholder: '名称', }, colProps, component: 'Input', rules: [{ required: true, message: '请输入名称!' }], }, table: { }, }, { field: 'createTime', label: '创建时间', defaultValue: undefined, form: { colProps, componentProps: { allowClear: false, placeholder: ['开始时间', '结束时间'], format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', showTime: false, }, component: 'RangePicker', rules: [{ required: true, message: '请输入CreateTime!' }], }, table: { }, }, { field: 'updateTime', label: '更新时间', defaultValue: undefined, form: { colProps, componentProps: { allowClear: false, placeholder: ['开始时间', '结束时间'], format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', showTime: false, }, component: 'RangePicker', rules: [{ required: true, message: '请输入UpdateTime!' }], }, table: { }, }, ], }; const queryFields = ['name','code']; const editFields = ['name','code']; const tableFields = ['name','code','createTime','updateTime']; const descriptionFields = ['name','code','createTime','updateTime']; const queryFieldsIndexMap = new Map(queryFields.map((field, index) => [field, index])); export const searchFormSchema: FormSchema[] = schema.properties.filter(item => queryFields.includes(item.field)) .map( ({ field, label, form: { ...formProps } }) => ({ field, label, defaultValue: undefined, ...formProps, required: false, rules: [{ required: false }], // resetButtonOptions: { disabled: true }, } as FormSchema), ) .sort((a, b) => { const indexA = queryFieldsIndexMap.get(a.field) as number; const indexB = queryFieldsIndexMap.get(b.field) as number; return indexA - indexB; }); const editFieldsIndexMap = new Map(editFields.map((field, index) => [field, index])); export const formSchema: FormSchema[] = schema.properties.filter(item => editFields.includes(item.field)) .map( ({ field, label, defaultValue, form }) => ({ field, label, defaultValue, ...form, colProps: colPropsInDrawer, } as FormSchema), ) .sort((a, b) => { const indexA = editFieldsIndexMap.get(a.field) as number; const indexB = editFieldsIndexMap.get(b.field) as number; return indexA - indexB; }); const tableFieldsIndexMap = new Map(tableFields.map((field, index) => [field, index])); export const columns: BasicColumn[] = schema.properties.filter(item => tableFields.includes(item.field)) .map( ({ field, label, table }) => ({ dataIndex: field, title: label, ...table, } as BasicColumn) ) .sort((a, b) => { const indexA = tableFieldsIndexMap.get(a.dataIndex as string) as number; const indexB = tableFieldsIndexMap.get(b.dataIndex as string) as number; return indexA - indexB; }); const descriptionFieldsIndexMap = new Map(descriptionFields.map((field, index) => [field, index])); export const descriptionColumns: BasicColumn[] = schema.properties.filter(item => descriptionFields.includes(item.field)) .map( ({ field, label, table }) => ({ dataIndex: field, title: label, ...table, } as BasicColumn), ) .sort((a, b) => { const indexA = descriptionFieldsIndexMap.get(a.dataIndex as string) as number; const indexB = descriptionFieldsIndexMap.get(b.dataIndex as string) as number; return indexA - indexB; });