import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter, dateFormatter3 } from '@/utils/formatTime' const { t } = useI18n() // 国际化 import { validateYS } from '@/utils/validator' /** * @returns {Array} 班次 */ export const Shift = useCrudSchemas( reactive([ { label: '代码', field: 'code', sort: 'custom', table: { width: 150, fixed: 'left' }, isSearch: true }, { label: '名称', field: 'name', sort: 'custom', table: { width: 150 } }, { label: '开始时间', field: 'beginTime', isTable: true, formatter: dateFormatter3, detail: { dateFormat: 'HH:mm:ss' }, sort: 'custom', table: { width: 180 }, form: { component: 'TimePicker', componentProps: { style: { width: '100%' }, type: 'time', dateFormat: 'HH:mm:ss', valueFormat: 'x' } }, isSearch: false, search: { show: false, component: 'TimePicker', componentProps: { valueFormat: 'HH:mm:ss', type: 'timeSelect' } } }, { label: '结束时间', field: 'entTime', isTable: true, formatter: dateFormatter3, detail: { dateFormat: 'HH:mm:ss' }, sort: 'custom', table: { width: 180 }, form: { component: 'TimePicker', componentProps: { style: { width: '100%' }, type: 'time', dateFormat: 'HH:mm:ss', valueFormat: 'x' } }, isSearch: false, search: { show: false, component: 'TimePicker', componentProps: { valueFormat: 'HH:mm:ss', type: 'timeSelect' } } }, { label: '是否跨天', field: 'endAtNextDay', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', isTable: true, sort: 'custom', table: { width: 150 }, form: { component: 'Switch', value: 'TRUE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' } } }, { label: '是否可用', field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', isTable: true, isSearch: true, sort: 'custom', table: { width: 150 }, form: { component: 'Switch', value: 'TRUE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' } } }, { label: '生效时间', field: 'activeTime', isTable: true, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, sort: 'custom', table: { width: 180 }, form: { component: 'DatePicker', componentProps: { style: { width: '100%' }, type: 'datetime', dateFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'x' } } }, { label: '失效时间', field: 'expireTime', isTable: true, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, sort: 'custom', table: { width: 180 }, form: { component: 'DatePicker', componentProps: { style: { width: '100%' }, type: 'datetime', dateFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'x' } } }, { label: '备注', field: 'remark', sort: 'custom', table: { width: 150 } }, { label: '创建时间', field: 'createTime', isForm: false, table: { width: 180 }, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, form: { component: 'DatePicker', componentProps: { style: { width: '100%' }, type: 'datetime', dateFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'x' } } }, { label: '创建者', field: 'creator', table: { width: 130 }, isForm: false, isTable: true }, { label: '最后更新时间', field: 'updateTime', sort: 'custom', isDetail: true, isForm: false, isTable: true, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, table: { width: 180 }, form: { component: 'DatePicker', componentProps: { style: { width: '100%' }, type: 'datetime', dateFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'x' } } }, { label: '最后更新者', field: 'updater', isDetail: true, isForm: false, isTable: true, table: { width: 150 } }, { label: '操作', field: 'action', isDetail: false, isForm: false, table: { width: 150, fixed: 'right' } } ]) ) //表单校验 export const ShiftRules = reactive({ code: [ { required: true, message: '请输入代码', trigger: 'blur' }, { max: 50, message: '不得超过50个字符', trigger: 'blur' }, { validator: validateYS, message: '请输入正确的代码', trigger: 'blur' } ], name: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], remark: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], beginTime: [{ required: true, message: '请输入开始时间', trigger: 'blur' }], entTime: [{ required: true, message: '请输入结束时间', trigger: 'blur' }], endAtNextDay: [{ required: true, message: '请选择是否跨天', trigger: 'change' }], available: [{ required: true, message: '请选择是否可用', trigger: 'change' }] })