import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter, getNowDateTime } from '@/utils/formatTime' // 表单校验 export const rules = reactive({ name: [required], totalLimitCount: [required], singleLimitCount: [required], startTime: [required], endTime: [required], userSize: [required], totalNum: [required], successNum: [required], orderUserCount: [required], virtualGroup: [required], status: [required], limitDuration: [required] }) // CrudSchema https://doc.iocoder.cn/vue3/crud-schema/ const crudSchemas = reactive([ { label: '拼团名称', field: 'name', isSearch: true, isTable: false, form: { colProps: { span: 24 } } }, { label: '活动时间', field: 'activityTime', formatter: dateFormatter, search: { show: true, component: 'DatePicker', componentProps: { valueFormat: 'YYYY-MM-DD HH:mm:ss', type: 'datetimerange' } }, form: { component: 'DatePicker', componentProps: { valueFormat: 'YYYY-MM-DD HH:mm:ss', type: 'datetimerange' }, value: [getNowDateTime(), getNowDateTime()], colProps: { span: 24 } } }, { label: '参与人数', field: 'orderUserCount', isSearch: false, form: { component: 'InputNumber', labelMessage: '参与人数不能少于两人', value: 2 } }, { label: '限制时长', field: 'limitDuration', isSearch: false, isTable: false, form: { component: 'InputNumber', labelMessage: '限制时长(小时)', componentProps: { placeholder: '请输入限制时长(小时)' } } }, { label: '总限购数量', field: 'totalLimitCount', isSearch: false, isTable: false, form: { component: 'InputNumber', value: 0 } }, { label: '单次限购数量', field: 'singleLimitCount', isSearch: false, isTable: false, form: { component: 'InputNumber', value: 0 } }, { label: '购买人数', field: 'userSize', isSearch: false, isForm: false }, { label: '开团组数', field: 'totalNum', isSearch: false, isForm: false }, { label: '成团组数', field: 'successNum', isSearch: false, isForm: false }, { label: '虚拟成团', field: 'virtualGroup', isSearch: false, isTable: false, form: { component: 'InputNumber', value: 0 } }, { label: '活动状态', field: 'status', dictType: DICT_TYPE.COMMON_STATUS, dictClass: 'number', isSearch: true, isForm: false }, { label: '创建时间', field: 'createTime', formatter: dateFormatter, isSearch: false, isTable: false, search: { component: 'DatePicker', componentProps: { valueFormat: 'YYYY-MM-DD HH:mm:ss', type: 'daterange', defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, isForm: false }, { label: '拼团商品', field: 'spuId', isSearch: false, form: { colProps: { span: 24 } } }, { label: '操作', field: 'action', isForm: false } ]) export const { allSchemas } = useCrudSchemas(crudSchemas)