|
|
|
@ -586,6 +586,23 @@ |
|
|
|
} |
|
|
|
|
|
|
|
// 监听活动名称变化,更新活动类型和设置默认服务时长 |
|
|
|
function syncActivityDuration(activity, preserveExisting = false) { |
|
|
|
if (!activity || activity.timeType !== 'TIME') { |
|
|
|
return; |
|
|
|
} |
|
|
|
const configuredDuration = String(activity.price ?? '').trim(); |
|
|
|
const hasExistingDuration = form.serviceDuration !== undefined && form.serviceDuration !== null && form.serviceDuration !== ''; |
|
|
|
if (preserveExisting && hasExistingDuration) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (configuredDuration.includes('-')) { |
|
|
|
form.serviceDuration = undefined; |
|
|
|
return; |
|
|
|
} |
|
|
|
const fixedDuration = Number(configuredDuration || 25); |
|
|
|
form.serviceDuration = Number.isFinite(fixedDuration) ? fixedDuration : 25; |
|
|
|
} |
|
|
|
|
|
|
|
watch( |
|
|
|
() => form.activityNameId, |
|
|
|
(activityNameId, oldActivityNameId) => { |
|
|
|
@ -623,23 +640,14 @@ |
|
|
|
console.log('更新后的currentActivityType:', currentActivityType.value); |
|
|
|
console.log('当前form.serviceDuration:', form.serviceDuration); |
|
|
|
|
|
|
|
// 根据活动类型设置默认服务时长 |
|
|
|
// 只有在非编辑模式下(即新建模式)才设置默认服务时长 |
|
|
|
if (!isEditMode.value) { |
|
|
|
// 新增或用户在编辑页切换活动时按新活动配置重置;编辑初始化仅在旧值为空时补固定时长。 |
|
|
|
const activityChangedByUser = |
|
|
|
!initializingForm.value && |
|
|
|
oldActivityNameId != null && |
|
|
|
String(activityNameId) !== String(oldActivityNameId); |
|
|
|
if (!isEditMode.value || activityChangedByUser) { |
|
|
|
if (selectedActivity.timeType === 'TIME') { |
|
|
|
// 检查活动是否有固定小时数(使用price字段) |
|
|
|
if (selectedActivity.price) { |
|
|
|
// 如果价格包含范围(有-),让用户自己填写 |
|
|
|
if (selectedActivity.price.includes('-')) { |
|
|
|
form.serviceDuration = undefined; |
|
|
|
} else { |
|
|
|
// 固定使用活动中的小时数 |
|
|
|
form.serviceDuration = parseFloat(selectedActivity.price); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 默认值 |
|
|
|
form.serviceDuration = 25; |
|
|
|
} |
|
|
|
syncActivityDuration(selectedActivity, false); |
|
|
|
} else if (['AMOUNT', 'AMOUT'].includes(selectedActivity.timeType)) { |
|
|
|
form.serviceDuration = undefined; |
|
|
|
} else if (selectedActivity.timeType === 'DICT') { |
|
|
|
@ -648,6 +656,7 @@ |
|
|
|
} |
|
|
|
console.log('设置后的form.serviceDuration:', form.serviceDuration); |
|
|
|
} else { |
|
|
|
syncActivityDuration(selectedActivity, true); |
|
|
|
console.log('编辑模式下,保留原有的form.serviceDuration:', form.serviceDuration); |
|
|
|
} |
|
|
|
|
|
|
|
@ -766,6 +775,11 @@ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (!dayjs(form.serviceEnd).isAfter(dayjs(form.serviceStart))) { |
|
|
|
message.error('服务结束时间必须晚于开始时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (!form.serviceDuration) { |
|
|
|
message.error('请填写服务时长'); |
|
|
|
return; |
|
|
|
@ -905,6 +919,11 @@ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (!dayjs(form.serviceEnd).isAfter(dayjs(form.serviceStart))) { |
|
|
|
message.error('服务结束时间必须晚于开始时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (!form.serviceDuration) { |
|
|
|
message.error('请填写服务时长'); |
|
|
|
return; |
|
|
|
@ -1091,6 +1110,7 @@ |
|
|
|
loadSameFirmLawyers(); |
|
|
|
} |
|
|
|
form.serviceType = selectedActivity.timeType || ''; |
|
|
|
syncActivityDuration(selectedActivity, true); |
|
|
|
} else { |
|
|
|
} |
|
|
|
} else { |
|
|
|
|