Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	report-ui/src/views/file-management/index.vue
Raod 3 years ago
commit b6f1aff7d9

@ -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>
![img.17](../picture/dashboard/img_17.png)
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 折线堆叠图
开发中 <br>
### 折线图
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
折线图数据集对应字典值需要选择一个“X轴”、“折线”只需要2个字段 <br>
![img_8.png](../picture/dashboard/img_8.png)
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱线图
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
柱线图数据集对应字典值需要选择一个“X轴”、“柱状”、“折线”需要3个字段 <br>
![img9](../picture/dashboard/img_9.png)
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 饼图
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
饼图的数据集选择的时候只能选择饼图对应的字典即“Name”、“Value”不明白可以参考静态数据 <br>
![img10](../picture/dashboard/img_10.png) <br>
![img11](../picture/dashboard/img_11.png) <br>
![img12](../picture/dashboard/img_12.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 漏斗图
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
和饼图一样 <br>
![img13](../picture/dashboard/img_13.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 仪表盘
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
数据集只能有一个字段,且字典选择“文本数字” <br>
![img14](../picture/dashboard/img_14.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 中国地图
**注**:气泡地图已支持动态数据,中国地图(迁徙图)暂不支持动态数据
气泡地图动态数据集和饼图一样对应字典值需要选择一个“Name”、“Value”且name的字段值要和echarts图表里面的值能对应上可参考静态数据 <br>
![img15](../picture/dashboard/img_15.png) <br>
### 百分百图
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
数据集只能有一个字段,且字典选择“文本数字” <br>
![img16](../picture/dashboard/img_16.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 热力图
**开发中** <br>

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">&#xe621;</span>
<div class="name">堆叠图</div>
<div class="code-name">&amp;#xe621;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe61f;</span>
<div class="name">堆叠图</div>
<div class="code-name">&amp;#xe61f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe645;</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": "文件",

@ -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
}
}
};

Loading…
Cancel
Save