From 0ffdf00009b0bede0859fa33deddefb55c075a7b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 01 二月 2026 16:42:36 +0800
Subject: [PATCH] feat:优化增加任务同步接口,允许前端手动控制同步

---
 app/pagesTask/create-emergency.vue |   96 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 65 insertions(+), 31 deletions(-)

diff --git a/app/pagesTask/create-emergency.vue b/app/pagesTask/create-emergency.vue
index e68decb..d1adac9 100644
--- a/app/pagesTask/create-emergency.vue
+++ b/app/pagesTask/create-emergency.vue
@@ -2006,6 +2006,14 @@
       // - YYYYMMDD
       // - yyyy-MM-dd HH:mm:ss
       console.log('灏濊瘯鏍煎紡鍖栨棩鏈熷瓧绗︿覆:', dateStr)
+      
+      // 濡傛灉杈撳叆涓虹┖鎴栨棤鏁堬紝杩斿洖绌哄瓧绗︿覆
+      if (!dateStr || typeof dateStr !== 'string') {
+        console.warn('鏃ユ湡瀛楃涓叉棤鏁�:', dateStr)
+        return ''
+      }
+      
+      // 娓呮礂鏃ユ湡瀛楃涓�
       let cleaned = dateStr
         .replace(/[骞存湀]/g, '-')
         .replace(/[鏃ュ彿]/g, ' ')  // 鏃�/鍙� 鈫� 绌烘牸锛屼繚鐣欐棩鏈熷拰鏃堕棿鐨勫垎闅�
@@ -2014,50 +2022,76 @@
         .replace(/绉�/g, '')
         .replace(/\s+/g, ' ')  // 澶氫釜绌烘牸鍚堝苟涓轰竴涓�
         .trim()
+      
       console.log('娓呯悊鍚庣殑鏃ユ湡瀛楃涓�:', cleaned)
+      
+      // 鍒嗙鏃ユ湡鍜屾椂闂撮儴鍒�
+      const parts = cleaned.split(' ')
+      let datePart = parts[0] || ''
+      let timePart = parts[1] || ''
+      
       let dateResult = ''
       
+      // 澶勭悊鏃ユ湡閮ㄥ垎
       // 濡傛灉鏄痀YMMDD鏍煎紡
-      if (/^\d{6}$/.test(cleaned)) {
-        const year = '20' + cleaned.substring(0, 2)
-        const month = cleaned.substring(2, 4)
-        const day = cleaned.substring(4, 6)
-        dateResult = `${year}-${month}-${day}`;
-      }
-      // 濡傛灉鏄痀YYYMMDD鏍煎紡
-      else if (/^\d{8}$/.test(cleaned)) {
-        const year = cleaned.substring(0, 4)
-        const month = cleaned.substring(4, 6)
-        const day = cleaned.substring(6, 8)
+      if (/^\d{6}$/.test(datePart)) {
+        const year = '20' + datePart.substring(0, 2)
+        const month = datePart.substring(2, 4)
+        const day = datePart.substring(4, 6)
         dateResult = `${year}-${month}-${day}`
       }
-      // 濡傛灉宸茬粡鏄悎鐞嗘牸寮忥紝鐩存帴浣跨敤
-      else if (cleaned.match(/^\d{4}[-/]\d{1,2}[-/]\d{1,2}$/)) {
-        dateResult = cleaned.replace(/[//]/g, '-')
+      // 濡傛灉鏄痀YYYMMDD鏍煎紡
+      else if (/^\d{8}$/.test(datePart)) {
+        const year = datePart.substring(0, 4)
+        const month = datePart.substring(4, 6)
+        const day = datePart.substring(6, 8)
+        dateResult = `${year}-${month}-${day}`
       }
-      // 濡傛灉宸茬粡鍖呭惈鏃跺垎绉掞紝鐩存帴杩斿洖
-      else if (cleaned.match(/^\d{4}[-/]\d{1,2}[-/]\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}$/)) {
-        return cleaned.replace(/[//]/g, '-')
-      }
-      // 濡傛灉鍖呭惈鏃跺垎浣嗙己灏戠锛坹yyy-MM-dd HH:mm:锛�
-      else if (cleaned.match(/^\d{4}[-/]\d{1,2}[-/]\d{1,2}\s+\d{1,2}:\d{1,2}:$/)) {
-        // 鍘绘帀鏈熬鐨勫啋鍙凤紝琛ヤ笂绉掓暟00
-        return cleaned.replace(/[//]/g, '-').replace(/:$/, '') + ':00'
-      }
-      // 濡傛灉鍙寘鍚椂鍒嗭紙yyyy-MM-dd HH:mm锛�
-      else if (cleaned.match(/^\d{4}[-/]\d{1,2}[-/]\d{1,2}\s+\d{1,2}:\d{1,2}$/)) {
-        return cleaned.replace(/[//]/g, '-') + ':00'
+      // 濡傛灉鏄痽yyy-MM-dd鎴杫yyy/MM/dd鏍煎紡
+      else if (datePart.match(/^\d{4}[-\/]\d{1,2}[-\/]\d{1,2}$/)) {
+        dateResult = datePart.replace(/\//g, '-')
       }
       else {
-        dateResult = dateStr
+        dateResult = datePart
       }
       
-      // 濡傛灉鏃ユ湡鏍煎紡姝g‘锛屾坊鍔犻粯璁ゆ椂鍒嗙 00:00:00
-      if (dateResult && dateResult.match(/^\d{4}-\d{1,2}-\d{1,2}$/)) {
-        return dateResult + ' 00:00:00'
+      // 楠岃瘉鏃ユ湡閮ㄥ垎鏄惁鏈夋晥
+      if (!dateResult.match(/^\d{4}-\d{1,2}-\d{1,2}$/)) {
+        console.warn('鏃ユ湡鏍煎紡涓嶆纭�:', dateResult)
+        return ''
       }
       
-      return dateResult
+      // 澶勭悊鏃堕棿閮ㄥ垎
+      let timeResult = '00:00:00'  // 榛樿鏃堕棿
+      
+      if (timePart) {
+        // 绉婚櫎鏈熬澶氫綑鐨勫啋鍙�
+        timePart = timePart.replace(/:+$/, '')
+        
+        // 鍒嗗壊鏃躲�佸垎銆佺
+        const timeParts = timePart.split(':')
+        const hour = timeParts[0] || '00'
+        const minute = timeParts[1] || '00'
+        const second = timeParts[2] || '00'
+        
+        // 楠岃瘉鏃堕棿鏁板瓧鏄惁鏈夋晥
+        const hourNum = parseInt(hour, 10)
+        const minuteNum = parseInt(minute, 10)
+        const secondNum = parseInt(second, 10)
+        
+        if (!isNaN(hourNum) && !isNaN(minuteNum) && !isNaN(secondNum) &&
+            hourNum >= 0 && hourNum < 24 && minuteNum >= 0 && minuteNum < 60 && secondNum >= 0 && secondNum < 60) {
+          // 琛ラ綈涓や綅鏁�
+          timeResult = `${String(hourNum).padStart(2, '0')}:${String(minuteNum).padStart(2, '0')}:${String(secondNum).padStart(2, '0')}`
+        } else {
+          console.warn('鏃堕棿鏁板�艰秴鍑鸿寖鍥达紝浣跨敤榛樿鍊�00:00:00')
+        }
+      }
+      
+      const finalResult = `${dateResult} ${timeResult}`
+      console.log('鏈�缁堟牸寮忓寲缁撴灉:', finalResult)
+      
+      return finalResult
     }
   }
 }

--
Gitblit v1.9.1