This commit is contained in:
fyy
2025-07-21 20:58:16 +08:00
9 changed files with 323 additions and 96 deletions

View File

@@ -34,12 +34,21 @@ export const columns: VxeGridProps['columns'] = [
field: 'name',
},
{
title: '考勤开始时间',
field: 'startTime',
},
{
title: '考勤结束时间',
field: 'endTime',
title: '考勤时间',
field: 'timeRange',
slots: {
default: ({ row }) => {
const startTime = row.startTime || '';
const endTime = row.endTime || '';
const restStartTime = row.restStartTime || '';
const restEndTime = row.restEndTime || '';
if(restStartTime&&restEndTime){
return `${startTime} - ${restStartTime} ${restEndTime} - ${endTime}`;
}else{
return `${startTime} - ${endTime}`;
}
},
},
},
{
title: '状态',
@@ -69,6 +78,7 @@ export const modalSchema: FormSchemaGetter = () => [
label: '班次名称',
fieldName: 'name',
component: 'Input',
rules: 'required',
},
{
label: '考勤时间',
@@ -85,8 +95,8 @@ export const modalSchema: FormSchemaGetter = () => [
component: 'RadioGroup',
componentProps: {
options: [
{ label: '不休息', value: '0' },
{ label: '休息', value: '1' },
{ label: '不休息', value: 0 },
{ label: '休息', value: 1 },
],
},
rules: 'required',

View File

@@ -52,6 +52,18 @@ const [BasicModal, modalApi] = useVbenModal({
isUpdate.value = !!id;
if (isUpdate.value && id) {
const record = await shiftInfo(id);
record.attendanceTimeRange = [
dayjs(record.startTime, 'HH:mm:ss'),
dayjs(record.endTime, 'HH:mm:ss')
];
if(record.restStartTime !== null && record.restEndTime !== null){
record.restTimeRange = [
dayjs(record.restStartTime, 'HH:mm:ss'),
dayjs(record.restEndTime, 'HH:mm:ss')
];
}
record.status = record.status?.toString();
console.log(record);
await formApi.setValues(record);
}
await markInitialized();
@@ -69,8 +81,10 @@ async function handleConfirm() {
const data = cloneDeep(await formApi.getValues());
data.startTime = dayjs(data.attendanceTimeRange[0]).format('HH:mm:ss');
data.endTime = dayjs(data.attendanceTimeRange[1]).format('HH:mm:ss');
data.restStartTime = dayjs(data.restTimeRange[0]).format('HH:mm:ss');
data.restEndTime = dayjs(data.restTimeRange[1]).format('HH:mm:ss');
if(data.restTimeRange){
data.restStartTime = dayjs(data.restTimeRange[0]).format('HH:mm:ss');
data.restEndTime = dayjs(data.restTimeRange[1]).format('HH:mm:ss');
}
delete data.attendanceTimeRange;
delete data.restTimeRange;
await (isUpdate.value ? shiftUpdate(data) : shiftAdd(data));