diff --git a/dist.zip b/dist.zip index 9d536a0..8ab7606 100644 Binary files a/dist.zip and b/dist.zip differ diff --git a/src/views/business/erp/service/service-applications-form.vue b/src/views/business/erp/service/service-applications-form.vue index bddc90a..bb88281 100644 --- a/src/views/business/erp/service/service-applications-form.vue +++ b/src/views/business/erp/service/service-applications-form.vue @@ -520,6 +520,7 @@ certificateNumber: undefined, firmId: undefined, //执业机构ID departmentName: undefined, //部门名称 + positionId: undefined, //职务ID serviceStart: undefined, //服务开始时间 serviceEnd: undefined, //服务结束时间 serviceDuration: undefined, //服务时长(小时) diff --git a/src/views/mobile/service/detail.vue b/src/views/mobile/service/detail.vue index 9570970..eaae099 100644 --- a/src/views/mobile/service/detail.vue +++ b/src/views/mobile/service/detail.vue @@ -472,7 +472,7 @@ const currentActivityType = ref(''); // 计算属性:获取当前活动类型 const activityType = computed(() => { - return currentActivityType.value || ''; + return currentActivityType.value || form.serviceType || ''; }); // 计算属性:获取当前活动 @@ -484,7 +484,8 @@ const selectedActivity = computed(() => { watch( () => [form.serviceStart, form.serviceEnd], ([startTime, endTime]) => { - if (startTime && endTime) { + // 只有在非只读模式下且当前活动类型为DICT时才自动计算服务时长 + if (!readonlyMode.value && activityType.value === 'DICT' && (startTime && endTime)) { const start = dayjs(startTime); const end = dayjs(endTime); if (end.isAfter(start)) { @@ -495,7 +496,8 @@ watch( form.serviceDuration = undefined; message.warning('服务结束时间必须晚于开始时间'); } - } else { + } else if (!readonlyMode.value && activityType.value === 'DICT' && (!startTime || !endTime)) { + // 只有在非只读模式下且当前活动类型为DICT时才清空服务时长 form.serviceDuration = undefined; } }, @@ -515,25 +517,28 @@ watch( form.serviceType = selectedActivity.timeType || ''; // 根据活动类型设置默认服务时长 - if (selectedActivity.timeType === 'TIME') { - // 检查活动是否有固定小时数(使用price字段) - if (selectedActivity.price) { - // 如果价格包含范围(有-),让用户自己填写 - if (selectedActivity.price.includes('-')) { - form.serviceDuration = undefined; + // 只有在非只读模式下(即编辑模式)才设置默认服务时长 + if (!readonlyMode.value) { + if (selectedActivity.timeType === 'TIME') { + // 检查活动是否有固定小时数(使用price字段) + if (selectedActivity.price) { + // 如果价格包含范围(有-),让用户自己填写 + if (selectedActivity.price.includes('-')) { + // 保留现有值,不设为undefined + } else { + // 固定使用活动中的小时数 + form.serviceDuration = parseFloat(selectedActivity.price); + } } else { - // 固定使用活动中的小时数 - form.serviceDuration = parseFloat(selectedActivity.price); + // 默认值 + form.serviceDuration = 25; } - } else { - // 默认值 - form.serviceDuration = 25; + } else if (selectedActivity.timeType === 'AMOUT') { + // 保留现有值,不设为undefined + } else if (selectedActivity.timeType === 'DICT') { + // DICT类型:清空服务时长,让用户通过选择时间或手动填写 + form.serviceDuration = undefined; } - } else if (selectedActivity.timeType === 'AMOUT') { - form.serviceDuration = undefined; - } else if (selectedActivity.timeType === 'DICT') { - // DICT类型:清空服务时长,让用户通过选择时间或手动填写 - form.serviceDuration = undefined; } } } else { @@ -676,9 +681,19 @@ async function getDetail() { } else { console.log('未找到对应的活动:', form.activityNameId) console.log('活动列表:', activityList.value) + // 使用form.serviceType作为后备 + if (form.serviceType) { + currentActivityType.value = form.serviceType + console.log('使用form.serviceType作为后备活动类型:', form.serviceType) + } } } else { console.log('活动名称ID或活动列表为空:', form.activityNameId, activityList.value.length) + // 使用form.serviceType作为后备 + if (form.serviceType) { + currentActivityType.value = form.serviceType + console.log('使用form.serviceType作为后备活动类型:', form.serviceType) + } } // 如果有附件ID,则加载文件列表(与PC端逻辑一致)