隐患详情重新设计,检查计划重新设计成做题排查式

This commit is contained in:
王利强
2026-06-21 16:30:12 +08:00
parent 1fe87ec438
commit cc94d3e3e9
256 changed files with 12542 additions and 5956 deletions

View File

@@ -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