mirror of
https://gitee.com/anji-plus/report.git
synced 2026-03-24 09:48:34 +08:00
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # report-ui/src/views/file-management/index.vue
This commit is contained in:
@@ -110,6 +110,8 @@ bin/start.bat Windows修改第4行的JAVA_HOME后,双击启动
|
||||
启动后访问
|
||||
http://serverip:9095
|
||||
```
|
||||
源码编译部署和发行版部署可参考在线文档 <br>
|
||||
https://report.anji-plus.com/report-doc/guide/quicklyDevelop.html
|
||||
|
||||
## 谁在使用
|
||||
|
||||
|
||||
@@ -35,40 +35,55 @@
|
||||
**存在问题,还在开发中**<br>
|
||||
|
||||
### 柱状图
|
||||
目前**柱状图-渐变色**图形右侧功能区还在开发调整中 <br>
|
||||
柱状图数据集对应字典值需要选择一个“X轴”、“柱状”,只需要2个字段 <br>
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
|
||||
### 柱状堆叠图
|
||||
动态的数据集对应字典值需要选择一个“X轴”、“Y轴”、“柱状”,也就是说需要3个字段,不明白可以看看静态数据 <br>
|
||||

|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 折线堆叠图
|
||||
开发中 <br>
|
||||
|
||||
### 折线图
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
折线图数据集对应字典值需要选择一个“X轴”、“折线”,只需要2个字段 <br>
|
||||

|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 柱线图
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
柱线图数据集对应字典值需要选择一个“X轴”、“柱状”、“折线”,需要3个字段 <br>
|
||||

|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 饼图
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
饼图的数据集选择的时候,只能选择饼图对应的字典,即“Name”、“Value”,不明白可以参考静态数据 <br>
|
||||
 <br>
|
||||
 <br>
|
||||
 <br>
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 漏斗图
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
和饼图一样 <br>
|
||||
 <br>
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 仪表盘
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
数据集只能有一个字段,且字典选择“文本数字” <br>
|
||||
 <br>
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 中国地图
|
||||
**注**:气泡地图已支持动态数据,中国地图(迁徙图)暂不支持动态数据
|
||||
气泡地图动态数据集,和饼图一样,对应字典值需要选择一个“Name”、“Value”,且name的字段值要和echarts图表里面的值能对应上,可参考静态数据 <br>
|
||||
 <br>
|
||||
|
||||
|
||||
### 百分百图
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
数据集只能有一个字段,且字典选择“文本数字” <br>
|
||||
 <br>
|
||||
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
|
||||
|
||||
### 热力图
|
||||
**开发中** <br>
|
||||
|
||||
BIN
doc/docs/picture/dashboard/img_17.png
Normal file
BIN
doc/docs/picture/dashboard/img_17.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -25,3 +25,15 @@ INSERT INTO `aj_report`.`gaea_dict_item`(`id`, `dict_code`, `item_name`, `item_v
|
||||
INSERT INTO `aj_report`.`gaea_dict_item`(`id`, `dict_code`, `item_name`, `item_value`, `item_extend`, `enabled`, `locale`, `remark`, `sort`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES (default, 'SHARE_VAILD', '1天', '1', NULL, 1, 'zh', NULL, 2, 'admin', '2021-08-18 13:30:39', 'admin', '2021-08-18 13:30:39', 1);
|
||||
INSERT INTO `aj_report`.`gaea_dict_item`(`id`, `dict_code`, `item_name`, `item_value`, `item_extend`, `enabled`, `locale`, `remark`, `sort`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES (default, 'SHARE_VAILD', '7天', '7', NULL, 1, 'zh', NULL, 3, 'admin', '2021-08-18 13:30:51', 'admin', '2021-08-18 13:30:56', 2);
|
||||
INSERT INTO `aj_report`.`gaea_dict_item`(`id`, `dict_code`, `item_name`, `item_value`, `item_extend`, `enabled`, `locale`, `remark`, `sort`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES (default, 'SHARE_VAILD', '30天', '30', NULL, 1, 'zh', NULL, 4, 'admin', '2021-08-18 13:31:11', 'admin', '2021-08-18 13:31:11', 1);
|
||||
|
||||
|
||||
/*堆叠图数据*/
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (1, '2021-07-27', 'A', 12);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (2, '2021-07-27', 'B', 20);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (3, '2021-07-27', 'C', 11);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (4, '2021-07-26', 'A', 11);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (5, '2021-07-26', 'B', 30);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (6, '2021-07-25', 'B', 20);
|
||||
INSERT INTO `aj_report_init`.`aj_report_barstack`(`id`, `time`, `type`, `nums`) VALUES (7, '2021-07-25', 'C', 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 ('barstack_ajreport', '柱状堆叠数据', '', 'mysql_ajreport', 'select time,type,nums from aj_report_barstack', '[{\"time\":\"2021-07-27\",\"type\":\"A\",\"nums\":12},{\"time\":\"2021-07-27\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-27\",\"type\":\"C\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"A\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"B\",\"nums\":30},{\"time\":\"2021-07-25\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-25\",\"type\":\"C\",\"nums\":15}]', 1, 0, 'admin', '2021-07-27 19:50:52', 'admin', '2021-08-16 14:08:51', 7);
|
||||
|
||||
@@ -54,6 +54,18 @@
|
||||
<div class="content unicode" style="display: block;">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">堆叠图</div>
|
||||
<div class="code-name">&#xe621;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">堆叠图</div>
|
||||
<div class="code-name">&#xe61f;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">文件</div>
|
||||
@@ -750,9 +762,9 @@
|
||||
<pre><code class="language-css"
|
||||
>@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('iconfont.woff2?t=1628064452460') format('woff2'),
|
||||
url('iconfont.woff?t=1628064452460') format('woff'),
|
||||
url('iconfont.ttf?t=1628064452460') format('truetype');
|
||||
src: url('iconfont.woff2?t=1629425895962') format('woff2'),
|
||||
url('iconfont.woff?t=1629425895962') format('woff'),
|
||||
url('iconfont.ttf?t=1629425895962') format('truetype');
|
||||
}
|
||||
</code></pre>
|
||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||
@@ -778,6 +790,24 @@
|
||||
<div class="content font-class">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont iconbianzu23"></span>
|
||||
<div class="name">
|
||||
堆叠图
|
||||
</div>
|
||||
<div class="code-name">.iconbianzu23
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont iconduidietu"></span>
|
||||
<div class="name">
|
||||
堆叠图
|
||||
</div>
|
||||
<div class="code-name">.iconduidietu
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont iconfill_folder"></span>
|
||||
<div class="name">
|
||||
@@ -1822,6 +1852,22 @@
|
||||
<div class="content symbol">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#iconbianzu23"></use>
|
||||
</svg>
|
||||
<div class="name">堆叠图</div>
|
||||
<div class="code-name">#iconbianzu23</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#iconduidietu"></use>
|
||||
</svg>
|
||||
<div class="name">堆叠图</div>
|
||||
<div class="code-name">#iconduidietu</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#iconfill_folder"></use>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 1513211 */
|
||||
src: url('iconfont.woff2?t=1628064452460') format('woff2'),
|
||||
url('iconfont.woff?t=1628064452460') format('woff'),
|
||||
url('iconfont.ttf?t=1628064452460') format('truetype');
|
||||
src: url('iconfont.woff2?t=1629425895962') format('woff2'),
|
||||
url('iconfont.woff?t=1629425895962') format('woff'),
|
||||
url('iconfont.ttf?t=1629425895962') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@@ -13,6 +13,14 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.iconbianzu23:before {
|
||||
content: "\e621";
|
||||
}
|
||||
|
||||
.iconduidietu:before {
|
||||
content: "\e61f";
|
||||
}
|
||||
|
||||
.iconfill_folder:before {
|
||||
content: "\e645";
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -5,6 +5,20 @@
|
||||
"css_prefix_text": "icon",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "18888301",
|
||||
"name": "堆叠图",
|
||||
"font_class": "bianzu23",
|
||||
"unicode": "e621",
|
||||
"unicode_decimal": 58913
|
||||
},
|
||||
{
|
||||
"icon_id": "23457042",
|
||||
"name": "堆叠图",
|
||||
"font_class": "duidietu",
|
||||
"unicode": "e61f",
|
||||
"unicode_decimal": 58911
|
||||
},
|
||||
{
|
||||
"icon_id": "5472881",
|
||||
"name": "文件",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5689,7 +5689,7 @@ const widgetTools = [
|
||||
code: 'widgetBarStackChart',
|
||||
type: 'chart',
|
||||
label: '柱状堆叠图',
|
||||
icon: 'iconzhuzhuangtu',
|
||||
icon: 'iconbianzu23',
|
||||
options: {
|
||||
// 配置
|
||||
setup: [
|
||||
|
||||
@@ -96,11 +96,9 @@ export default {
|
||||
this.setOptionsTitle();
|
||||
this.setOptionsX();
|
||||
this.setOptionsY();
|
||||
this.setOptionsTop();
|
||||
this.setOptionsTooltip();
|
||||
this.setOptionsMargin();
|
||||
this.setOptionsLegend();
|
||||
this.setOptionsColor();
|
||||
this.setOptionsData();
|
||||
},
|
||||
// 标题修改
|
||||
@@ -195,25 +193,6 @@ export default {
|
||||
};
|
||||
this.options.yAxis = yAxis;
|
||||
},
|
||||
// 数值设定 or 柱体设置
|
||||
setOptionsTop() {
|
||||
const optionsCollapse = this.optionsSetup;
|
||||
const series = this.options.series;
|
||||
for (const key in series) {
|
||||
if (series[key].type == "bar") {
|
||||
series[key].label = {
|
||||
show: optionsCollapse.isShow,
|
||||
position: "top",
|
||||
distance: 10,
|
||||
fontSize: optionsCollapse.fontSize,
|
||||
color: optionsCollapse.subTextColor,
|
||||
fontWeight: optionsCollapse.fontWeight
|
||||
};
|
||||
series[key].barWidth = optionsCollapse.maxWidth;
|
||||
}
|
||||
}
|
||||
this.options.series = series;
|
||||
},
|
||||
// tooltip 提示语设置,鼠标放置显示
|
||||
setOptionsTooltip() {
|
||||
const optionsCollapse = this.optionsSetup;
|
||||
@@ -255,30 +234,6 @@ export default {
|
||||
};
|
||||
legend.itemWidth = optionsCollapse.lengedWidth;
|
||||
},
|
||||
// 自定义颜色
|
||||
setOptionsColor() {
|
||||
const optionsCollapse = this.optionsSetup;
|
||||
const customColor = optionsCollapse.customColor;
|
||||
if (!customColor) return;
|
||||
const arrColor = [];
|
||||
for (let i = 0; i < customColor.length; i++) {
|
||||
arrColor.push(customColor[i].color);
|
||||
}
|
||||
const itemStyle = {
|
||||
normal: {
|
||||
color: params => {
|
||||
return arrColor[params.dataIndex];
|
||||
},
|
||||
barBorderRadius : optionsCollapse.radius
|
||||
},
|
||||
};
|
||||
for (const key in this.options.series) {
|
||||
if (this.options.series[key].type == "bar") {
|
||||
this.options.series[key].itemStyle = itemStyle;
|
||||
}
|
||||
}
|
||||
this.options = Object.assign({}, this.options);
|
||||
},
|
||||
// 数据解析
|
||||
setOptionsData() {
|
||||
const optionsSetup = this.optionsSetup;
|
||||
@@ -394,6 +349,12 @@ export default {
|
||||
});
|
||||
},
|
||||
renderingFn(optionsSetup, val) {
|
||||
//颜色
|
||||
const customColor = optionsSetup.customColor;
|
||||
const arrColor = [];
|
||||
for (let i = 0; i < customColor.length; i++) {
|
||||
arrColor.push(customColor[i].color);
|
||||
}
|
||||
// x轴
|
||||
if (optionsSetup.verticalShow) {
|
||||
this.options.xAxis.data = [];
|
||||
@@ -406,14 +367,35 @@ export default {
|
||||
this.options.xAxis.type = "category";
|
||||
this.options.yAxis.type = "value";
|
||||
}
|
||||
|
||||
const series = this.options.series;
|
||||
for (const i in series) {
|
||||
if (series[i].type == "bar") {
|
||||
series[i].name = val.series[i].name;
|
||||
series[i].data = val.series[i].data;
|
||||
const series = [];
|
||||
for (const i in val.series) {
|
||||
if (val.series[i].type == "bar") {
|
||||
series.push({
|
||||
name: val.series[i].name,
|
||||
type: "bar",
|
||||
data: val.series[i].data,
|
||||
barGap: "0%",
|
||||
stack: this.getStackStyle(),
|
||||
barWidth: optionsSetup.maxWidth,
|
||||
label: {
|
||||
show: optionsSetup.isShow,
|
||||
position: "top",
|
||||
distance: 10,
|
||||
fontSize: optionsSetup.fontSize,
|
||||
color: optionsSetup.subTextColor,
|
||||
fontWeight: optionsSetup.fontWeight
|
||||
},
|
||||
//颜色,圆角属性
|
||||
itemStyle: {
|
||||
normal : {
|
||||
color: arrColor[i],
|
||||
barBorderRadius : optionsSetup.radius,
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
this.options.series = series
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user