|
|
@@ -435,13 +435,33 @@ const rules = reactive({
|
|
|
unusedType: [{ required: true, message: "请选择不可用日期类型" }],
|
|
|
unavailableWeekdays: [
|
|
|
{
|
|
|
- validator: validateConditionalRequired(() => voucherModel.value.unusedType == 2, "至少需要选择一个星期"),
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ if (voucherModel.value.unusedType == 2) {
|
|
|
+ const weekdays = voucherModel.value.unavailableWeekdays || [];
|
|
|
+ const holidays = voucherModel.value.unavailableHolidays || [];
|
|
|
+ if (weekdays.length === 0 && holidays.length === 0) {
|
|
|
+ callback(new Error("至少需要选择一个星期或节日"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ },
|
|
|
trigger: "change"
|
|
|
}
|
|
|
],
|
|
|
unavailableHolidays: [
|
|
|
{
|
|
|
- validator: validateConditionalRequired(() => voucherModel.value.unusedType == 2, "至少需要选择一个节日"),
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ if (voucherModel.value.unusedType == 2) {
|
|
|
+ const weekdays = voucherModel.value.unavailableWeekdays || [];
|
|
|
+ const holidays = voucherModel.value.unavailableHolidays || [];
|
|
|
+ if (weekdays.length === 0 && holidays.length === 0) {
|
|
|
+ callback(new Error("至少需要选择一个星期或节日"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ },
|
|
|
trigger: "change"
|
|
|
}
|
|
|
],
|
|
|
@@ -887,9 +907,10 @@ const toggleWeekday = (value: string) => {
|
|
|
} else {
|
|
|
voucherModel.value.unavailableWeekdays.push(value);
|
|
|
}
|
|
|
- // 触发表单验证
|
|
|
+ // 触发表单验证(同时验证星期和节日字段)
|
|
|
nextTick(() => {
|
|
|
ruleFormRef.value?.validateField("unavailableWeekdays");
|
|
|
+ ruleFormRef.value?.validateField("unavailableHolidays");
|
|
|
});
|
|
|
};
|
|
|
|
|
|
@@ -909,8 +930,9 @@ const toggleHoliday = (value: string | number) => {
|
|
|
} else {
|
|
|
voucherModel.value.unavailableHolidays.push(valueStr);
|
|
|
}
|
|
|
- // 触发表单验证
|
|
|
+ // 触发表单验证(同时验证星期和节日字段)
|
|
|
nextTick(() => {
|
|
|
+ ruleFormRef.value?.validateField("unavailableWeekdays");
|
|
|
ruleFormRef.value?.validateField("unavailableHolidays");
|
|
|
});
|
|
|
};
|