Переглянути джерело

fix: remove required:true from dimensionCode prop in DimensionActivities/Products

WXML 组件初始化时 required prop 绑定值尚未就绪,收到 null 触发类型警告
改为 default: '' 避免警告

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg 3 місяців тому
батько
коміт
fda81f866c

+ 6 - 7
cfc-frontend/components/DimensionActivities.vue

@@ -96,7 +96,7 @@ var DIMENSION_MAP = {
 
 export default {
   props: {
-    dimensionCode: { type: String, required: true },
+    dimensionCode: { type: String, default: '' },
     activities: { type: Array, default: function() { return [] } },
     isLoggedIn: { type: Boolean, default: false }
   },
@@ -154,18 +154,17 @@ export default {
     // iOS 不兼容 Java "EEE MMM dd HH:mm:ss zzz yyyy" 格式,需提前归一化
     _parseDate: function(timeStr) {
       if (!timeStr) return null
-      // 尝试标准格式
-      var d = new Date(timeStr)
-      if (!isNaN(d.getTime())) return d
-      // Java 格式: "Sat Aug 22 14:00:00 CST 2026" → 转换为 iOS 兼容格式
+      // Java 格式: "Sat Aug 22 14:00:00 CST 2026" — iOS 不支持,必须先于 new Date() 处理
       var javaRe = /^\w{3}\s+(\w{3})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\s+\w{3}\s+(\d{4})$/
       var m = timeStr.match(javaRe)
       if (m) {
         var months = {Jan:'01',Feb:'02',Mar:'03',Apr:'04',May:'05',Jun:'06',Jul:'07',Aug:'08',Sep:'09',Oct:'10',Nov:'11',Dec:'12'}
         var iso = m[4] + '/' + (months[m[1]] || '01') + '/' + (m[2].length === 1 ? '0' + m[2] : m[2]) + ' ' + m[3]
-        d = new Date(iso)
-        if (!isNaN(d.getTime())) return d
+        return new Date(iso)
       }
+      // 标准格式尝试(iOS 支持 yyyy/MM/dd、yyyy-MM-dd、ISO 8601 等)
+      var d = new Date(timeStr)
+      if (!isNaN(d.getTime())) return d
       return null
     },
     formatPriceWithSymbol: function(price) {

+ 1 - 1
cfc-frontend/components/DimensionProducts.vue

@@ -33,7 +33,7 @@ var DIMENSION_MAP = {
 
 export default {
   props: {
-    dimensionCode: { type: String, required: true },
+    dimensionCode: { type: String, default: '' },
     products: { type: Array, default: function() { return [] } },
     isLoggedIn: { type: Boolean, default: false }
   },