feat: 调整默认排课节奏并限制时间选择
第一节 08:00-09:00,之后从 09:30 起每小时一节至 21:30;排课时间仅可选整点或半点。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -28,7 +28,12 @@
|
||||
</view>
|
||||
<view class="form-row">
|
||||
<text class="form-label">开始时间</text>
|
||||
<picker mode="time" :value="addForm.startTime" @change="(e: any) => addForm.startTime = e.detail.value">
|
||||
<picker
|
||||
mode="multiSelector"
|
||||
:range="timePickerRange"
|
||||
:value="timeToPickerIndex(addForm.startTime)"
|
||||
@change="(e: any) => addForm.startTime = pickerIndexToTime(e.detail.value)"
|
||||
>
|
||||
<view class="picker-display">
|
||||
<text class="picker-text">{{ addForm.startTime || '请选择' }}</text>
|
||||
<text class="picker-arrow">›</text>
|
||||
@@ -37,7 +42,12 @@
|
||||
</view>
|
||||
<view class="form-row">
|
||||
<text class="form-label">结束时间</text>
|
||||
<picker mode="time" :value="addForm.endTime" @change="(e: any) => addForm.endTime = e.detail.value">
|
||||
<picker
|
||||
mode="multiSelector"
|
||||
:range="timePickerRange"
|
||||
:value="timeToPickerIndex(addForm.endTime)"
|
||||
@change="(e: any) => addForm.endTime = pickerIndexToTime(e.detail.value)"
|
||||
>
|
||||
<view class="picker-display">
|
||||
<text class="picker-text">{{ addForm.endTime || '请选择' }}</text>
|
||||
<text class="picker-arrow">›</text>
|
||||
@@ -128,7 +138,7 @@
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
<text class="gen-hint">将按默认时间表(每天 8:00-22:00,每小时一节)自动生成所选日期范围内的时段</text>
|
||||
<text class="gen-hint">将按默认时间表(8:00-9:00,之后从 9:30 起每小时一节至 21:30)自动生成所选日期范围内的时段</text>
|
||||
<view class="action-wrap">
|
||||
<view class="action-btn" :class="{ 'action-btn--loading': submitting }" @tap="submitGenerate">
|
||||
<text class="action-btn-text">{{ submitting ? '生成中...' : '批量生成' }}</text>
|
||||
@@ -145,6 +155,13 @@ import { getSystemLayout } from '../../utils/system'
|
||||
import { useAdminStore } from '../../stores/admin'
|
||||
import { formatDate } from '../../utils/format'
|
||||
import type { TimeSlot } from '@mp-pilates/shared'
|
||||
import {
|
||||
SCHEDULE_TIME_PICKER_RANGE,
|
||||
timeToPickerIndex,
|
||||
pickerIndexToTime,
|
||||
} from '../../utils/schedule-time'
|
||||
|
||||
const timePickerRange = SCHEDULE_TIME_PICKER_RANGE
|
||||
|
||||
const adminStore = useAdminStore()
|
||||
|
||||
@@ -157,8 +174,8 @@ const slotsLoading = ref(false)
|
||||
// ── Add slot form ────────────────────────────────────────────────
|
||||
const addForm = ref({
|
||||
date: formatDate(new Date()),
|
||||
startTime: '09:00',
|
||||
endTime: '10:00',
|
||||
startTime: '09:30',
|
||||
endTime: '10:30',
|
||||
capacityStr: '10',
|
||||
})
|
||||
|
||||
@@ -168,6 +185,10 @@ async function submitAddSlot() {
|
||||
uni.showToast({ title: '请填写完整信息', icon: 'none' })
|
||||
return
|
||||
}
|
||||
if (addForm.value.startTime >= addForm.value.endTime) {
|
||||
uni.showToast({ title: '结束时间须晚于开始时间', icon: 'none' })
|
||||
return
|
||||
}
|
||||
const capacity = parseInt(addForm.value.capacityStr, 10)
|
||||
submitting.value = true
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user