fix(vehicle): 详情页保险到期时间在新表查询成功后无条件以新表为准 [ai-coding]

用户清空保单日期后不再继续展示主表旧字段值,主表值仅在新表查询失败时兜底
1个文件已修改
16 ■■■■■ 已修改文件
src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue
@@ -685,19 +685,19 @@
      // 状态直接使用接口返回的 data.status 与 data.operatingStatus
      // 保险到期时间改为读新表 xp_vehicle_insurance:产品确认多保单场景下暂时回显
      // 最早到期的保单日期;主表 insuranceEndTime 是旧字段,多保单车辆下为空,
      // 上面赋的值仅作为新表查询失败时的兜底。
      // 最早到期的保单日期;主表 insuranceEndTime 是旧字段,仅作为新表查询失败时的兜底。
      // 注意:新表查询成功时必须无条件以新表为准(无带到期时间的保单则显示空),
      // 否则用户清空保单日期后,主表旧值会继续展示
      try {
        const { data: insuranceList } = await getVehicleInsuranceList(data.id)
        if (insuranceList && insuranceList.length > 0) {
        if (Array.isArray(insuranceList)) {
          const endTimes = insuranceList
            .map((item: any) => item.insuranceEndTime)
            .filter((endTime: any) => !!endTime)
          if (endTimes.length > 0) {
            const earliestEndTime = endTimes.reduce((earliest: string, current: string) =>
              dayjs(current).isBefore(dayjs(earliest)) ? current : earliest)
            vehicleDetail.value.insuranceExpireDate = earliestEndTime
          }
          vehicleDetail.value.insuranceExpireDate = endTimes.length > 0
            ? endTimes.reduce((earliest: string, current: string) =>
                dayjs(current).isBefore(dayjs(earliest)) ? current : earliest)
            : ''
        }
      }
      catch (error) {