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/menu/debug/index.jsx | 2 +- src/tabviews/custom/components/card/double-data-card/index.jsx | 37 +++++++++++++++++++++++++++++++++++-- src/menu/datasource/verifycard/settingform/index.jsx | 2 +- src/utils/utils-custom.js | 6 +++--- src/menu/datasource/verifycard/index.jsx | 2 +- 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx index 486f156..72c8e18 100644 --- a/src/menu/datasource/verifycard/index.jsx +++ b/src/menu/datasource/verifycard/index.jsx @@ -730,7 +730,7 @@ if ((setting.interType === 'system' && setting.execute !== 'false') || _scripts.length > 0) { let _columns = columns - if (config.subtype === 'dualdatacard') { + if (config.subtype === 'dualdatacard' && setting.subdata !== 'sub_data_string') { _columns = [...columns, ...subColumns] } diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx index 7f567b1..786e56e 100644 --- a/src/menu/datasource/verifycard/settingform/index.jsx +++ b/src/menu/datasource/verifycard/settingform/index.jsx @@ -679,7 +679,7 @@ </Col> : null} {config.subtype === 'dualdatacard' ? <Col span={8}> <Form.Item label={ - <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О銆�"> + <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О锛屼娇鐢� sub_data_string 鏃舵暟鎹互 JSON 瀛楃涓插舰寮忚繑鍥烇紙瀛楁闆嗕腑闇�娣诲姞 sub_data_string 瀛楁锛夈��"> <QuestionCircleOutlined className="mk-form-tip" /> 瀛愯〃瀛楁 </Tooltip> diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx index dfd426f..55a6b56 100644 --- a/src/menu/debug/index.jsx +++ b/src/menu/debug/index.jsx @@ -2471,7 +2471,7 @@ searches = formatSearch(searches) let _columns = [] - if (item.subtype === 'dualdatacard') { + if (item.subtype === 'dualdatacard' && item.setting.subdata !== 'sub_data_string') { _columns = [...item.columns, ...item.subColumns] } else if (item.columns) { _columns = [...item.columns] 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] || '' diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 62635f2..be55f36 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -5012,7 +5012,7 @@ let sFields = getSearches(searches) let _columns = [] - if (item.subtype === 'dualdatacard') { + if (item.subtype === 'dualdatacard' && item.setting.subdata !== 'sub_data_string') { _columns = [...item.columns, ...item.subColumns] } else if (item.columns) { _columns = [...item.columns] @@ -5128,7 +5128,7 @@ } else if (item.setting.laypage === 'true' && item.setting.order) { LText = `select top @pageSize@ ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by @orderBy@) as rows from ${_dataresource} ${_search}) tmptable where rows > @pageSize@ * (@pageIndex@ - 1) order by tmptable.rows ` reps.push('pageSize', 'orderBy', 'pageIndex') - if (item.subtype === 'dualdatacard') { + if (item.subtype === 'dualdatacard' && item.setting.subdata !== 'sub_data_string') { DateCount = `select count(1) as total from (select distinct ${item.setting.primaryKey || 'ID'} from ${_dataresource} ${_search})a` } else { DateCount = `select count(1) as total from ${_dataresource} ${_search}` @@ -5155,7 +5155,7 @@ let parid = '' let sub_field = '' - if (item.subtype === 'dualdatacard') { + if (item.subtype === 'dualdatacard' && item.setting.subdata !== 'sub_data_string') { arr_field = item.columns.map(col => col.field).join(',') sub_name = item.setting.subdata tabid = item.setting.primaryKey || '' -- Gitblit v1.8.0