diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index b6d6fe8e9a..b816b40ef7 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -20,12 +20,14 @@ import io.dataease.datasource.provider.ProviderFactory; import io.dataease.datasource.request.DatasourceRequest; import io.dataease.datasource.service.DatasourceService; import io.dataease.dto.chart.*; +import io.dataease.dto.dataset.DataSetTableUnionDTO; import io.dataease.dto.dataset.DataTableInfoDTO; import io.dataease.i18n.Translator; import io.dataease.listener.util.CacheUtils; import io.dataease.provider.QueryProvider; import io.dataease.service.dataset.DataSetTableFieldsService; import io.dataease.service.dataset.DataSetTableService; +import io.dataease.service.dataset.DataSetTableUnionService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -56,6 +58,8 @@ public class ChartViewService { private DataSetTableFieldsService dataSetTableFieldsService; @Resource private ExtChartGroupMapper extChartGroupMapper; + @Resource + private DataSetTableUnionService dataSetTableUnionService; //默认使用非公平 private ReentrantLock lock = new ReentrantLock(); @@ -197,6 +201,15 @@ public class ChartViewService { } else { datasourceRequest.setQuery(qp.getSQLAsTmp(dataTableInfoDTO.getSql(), xAxis, yAxis, customFilter, extFilterList)); } + } else if (StringUtils.equalsIgnoreCase(table.getType(), "custom")) { + DataTableInfoDTO dt = new Gson().fromJson(table.getInfo(), DataTableInfoDTO.class); + List list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId()); + String sql = dataSetTableService.getCustomSQLDatasource(dt, list, ds); + if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { + datasourceRequest.setQuery(qp.getSQLSummaryAsTmp(sql, yAxis, customFilter, extFilterList)); + } else { + datasourceRequest.setQuery(qp.getSQLAsTmp(sql, xAxis, yAxis, customFilter, extFilterList)); + } } data = datasourceProvider.getData(datasourceRequest); /** diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 461fca6b33..897d7fbb4f 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -15,6 +15,7 @@ import io.dataease.commons.utils.*; import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.dataset.DataSetTaskRequest; +import io.dataease.datasource.constants.DatasourceTypes; import io.dataease.datasource.dto.TableFiled; import io.dataease.datasource.provider.DatasourceProvider; import io.dataease.datasource.provider.JdbcProvider; @@ -373,7 +374,6 @@ public class DataSetTableService { String sql = dataTableInfoDTO.getSql(); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize)); - System.out.println(datasourceRequest.getQuery()); try { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { @@ -444,24 +444,52 @@ public class DataSetTableService { } } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { - Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); - JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(ds); - String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); - QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); - try { - data.addAll(jdbcProvider.getData(datasourceRequest)); - } catch (Exception e) { - e.printStackTrace(); - } + if (datasetTable.getMode() == 0) { + Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); + if (ObjectUtils.isEmpty(ds)) { + throw new RuntimeException(Translator.get("i18n_datasource_delete")); + } + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); - try { - datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); - dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0])); - } catch (Exception e) { - e.printStackTrace(); + DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); + List list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId()); + + String sql = getCustomSQLDatasource(dt, list, ds); + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize)); + try { + data.addAll(datasourceProvider.getData(datasourceRequest)); + } catch (Exception e) { + e.printStackTrace(); + } + try { + datasourceRequest.setQuery(qp.createQuerySqlWithLimit(sql, fields, Integer.valueOf(dataSetTableRequest.getRow()))); + dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); + JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); + String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); + try { + data.addAll(jdbcProvider.getData(datasourceRequest)); + } catch (Exception e) { + e.printStackTrace(); + } + + try { + datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); + dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0])); + } catch (Exception e) { + e.printStackTrace(); + } } } @@ -523,25 +551,34 @@ public class DataSetTableService { } public Map getCustomPreview(DataSetTableRequest dataSetTableRequest) throws Exception { - Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); - JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(ds); -// String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); - DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); List list = dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()); - String sql = getCustomSQL(dataTableInfoDTO, list); + String sql; + + DatasourceRequest datasourceRequest = new DatasourceRequest(); +// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); + Datasource ds; + if (dataSetTableRequest.getMode() == 0) { + ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); + datasourceRequest.setDatasource(ds); + sql = getCustomSQLDatasource(dataTableInfoDTO, list, ds); + } else { + ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); + datasourceRequest.setDatasource(ds); + sql = getCustomSQLDoris(dataTableInfoDTO, list); + } +// String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); // 使用输入的sql先预执行一次,并拿到所有字段 datasourceRequest.setQuery(sql); Map res = new HashMap<>(); try { - List previewFields = jdbcProvider.fetchResultField(datasourceRequest); + List previewFields = datasourceProvider.fetchResultField(datasourceRequest); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); datasourceRequest.setQuery(qp.createSQLPreview(sql, previewFields.get(0).getFieldName())); - Map result = jdbcProvider.fetchResultAndField(datasourceRequest); + Map result = datasourceProvider.fetchResultAndField(datasourceRequest); List data = result.get("dataList"); List fields = result.get("fieldList"); String[] fieldArray = fields.stream().map(TableFiled::getFieldName).toArray(String[]::new); @@ -564,7 +601,8 @@ public class DataSetTableService { }); for (DatasetTableField datasetTableField : checkedFieldList) { for (TableFiled tableFiled : fields) { - if (StringUtils.equalsIgnoreCase(tableFiled.getFieldName(), DorisTableUtils.dorisFieldName(datasetTableField.getTableId() + "_" + datasetTableField.getDataeaseName()))) { + if (StringUtils.equalsIgnoreCase(tableFiled.getFieldName(), DorisTableUtils.dorisFieldName(datasetTableField.getTableId() + "_" + datasetTableField.getDataeaseName())) + || StringUtils.equalsIgnoreCase(tableFiled.getFieldName(), DorisTableUtils.dorisFieldName(datasetTableField.getTableId() + "_" + datasetTableField.getOriginName()))) { tableFiled.setRemarks(datasetTableField.getName()); break; } @@ -580,7 +618,7 @@ public class DataSetTableService { } // 自助数据集从doris里预览数据 - private String getCustomSQL(DataTableInfoDTO dataTableInfoDTO, List list) { + private String getCustomSQLDoris(DataTableInfoDTO dataTableInfoDTO, List list) { Map customInfo = new TreeMap<>(); dataTableInfoDTO.getList().forEach(ele -> { String table = DorisTableUtils.dorisName(ele.getTableId()); @@ -633,6 +671,67 @@ public class DataSetTableService { } } + public String getCustomSQLDatasource(DataTableInfoDTO dataTableInfoDTO, List list, Datasource ds) { + DatasourceTypes datasourceTypes = DatasourceTypes.valueOf(ds.getType()); + String keyword = datasourceTypes.getKeywordPrefix() + "%s" + datasourceTypes.getKeywordSuffix(); + Map customInfo = new TreeMap<>(); + for (DataTableInfoCustomUnion ele : dataTableInfoDTO.getList()) { + DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(ele.getTableId()); + String table = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class).getTable(); + if (ObjectUtils.isEmpty(datasetTable)) { + throw new RuntimeException(Translator.get("i18n_custom_ds_delete")); + } + List fields = dataSetTableFieldsService.getListByIdsEach(ele.getCheckedFields()); + if (CollectionUtils.isEmpty(fields)) { + throw new RuntimeException(Translator.get("i18n_cst_ds_tb_or_field_deleted")); + } + String[] array = fields.stream().map(f -> String.format(keyword, table) + "." + String.format(keyword, f.getOriginName()) + " AS " + DorisTableUtils.dorisFieldName(ele.getTableId() + "_" + f.getOriginName())).toArray(String[]::new); + customInfo.put(table, array); + } + DataTableInfoCustomUnion first = dataTableInfoDTO.getList().get(0); + DatasetTable table = datasetTableMapper.selectByPrimaryKey(first.getTableId()); + String tableName = new Gson().fromJson(table.getInfo(), DataTableInfoDTO.class).getTable(); + if (CollectionUtils.isNotEmpty(list)) { + StringBuilder field = new StringBuilder(); + Iterator> iterator = customInfo.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry next = iterator.next(); + field.append(StringUtils.join(next.getValue(), ",")).append(","); + } + String f = field.substring(0, field.length() - 1); + + StringBuilder join = new StringBuilder(); + for (DataTableInfoCustomUnion dataTableInfoCustomUnion : dataTableInfoDTO.getList()) { + for (DataSetTableUnionDTO dto : list) { + // 被关联表和自助数据集的表相等 + if (StringUtils.equals(dto.getTargetTableId(), dataTableInfoCustomUnion.getTableId())) { + DatasetTableField sourceField = dataSetTableFieldsService.get(dto.getSourceTableFieldId()); + DatasetTableField targetField = dataSetTableFieldsService.get(dto.getTargetTableFieldId()); + DatasetTable sourceTable = datasetTableMapper.selectByPrimaryKey(dto.getSourceTableId()); + String sourceTableName = new Gson().fromJson(sourceTable.getInfo(), DataTableInfoDTO.class).getTable(); + DatasetTable targetTable = datasetTableMapper.selectByPrimaryKey(dto.getTargetTableId()); + String targetTableName = new Gson().fromJson(targetTable.getInfo(), DataTableInfoDTO.class).getTable(); + join.append(convertUnionTypeToSQL(dto.getSourceUnionRelation())) + .append(String.format(keyword, targetTableName)) + .append(" ON ") + .append(String.format(keyword, sourceTableName)).append(".").append(String.format(keyword, sourceField.getOriginName())) + .append(" = ") + .append(String.format(keyword, targetTableName)).append(".").append(String.format(keyword, targetField.getOriginName())); + } + } + } + if (StringUtils.isEmpty(f)) { + throw new RuntimeException(Translator.get("i18n_custom_ds_delete")); + } + return MessageFormat.format("SELECT {0} FROM {1}", f, String.format(keyword, tableName)) + join.toString(); + } else { + if (StringUtils.isEmpty(StringUtils.join(customInfo.get(tableName), ","))) { + throw new RuntimeException(Translator.get("i18n_custom_ds_delete")); + } + return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(customInfo.get(tableName), ","), String.format(keyword, tableName)); + } + } + private String convertUnionTypeToSQL(String unionType) { switch (unionType) { case "1:1": @@ -673,27 +772,56 @@ public class DataSetTableService { fields = (List) map.get("fields");*/ fields = dataSetTableRequest.getFields(); } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { - // save field - DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); - List list = dataTableInfoDTO.getList(); - List fieldList = new ArrayList<>(); - list.forEach(ele -> { - List listByIds = dataSetTableFieldsService.getListByIdsEach(ele.getCheckedFields()); - listByIds.forEach(f -> { - f.setDataeaseName(DorisTableUtils.dorisFieldName(ele.getTableId() + "_" + f.getDataeaseName())); + if (datasetTable.getMode() == 1) { + // save field + DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); + List list = dataTableInfoDTO.getList(); + List fieldList = new ArrayList<>(); + list.forEach(ele -> { + List listByIds = dataSetTableFieldsService.getListByIdsEach(ele.getCheckedFields()); + listByIds.forEach(f -> { + f.setDataeaseName(DorisTableUtils.dorisFieldName(ele.getTableId() + "_" + f.getDataeaseName())); + }); + fieldList.addAll(listByIds); }); - fieldList.addAll(listByIds); - }); - for (int i = 0; i < fieldList.size(); i++) { - DatasetTableField datasetTableField = fieldList.get(i); - datasetTableField.setId(null); - datasetTableField.setTableId(datasetTable.getId()); - datasetTableField.setColumnIndex(i); + for (int i = 0; i < fieldList.size(); i++) { + DatasetTableField datasetTableField = fieldList.get(i); + datasetTableField.setId(null); + datasetTableField.setTableId(datasetTable.getId()); + datasetTableField.setColumnIndex(i); + } + dataSetTableFieldsService.batchEdit(fieldList); + // custom 创建doris视图 + if (datasetTable.getMode() == 1) { + createDorisView(DorisTableUtils.dorisName(datasetTable.getId()), getCustomSQLDoris(dataTableInfoDTO, dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()))); + } + return; + } else { + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); + DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); + List list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId()); + String sqlAsTable = getCustomSQLDatasource(dt, list, ds); + datasourceRequest.setQuery(sqlAsTable); + fields = datasourceProvider.fetchResultField(datasourceRequest); + + DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); + List listField = dataTableInfoDTO.getList(); + List fieldList = new ArrayList<>(); + listField.forEach(ele -> { + List listByIds = dataSetTableFieldsService.getListByIdsEach(ele.getCheckedFields()); + fieldList.addAll(listByIds); + }); + for (DatasetTableField field : fieldList) { + for (TableFiled tableFiled : fields) { + if (StringUtils.equalsIgnoreCase(DorisTableUtils.dorisFieldName(field.getTableId() + "_" + field.getOriginName()), tableFiled.getFieldName())) { + tableFiled.setRemarks(field.getName()); + break; + } + } + } } - dataSetTableFieldsService.batchEdit(fieldList); - // custom 创建doris视图 - createDorisView(DorisTableUtils.dorisName(datasetTable.getId()), getCustomSQL(dataTableInfoDTO, dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()))); - return; } QueryProvider qp = null; if (!ObjectUtils.isEmpty(ds)) { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 942885d77f..20ee467184 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -954,7 +954,8 @@ export default { left_join: 'LEFT JOIN', right_join: 'RIGHT JOIN', inner_join: 'INNER JOIN', - full_join: 'FULL JOIN' + full_join: 'FULL JOIN', + can_not_union_diff_datasource: 'Union dataset must have same data source' }, datasource: { datasource: 'Data Source', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index e7266b6d23..7bdb3db881 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -954,7 +954,8 @@ export default { left_join: '左連接', right_join: '右連接', inner_join: '內連接', - full_join: '全連接' + full_join: '全連接', + can_not_union_diff_datasource: '被關聯數據集必須與當前數據集的數據源一致' }, datasource: { datasource: '數據源', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 8b0f9007af..dba1f7cf6c 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -954,7 +954,8 @@ export default { left_join: '左连接', right_join: '右连接', inner_join: '内连接', - full_join: '全连接' + full_join: '全连接', + can_not_union_diff_datasource: '被关联数据集必须与当前数据集的数据源一致' }, datasource: { datasource: '数据源', diff --git a/frontend/src/views/dataset/add/AddCustom.vue b/frontend/src/views/dataset/add/AddCustom.vue index 053e55657b..62f14f7420 100644 --- a/frontend/src/views/dataset/add/AddCustom.vue +++ b/frontend/src/views/dataset/add/AddCustom.vue @@ -23,7 +23,7 @@ - + @@ -151,9 +151,9 @@ export default { id: this.param.tableId, name: this.name, sceneId: this.param.id, - dataSourceId: null, + dataSourceId: this.param.tableId ? this.param.table.dataSourceId : this.table.dataSourceId, type: 'custom', - mode: 1, + mode: this.param.tableId ? this.param.table.mode : this.table.mode, info: '{"list":' + JSON.stringify(this.checkedList) + '}' } post('/dataset/table/customPreview', table).then(response => { @@ -202,9 +202,9 @@ export default { id: this.param.tableId, name: this.name, sceneId: this.param.id, - dataSourceId: null, + dataSourceId: this.table.dataSourceId, type: 'custom', - mode: 1, + mode: this.table.mode, info: '{"list":' + JSON.stringify(this.checkedList) + '}' } post('/dataset/table/update', table).then(response => { diff --git a/frontend/src/views/dataset/common/DatasetGroupSelector.vue b/frontend/src/views/dataset/common/DatasetGroupSelector.vue index 8e0bf542e0..9f54632e4b 100644 --- a/frontend/src/views/dataset/common/DatasetGroupSelector.vue +++ b/frontend/src/views/dataset/common/DatasetGroupSelector.vue @@ -265,7 +265,9 @@ export default { mode: this.mode < 0 ? null : this.mode, typeFilter: this.customType ? this.customType : null }, false).then(response => { - this.tables = response.data + this.tables = response.data.filter(ele => { + return !(ele.mode === 0 && ele.type === 'sql') + }) for (let i = 0; i < this.tables.length; i++) { if (this.tables[i].mode === 1 && this.kettleRunning === false) { this.$set(this.tables[i], 'disabled', true) diff --git a/frontend/src/views/dataset/data/FieldEdit.vue b/frontend/src/views/dataset/data/FieldEdit.vue index 2666f62df3..28e0a661e2 100644 --- a/frontend/src/views/dataset/data/FieldEdit.vue +++ b/frontend/src/views/dataset/data/FieldEdit.vue @@ -81,16 +81,16 @@ diff --git a/frontend/src/views/dataset/data/UnionView.vue b/frontend/src/views/dataset/data/UnionView.vue index 4ce530889e..092d11f8b2 100644 --- a/frontend/src/views/dataset/data/UnionView.vue +++ b/frontend/src/views/dataset/data/UnionView.vue @@ -94,7 +94,7 @@ {{ $t('dataset.left_join') }} {{ $t('dataset.right_join') }} {{ $t('dataset.inner_join') }} - {{ $t('dataset.full_join') }} + @@ -105,7 +105,7 @@ width="500" trigger="click" > - +

{{ targetTable.name || $t('dataset.pls_slc_union_table') }}

@@ -204,6 +204,9 @@ export default { }, initUnion() { if (this.table.id) { + if (this.table.mode === 0) { + this.customType = ['db'] + } post('dataset/union/listByTableId/' + this.table.id, {}).then(response => { // console.log(response) this.unionData = response.data @@ -301,6 +304,16 @@ export default { }) return } + if (this.table.mode === 0) { + if (param.dataSourceId !== this.table.dataSourceId) { + this.$message({ + type: 'error', + message: this.$t('dataset.can_not_union_diff_datasource'), + showClose: true + }) + return + } + } this.targetTable = param this.union.targetTableId = param.id this.union.targetTableFieldId = '' diff --git a/frontend/src/views/dataset/data/ViewTable.vue b/frontend/src/views/dataset/data/ViewTable.vue index ecd316bdde..ff36be24cb 100644 --- a/frontend/src/views/dataset/data/ViewTable.vue +++ b/frontend/src/views/dataset/data/ViewTable.vue @@ -48,7 +48,7 @@ - + @@ -156,10 +156,10 @@ export default { }, editSql() { - this.$emit('switchComponent', { name: 'AddSQL', param: { id: this.table.sceneId, tableId: this.table.id }}) + this.$emit('switchComponent', { name: 'AddSQL', param: { id: this.table.sceneId, tableId: this.table.id, table: this.table }}) }, editCustom() { - this.$emit('switchComponent', { name: 'AddCustom', param: { id: this.table.sceneId, tableId: this.table.id }}) + this.$emit('switchComponent', { name: 'AddCustom', param: { id: this.table.sceneId, tableId: this.table.id, table: this.table }}) }, reSearch(val) {