From dcfb19fab94fbd7b8446618d2f748cd8a04a7f1e Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 2 Sep 2021 15:18:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E6=A0=A1=E9=AA=8Csqlserver=20schema?= =?UTF-8?q?=20=E9=9D=9E=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/datasource/provider/JdbcProvider.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java index 5918a7f361..1f79523b62 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java @@ -528,6 +528,9 @@ public class JdbcProvider extends DatasourceProvider { return "show tables;"; case sqlServer: SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class); + if(StringUtils.isEmpty(sqlServerConfigration.getSchema())){ + throw new Exception(Translator.get("i18n_schema_is_empty")); + } return "SELECT TABLE_NAME FROM DATABASE.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'DS_SCHEMA' ;" .replace("DATABASE", sqlServerConfigration.getDataBase()) .replace("DS_SCHEMA", sqlServerConfigration.getSchema()); From 32b8ae4886f7868d62536b5c0a9bd64f599a4e15 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 2 Sep 2021 18:59:21 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=E4=BB=AA=E8=A1=A8=E6=9D=BF=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=94=AF=E6=8C=81=E6=A8=A1=E6=9D=BF=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../panel/PanelPdfTemplateController.java | 33 +++++ .../panel/PanelPdfTemplateService.java | 27 +++++ .../resources/db/migration/V26__de1.3.sql | 17 ++- .../src/main/resources/generatorConfig.xml | 2 +- frontend/package.json | 1 + frontend/src/api/panel/pdfTemplate.js | 11 ++ .../canvas/components/Editor/Preview.vue | 2 +- frontend/src/icons/svg/PDF.svg | 1 + frontend/src/main.js | 3 + frontend/src/styles/index.scss | 8 ++ frontend/src/utils/StringUtils.js | 7 ++ .../views/panel/export/PDFExportTemplate.vue | 32 +++++ .../src/views/panel/export/PDFPreExport.vue | 113 ++++++++++++++++++ frontend/src/views/panel/export/date.js | 30 +++++ .../src/views/panel/list/PanelViewShow.vue | 92 +++++++++----- 15 files changed, 347 insertions(+), 32 deletions(-) create mode 100644 backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java create mode 100644 backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java create mode 100644 frontend/src/api/panel/pdfTemplate.js create mode 100644 frontend/src/icons/svg/PDF.svg create mode 100644 frontend/src/utils/StringUtils.js create mode 100644 frontend/src/views/panel/export/PDFExportTemplate.vue create mode 100644 frontend/src/views/panel/export/PDFPreExport.vue create mode 100644 frontend/src/views/panel/export/date.js diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java b/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java new file mode 100644 index 0000000000..9d9bef9d16 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java @@ -0,0 +1,33 @@ +package io.dataease.controller.panel; + +import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.dataease.base.domain.PanelPdfTemplate; +import io.dataease.service.panel.PanelPdfTemplateService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * Author: wangjiahao + * Date: 2021-03-05 + * Description: + */ +@Api(tags = "仪表板:PDF导出模板") +@ApiSupport(order = 170) +@RestController +@RequestMapping("pdf-template") +public class PanelPdfTemplateController { + + @Resource + private PanelPdfTemplateService panelPdfTemplateService; + + @GetMapping("queryAll") + public List queryAll(){ + return panelPdfTemplateService.queryAll(); + } + + +} diff --git a/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java b/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java new file mode 100644 index 0000000000..ae1ae65e4f --- /dev/null +++ b/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java @@ -0,0 +1,27 @@ +package io.dataease.service.panel; + +import io.dataease.base.domain.PanelPdfTemplate; +import io.dataease.base.domain.PanelPdfTemplateExample; +import io.dataease.base.mapper.PanelPdfTemplateMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Author: wangjiahao + * Date: 9/1/21 + * Description: + */ +@Service +public class PanelPdfTemplateService { + + @Resource + private PanelPdfTemplateMapper panelPdfTemplateMapper; + + public List queryAll(){ + PanelPdfTemplateExample example = new PanelPdfTemplateExample(); + example.setOrderByClause("sort asc"); + return panelPdfTemplateMapper.selectByExampleWithBLOBs(example); + } +} diff --git a/backend/src/main/resources/db/migration/V26__de1.3.sql b/backend/src/main/resources/db/migration/V26__de1.3.sql index ef59aa58cb..edbd2af260 100644 --- a/backend/src/main/resources/db/migration/V26__de1.3.sql +++ b/backend/src/main/resources/db/migration/V26__de1.3.sql @@ -4,4 +4,19 @@ BEGIN; INSERT INTO `sys_msg_type` VALUES (7, 0, 'i18n_msg_type_ds_invalid', 'datasource', 'to-msg-ds'); INSERT INTO `sys_msg_type` VALUES (8, 7, 'i18n_msg_type_ds_invalid', 'datasource', 'to-msg-ds'); -COMMIT; \ No newline at end of file +COMMIT; + + +-- ---------------------------- +-- Table structure for panel_pdf_template +-- ---------------------------- +DROP TABLE IF EXISTS `panel_pdf_template`; +CREATE TABLE `panel_pdf_template` ( + `id` varchar(50) NOT NULL COMMENT 'id', + `name` varchar(255) DEFAULT NULL COMMENT '模板名称', + `create_time` bigint(13) DEFAULT NULL COMMENT '创建时间', + `create_user` varchar(255) DEFAULT NULL COMMENT '创建人', + `template_content` longtext COMMENT '模板内容', + `sort` int(8) DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index 9764b3b112..2368a2540f 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -64,7 +64,7 @@ - +
diff --git a/frontend/package.json b/frontend/package.json index 5a7ce1ab24..2e3cd54833 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,7 @@ "vue-fullscreen": "^2.5.2", "vue-i18n": "7.3.2", "vue-router": "3.0.6", + "vue-to-pdf": "^1.0.0", "vue-uuid": "2.0.2", "vuedraggable": "^2.24.3", "vuex": "3.1.0", diff --git a/frontend/src/api/panel/pdfTemplate.js b/frontend/src/api/panel/pdfTemplate.js new file mode 100644 index 0000000000..afd0efce18 --- /dev/null +++ b/frontend/src/api/panel/pdfTemplate.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + + +export function queryAll() { + return request({ + url: '/pdf-template/queryAll', + method: 'get', + loading: true, + timeout: 30000 + }) +} diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 488dd6381c..05800834fe 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -1,5 +1,5 @@