/** * 项目:中核预埋件检测 * 模型分组:数据管理 * 模型名称:设备表 * @Author: xiongwei * @Date: 2024-11-15 11:50:00 */ import { BasicColumn } from '@/components/Table'; import { FormSchema } from '@/components/Table'; const colProps = { xs: { span: 24 }, sm: { span: 24 }, lg: { span: 6 } }; const colPropsInDrawer = { span: 24 }; export const schema = { model: 'Device', 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: 'name', label: '设备名称', defaultValue: undefined, form: { componentProps: { allowClear: false, placeholder: '设备名称', }, colProps, component: 'Input', rules: [{ required: true, message: '请输入设备名称!' }], }, table: { }, }, { field: 'deviceSn', label: '设备序列号', defaultValue: undefined, form: { componentProps: { allowClear: true, placeholder: '设备序列号', }, colProps, component: 'Input', rules: [{ required: true, message: '请输入设备序列号!' }], }, table: { }, }, { field: 'deviceIp', label: '设备IP地址', defaultValue: undefined, form: { componentProps: { allowClear: true, placeholder: '设备IP地址', }, colProps, component: 'Input', }, 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','deviceSn','deviceIp']; const editFields = ['name','deviceSn','deviceIp']; const tableFields = ['name','deviceSn','deviceIp','createTime','updateTime']; const descriptionFields = ['name','deviceSn','deviceIp','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 }], } 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; });