From cc525bd69b4e08f13111099cd7bc821bb9bd37a9 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 6 Nov 2023 18:08:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=B3=BB=E7=BB=9F=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-backend/pom.xml | 15 +- .../io/dataease/MybatisPlusGenerator.java | 6 +- .../main/resources/application-standalone.yml | 2 +- core/core-frontend/src/api/template.ts | 42 ++ .../src/api/templateMarket/index.js | 14 + .../template/component/TemplateImport.vue | 209 +++++++++ .../views/template/component/TemplateItem.vue | 140 ++++++ .../views/template/component/TemplateList.vue | 247 +++++++++++ .../src/views/template/index.vue | 414 +++++++++++++++++- de-xpack | 2 +- .../api/template/TemplateManageApi.java | 13 + .../api/template/TemplateMarketApi.java | 23 + .../api/template/dto/TemplateManageDTO.java | 15 + .../api/template/dto/TemplateMarketDTO.java | 21 + .../request/TemplateMarketSearchRequest.java | 7 + .../template/response/MarketBaseResponse.java | 24 + .../api/template/vo/MarketCategoryVO.java | 15 + .../api/template/vo/MarketMetasVO.java | 13 + .../api/template/vo/TemplateCategoryVO.java | 19 + 19 files changed, 1228 insertions(+), 13 deletions(-) create mode 100644 core/core-frontend/src/api/template.ts create mode 100644 core/core-frontend/src/api/templateMarket/index.js create mode 100644 core/core-frontend/src/views/template/component/TemplateImport.vue create mode 100644 core/core-frontend/src/views/template/component/TemplateItem.vue create mode 100644 core/core-frontend/src/views/template/component/TemplateList.vue create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateManageApi.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateMarketApi.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateManageDTO.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateMarketDTO.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/request/TemplateMarketSearchRequest.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/response/MarketBaseResponse.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketCategoryVO.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketMetasVO.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/template/vo/TemplateCategoryVO.java diff --git a/core/core-backend/pom.xml b/core/core-backend/pom.xml index 202a279ec8..5306db20ef 100644 --- a/core/core-backend/pom.xml +++ b/core/core-backend/pom.xml @@ -92,7 +92,20 @@ - + + com.h2database + h2 + + + io.dataease + xpack-permissions + ${project.version} + + + io.dataease + xpack-base + ${project.version} + diff --git a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java index 075e94a0bd..3c217a76b0 100644 --- a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java +++ b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java @@ -14,18 +14,18 @@ public class MybatisPlusGenerator { * 第一 我嫌麻烦 * 第二 后面配置会放到nacos读起来更麻烦了 */ - private static final String url = "jdbc:mysql://127.0.0.1:3306/de_standalone?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"; + private static final String url = "jdbc:mysql://39.98.78.97:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"; private static final String username = "root"; private static final String password = "Password123@mysql"; /** * 业务模块例如datasource,dataset,panel等 */ - private static final String busi = "system"; + private static final String busi = "template"; /** * 这是要生成代码的表名称 */ - private static final String TABLE_NAME = "core_sys_setting"; + private static final String TABLE_NAME = "visualization_template"; /** * 下面两个配置基本上不用动 diff --git a/core/core-backend/src/main/resources/application-standalone.yml b/core/core-backend/src/main/resources/application-standalone.yml index a1f9149413..19ab8a6e2e 100644 --- a/core/core-backend/src/main/resources/application-standalone.yml +++ b/core/core-backend/src/main/resources/application-standalone.yml @@ -1,6 +1,6 @@ spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/de_standalone?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + url: jdbc:mysql://39.98.78.97:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false username: root password: Password123@mysql messages: diff --git a/core/core-frontend/src/api/template.ts b/core/core-frontend/src/api/template.ts new file mode 100644 index 0000000000..fdce516ca0 --- /dev/null +++ b/core/core-frontend/src/api/template.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export function save(data) { + return request.post({ + url: '/template/save', + data: data, + loading: true + }) +} +export function templateDelete(id) { + return request.post({ + url: '/template/delete/' + id + }) +} + +export function showTemplateList(data) { + return request.post({ + url: '/template/templateList', + data: data + }) +} + +export function findOne(id) { + return request.get({ + url: '/template/findOne/' + id + }) +} + +export function find(data) { + return request.post({ + url: '/template/find', + data: data, + loading: true + }) +} + +export function nameCheck(data) { + return request.post({ + url: '/template/nameCheck', + data: data + }) +} diff --git a/core/core-frontend/src/api/templateMarket/index.js b/core/core-frontend/src/api/templateMarket/index.js new file mode 100644 index 0000000000..81d500c4fb --- /dev/null +++ b/core/core-frontend/src/api/templateMarket/index.js @@ -0,0 +1,14 @@ +import request from '@/config/axios' + +export function searchMarket(data) { + return request.post({ + url: '/template/market/search', + data + }) +} + +export function getCategories() { + return request.post({ + url: '/template/market/categories' + }) +} diff --git a/core/core-frontend/src/views/template/component/TemplateImport.vue b/core/core-frontend/src/views/template/component/TemplateImport.vue new file mode 100644 index 0000000000..607eaab0f9 --- /dev/null +++ b/core/core-frontend/src/views/template/component/TemplateImport.vue @@ -0,0 +1,209 @@ + + + + + + + diff --git a/core/core-frontend/src/views/template/component/TemplateItem.vue b/core/core-frontend/src/views/template/component/TemplateItem.vue new file mode 100644 index 0000000000..c081320f23 --- /dev/null +++ b/core/core-frontend/src/views/template/component/TemplateItem.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/core/core-frontend/src/views/template/component/TemplateList.vue b/core/core-frontend/src/views/template/component/TemplateList.vue new file mode 100644 index 0000000000..9dec6b5b56 --- /dev/null +++ b/core/core-frontend/src/views/template/component/TemplateList.vue @@ -0,0 +1,247 @@ + + + + + diff --git a/core/core-frontend/src/views/template/index.vue b/core/core-frontend/src/views/template/index.vue index f49683978b..3efe38e51d 100644 --- a/core/core-frontend/src/views/template/index.vue +++ b/core/core-frontend/src/views/template/index.vue @@ -1,12 +1,412 @@ - - - + + + diff --git a/de-xpack b/de-xpack index 912a648808..e3143e3176 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 912a648808e87bdf1e5a11f7cdc6467b89fd9347 +Subproject commit e3143e3176ca189c35729fa7bb195264c061a824 diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateManageApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateManageApi.java new file mode 100644 index 0000000000..a702967020 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateManageApi.java @@ -0,0 +1,13 @@ +package io.dataease.api.template; + +import io.dataease.api.template.dto.TemplateManageDTO; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +public interface TemplateManageApi { + + @PostMapping("/templateList") + List templateList(); + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateMarketApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateMarketApi.java new file mode 100644 index 0000000000..c1b0751175 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/TemplateMarketApi.java @@ -0,0 +1,23 @@ +package io.dataease.api.template; + +import io.dataease.api.template.request.TemplateMarketSearchRequest; +import io.dataease.api.template.response.MarketBaseResponse; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author : WangJiaHao + * @date : 2023/11/6 17:23 + */ +public interface TemplateMarketApi { + + @PostMapping("/search") + MarketBaseResponse searchTemplate(@RequestBody TemplateMarketSearchRequest request); + + @GetMapping("/categories") + List categories(); + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateManageDTO.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateManageDTO.java new file mode 100644 index 0000000000..a1f43cd40e --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateManageDTO.java @@ -0,0 +1,15 @@ +package io.dataease.api.template.dto; + + +import lombok.Data; + + + +@Data +public class TemplateManageDTO { + + private String label; + private Integer childrenCount; + + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateMarketDTO.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateMarketDTO.java new file mode 100644 index 0000000000..1e2e1d0991 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/dto/TemplateMarketDTO.java @@ -0,0 +1,21 @@ +package io.dataease.api.template.dto; + +import io.dataease.api.template.vo.MarketCategoryVO; +import io.dataease.api.template.vo.MarketMetasVO; +import lombok.Data; + +import java.util.List; + +@Data +public class TemplateMarketDTO { + private String id; + private String title; + private String status; + private String slug; + private String editorType; + private String summary; + private String thumbnail; + private Boolean showFlag = true; + private List categories; + private MarketMetasVO metas; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/request/TemplateMarketSearchRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/request/TemplateMarketSearchRequest.java new file mode 100644 index 0000000000..73b8b3555f --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/request/TemplateMarketSearchRequest.java @@ -0,0 +1,7 @@ +package io.dataease.api.template.request; + +import io.dataease.api.template.dto.TemplateMarketDTO; + +public class TemplateMarketSearchRequest extends TemplateMarketDTO { + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/response/MarketBaseResponse.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/response/MarketBaseResponse.java new file mode 100644 index 0000000000..5a791e1116 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/response/MarketBaseResponse.java @@ -0,0 +1,24 @@ +package io.dataease.api.template.response; + +import io.dataease.api.template.dto.TemplateMarketDTO; + +import java.util.List; + +/** + * @author : WangJiaHao + * @date : 2023/11/6 17:43 + */ +public class MarketBaseResponse { + private String baseUrl; + + private List contents; + + public MarketBaseResponse() { + } + + public MarketBaseResponse(String baseUrl, List contents) { + this.baseUrl = baseUrl; + this.contents = contents; + } + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketCategoryVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketCategoryVO.java new file mode 100644 index 0000000000..3c086909d7 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketCategoryVO.java @@ -0,0 +1,15 @@ +package io.dataease.api.template.vo; + +import lombok.Data; + +/** + * Author: wangjiahao + * Date: 2022/7/15 + * Description: + */ +@Data +public class MarketCategoryVO { + private String id; + private String name; + private String slug; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketMetasVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketMetasVO.java new file mode 100644 index 0000000000..d568615ba2 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/MarketMetasVO.java @@ -0,0 +1,13 @@ +package io.dataease.api.template.vo; + +import lombok.Data; + +/** + * Author: wangjiahao + * Date: 2022/7/15 + * Description: + */ +@Data +public class MarketMetasVO { + private String theme_repo; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/TemplateCategoryVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/TemplateCategoryVO.java new file mode 100644 index 0000000000..989c6bd8dd --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/template/vo/TemplateCategoryVO.java @@ -0,0 +1,19 @@ +package io.dataease.api.template.vo; + +import lombok.Data; + +/** + * Author: wangjiahao + * Date: 2022/7/18 + * Description: + */ +@Data +public class TemplateCategoryVO { + private Integer id; + + private String name; + + private String slug; + + private Integer priority; +}