From c7b6c274aa105d6056100ddcefb61df7a13909dc Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Feb 2024 16:51:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E3=80=90=E7=B3=BB=E7=BB=9F=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E3=80=91=E6=94=AF=E6=8C=81=E5=BC=95=E6=93=8E=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetDataManage.java | 12 +- .../dataset/manage/DatasetSQLManage.java | 8 +- .../manage/DatasourceSyncManage.java | 12 +- .../datasource/provider/CalciteProvider.java | 6 +- .../datasource/server/DatasourceServer.java | 7 +- .../datasource/server/EngineServer.java | 158 ++---- .../listener/DataSourceInitStartListener.java | 6 +- core/core-frontend/src/api/datasource.ts | 2 + core/core-frontend/src/locales/zh-CN.ts | 1 + .../src/models/chart/chart-attr.d.ts | 4 +- .../system/parameter/engine/EngineEdit.vue | 406 ++++++++++++++ .../system/parameter/engine/EngineInfo.vue | 482 ++++++++++++++++ .../parameter/engine/EngineInfoTemplate.vue | 515 ++++++++++++++++++ .../src/views/system/parameter/index.vue | 6 +- .../java/io/dataease/api/ds/EngineApi.java | 27 + 15 files changed, 1502 insertions(+), 150 deletions(-) create mode 100644 core/core-frontend/src/views/system/parameter/engine/EngineEdit.vue create mode 100644 core/core-frontend/src/views/system/parameter/engine/EngineInfo.vue create mode 100644 core/core-frontend/src/views/system/parameter/engine/EngineInfoTemplate.vue create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/ds/EngineApi.java diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index 828fee3ef8..a3266f8db0 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -22,9 +22,9 @@ import io.dataease.dataset.utils.SqlUtils; import io.dataease.dataset.utils.TableUtils; import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; +import io.dataease.datasource.manage.EngineManage; import io.dataease.datasource.provider.CalciteProvider; import io.dataease.datasource.request.DatasourceRequest; -import io.dataease.datasource.server.EngineServer; import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.constant.SQLConstants; @@ -66,9 +66,7 @@ public class DatasetDataManage { @Resource private DatasetTableFieldManage datasetTableFieldManage; @Resource - private DatasetTableManage datasetTableManage; - @Resource - private EngineServer engineServer; + private EngineManage engineManage; @Resource private DatasetGroupManage datasetGroupManage; @Resource @@ -89,7 +87,7 @@ public class DatasetDataManage { CoreDatasource coreDatasource = coreDatasourceMapper.selectById(datasetTableDTO.getDatasourceId()); DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO(); if (StringUtils.equalsIgnoreCase("excel", coreDatasource.getType()) || StringUtils.equalsIgnoreCase("api", coreDatasource.getType())) { - coreDatasource = engineServer.getDeEngine(); + coreDatasource = engineManage.getDeEngine(); } BeanUtils.copyBean(datasourceSchemaDTO, coreDatasource); datasourceSchemaDTO.setSchemaAlias(String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId())); @@ -112,7 +110,7 @@ public class DatasetDataManage { tableFields = (List) calciteProvider.fetchResultField(datasourceRequest).get("fields"); } else { // excel,api - CoreDatasource coreDatasource = engineServer.getDeEngine(); + CoreDatasource coreDatasource = engineManage.getDeEngine(); DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO(); BeanUtils.copyBean(datasourceSchemaDTO, coreDatasource); datasourceSchemaDTO.setSchemaAlias(String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId())); @@ -274,7 +272,7 @@ public class DatasetDataManage { CoreDatasource coreDatasource = coreDatasourceMapper.selectById(dto.getDatasourceId()); DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO(); if (coreDatasource.getType().equalsIgnoreCase("API") || coreDatasource.getType().equalsIgnoreCase("Excel")) { - BeanUtils.copyBean(datasourceSchemaDTO, engineServer.getDeEngine()); + BeanUtils.copyBean(datasourceSchemaDTO, engineManage.getDeEngine()); } else { BeanUtils.copyBean(datasourceSchemaDTO, coreDatasource); } diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java index 67762b324c..975891eaaf 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java @@ -16,7 +16,7 @@ import io.dataease.dataset.utils.SqlUtils; import io.dataease.dataset.utils.TableUtils; import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; -import io.dataease.datasource.server.EngineServer; +import io.dataease.datasource.manage.EngineManage; import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.constant.SQLConstants; @@ -46,7 +46,7 @@ public class DatasetSQLManage { @Resource private CoreDatasourceMapper coreDatasourceMapper; @Resource - private EngineServer engineServer; + private EngineManage engineManage; @Resource private CorePermissionManage corePermissionManage; @@ -340,7 +340,7 @@ public class DatasetSQLManage { DEException.throwException(Translator.get("i18n_dataset_ds_error") + ",ID:" + ds.getDatasourceId()); } if (StringUtils.equalsIgnoreCase("excel", coreDatasource.getType()) || StringUtils.equalsIgnoreCase("api", coreDatasource.getType())) { - coreDatasource = engineServer.getDeEngine(); + coreDatasource = engineManage.getDeEngine(); } schemaAlias = String.format(SQLConstants.SCHEMA, coreDatasource.getId()); if (!dsMap.containsKey(coreDatasource.getId())) { @@ -350,7 +350,7 @@ public class DatasetSQLManage { dsMap.put(coreDatasource.getId(), datasourceSchemaDTO); } } else { - CoreDatasource coreDatasource = engineServer.getDeEngine(); + CoreDatasource coreDatasource = engineManage.getDeEngine(); schemaAlias = String.format(SQLConstants.SCHEMA, coreDatasource.getId()); if (!dsMap.containsKey(coreDatasource.getId())) { DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO(); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java index 7117a794f8..13f8192082 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java @@ -44,7 +44,7 @@ public class DatasourceSyncManage { @Resource private CoreDatasourceMapper datasourceMapper; @Resource - private EngineServer engineServer; + private EngineManage engineManage; @Resource private DatasourceTaskServer datasourceTaskServer; @Resource @@ -231,7 +231,7 @@ public class DatasourceSyncManage { engineTableName = TableUtils.tableName(datasourceRequest.getTable()); break; } - CoreDeEngine engine = engineServer.info(); + CoreDeEngine engine = engineManage.info(); EngineRequest engineRequest = new EngineRequest(); engineRequest.setEngine(engine); @@ -262,7 +262,7 @@ public class DatasourceSyncManage { engineTableName = TableUtils.tableName(datasourceRequest.getTable()); break; } - CoreDeEngine engine = engineServer.info(); + CoreDeEngine engine = engineManage.info(); EngineRequest engineRequest = new EngineRequest(); engineRequest.setEngine(engine); @@ -281,7 +281,7 @@ public class DatasourceSyncManage { } private void replaceTable(String tableName) throws Exception { - CoreDeEngine engine = engineServer.info(); + CoreDeEngine engine = engineManage.info(); EngineRequest engineRequest = new EngineRequest(); engineRequest.setEngine(engine); EngineProvider engineProvider = ProviderUtil.getEngineProvider(engine.getType()); @@ -295,7 +295,7 @@ public class DatasourceSyncManage { } public void createEngineTable(String tableName, List tableFields) throws Exception { - CoreDeEngine engine = engineServer.info(); + CoreDeEngine engine = engineManage.info(); EngineRequest engineRequest = new EngineRequest(); engineRequest.setEngine(engine); EngineProvider engineProvider = ProviderUtil.getEngineProvider(engine.getType()); @@ -304,7 +304,7 @@ public class DatasourceSyncManage { } public void dropEngineTable(String tableName) throws Exception{ - CoreDeEngine engine = engineServer.info(); + CoreDeEngine engine = engineManage.info(); EngineRequest engineRequest = new EngineRequest(); engineRequest.setEngine(engine); EngineProvider engineProvider = ProviderUtil.getEngineProvider(engine.getType()); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java index 7116ba8d12..a3ce23ce90 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java @@ -12,8 +12,8 @@ import io.dataease.dataset.utils.FieldUtils; import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.entity.CoreDriver; import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; +import io.dataease.datasource.manage.EngineManage; import io.dataease.datasource.request.DatasourceRequest; -import io.dataease.datasource.server.EngineServer; import io.dataease.datasource.type.*; import io.dataease.engine.constant.SQLConstants; import io.dataease.exception.DEException; @@ -50,7 +50,7 @@ public class CalciteProvider { @Resource protected CoreDatasourceMapper coreDatasourceMapper; @Resource - private EngineServer engineServer; + private EngineManage engineManage; protected ExtendedJdbcClassLoader extendedJdbcClassLoader; private Map customJdbcClassLoaders = new HashMap<>(); private final String FILE_PATH = "/opt/dataease2.0/drivers"; @@ -656,7 +656,7 @@ public class CalciteProvider { LogUtil.info("Begin to init datasource pool..."); QueryWrapper datasourceQueryWrapper = new QueryWrapper(); List coreDatasources = coreDatasourceMapper.selectList(datasourceQueryWrapper).stream().filter(coreDatasource -> !Arrays.asList("folder", "API", "Excel").contains(coreDatasource.getType())).collect(Collectors.toList()); - CoreDatasource engine = engineServer.deEngine(); + CoreDatasource engine = engineManage.deEngine(); if (engine != null) { coreDatasources.add(engine); } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 3a58f304bb..4b55f05a98 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -27,6 +27,7 @@ import io.dataease.datasource.dao.ext.mapper.DataSourceExtMapper; import io.dataease.datasource.dao.ext.mapper.TaskLogExtMapper; import io.dataease.datasource.manage.DataSourceManage; import io.dataease.datasource.manage.DatasourceSyncManage; +import io.dataease.datasource.manage.EngineManage; import io.dataease.datasource.provider.ApiUtils; import io.dataease.datasource.provider.CalciteProvider; import io.dataease.datasource.provider.ExcelUtils; @@ -70,7 +71,7 @@ public class DatasourceServer implements DatasourceApi { @Resource private CoreDatasourceMapper datasourceMapper; @Resource - private EngineServer engineServer; + private EngineManage engineManage; @Resource private DatasourceTaskServer datasourceTaskServer; @Resource @@ -737,9 +738,9 @@ public class DatasourceServer implements DatasourceApi { DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(coreDatasource); if (coreDatasource.getType().equals("API") || coreDatasource.getType().equals("Excel")) { - datasourceRequest.setDatasource(engineServer.getDeEngine()); + datasourceRequest.setDatasource(engineManage.getDeEngine()); DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO(); - BeanUtils.copyBean(datasourceSchemaDTO, engineServer.getDeEngine()); + BeanUtils.copyBean(datasourceSchemaDTO, engineManage.getDeEngine()); datasourceSchemaDTO.setSchemaAlias(String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId())); datasourceRequest.setDsList(Map.of(datasourceSchemaDTO.getId(), datasourceSchemaDTO)); datasourceRequest.setQuery(TableUtils.tableName2Sql(datasourceSchemaDTO, tableName) + " LIMIT 0 OFFSET 0"); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/EngineServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/EngineServer.java index 540f68de30..a4930a69f0 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/EngineServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/EngineServer.java @@ -1,151 +1,69 @@ package io.dataease.datasource.server; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import io.dataease.datasource.dao.auto.entity.CoreDatasource; +import io.dataease.api.ds.vo.DatasourceDTO; +import io.dataease.api.ds.EngineApi; import io.dataease.datasource.dao.auto.entity.CoreDeEngine; import io.dataease.datasource.dao.auto.mapper.CoreDeEngineMapper; -import io.dataease.datasource.provider.EngineProvider; -import io.dataease.datasource.provider.ProviderUtil; -import io.dataease.datasource.request.DatasourceRequest; -import io.dataease.datasource.type.H2; -import io.dataease.datasource.type.Mysql; -import io.dataease.exception.DEException; -import io.dataease.result.ResultMessage; +import io.dataease.datasource.manage.EngineManage; import io.dataease.utils.BeanUtils; -import io.dataease.utils.JsonUtil; -import io.dataease.utils.ModelUtils; +import io.dataease.utils.IDUtils; import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import static io.dataease.result.ResultCode.DATA_IS_WRONG; - -@Service +@RestController +@RequestMapping("/engine") @Transactional(rollbackFor = Exception.class) -public class EngineServer { - @Resource - private Environment env; +public class EngineServer implements EngineApi { @Resource private CoreDeEngineMapper deEngineMapper; + @Resource + private EngineManage engineManage; - public CoreDeEngine info() throws DEException { + @Override + public DatasourceDTO getEngine() { + DatasourceDTO datasourceDTO = new DatasourceDTO(); List deEngines = deEngineMapper.selectList(null); if (CollectionUtils.isEmpty(deEngines)) { - DEException.throwException("未完整设置数据引擎"); + return datasourceDTO; } - return deEngines.get(0); + return BeanUtils.copyBean(datasourceDTO, deEngines.get(0)); } - public CoreDatasource getDeEngine(){ - List deEngines = deEngineMapper.selectList(null); - if(CollectionUtils.isEmpty(deEngines)){ - DEException.throwException("未完整设置数据引擎"); + @Override + public void save(DatasourceDTO datasourceDTO) { + if (StringUtils.isNotEmpty(datasourceDTO.getConfiguration())) { + datasourceDTO.setConfiguration(new String(Base64.getDecoder().decode(datasourceDTO.getConfiguration()))); } - CoreDatasource coreDatasource = new CoreDatasource(); - BeanUtils.copyBean(coreDatasource, deEngines.get(0)); - return coreDatasource; - } - - public CoreDatasource deEngine(){ - List deEngines = deEngineMapper.selectList(null); - CoreDatasource coreDatasource = new CoreDatasource(); - if(CollectionUtils.isEmpty(deEngines)){ - return null; - } - BeanUtils.copyBean(coreDatasource, deEngines.get(0)); - return coreDatasource; - } - - public ResultMessage validate(CoreDeEngine engine) throws Exception { - if (StringUtils.isEmpty(engine.getType()) || StringUtils.isEmpty(engine.getConfiguration())) { - throw new Exception("未完整设置数据引擎"); - } - try { - EngineProvider provider = ProviderUtil.getEngineProvider(engine.getType()); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - CoreDatasource datasource = new CoreDatasource(); - BeanUtils.copyBean(datasource, engine); - datasourceRequest.setDatasource(datasource); - provider.checkStatus(datasourceRequest); - return ResultMessage.success(datasource); - } catch (Exception e) { - return ResultMessage.failure(DATA_IS_WRONG, "Engine is invalid: " + e.getMessage()); - } - } - - public ResultMessage save(CoreDeEngine engine) throws Exception { - if (engine.getId() == null) { - deEngineMapper.insert(engine); - } else { - deEngineMapper.updateById(engine); - } - return ResultMessage.success(engine); - } - - public void initSimpleEngine() throws Exception{ - QueryWrapper queryWrapper = new QueryWrapper<>(); - if(ModelUtils.isDesktop()){ - queryWrapper.eq("type", engineType.h2.name()); + CoreDeEngine coreDeEngine = new CoreDeEngine(); + BeanUtils.copyBean(coreDeEngine, datasourceDTO); + if(coreDeEngine.getId() == null){ + coreDeEngine.setId(IDUtils.snowID()); + deEngineMapper.insert(coreDeEngine); }else { - queryWrapper.eq("type", engineType.mysql.name()); - } - List deEngines = deEngineMapper.selectList(queryWrapper); - if (!CollectionUtils.isEmpty(deEngines)) { - return; + deEngineMapper.updateById(coreDeEngine); } + } - CoreDeEngine engine = new CoreDeEngine(); - if(ModelUtils.isDesktop()){ - engine.setType(engineType.h2.name()); - H2 h2 = new H2(); - h2.setJdbc("jdbc:h2:/opt/dataease2.0/desktop_data;AUTO_SERVER=TRUE;AUTO_RECONNECT=TRUE;MODE=MySQL"); - h2.setDataBase("PUBLIC"); - h2.setUsername(env.getProperty("spring.datasource.username")); - h2.setPassword(env.getProperty("spring.datasource.password")); - engine.setConfiguration(JsonUtil.toJSONString(h2).toString()); - }else { - engine.setType(engineType.mysql.name()); - Mysql mysqlConfiguration = new Mysql(); - Pattern WITH_SQL_FRAGMENT = Pattern.compile("jdbc:mysql://(.*):(\\d+)/(.*)"); - Matcher matcher = WITH_SQL_FRAGMENT.matcher(env.getProperty("spring.datasource.url")); - if (!matcher.find()) { - return; - } - mysqlConfiguration.setHost(matcher.group(1)); - mysqlConfiguration.setPort(Integer.valueOf(matcher.group(2))); - String[] databasePrams = matcher.group(3).split("\\?"); - mysqlConfiguration.setDataBase(databasePrams[0]); - if(databasePrams.length == 2){ - mysqlConfiguration.setExtraParams(databasePrams[1]); - } - mysqlConfiguration.setUsername(env.getProperty("spring.datasource.username")); - mysqlConfiguration.setPassword(env.getProperty("spring.datasource.password")); - engine.setConfiguration(JsonUtil.toJSONString(mysqlConfiguration).toString()); - } - deEngineMapper.insert(engine); + @Override + public void validate(DatasourceDTO datasourceDTO) throws Exception{ + CoreDeEngine coreDeEngine = new CoreDeEngine(); + BeanUtils.copyBean(coreDeEngine, datasourceDTO); + coreDeEngine.setConfiguration(new String(Base64.getDecoder().decode(coreDeEngine.getConfiguration()))); + engineManage.validate(coreDeEngine); + } + + @Override + public void validateById(Long id) throws Exception { + engineManage.validate(deEngineMapper.selectById(id)); } - public enum engineType { - mysql("Mysql"), - h2("h2"); - private String alias; - - private engineType(String alias) { - this.alias = alias; - } - - public String getAlias() { - return alias; - } - } } diff --git a/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java b/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java index ec8324d30d..fee35578aa 100644 --- a/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java +++ b/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java @@ -2,10 +2,10 @@ package io.dataease.listener; import io.dataease.datasource.dao.auto.entity.CoreDatasourceTask; import io.dataease.datasource.manage.DatasourceSyncManage; +import io.dataease.datasource.manage.EngineManage; import io.dataease.datasource.provider.CalciteProvider; import io.dataease.datasource.server.DatasourceServer; import io.dataease.datasource.server.DatasourceTaskServer; -import io.dataease.datasource.server.EngineServer; import io.dataease.system.dao.auto.entity.CoreSysSetting; import io.dataease.system.manage.SysParameterManage; import jakarta.annotation.Resource; @@ -30,14 +30,14 @@ public class DataSourceInitStartListener implements ApplicationListener => { export const listSyncRecord = (page: number, limit: number, dsId: number | string) => request.post({ url: '/datasource/listSyncRecord/' + dsId + '/' + page + '/' + limit }) + +export const getDeEngine = () => request.get({ url: '/engine/getEngine' }) diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index f8f62dbe0c..433fee8d76 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -292,6 +292,7 @@ export default { modify: '编辑数据源', copy: '复制数据源', validate_success: '校验成功', + validate_failed: '校验失败', validate: '校验', search_by_name: '根据名称搜索', delete_warning: '确定要删除吗?', diff --git a/core/core-frontend/src/models/chart/chart-attr.d.ts b/core/core-frontend/src/models/chart/chart-attr.d.ts index eb72efea88..d7d3bfd1f5 100644 --- a/core/core-frontend/src/models/chart/chart-attr.d.ts +++ b/core/core-frontend/src/models/chart/chart-attr.d.ts @@ -66,11 +66,11 @@ declare interface ChartBasicStyle { /** * 字段ID */ - fieldId: string, + fieldId: string /** * 字段名称 */ - name: string, + name: string /** * 字段宽度占比 */ diff --git a/core/core-frontend/src/views/system/parameter/engine/EngineEdit.vue b/core/core-frontend/src/views/system/parameter/engine/EngineEdit.vue new file mode 100644 index 0000000000..2a28b27a0a --- /dev/null +++ b/core/core-frontend/src/views/system/parameter/engine/EngineEdit.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/core/core-frontend/src/views/system/parameter/engine/EngineInfo.vue b/core/core-frontend/src/views/system/parameter/engine/EngineInfo.vue new file mode 100644 index 0000000000..0a53a028a7 --- /dev/null +++ b/core/core-frontend/src/views/system/parameter/engine/EngineInfo.vue @@ -0,0 +1,482 @@ + + + + + + diff --git a/core/core-frontend/src/views/system/parameter/engine/EngineInfoTemplate.vue b/core/core-frontend/src/views/system/parameter/engine/EngineInfoTemplate.vue new file mode 100644 index 0000000000..a50a3fb746 --- /dev/null +++ b/core/core-frontend/src/views/system/parameter/engine/EngineInfoTemplate.vue @@ -0,0 +1,515 @@ + + + + + + diff --git a/core/core-frontend/src/views/system/parameter/index.vue b/core/core-frontend/src/views/system/parameter/index.vue index b425076d4e..ecf9142f6e 100644 --- a/core/core-frontend/src/views/system/parameter/index.vue +++ b/core/core-frontend/src/views/system/parameter/index.vue @@ -7,6 +7,7 @@
+
@@ -16,14 +17,15 @@ import { ref } from 'vue' import { useI18n } from '@/hooks/web/useI18n' import MapSetting from './map/MapSetting.vue' import BasicInfo from './basic/BasicInfo.vue' +import EngineInfo from '@/views/system/parameter/engine/EngineInfo.vue' /* import EmailInfo from './email/EmailInfo.vue' */ const { t } = useI18n() const tabArray = [ { label: '基础设置', name: 'basic' }, /* { label: '邮件设置', name: 'email' }, */ - { label: '地图设置', name: 'map' } - /* {label: '引擎设置', name: 'engine'}, */ + { label: '地图设置', name: 'map' }, + { label: '引擎设置', name: 'engine' } ] const activeName = ref('basic') diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/ds/EngineApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/ds/EngineApi.java new file mode 100644 index 0000000000..b9a75ffe2b --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/ds/EngineApi.java @@ -0,0 +1,27 @@ +package io.dataease.api.ds; + +import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.dataease.api.ds.vo.DatasourceDTO; +import io.dataease.auth.DeApiPath; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.*; + +import static io.dataease.constant.AuthResourceEnum.DATASOURCE; + +@Tag(name = "引擎管理:基础") +@ApiSupport(order = 970) +@DeApiPath(value = "/engine", rt = DATASOURCE) +public interface EngineApi { + + @GetMapping("/getEngine") + DatasourceDTO getEngine(); + + @PostMapping("/save") + void save(@RequestBody DatasourceDTO datasourceDTO); + + @PostMapping("/validate") + void validate(@RequestBody DatasourceDTO datasourceDTO) throws Exception; + + @PostMapping("/validate/{id}") + void validateById(@PathVariable Long id) throws Exception; +}