From dfd136c5e55163c7512c315ef138948453b935c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=98=89=E8=B1=AA?= <42510293+ziyujiahao@users.noreply.github.com> Date: Sat, 11 Oct 2025 13:07:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E5=8F=AF=E4=BB=A5=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=B7=B2=E6=9C=89=E7=9A=84=E6=95=B0=E6=8D=AE=E9=9B=86=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=88=9B=E5=BB=BA=E4=BB=AA=E8=A1=A8=E6=9D=BF=20(#1715?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/DataVisualizationServer.java | 341 +++++++++++------- .../src/components/dashboard/DbToolbar.vue | 3 +- .../data-visualization/DvToolbar.vue | 3 +- core/core-frontend/src/locales/en.ts | 4 + core/core-frontend/src/locales/tw.ts | 4 + core/core-frontend/src/locales/zh-CN.ts | 4 + .../src/views/common/DeAppApply.vue | 284 +++++++++------ .../request/DataVisualizationBaseRequest.java | 3 + .../vo/AppCoreDatasetGroupVO.java | 5 + .../io/dataease/utils/DeCollectionUtils.java | 17 + 10 files changed, 413 insertions(+), 255 deletions(-) create mode 100644 sdk/common/src/main/java/io/dataease/utils/DeCollectionUtils.java diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 138de5887c..ab500067a8 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -46,6 +46,7 @@ import io.dataease.i18n.Translator; import io.dataease.license.config.XpackInteract; import io.dataease.license.manage.CoreLicManage; import io.dataease.log.DeLog; +import io.dataease.menu.dao.auto.entity.CoreMenu; import io.dataease.model.BusiNodeRequest; import io.dataease.model.BusiNodeVO; import io.dataease.operation.manage.CoreOptRecentManage; @@ -236,6 +237,65 @@ public class DataVisualizationServer implements DataVisualizationApi { return null; } + private void appDatasetMatch(VisualizationExport2AppVO appData, Map datasourceIdMap, Map dsGroupIdMap, Map dsTableIdMap, Map dsTableFieldsIdMap) { + + List sourceDatasetGroupList = appData.getDatasetGroupsInfo(); + List sourceDatasetTableList = appData.getDatasetTablesInfo(); + List sourceDatasetTableFieldList = appData.getDatasetTableFieldsInfo(); + + Map> sourceDatasetTableMap = + DeCollectionUtils.groupBy(sourceDatasetTableList, AppCoreDatasetTableVO::getDatasetGroupId); + + Map> sourceDatasetTableFieldMap = + DeCollectionUtils.groupBy(sourceDatasetTableFieldList, AppCoreDatasetTableFieldVO::getDatasetTableId); + + sourceDatasetGroupList.forEach(sourceDatasetGroup -> { + Long systemDatasetGroupId = sourceDatasetGroup.getSystemDatasetId(); + Long sourceDatasetGroupId = sourceDatasetGroup.getId(); + // 获取 dsGroupIdMap + dsGroupIdMap.put(sourceDatasetGroup.getId(), systemDatasetGroupId); + CoreDatasetGroup systemDatasetGroup = coreDatasetGroupMapper.selectById(systemDatasetGroupId); + if (systemDatasetGroup != null) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("dataset_group_id", systemDatasetGroupId); + List systemDatasetTableList = coreDatasetTableMapper.selectList(wrapper); + List sourceDatasetTableListSub = sourceDatasetTableMap.get(sourceDatasetGroupId); + if (systemDatasetTableList != null && sourceDatasetTableListSub != null) { + for (AppCoreDatasetTableVO sourceTable : sourceDatasetTableListSub) { + for (CoreDatasetTable systemTable : systemDatasetTableList) { + if (sourceTable.getTableName().equals(systemTable.getTableName())) { + // 获取dsTableIdMap datasourceIdMap + dsTableIdMap.put(sourceTable.getId(), systemTable.getId()); + datasourceIdMap.put(sourceTable.getDatasourceId(), systemTable.getDatasourceId()); + + // 获取 dsTableFieldsIdMap + List sourceDatasetTableFieldListSub = sourceDatasetTableFieldMap.get(sourceTable.getId()); + + QueryWrapper wrapperField = new QueryWrapper<>(); + wrapper.eq("dataset_table_id", systemTable.getId()); + List systemDatasetTableFieldSub = coreDatasetTableFieldMapper.selectList(wrapperField); + + for (AppCoreDatasetTableFieldVO sourceTableField : sourceDatasetTableFieldListSub) { + for (CoreDatasetTableField systemTableField : systemDatasetTableFieldSub) { + if (sourceTable.getTableName().equals(systemTable.getTableName())) { + // 获取dsTableIdMap datasourceIdMap + dsTableFieldsIdMap.put(sourceTableField.getId(), systemTableField.getId()); + break; + } + } + } + break; + } + } + } + } + + } + }); + + + } + @DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.CREATE, stExp = "#p0.type") @Override @Transactional @@ -264,149 +324,154 @@ public class DataVisualizationServer implements DataVisualizationApi { Map excelTableNamesMap = new HashMap<>(); if (appData != null) { isAppSave = true; - try { - List appCoreDatasourceVO = appData.getDatasourceInfo(); - // app 数据源 excel 表名映射 - appCoreDatasourceVO.forEach(datasourceOld -> { - newDatasourceId.add(datasourceOld.getSystemDatasourceId()); - // Excel 数据表明映射 - if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) { - if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) { - DEException.throwException(Translator.get("i18n_app_error_no_api")); - } else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { - dsTableNamesMap.put(datasourceOld.getId(), ExcelUtils.getTableNamesMap(datasourceOld.getType(), datasourceOld.getConfiguration())); - } else if (datasourceOld.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { - dsTableNamesMap.put(datasourceOld.getId(), (Map) datasourceServer.invokeMethod(datasourceOld.getType(), "getTableNamesMap", String.class, datasourceOld.getConfiguration())); + if ("dataset".equals(request.getDataType())) { + appDatasetMatch(appData, datasourceIdMap, dsGroupIdMap, dsTableIdMap, dsTableFieldsIdMap); + } else { + try { + List appCoreDatasourceVO = appData.getDatasourceInfo(); + // app 数据源 excel 表名映射 + appCoreDatasourceVO.forEach(datasourceOld -> { + newDatasourceId.add(datasourceOld.getSystemDatasourceId()); + // Excel 数据表明映射 + if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) { + if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) { + DEException.throwException(Translator.get("i18n_app_error_no_api")); + } else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { + dsTableNamesMap.put(datasourceOld.getId(), ExcelUtils.getTableNamesMap(datasourceOld.getType(), datasourceOld.getConfiguration())); + } else if (datasourceOld.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { + dsTableNamesMap.put(datasourceOld.getId(), (Map) datasourceServer.invokeMethod(datasourceOld.getType(), "getTableNamesMap", String.class, datasourceOld.getConfiguration())); + } } - } - }); + }); - List systemDatasource = coreDatasourceMapper.selectBatchIds(newDatasourceId); - systemDatasource.forEach(datasourceNew -> { - // Excel 数据表明映射 - if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) { - if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { - dsTableNamesMap.put(datasourceNew.getId(), ExcelUtils.getTableNamesMap(datasourceNew.getType(), datasourceNew.getConfiguration())); - excelDatasourceId.add(datasourceNew.getId()); - } else if (datasourceNew.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { - dsTableNamesMap.put(datasourceNew.getId(), (Map) datasourceServer.invokeMethod(datasourceNew.getType(), "getTableNamesMap", String.class, datasourceNew.getConfiguration())); + List systemDatasource = coreDatasourceMapper.selectBatchIds(newDatasourceId); + systemDatasource.forEach(datasourceNew -> { + // Excel 数据表明映射 + if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) { + if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { + dsTableNamesMap.put(datasourceNew.getId(), ExcelUtils.getTableNamesMap(datasourceNew.getType(), datasourceNew.getConfiguration())); + excelDatasourceId.add(datasourceNew.getId()); + } else if (datasourceNew.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { + dsTableNamesMap.put(datasourceNew.getId(), (Map) datasourceServer.invokeMethod(datasourceNew.getType(), "getTableNamesMap", String.class, datasourceNew.getConfiguration())); + } } - } - }); - datasourceIdMap.putAll(appData.getDatasourceInfo().stream().collect(Collectors.toMap(AppCoreDatasourceVO::getId, AppCoreDatasourceVO::getSystemDatasourceId))); - Long datasetFolderPid = request.getDatasetFolderPid(); - String datasetFolderName = request.getDatasetFolderName(); - //新建数据集分组 - DatasetGroupInfoDTO datasetFolderNewRequest = new DatasetGroupInfoDTO(); - datasetFolderNewRequest.setName(datasetFolderName); - datasetFolderNewRequest.setNodeType("folder"); - datasetFolderNewRequest.setPid(datasetFolderPid); - DatasetGroupInfoDTO datasetFolderNew = datasetGroupManage.save(datasetFolderNewRequest, false, false); - Long datasetFolderNewId = datasetFolderNew.getId(); - //新建数据集 - appData.getDatasetGroupsInfo().forEach(appDatasetGroup -> { - if ("dataset".equals(appDatasetGroup.getNodeType())) { - Long oldId = appDatasetGroup.getId(); + }); + datasourceIdMap.putAll(appData.getDatasourceInfo().stream().collect(Collectors.toMap(AppCoreDatasourceVO::getId, AppCoreDatasourceVO::getSystemDatasourceId))); + Long datasetFolderPid = request.getDatasetFolderPid(); + String datasetFolderName = request.getDatasetFolderName(); + //新建数据集分组 + DatasetGroupInfoDTO datasetFolderNewRequest = new DatasetGroupInfoDTO(); + datasetFolderNewRequest.setName(datasetFolderName); + datasetFolderNewRequest.setNodeType("folder"); + datasetFolderNewRequest.setPid(datasetFolderPid); + DatasetGroupInfoDTO datasetFolderNew = datasetGroupManage.save(datasetFolderNewRequest, false, false); + Long datasetFolderNewId = datasetFolderNew.getId(); + //新建数据集 + appData.getDatasetGroupsInfo().forEach(appDatasetGroup -> { + if ("dataset".equals(appDatasetGroup.getNodeType())) { + Long oldId = appDatasetGroup.getId(); + Long newId = IDUtils.snowID(); + DatasetGroupInfoDTO datasetNewRequest = new DatasetGroupInfoDTO(); + BeanUtils.copyBean(datasetNewRequest, appDatasetGroup); + datasetNewRequest.setId(newId); + datasetNewRequest.setCreateBy(AuthUtils.getUser().getUserId() + ""); + datasetNewRequest.setUpdateBy(AuthUtils.getUser().getUserId() + ""); + datasetNewRequest.setCreateTime(time); + datasetNewRequest.setLastUpdateTime(time); + datasetNewRequest.setPid(datasetFolderNewId); + try { + newDsGroupInfo.add(datasetNewRequest); + dsGroupIdMap.put(oldId, newId); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + }); + // 新建数据集表 + appData.getDatasetTablesInfo().forEach(appCoreDatasetTableVO -> { + Long oldId = appCoreDatasetTableVO.getId(); Long newId = IDUtils.snowID(); - DatasetGroupInfoDTO datasetNewRequest = new DatasetGroupInfoDTO(); - BeanUtils.copyBean(datasetNewRequest, appDatasetGroup); - datasetNewRequest.setId(newId); - datasetNewRequest.setCreateBy(AuthUtils.getUser().getUserId() + ""); - datasetNewRequest.setUpdateBy(AuthUtils.getUser().getUserId() + ""); - datasetNewRequest.setCreateTime(time); - datasetNewRequest.setLastUpdateTime(time); - datasetNewRequest.setPid(datasetFolderNewId); - try { - newDsGroupInfo.add(datasetNewRequest); - dsGroupIdMap.put(oldId, newId); - } catch (Exception e) { - throw new RuntimeException(e); + CoreDatasetTable datasetTable = new CoreDatasetTable(); + BeanUtils.copyBean(datasetTable, appCoreDatasetTableVO); + datasetTable.setDatasetGroupId(dsGroupIdMap.get(datasetTable.getDatasetGroupId())); + datasetTable.setId(newId); + datasetTable.setDatasourceId(datasourceIdMap.get(datasetTable.getDatasourceId())); + coreDatasetTableMapper.insert(datasetTable); + dsTableIdMap.put(oldId, newId); + + }); + // 新建数据字段 + appData.getDatasetTableFieldsInfo().forEach(appDsTableFields -> { + Long oldId = appDsTableFields.getId(); + Long newId = IDUtils.snowID(); + CoreDatasetTableField dsDsField = new CoreDatasetTableField(); + BeanUtils.copyBean(dsDsField, appDsTableFields); + dsDsField.setDatasetGroupId(dsGroupIdMap.get(dsDsField.getDatasetGroupId())); + dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId())); + dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId())); + dsDsField.setId(newId); + dsTableFieldsList.add(dsDsField); + dsTableFieldsIdMap.put(oldId, newId); + }); + + // dsTableFields 中存在计算字段在OriginName中 也需要替换 + dsTableFieldsList.forEach(dsTableFields -> { + dsTableFieldsIdMap.forEach((key, value) -> { + dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(), value.toString())); + }); + coreDatasetTableFieldMapper.insert(dsTableFields); + }); + + List dsGroupNameSave = new ArrayList<>(); + // 持久化数据集 + newDsGroupInfo.forEach(dsGroup -> { + dsTableIdMap.forEach((key, value) -> { + dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); + }); + + dsTableFieldsIdMap.forEach((key, value) -> { + dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); + }); + + datasourceIdMap.forEach((key, value) -> { + dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); + //表名映射更新 + Map appDsTableNamesMap = dsTableNamesMap.get(key); + Map systemDsTableNamesMap = dsTableNamesMap.get(value); + if (MapUtils.isNotEmpty(appDsTableNamesMap)) { + appDsTableNamesMap.forEach((keyName, valueName) -> { + if (MapUtils.isNotEmpty(systemDsTableNamesMap) && StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) { + dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, systemDsTableNamesMap.get(keyName))); + excelTableNamesMap.put(valueName, systemDsTableNamesMap.get(keyName)); + } else { + dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, "excel_can_not_find")); + } + }); + } + + }); + if (dsGroupNameSave.contains(dsGroup.getName())) { + dsGroup.setName(dsGroup.getName() + "-" + UUID.randomUUID().toString()); } - } - - }); - // 新建数据集表 - appData.getDatasetTablesInfo().forEach(appCoreDatasetTableVO -> { - Long oldId = appCoreDatasetTableVO.getId(); - Long newId = IDUtils.snowID(); - CoreDatasetTable datasetTable = new CoreDatasetTable(); - BeanUtils.copyBean(datasetTable, appCoreDatasetTableVO); - datasetTable.setDatasetGroupId(dsGroupIdMap.get(datasetTable.getDatasetGroupId())); - datasetTable.setId(newId); - datasetTable.setDatasourceId(datasourceIdMap.get(datasetTable.getDatasourceId())); - coreDatasetTableMapper.insert(datasetTable); - dsTableIdMap.put(oldId, newId); - - }); - // 新建数据字段 - appData.getDatasetTableFieldsInfo().forEach(appDsTableFields -> { - Long oldId = appDsTableFields.getId(); - Long newId = IDUtils.snowID(); - CoreDatasetTableField dsDsField = new CoreDatasetTableField(); - BeanUtils.copyBean(dsDsField, appDsTableFields); - dsDsField.setDatasetGroupId(dsGroupIdMap.get(dsDsField.getDatasetGroupId())); - dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId())); - dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId())); - dsDsField.setId(newId); - dsTableFieldsList.add(dsDsField); - dsTableFieldsIdMap.put(oldId, newId); - }); - - // dsTableFields 中存在计算字段在OriginName中 也需要替换 - dsTableFieldsList.forEach(dsTableFields -> { - dsTableFieldsIdMap.forEach((key, value) -> { - dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(), value.toString())); - }); - coreDatasetTableFieldMapper.insert(dsTableFields); - }); - - List dsGroupNameSave = new ArrayList<>(); - // 持久化数据集 - newDsGroupInfo.forEach(dsGroup -> { - dsTableIdMap.forEach((key, value) -> { - dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); - }); - - dsTableFieldsIdMap.forEach((key, value) -> { - dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); - }); - - datasourceIdMap.forEach((key, value) -> { - dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString())); - //表名映射更新 - Map appDsTableNamesMap = dsTableNamesMap.get(key); - Map systemDsTableNamesMap = dsTableNamesMap.get(value); - if (MapUtils.isNotEmpty(appDsTableNamesMap)) { - appDsTableNamesMap.forEach((keyName, valueName) -> { - if (MapUtils.isNotEmpty(systemDsTableNamesMap) && StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) { - dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, systemDsTableNamesMap.get(keyName))); - excelTableNamesMap.put(valueName, systemDsTableNamesMap.get(keyName)); - } else { - dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, "excel_can_not_find")); - } - }); + dsGroupNameSave.add(dsGroup.getName()); + if (dsGroup.getIsCross() == null) { + if (dsGroup.getUnion() == null) { + dsGroup.setUnion(JsonUtil.parseList(dsGroup.getInfo(), new TypeReference<>() { + })); + } + datasetSQLManage.mergeDatasetCrossDefault(dsGroup); } - + excelAdaptor(dsGroup, excelTableNamesMap, excelDatasourceId); + datasetGroupManage.innerSave(dsGroup); }); - if (dsGroupNameSave.contains(dsGroup.getName())) { - dsGroup.setName(dsGroup.getName() + "-" + UUID.randomUUID().toString()); - } - dsGroupNameSave.add(dsGroup.getName()); - if (dsGroup.getIsCross() == null) { - if (dsGroup.getUnion() == null) { - dsGroup.setUnion(JsonUtil.parseList(dsGroup.getInfo(), new TypeReference<>() { - })); - } - datasetSQLManage.mergeDatasetCrossDefault(dsGroup); - } - excelAdaptor(dsGroup, excelTableNamesMap, excelDatasourceId); - datasetGroupManage.innerSave(dsGroup); - }); - } catch (Exception e) { - LogUtil.error(e); - DEException.throwException(e); + } catch (Exception e) { + LogUtil.error(e); + DEException.throwException(e); + } } + // 更换主数据内容 AtomicReference componentDataStr = new AtomicReference<>(request.getComponentData()); dsGroupIdMap.forEach((key, value) -> { @@ -953,22 +1018,22 @@ public class DataVisualizationServer implements DataVisualizationApi { } @DeLog(id = "#p0.id", ot = LogOT.APP_TEMPLATE_EXPORT, stExp = "#p0.type") - public void exportLogApp(DataVisualizationBaseRequest request){ + public void exportLogApp(DataVisualizationBaseRequest request) { } @DeLog(id = "#p0.id", ot = LogOT.TEMPLATE_EXPORT, stExp = "#p0.type") - public void exportLogTemplate(DataVisualizationBaseRequest request){ + public void exportLogTemplate(DataVisualizationBaseRequest request) { } @DeLog(id = "#p0.id", ot = LogOT.PDF_EXPORT, stExp = "#p0.type") - public void exportLogPDF(DataVisualizationBaseRequest request){ + public void exportLogPDF(DataVisualizationBaseRequest request) { } @DeLog(id = "#p0.id", ot = LogOT.IMG_EXPORT, stExp = "#p0.type") - public void exportLogImg(DataVisualizationBaseRequest request){ + public void exportLogImg(DataVisualizationBaseRequest request) { } diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index e8c2af2b39..bb78ca466b 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -234,7 +234,8 @@ const saveCanvasWithCheck = (withPublish = false, status?) => { pid: '', name: dvInfo.value.name, datasetFolderPid: null, - datasetFolderName: dvInfo.value.name + datasetFolderName: dvInfo.value.name, + dataType: dvInfo.value['dataType'] }, appData: appData.value } diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index d8b77976d4..60eeb5d387 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -153,7 +153,8 @@ const saveCanvasWithCheck = (withPublish = false, status?) => { pid: '', name: dvInfo.value.name, datasetFolderPid: null, - datasetFolderName: dvInfo.value.name + datasetFolderName: dvInfo.value.name, + dataType: dvInfo.value['dataType'] }, appData: appData.value } diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index 77316d84b9..290dd48bab 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -3061,8 +3061,11 @@ export default { ds_group_name: 'Dataset Group Name', ds_group_position: 'Dataset Group Position', datasource_info: 'Datasource Information', + dataset_info: 'Dataset Information', app_datasource: 'Application Datasource', + app_dataset: 'Application dataset', sys_datasource: 'System Datasource', + sys_dataset: 'System dataset', select_folder: 'Please select the associated folder', belong_folder: 'Belonging Folder', no_content: 'No relevant content found', @@ -3070,6 +3073,7 @@ export default { cancel: 'Cancel', select_ds_group_folder: 'Please select the folder for the dataset group', app_no_datasource_tips: 'There are unconfigured datasources', + app_no_dataset_tips: 'There are unconfigured datasets', dataset: 'Dataset', delete: 'Delete', delete_success: 'Delete successful', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index 1c92d2bd2e..c3acccbdef 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -2977,8 +2977,11 @@ export default { ds_group_name: '數據集分組名稱', ds_group_position: '數據集分組位置', datasource_info: '數據源信息', + dataset_info: '數據集信息', app_datasource: '應用數據源', + app_dataset: '應用數據集', sys_datasource: '系統數據源', + sys_dataset: '系統數據集', select_folder: '請選擇所屬文件夾', belong_folder: '所屬文件夾', no_content: '沒有找到相關內容', @@ -2986,6 +2989,7 @@ export default { cancel: '取消', select_ds_group_folder: '請選擇數據集分組所屬文件夾', app_no_datasource_tips: '存在未配置的數據源', + app_no_dataset_tips: '存在未配置的數據集', dataset: '數據集', delete: '刪除', delete_success: '刪除成功', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index e87ff9c787..77acc6320f 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -2987,8 +2987,11 @@ export default { ds_group_name: '数据集分组名称', ds_group_position: '数据集分组位置', datasource_info: '数据源信息', + dataset_info: '数据集信息', app_datasource: '应用数据源', + app_dataset: '应用数据集', sys_datasource: '系统数据源', + sys_dataset: '系统数据集', select_folder: '请选择所属文件夹', belong_folder: '所属文件夹', no_content: '没有找到相关内容', @@ -2996,6 +2999,7 @@ export default { cancel: '取消', select_ds_group_folder: '请选择数据集分组所属文件夹', app_no_datasource_tips: '存在未配置的数据源', + app_no_dataset_tips: '存在未配置的数据集', dataset: '数据集', delete: '删除', delete_success: '删除成功', diff --git a/core/core-frontend/src/views/common/DeAppApply.vue b/core/core-frontend/src/views/common/DeAppApply.vue index 90a8422707..9111b80936 100644 --- a/core/core-frontend/src/views/common/DeAppApply.vue +++ b/core/core-frontend/src/views/common/DeAppApply.vue @@ -14,7 +14,7 @@ - - - - - - - - - - - {{ t('datasource.datasource') }} - {{ t('dataset.datalist') }} - + + + + -
- {{ t('visualization.datasource_info') }} -
- - - {{ t('visualization.app_datasource') }}{{ t('visualization.sys_datasource') }} + +