From 5b6ffb7dfd6de95c31ce57593ad574d816dc6ce3 Mon Sep 17 00:00:00 2001 From: qianming Date: Fri, 27 Aug 2021 14:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E3=80=81?= =?UTF-8?q?=E5=AF=B9=E6=AF=94=E5=9B=BE=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/docs/.vuepress/config.js | 1 + doc/docs/guide/dashboard.md | 6 +++-- doc/docs/guide/importexport.md | 17 ++++++++++++++ doc/docs/picture/dashboard/img_18.png | Bin 0 -> 25369 bytes doc/docs/picture/imexport/img.png | Bin 0 -> 5235 bytes doc/docs/picture/imexport/img_1.png | Bin 0 -> 4476 bytes .../V1.0.10__create_report_share.sql | 2 +- .../V1.0.11_create_compare_table.sql | 21 ++++++++++++++++++ 8 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 doc/docs/guide/importexport.md create mode 100644 doc/docs/picture/dashboard/img_18.png create mode 100644 doc/docs/picture/imexport/img.png create mode 100644 doc/docs/picture/imexport/img_1.png create mode 100644 report-core/src/main/resources/db/migration/V1.0.11_create_compare_table.sql diff --git a/doc/docs/.vuepress/config.js b/doc/docs/.vuepress/config.js index 8e2fdcd0..211130b0 100644 --- a/doc/docs/.vuepress/config.js +++ b/doc/docs/.vuepress/config.js @@ -51,6 +51,7 @@ module.exports = { {title: '数据源', path: '/guide/datasource'}, {title: '数据集', path: '/guide/dataset'}, {title: '大屏设计', path: '/guide/dashboard'}, + {title: '导入导出', path: '/guide/importexport'}, ] }, { diff --git a/doc/docs/guide/dashboard.md b/doc/docs/guide/dashboard.md index 802cb0a0..fe54e683 100644 --- a/doc/docs/guide/dashboard.md +++ b/doc/docs/guide/dashboard.md @@ -88,7 +88,9 @@ **如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues)
** ### 散点图 -**开发中**
+**规划中**
### 对比图 -**开发中**
+柱状对比图数据集需要3个字段,其中一个作为对比的字段只能为2种值,只有2种值作为对比的字段要选择“y轴字段”字典。因为底层的解析用的是堆叠图的解析,这里的y轴字段并不是指的图表上面的y轴,还请注意,有强迫症可以自行修改源码的解析,剩下的2个字段对应字典看图
+![img18](../picture/dashboard/img_18.png) +**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues)
** diff --git a/doc/docs/guide/importexport.md b/doc/docs/guide/importexport.md new file mode 100644 index 00000000..787dd62a --- /dev/null +++ b/doc/docs/guide/importexport.md @@ -0,0 +1,17 @@ +**注:导入导出目前是初始版本,报错没有细化,如果导入导出过程中页面无反应,请F12** +**注:“导入成功/失败”的提示不一定对应当前真实导入导出情况,请根据实际导入导出的结果进行判断** + +## 导出 +![img](../picture/imexport/img.png)
+导出会生成zip文件,包含图表、样式、图片等,不会带有该大屏的名称和code。
+ +### 导出数据集 +适用于同一系统内部使用 + +### 导出不含有数据集 +导出的图表会使用默认的静态数据集,适用于跨系统,请注意,如果你的大屏图表有部分图表是在对方系统不存在的,那么目前整个大屏是不会显示出来的,后续会进行兼容,不存在的图表留空。
+ +## 导入 +![img1](../picture/imexport/img_1.png)
+选择一个导出的zip文件导入即可。注意,导入会覆盖当前大屏,请新建一张空白的大屏进行导入。
+**注:如果你导入的大屏中含有你当前系统不存在的图表,整个大屏是不会显示的。**
diff --git a/doc/docs/picture/dashboard/img_18.png b/doc/docs/picture/dashboard/img_18.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2090a96791cc32ae90d51aa8e7cca2d2aee428 GIT binary patch literal 25369 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 A-T(jq literal 0 HcmV?d00001 diff --git a/report-core/src/main/resources/db/migration/V1.0.10__create_report_share.sql b/report-core/src/main/resources/db/migration/V1.0.10__create_report_share.sql index f848dbda..240adc95 100644 --- a/report-core/src/main/resources/db/migration/V1.0.10__create_report_share.sql +++ b/report-core/src/main/resources/db/migration/V1.0.10__create_report_share.sql @@ -66,7 +66,7 @@ INSERT INTO `aj_report`.`gaea_report_data_set`(`set_code`, `set_name`, `set_desc use aj_report_init; -CREATE TABLE `aj_report_barstack` +CREATE TABLE if not exists `aj_report_barstack` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time` date DEFAULT NULL, diff --git a/report-core/src/main/resources/db/migration/V1.0.11_create_compare_table.sql b/report-core/src/main/resources/db/migration/V1.0.11_create_compare_table.sql new file mode 100644 index 00000000..42393792 --- /dev/null +++ b/report-core/src/main/resources/db/migration/V1.0.11_create_compare_table.sql @@ -0,0 +1,21 @@ +use aj_report_init; +CREATE TABLE if not exists `aj_report_comparestack` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` date DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `nums` bigint(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; + +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (1, '2021-08-23', '成功', 12); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (2, '2021-08-23', '失败', 1); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (3, '2021-08-24', '成功', 24); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (4, '2021-08-24', '失败', 5); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (5, '2021-08-25', '成功', 13); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (6, '2021-08-25', '失败', 8); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (7, '2021-08-26', '成功', 19); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (8, '2021-08-26', '失败', 3); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (9, '2021-08-27', '成功', 9); +INSERT INTO `aj_report_init`.`aj_report_comparestack`(`id`, `time`, `type`, `nums`) VALUES (10, '2021-08-27', '失败', 15); + +INSERT INTO `aj_report`.`gaea_report_data_set`(`set_code`, `set_name`, `set_desc`, `source_code`, `dyn_sentence`, `case_result`, `enable_flag`, `delete_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES ('compare_ajreport', '柱状对比图示例数据', '', 'mysql_ajreport', 'SELECT time,type,nums from aj_report_comparestack', '[{\"time\":\"2021-08-23\",\"type\":\"成功\",\"nums\":12},{\"time\":\"2021-08-23\",\"type\":\"失败\",\"nums\":1},{\"time\":\"2021-08-24\",\"type\":\"成功\",\"nums\":24},{\"time\":\"2021-08-24\",\"type\":\"失败\",\"nums\":5},{\"time\":\"2021-08-25\",\"type\":\"成功\",\"nums\":13},{\"time\":\"2021-08-25\",\"type\":\"失败\",\"nums\":8},{\"time\":\"2021-08-26\",\"type\":\"成功\",\"nums\":19},{\"time\":\"2021-08-26\",\"type\":\"失败\",\"nums\":3},{\"time\":\"2021-08-27\",\"type\":\"成功\",\"nums\":9},{\"time\":\"2021-08-27\",\"type\":\"失败\",\"nums\":15}]', 1, 0, 'admin', '2021-08-27 13:48:33', 'admin', '2021-08-27 13:48:33', 1);