From 17e0433eb3919da86e757cc93dac3f2ed9fca9d6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 27 四月 2025 15:37:51 +0800
Subject: [PATCH] 2025-04-27

---
 src/tabviews/custom/components/card/double-data-card/index.jsx |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/tabviews/custom/components/card/double-data-card/index.jsx b/src/tabviews/custom/components/card/double-data-card/index.jsx
index f95fca7..223d05d 100644
--- a/src/tabviews/custom/components/card/double-data-card/index.jsx
+++ b/src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -184,8 +184,10 @@
       })
     }
 
-    _config.setting.sub_field = subconfig.columns.map(col => col.field).join(',')
-    _config.setting.all_field = _config.setting.arr_field + ',' + _config.setting.sub_field
+    if (_config.setting.subdata !== 'sub_data_string') {
+      _config.setting.sub_field = subconfig.columns.map(col => col.field).join(',')
+      _config.setting.all_field = _config.setting.arr_field + ',' + _config.setting.sub_field
+    }
 
     let pageOptions = ['10', '25', '50', '100', '500', '1000']
 
@@ -287,6 +289,10 @@
 
             delete item[config.setting.subdata]
 
+            if (config.setting.subdata === 'sub_data_string') {
+              _children = this.parseSubData(_children)
+            }
+
             _children.forEach((cell, i) => {
               cell.key = i
               cell.$$uuid = cell[config.setting.subKey] || ''
@@ -345,6 +351,21 @@
         this.loadData()
       }, config.setting.delay || 0)
     }
+  }
+
+  parseSubData = (data) => {
+    try {
+      data = JSON.parse(data)
+      if (typeof(data) !== 'object') {
+        data = []
+      } else if (!Array.isArray(data)) {
+        data = [data]
+      }
+    } catch(e) {
+      console.warn('Data parsing error.')
+      data = []
+    }
+    return data
   }
 
   autoExec = (times) => {
@@ -663,6 +684,10 @@
             let _children = item[config.setting.subdata]
 
             delete item[config.setting.subdata]
+
+            if (config.setting.subdata === 'sub_data_string') {
+              _children = this.parseSubData(_children)
+            }
             
             _children.forEach((cell, i) => {
               cell.key = i
@@ -703,6 +728,10 @@
             let _children = item[config.setting.subdata]
 
             delete item[config.setting.subdata]
+
+            if (config.setting.subdata === 'sub_data_string') {
+              _children = this.parseSubData(_children)
+            }
 
             _children.forEach((cell, i) => {
               cell.key = i
@@ -830,6 +859,10 @@
 
               delete _data[config.setting.subdata]
 
+              if (config.setting.subdata === 'sub_data_string') {
+                _children = this.parseSubData(_children)
+              }
+
               _children.forEach((cell, i) => {
                 cell.key = i
                 cell.$$uuid = cell[config.setting.subKey] || ''

--
Gitblit v1.8.0