隐患详情重新设计,检查计划重新设计成做题排查式
This commit is contained in:
@@ -129,7 +129,7 @@
|
||||
<view class="form-label">
|
||||
<text>开始时间</text>
|
||||
</view>
|
||||
<view class="picker-input" @click="showStartDatePicker = true">
|
||||
<view class="picker-input" @click="openStartDatePicker">
|
||||
<text :class="formData.startDate ? 'picker-value' : 'picker-placeholder'">
|
||||
{{ formData.startDate || '请选择开始时间' }}
|
||||
</text>
|
||||
@@ -137,8 +137,9 @@
|
||||
</view>
|
||||
<up-datetime-picker
|
||||
:show="showStartDatePicker"
|
||||
mode="datetime"
|
||||
mode="date"
|
||||
v-model="startDateValue"
|
||||
:minDate="todayMinDate"
|
||||
@confirm="onStartDateConfirm"
|
||||
@cancel="showStartDatePicker = false"
|
||||
@close="showStartDatePicker = false"
|
||||
@@ -150,7 +151,7 @@
|
||||
<view class="form-label">
|
||||
<text>结束时间</text>
|
||||
</view>
|
||||
<view class="picker-input" @click="showEndDatePicker = true">
|
||||
<view class="picker-input" @click="openEndDatePicker">
|
||||
<text :class="formData.endDate ? 'picker-value' : 'picker-placeholder'">
|
||||
{{ formData.endDate || '请选择结束时间' }}
|
||||
</text>
|
||||
@@ -158,8 +159,9 @@
|
||||
</view>
|
||||
<up-datetime-picker
|
||||
:show="showEndDatePicker"
|
||||
mode="datetime"
|
||||
mode="date"
|
||||
v-model="endDateValue"
|
||||
:minDate="endDateMinDate"
|
||||
@confirm="onEndDateConfirm"
|
||||
@cancel="showEndDatePicker = false"
|
||||
@close="showEndDatePicker = false"
|
||||
@@ -426,8 +428,23 @@ const onSwitchChange = (e) => {
|
||||
};
|
||||
|
||||
// 日期选择器值
|
||||
const startDateValue = ref(Number(new Date()));
|
||||
const endDateValue = ref(Number(new Date()));
|
||||
const getTodayTimestamp = () => {
|
||||
const now = new Date();
|
||||
return new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime();
|
||||
};
|
||||
|
||||
const todayMinDate = computed(() => getTodayTimestamp());
|
||||
|
||||
const endDateMinDate = computed(() => {
|
||||
if (formData.startDate) {
|
||||
const [year, month, day] = formData.startDate.split('-').map(Number);
|
||||
return new Date(year, month - 1, day).getTime();
|
||||
}
|
||||
return getTodayTimestamp();
|
||||
});
|
||||
|
||||
const startDateValue = ref(getTodayTimestamp());
|
||||
const endDateValue = ref(getTodayTimestamp());
|
||||
|
||||
// 选择器显示控制
|
||||
const showDeptPicker = ref(false);
|
||||
@@ -619,22 +636,46 @@ const onCycleConfirm = (e) => {
|
||||
showCyclePicker.value = false;
|
||||
};
|
||||
|
||||
// 日期时间格式化(精确到时分秒)
|
||||
const formatDateTime = (timestamp) => {
|
||||
// 日期格式化(年月日)
|
||||
const formatDate = (timestamp) => {
|
||||
const date = new Date(timestamp);
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
return `${year}-${month}-${day}`;
|
||||
};
|
||||
|
||||
const parseDateValue = (dateStr) => {
|
||||
if (!dateStr) return 0;
|
||||
const [datePart] = dateStr.split(' ');
|
||||
const [year, month, day] = datePart.split('-').map(Number);
|
||||
return new Date(year, month - 1, day).getTime();
|
||||
};
|
||||
|
||||
const openStartDatePicker = () => {
|
||||
const today = getTodayTimestamp();
|
||||
if (startDateValue.value < today) {
|
||||
startDateValue.value = today;
|
||||
}
|
||||
showStartDatePicker.value = true;
|
||||
};
|
||||
|
||||
const openEndDatePicker = () => {
|
||||
const minDate = endDateMinDate.value;
|
||||
if (endDateValue.value < minDate) {
|
||||
endDateValue.value = minDate;
|
||||
}
|
||||
showEndDatePicker.value = true;
|
||||
};
|
||||
|
||||
const onStartDateConfirm = (e) => {
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
// 如果已经选了结束时间,校验开始时间不能晚于结束时间
|
||||
if (formData.endDate && new Date(selectedDate) > new Date(formData.endDate)) {
|
||||
const selectedDate = formatDate(e.value);
|
||||
const todayStr = formatDate(getTodayTimestamp());
|
||||
if (selectedDate < todayStr) {
|
||||
uni.showToast({ title: '开始时间不能早于今天', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (formData.endDate && parseDateValue(selectedDate) > parseDateValue(formData.endDate)) {
|
||||
uni.showToast({ title: '开始时间不能晚于结束时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
@@ -643,9 +684,8 @@ const onStartDateConfirm = (e) => {
|
||||
};
|
||||
|
||||
const onEndDateConfirm = (e) => {
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
// 如果已经选了开始时间,校验结束时间不能早于开始时间
|
||||
if (formData.startDate && new Date(selectedDate) < new Date(formData.startDate)) {
|
||||
const selectedDate = formatDate(e.value);
|
||||
if (formData.startDate && parseDateValue(selectedDate) < parseDateValue(formData.startDate)) {
|
||||
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
@@ -1101,7 +1141,7 @@ const handleSave = async () => {
|
||||
uni.showToast({ title: '请选择计划时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (new Date(formData.endDate) < new Date(formData.startDate)) {
|
||||
if (parseDateValue(formData.endDate) < parseDateValue(formData.startDate)) {
|
||||
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
@@ -1157,8 +1197,8 @@ const handleSave = async () => {
|
||||
itemIds: itemIds, // 从检查库选择的库id数组
|
||||
cycle: cycleMap[formData.cycleName] || 1,
|
||||
isWeekend: workdaySwitch.value ? 1 : 2,
|
||||
planStartTime: formData.startDate,
|
||||
planEndTime: formData.endDate
|
||||
planStartTime: `${formData.startDate} 00:00:00`,
|
||||
planEndTime: `${formData.endDate} 23:59:59`
|
||||
};
|
||||
|
||||
// 如果是指定人员模式,添加执行人员id
|
||||
|
||||
Reference in New Issue
Block a user