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