diff --git a/report-ui/src/main.js b/report-ui/src/main.js
index c6e3c915..367e73ec 100644
--- a/report-ui/src/main.js
+++ b/report-ui/src/main.js
@@ -19,6 +19,7 @@ import echarts from 'echarts';
import ECharts from 'vue-echarts'
import 'echarts/lib/chart/bar'
import 'echarts/lib/component/tooltip'
+//import 'echarts-liquidfill'
// import 'echarts-gl'
Vue.component('v-chart', ECharts)
diff --git a/report-ui/src/views/report/bigscreen/designer/tools.js b/report-ui/src/views/report/bigscreen/designer/tools.js
index 5d5502b0..c544141b 100644
--- a/report-ui/src/views/report/bigscreen/designer/tools.js
+++ b/report-ui/src/views/report/bigscreen/designer/tools.js
@@ -5290,6 +5290,388 @@ const widgetTools = [
],
},
},
+ {
+ code: 'widgetPiePercentageChart',
+ type: 'chart',
+ label: '百分比图',
+ icon: 'iconnandinggeermeiguitu',
+ options: {
+ // 配置
+ setup: [
+ {
+ type: 'el-input-text',
+ label: '图层名称',
+ name: 'layerName',
+ required: false,
+ placeholder: '',
+ value: '百分比图',
+ },
+ {
+ type: 'vue-color',
+ label: '背景颜色',
+ name: 'background',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ [
+ {
+ name: '标题设置',
+ list: [
+ {
+ type: 'el-switch',
+ label: '标题',
+ name: 'isNoTitle',
+ required: false,
+ placeholder: '',
+ value: true
+ },
+ {
+ type: 'el-input-text',
+ label: '标题',
+ name: 'titleText',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'textColor',
+ required: false,
+ placeholder: '',
+ value: '#fff'
+ },
+ {
+ type: 'el-select',
+ label: '字体粗细',
+ name: 'textFontWeight',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'normal', name: '正常' },
+ { code: 'bold', name: '粗体' },
+ { code: 'bolder', name: '特粗体' },
+ { code: 'lighter', name: '细体' }
+ ],
+ value: 'normal'
+ },
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'textFontSize',
+ required: false,
+ placeholder: '',
+ value: 20
+ },
+ {
+ type: 'el-select',
+ label: '字体位置',
+ name: 'textAlign',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'center', name: '居中' },
+ { code: 'left', name: '左对齐' },
+ { code: 'right', name: '右对齐' },
+ ],
+ value: 'left'
+ },
+ {
+ type: 'el-input-text',
+ label: '副标题',
+ name: 'subText',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'subTextColor',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'el-select',
+ label: '字体粗细',
+ name: 'subTextFontWeight',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'normal', name: '正常' },
+ { code: 'bold', name: '粗体' },
+ { code: 'bolder', name: '特粗体' },
+ { code: 'lighter', name: '细体' }
+ ],
+ value: 'normal'
+ },
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'subTextFontSize',
+ required: false,
+ placeholder: '',
+ value: 12
+ },
+ ],
+ },
+ {
+ name: '数值设定',
+ list: [
+ {
+ type: 'el-switch',
+ label: '显示',
+ name: 'isShow',
+ required: false,
+ placeholder: '',
+ value: true,
+ },
+ {
+ type: 'el-switch',
+ label: '数值',
+ name: 'numberValue',
+ require: false,
+ placeholder: '',
+ value: true,
+ },
+ {
+ type: 'el-switch',
+ label: '百分比',
+ name: 'percentage',
+ require: false,
+ placeholder: '',
+ value: false,
+ },
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'fontSize',
+ required: false,
+ placeholder: '',
+ value: 14,
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'subTextColor',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'el-select',
+ label: '字体粗细',
+ name: 'fontWeight',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'normal', name: '正常' },
+ { code: 'bold', name: '粗体' },
+ { code: 'bolder', name: '特粗体' },
+ { code: 'lighter', name: '细体' }
+ ],
+ value: 'normal'
+ },
+ ],
+ },
+ {
+ name: '提示语设置',
+ list: [
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'fontSize',
+ required: false,
+ placeholder: '',
+ value: 12
+ },
+ {
+ type: 'vue-color',
+ label: '网格线颜色',
+ name: 'lineColor',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ ],
+ },
+ {
+ name: '图例操作',
+ list: [
+ {
+ type: 'el-switch',
+ label: '图例',
+ name: 'isShowLegend',
+ required: false,
+ placeholder: '',
+ value: true,
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'lengedColor',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'lengedFontSize',
+ required: false,
+ placeholder: '',
+ value: 16,
+ },
+ {
+ type: 'el-input-number',
+ label: '图例宽度',
+ name: 'lengedWidth',
+ required: false,
+ placeholder: '',
+ value: 15,
+ },
+ {
+ type: 'el-select',
+ label: '横向位置',
+ name: 'lateralPosition',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'left', name: '左对齐' },
+ { code: 'right', name: '右对齐' },
+ ],
+ value: ''
+ },
+ {
+ type: 'el-select',
+ label: '纵向位置',
+ name: 'longitudinalPosition',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'top', name: '顶部' },
+ { code: 'bottom', name: '底部' },
+ ],
+ value: ''
+ },
+ {
+ type: 'el-select',
+ label: '布局前置',
+ name: 'layoutFront',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'vertical', name: '竖排' },
+ { code: 'horizontal', name: '横排' },
+ ],
+ value: ''
+ },
+ ],
+ },
+ {
+ name: '自定义配色',
+ list: [
+ {
+ type: 'customColor',
+ label: '',
+ name: 'customColor',
+ required: false,
+ value: [{ color: '#FF801C' }, { color: '#F5FF46' }, { color: '#00FE65' }, { color: '#00FEFF' }, { color: '#ffa800' }]
+ },
+ ],
+ },
+ ],
+ ],
+ // 数据
+ data: [
+ {
+ type: 'el-radio-group',
+ label: '数据类型',
+ name: 'dataType',
+ require: false,
+ placeholder: '',
+ selectValue: true,
+ selectOptions: [
+ {
+ code: 'staticData',
+ name: '静态数据',
+ },
+ {
+ code: 'dynamicData',
+ name: '动态数据',
+ },
+ ],
+ value: 'staticData',
+ },
+ {
+ type: 'el-input-number',
+ label: '刷新时间(毫秒)',
+ name: 'refreshTime',
+ relactiveDom: 'dataType',
+ relactiveDomValue: 'dynamicData',
+ value: 5000
+ },
+ {
+ type: 'el-button',
+ label: '静态数据',
+ name: 'staticData',
+ required: false,
+ placeholder: 'px',
+ relactiveDom: 'dataType',
+ relactiveDomValue: 'staticData',
+ value: '[{"value": 1048,"name": "搜索引擎"},{"value": 735, "name": "直接访问"},{"value": 580, "name": "邮件营销"},{"value": 484,"name":"联盟广告"},{"value":300,"name":"视频广告"}]',
+ },
+ {
+ type: 'dycustComponents',
+ label: '',
+ name: 'dynamicData',
+ required: false,
+ placeholder: 'px',
+ relactiveDom: 'dataType',
+ chartType: 'widget-piechart',
+ relactiveDomValue: 'dynamicData',
+ value: '',
+ },
+ ],
+ // 坐标
+ position: [
+ {
+ type: 'el-input-number',
+ label: '左边距',
+ name: 'left',
+ required: false,
+ placeholder: 'px',
+ value: 0,
+ },
+ {
+ type: 'el-input-number',
+ label: '上边距',
+ name: 'top',
+ required: false,
+ placeholder: 'px',
+ value: 0,
+ },
+ {
+ type: 'el-input-number',
+ label: '宽度',
+ name: 'width',
+ required: false,
+ placeholder: '该容器在1920px大屏中的宽度',
+ value: 400,
+ },
+ {
+ type: 'el-input-number',
+ label: '高度',
+ name: 'height',
+ required: false,
+ placeholder: '该容器在1080px大屏中的高度',
+ value: 200,
+ },
+ ],
+ },
+ },
]
const getToolByCode = function (code) {
diff --git a/report-ui/src/views/report/bigscreen/designer/widget/pie/widgetPiePercentageChart.vue b/report-ui/src/views/report/bigscreen/designer/widget/pie/widgetPiePercentageChart.vue
new file mode 100644
index 00000000..4efd71b2
--- /dev/null
+++ b/report-ui/src/views/report/bigscreen/designer/widget/pie/widgetPiePercentageChart.vue
@@ -0,0 +1,509 @@
+
+
+
+
+
+
+
+
+
diff --git a/report-ui/src/views/report/bigscreen/designer/widget/temp.vue b/report-ui/src/views/report/bigscreen/designer/widget/temp.vue
index 9972661c..9f970760 100644
--- a/report-ui/src/views/report/bigscreen/designer/widget/temp.vue
+++ b/report-ui/src/views/report/bigscreen/designer/widget/temp.vue
@@ -30,6 +30,7 @@ import WidgetGauge from "./widgetGauge.vue";
import WidgetPieNightingaleRoseArea from "./pie/widgetPieNightingaleRoseArea";
import widgetTable from "./widgetTable.vue";
import widgetMap from "./widgetMap.vue";
+import widgetPiePercentageChart from "./pie/widgetPiePercentageChart";
export default {
name: "WidgetTemp",
components: {
@@ -51,7 +52,8 @@ export default {
WidgetGauge,
WidgetPieNightingaleRoseArea,
widgetTable,
- widgetMap
+ widgetMap,
+ widgetPiePercentageChart
},
model: {
prop: "value",
diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widget.vue b/report-ui/src/views/report/bigscreen/designer/widget/widget.vue
index bc60b8fb..cac4be75 100644
--- a/report-ui/src/views/report/bigscreen/designer/widget/widget.vue
+++ b/report-ui/src/views/report/bigscreen/designer/widget/widget.vue
@@ -40,6 +40,7 @@ import WidgetGauge from "./widgetGauge.vue";
import WidgetPieNightingaleRoseArea from "./pie/widgetPieNightingaleRoseArea";
import widgetTable from "./widgetTable.vue";
import widgetMap from "./widgetMap.vue";
+import widgetPiePercentageChart from "./pie/widgetPiePercentageChart";
export default {
name: "Widget",
components: {
@@ -61,7 +62,8 @@ export default {
WidgetGauge,
WidgetPieNightingaleRoseArea,
widgetTable,
- widgetMap
+ widgetMap,
+ widgetPiePercentageChart
},
model: {
prop: "value",
diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue
index 8a1ee1c9..313ddd5d 100644
--- a/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue
+++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue
@@ -185,9 +185,6 @@ export default {
fontSize: optionsCollapse.fontSizeY
}
},
- splitLine: {
- show: false
- },
axisLine: {
show: true,
lineStyle: {