Jelajahi Sumber

pms 瑞都日报 时间范围无法正常回显

zhangcl 2 minggu lalu
induk
melakukan
e135e8b44e
1 mengubah file dengan 24 tambahan dan 7 penghapusan
  1. 24 7
      src/views/pms/iotrddailyreport/FillDailyReportForm.vue

+ 24 - 7
src/views/pms/iotrddailyreport/FillDailyReportForm.vue

@@ -745,6 +745,18 @@ const approvalFormRules = reactive({
   ]
 })
 
+// 将时分秒数组转换为Date对象(基于constructionStartDate的日期)
+const parseTimeArrayToDate = (timeArray: number[], baseDate: number) => {
+  if (!Array.isArray(timeArray) || !baseDate) {
+    return null
+  }
+  const hour = timeArray[0] || 0
+  const minute = timeArray[1] || 0
+  const second = timeArray[2] || 0
+  // 基于日报日期(constructionStartDate)设置时分秒
+  return dayjs(baseDate).hour(hour).minute(minute).second(second).toDate()
+}
+
 // 添加文件上传组件的引用
 const fileUploadRef = ref()
 
@@ -762,8 +774,9 @@ const formData = ref({
   costCenterId: undefined,
   costCenter: '',
   platformId: undefined, // 平台井ID
-  // 新增日报填报字段
-  timeRange: [ // 设置默认时间范围 8:00 - 8:00
+  // 日报填报字段
+  timeRange: [
+    // 设置默认时间范围 8:00 - 8:00
     dayjs().hour(8).minute(0).second(0).toDate(),
     dayjs().hour(8).minute(0).second(0).toDate()
   ],
@@ -1562,11 +1575,15 @@ const initFormData = (reportData: any) => {
   }
   queryParams.deptId = reportData.companyId
   // 设置时间范围选择器
-  if (reportData.startTime && reportData.startTime[0] && reportData.endTime && reportData.endTime[0]) {
-    formData.value.timeRange = [
-      new Date(reportData.startTime[0]),
-      new Date(reportData.endTime[0])
-    ]
+  if (reportData.startTime && Array.isArray(reportData.startTime) && reportData.endTime && Array.isArray(reportData.endTime)) {
+    // 基于日报的施工开始日期作为基准日期
+    const baseDate = reportData.constructionStartDate || Date.now()
+    const startTime = parseTimeArrayToDate(reportData.startTime, baseDate)
+    const endTime = parseTimeArrayToDate(reportData.endTime, baseDate)
+
+    if (startTime && endTime) {
+      formData.value.timeRange = [startTime, endTime]
+    }
   }
 
   // 初始化平台井数据