diff --git a/report-ui/src/views/bigscreenDesigner/designer/tools/configure/widget-heatmap.js b/report-ui/src/views/bigscreenDesigner/designer/tools/configure/widget-heatmap.js
new file mode 100644
index 00000000..bbe503eb
--- /dev/null
+++ b/report-ui/src/views/bigscreenDesigner/designer/tools/configure/widget-heatmap.js
@@ -0,0 +1,643 @@
+/*
+ * @Descripttion: 热力图
+ * @version:
+ * @Author: whw
+ * @Date: 2021-11-3
+ * @LastEditors: whw
+ * @LastEditTime: 2021-11-3
+ */
+export const widgetHeatmap = {
+ code: 'widget-heatmap',
+ type: 'chart',
+ label: '热力图',
+ icon: 'iconicon_tubiao_bingtu',
+ 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: 16
+ },
+ {
+ type: 'el-select',
+ label: '字体位置',
+ name: 'textAlign',
+ required: false,
+ placeholder: '',
+ selectOptions: [
+ { code: 'center', name: '居中' },
+ { code: 'left', name: '左对齐' },
+ { code: 'right', name: '右对齐' },
+ ],
+ value: 'center'
+ },
+ {
+ 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: 16
+ },
+ ],
+ },
+ {
+ name: 'X轴设置',
+ list: [
+ {
+ type: 'el-switch',
+ label: '显示',
+ name: 'hideX',
+ required: false,
+ placeholder: '',
+ value: true,
+ },
+ {
+ type: 'el-input-text',
+ label: 'X轴别名',
+ name: 'xName',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'vue-color',
+ label: '别名颜色',
+ name: 'xNameColor',
+ required: false,
+ placeholder: '',
+ value: '#fff'
+ },
+ {
+ type: 'el-input-number',
+ label: '别名字号',
+ name: 'xNameFontSize',
+ required: false,
+ placeholder: '',
+ value: 14
+ },
+ {
+ type: 'el-switch',
+ label: '轴反转',
+ name: 'reversalX',
+ required: false,
+ placeholder: '',
+ value: false
+ },
+ {
+ type: 'el-slider',
+ label: '文字角度',
+ name: 'textAngleX',
+ required: false,
+ placeholder: '',
+ value: 0
+ },
+ {
+ type: 'el-input-number',
+ label: '文字间隔',
+ name: 'textInterval',
+ required: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'vue-color',
+ label: '文字颜色',
+ name: 'Xcolor',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ {
+ type: 'el-input-number',
+ label: '文字字号',
+ name: 'fontSizeX',
+ required: false,
+ placeholder: '',
+ value: 14,
+ },
+ {
+ type: 'vue-color',
+ label: '轴颜色',
+ name: 'lineColorX',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ ],
+ },
+ {
+ name: 'Y轴设置',
+ list: [
+ {
+ type: 'el-switch',
+ label: '显示',
+ name: 'isShowY',
+ require: false,
+ placeholder: '',
+ value: true,
+ },
+ {
+ type: 'el-input-text',
+ label: 'Y轴别名',
+ name: 'textNameY',
+ require: false,
+ placeholder: '',
+ value: ''
+ },
+ {
+ type: 'vue-color',
+ label: '别名颜色',
+ name: 'NameColorY',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ {
+ type: 'el-input-number',
+ label: '别名字号',
+ name: 'NameFontSizeY',
+ required: false,
+ placeholder: '',
+ value: 14,
+ },
+ {
+ type: 'el-switch',
+ label: '轴反转',
+ name: 'reversalY',
+ required: false,
+ placeholder: '',
+ value: false
+ },
+ {
+ type: 'el-slider',
+ label: '文字角度',
+ name: 'textAngleY',
+ required: false,
+ placeholder: '',
+ value: 0
+ },
+ {
+ type: 'vue-color',
+ label: '文字颜色',
+ name: 'colorY',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ {
+ type: 'el-input-number',
+ label: '文字字号',
+ name: 'fontSizeY',
+ required: false,
+ placeholder: '',
+ value: 14,
+ },
+ {
+ type: 'vue-color',
+ label: '轴颜色',
+ name: 'lineColorY',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ ],
+ },
+ {
+ name: '图例操作',
+ list: [
+ {
+ type: 'el-switch',
+ label: '图例',
+ name: 'isShowLegend',
+ required: false,
+ placeholder: '',
+ value: false,
+ },
+ {
+ type: 'el-input-number',
+ label: '最小值',
+ name: 'dataMin',
+ required: false,
+ placeholder: '',
+ value: 0,
+ },
+ {
+ type: 'el-input-number',
+ label: '最大值',
+ name: 'dataMax',
+ required: false,
+ placeholder: '',
+ value: 5000,
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'lengedColor',
+ required: false,
+ placeholder: '',
+ value: '#fff',
+ },
+ {
+ type: 'el-input-number',
+ label: '字体大小',
+ name: 'lengedFontSize',
+ required: false,
+ placeholder: '',
+ value: 12,
+ },
+ ],
+ },
+ {
+ name: '数值设定',
+ list: [
+ {
+ type: 'el-switch',
+ label: '显示',
+ name: 'isShow',
+ required: false,
+ placeholder: '',
+ value: true
+ },
+ {
+ type: 'el-input-number',
+ label: '字体字号',
+ name: 'fontSize',
+ required: false,
+ placeholder: '',
+ value: 14
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'subTextColor',
+ required: false,
+ placeholder: '',
+ value: '#fff'
+ },
+ {
+ 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: 'tipsFontSize',
+ required: false,
+ placeholder: '',
+ value: 16
+ },
+ {
+ type: 'vue-color',
+ label: '字体颜色',
+ name: 'tipsLineColor',
+ required: false,
+ placeholder: '',
+ },
+ ],
+ },
+ {
+ name: '坐标轴边距设置',
+ list: [
+ {
+ type: 'el-slider',
+ label: '左边距(像素)',
+ name: 'marginLeft',
+ required: false,
+ placeholder: '',
+ value: 10,
+ }, {
+ type: 'el-slider',
+ label: '顶边距(像素)',
+ name: 'marginTop',
+ required: false,
+ placeholder: '',
+ value: 50,
+ }, {
+ type: 'el-slider',
+ label: '右边距(像素)',
+ name: 'marginRight',
+ required: false,
+ placeholder: '',
+ value: 40,
+ }, {
+ type: 'el-slider',
+ label: '底边距(像素)',
+ name: 'marginBottom',
+ required: false,
+ placeholder: '',
+ value: 10,
+ },
+ ],
+ },
+ {
+ name: '自定义配色',
+ list: [
+ {
+ type: 'customColor',
+ label: '',
+ name: 'lengedColorList',
+ required: false,
+ value: [{ color: '#abd9e9' }, { color: '#74add1' }, { color: '#4575b4' }, { color: '#313695' }],
+ },
+ ],
+ },
+ ],
+ ],
+ // 数据
+ 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: '',
+ relactiveDom: 'dataType',
+ relactiveDomValue: 'staticData',
+ value: [
+ [0, 0, 3320],
+ [0, 1, 1561],
+ [0, 2, 3194],
+ [0, 3, 2899],
+ [0, 4, 2363],
+ [0, 5, 3945],
+ [0, 6, 2051],
+ [0, 7, 3657],
+ [0, 8, 3304],
+ [0, 9, 2990],
+ [1, 9, 2663],
+ [1, 0, 378],
+ [1, 1, 4076],
+ [1, 2, 3178],
+ [1, 3, 1501],
+ [1, 4, 1660],
+ [1, 5, 726],
+ [1, 6, 4148],
+ [1, 7, 720],
+ [1, 8, 430],
+ [2, 9, 2983],
+ [2, 0, 1917],
+ [2, 1, 1188],
+ [2, 2, 3581],
+ [2, 3, 1781],
+ [2, 4, 4725],
+ [2, 5, 4077],
+ [2, 6, 299],
+ [2, 7, 4828],
+ [2, 8, 1778],
+ [3, 9, 3171],
+ [3, 0, 2944],
+ [3, 1, 763],
+ [3, 2, 1678],
+ [3, 3, 1765],
+ [3, 4, 2949],
+ [3, 5, 966],
+ [3, 6, 4622],
+ [3, 7, 2818],
+ [3, 8, 3913],
+ [4, 9, 4382],
+ [4, 0, 1670],
+ [4, 1, 4532],
+ [4, 2, 2116],
+ [4, 3, 2383],
+ [4, 4, 510],
+ [4, 5, 33],
+ [4, 6, 4974],
+ [4, 7, 3627],
+ [4, 8, 2737],
+ [5, 9, 656],
+ [5, 0, 3689],
+ [5, 1, 713],
+ [5, 2, 3551],
+ [5, 3, 3159],
+ [5, 4, 4150],
+ [5, 5, 1416],
+ [5, 6, 3021],
+ [5, 7, 1778],
+ [5, 8, 863],
+ [6, 9, 772],
+ [6, 0, 1675],
+ [6, 1, 1323],
+ [6, 2, 2023],
+ [6, 3, 43],
+ [6, 4, 4964],
+ [6, 5, 4781],
+ [6, 6, 2608],
+ [6, 7, 2278],
+ [6, 8, 3285],
+ [7, 9, 1977],
+ [7, 0, 882],
+ [7, 1, 2434],
+ [7, 2, 4694],
+ [7, 3, 3022],
+ [7, 4, 1798],
+ [7, 5, 2503],
+ [7, 6, 693],
+ [7, 7, 275],
+ [7, 8, 3774],
+ [8, 9, 1386],
+ [8, 0, 1212],
+ [8, 1, 1982],
+ [8, 2, 1509],
+ [8, 3, 94],
+ [8, 4, 2082],
+ [8, 5, 3930],
+ [8, 6, 4528],
+ [8, 7, 1861],
+ [8, 8, 4582],
+ [9, 9, 3038],
+ [9, 0, 4038],
+ [9, 1, 357],
+ [9, 2, 306],
+ [9, 3, 479],
+ [9, 4, 823],
+ [9, 5, 3442],
+ [9, 6, 904],
+ [9, 7, 399],
+ [9, 8, 4869]
+ ]
+ },
+ {
+ type: 'dycustComponents',
+ label: '',
+ name: 'dynamicData',
+ required: false,
+ placeholder: '',
+ relactiveDom: 'dataType',
+ chartType: 'widget-heatmap',
+ relactiveDomValue: 'dynamicData',
+ dictKey: 'PIE_PROPERTIES',
+ value: '',
+ },
+ ],
+ // 坐标
+ position: [
+ {
+ type: 'el-input-number',
+ label: '左边距',
+ name: 'left',
+ required: false,
+ placeholder: '',
+ value: 0,
+ },
+ {
+ type: 'el-input-number',
+ label: '上边距',
+ name: 'top',
+ required: false,
+ placeholder: '',
+ value: 0,
+ },
+ {
+ type: 'el-input-number',
+ label: '宽度',
+ name: 'width',
+ required: false,
+ placeholder: '该容器在1920px大屏中的宽度',
+ value: 700,
+ },
+ {
+ type: 'el-input-number',
+ label: '高度',
+ name: 'height',
+ required: false,
+ placeholder: '该容器在1080px大屏中的高度',
+ value: 250,
+ },
+ ],
+ }
+}
diff --git a/report-ui/src/views/bigscreenDesigner/designer/tools/main.js b/report-ui/src/views/bigscreenDesigner/designer/tools/main.js
index 781aefc3..84b9dbe5 100644
--- a/report-ui/src/views/bigscreenDesigner/designer/tools/main.js
+++ b/report-ui/src/views/bigscreenDesigner/designer/tools/main.js
@@ -35,6 +35,7 @@ import {widgetLineCompare} from "./configure/widget-line-compare"
import {widgetDecoratePie} from "./configure/widget-decorate-pie";
import {widgetMoreBarLine} from "./configure/widget-more-bar-line";
import {widgetWordCloud} from "./configure/widget-word-cloud";
+import {widgetHeatmap} from "./configure/widget-heatmap";
export const widgetTool = [
// type=html类型的组件
@@ -65,5 +66,6 @@ export const widgetTool = [
widgetLineCompare,
widgetDecoratePie,
widgetMoreBarLine,
- widgetWordCloud
+ widgetWordCloud,
+ widgetHeatmap
]
diff --git a/report-ui/src/views/bigscreenDesigner/designer/widget/heatmap/widgetHeatmap.vue b/report-ui/src/views/bigscreenDesigner/designer/widget/heatmap/widgetHeatmap.vue
new file mode 100644
index 00000000..e6d4fd22
--- /dev/null
+++ b/report-ui/src/views/bigscreenDesigner/designer/widget/heatmap/widgetHeatmap.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+
+
diff --git a/report-ui/src/views/bigscreenDesigner/designer/widget/temp.vue b/report-ui/src/views/bigscreenDesigner/designer/widget/temp.vue
index 90cfde5a..545c18ab 100644
--- a/report-ui/src/views/bigscreenDesigner/designer/widget/temp.vue
+++ b/report-ui/src/views/bigscreenDesigner/designer/widget/temp.vue
@@ -38,6 +38,7 @@ import widgetLineCompareChart from "./line/widgetLineCompareChart";
import widgetDecoratePieChart from "./decorate/widgetDecoratePieChart";
import widgetMoreBarLineChart from "./bar/widgetMoreBarLineChart";
import widgetWordCloud from "./wordcloud/widgetWordCloud";
+import widgetHeatmap from "./heatmap/widgetHeatmap";
export default {
name: "WidgetTemp",
@@ -68,7 +69,8 @@ export default {
widgetLineCompareChart,
widgetDecoratePieChart,
widgetMoreBarLineChart,
- widgetWordCloud
+ widgetWordCloud,
+ widgetHeatmap
},
model: {
prop: "value",
diff --git a/report-ui/src/views/bigscreenDesigner/designer/widget/widget.vue b/report-ui/src/views/bigscreenDesigner/designer/widget/widget.vue
index d048ea2d..da65cbb6 100644
--- a/report-ui/src/views/bigscreenDesigner/designer/widget/widget.vue
+++ b/report-ui/src/views/bigscreenDesigner/designer/widget/widget.vue
@@ -49,6 +49,7 @@ import widgetLineCompareChart from "./line/widgetLineCompareChart";
import widgetDecoratePieChart from "./decorate/widgetDecoratePieChart";
import widgetMoreBarLineChart from "./bar/widgetMoreBarLineChart";
import widgetWordCloud from "./wordcloud/widgetWordCloud";
+import widgetHeatmap from "./heatmap/widgetHeatmap";
export default {
name: "Widget",
@@ -79,7 +80,8 @@ export default {
widgetLineCompareChart,
widgetDecoratePieChart,
widgetMoreBarLineChart,
- widgetWordCloud
+ widgetWordCloud,
+ widgetHeatmap
},
model: {
prop: "value",