Authored by wangtao

组件优化,增加获取css共同函数

@@ -9,6 +9,7 @@ export default { @@ -9,6 +9,7 @@ export default {
9 } 9 }
10 }, 10 },
11 props: { 11 props: {
  12 + config:Object,
12 value: Object, 13 value: Object,
13 ispreview: Boolean 14 ispreview: Boolean
14 }, 15 },
@@ -18,7 +19,7 @@ export default { @@ -18,7 +19,7 @@ export default {
18 this.options = val; 19 this.options = val;
19 this.optionsSetUp = val.setup; 20 this.optionsSetUp = val.setup;
20 this.optionsPosition = val.position; 21 this.optionsPosition = val.position;
21 - this.reloadChart(); 22 + this.reloadPage();
22 }, 23 },
23 deep: true 24 deep: true
24 } 25 }
@@ -28,8 +29,48 @@ export default { @@ -28,8 +29,48 @@ export default {
28 this.optionsSetUp = this.value.setup; 29 this.optionsSetUp = this.value.setup;
29 this.optionsPosition = this.value.position; 30 this.optionsPosition = this.value.position;
30 }, 31 },
  32 + computed: {
  33 + // 计算样式
  34 + getStyle() {
  35 + let that = this;
  36 + // 位置信息
  37 + const position = this.optionsPosition;
  38 + let css = {};
  39 + if(position && Object.keys(position).length > 0){
  40 + css = {
  41 + position: this.ispreview ? "absolute" : "static",
  42 + width: position.width + "px",
  43 + height: position.height + "px",
  44 + left: position.left + "px",
  45 + top: position.top + "px"
  46 + };
  47 + }
  48 +
  49 + // 属性信息
  50 + const setup = that.optionsSetUp;
  51 + const config = that.config;
  52 + for (const key in setup) {
  53 + let arr = config.setup.filter(function(v){if(v.name == key){return v}})
  54 + if(arr && arr.length == 1){
  55 + let val = setup[key];
  56 + let cssTemplate = arr[0].cssTemplate;
  57 + if (cssTemplate) {
  58 + let split = cssTemplate.replace("%s", val).split(":");
  59 + css[split[0]] = split[1];
  60 + }
  61 + }
  62 + }
  63 + return css;
  64 + }
  65 + },
31 methods: { 66 methods: {
32 /** 67 /**
  68 + * 页面重新加载
  69 + */
  70 + reloadPage() {
  71 + console.log("页面重新加载中....")
  72 + },
  73 + /**
33 * 获取x天后的日期 74 * 获取x天后的日期
34 * @param day 75 * @param day
35 * @returns {string} yyyy-MM-mm 76 * @returns {string} yyyy-MM-mm
@@ -250,6 +250,7 @@ @@ -250,6 +250,7 @@
250 v-model="widget.value" 250 v-model="widget.value"
251 :index="index" 251 :index="index"
252 :step="step" 252 :step="step"
  253 + :options="widget.options"
253 :type="widget.type" 254 :type="widget.type"
254 :bigscreen="{ bigscreenWidth, bigscreenHeight }" 255 :bigscreen="{ bigscreenWidth, bigscreenHeight }"
255 @onActivated="setOptionsOnClickWidget" 256 @onActivated="setOptionsOnClickWidget"
  1 +/**
  2 + * 树空间,在配置段使用
  3 + */
  4 +export const monitorCustomTreeWeight = {
  5 + code: 'monitor-custom-tree-weight',
  6 + type: 'chart',
  7 + label: '树形控件V1.1',
  8 + icon: 'iconshu',
  9 + options: {
  10 + // 配置
  11 + setup: [
  12 + {
  13 + type: 'el-input-text',
  14 + label: '图层名称',
  15 + name: 'layerName',
  16 + required: false,
  17 + placeholder: '',
  18 + value: '树形控件V1.1',
  19 + },
  20 + {
  21 + type: 'vue-color',
  22 + label: '背景颜色',
  23 + name: 'background',
  24 + required: false,
  25 + placeholder: '',
  26 + value: '',
  27 + cssTemplate:'background:%s'
  28 + },
  29 + {
  30 + type: 'el-input-text',
  31 + label: '树展示字段',
  32 + name: 'propLabel',
  33 + required: false,
  34 + placeholder: '',
  35 + value: 'label',
  36 + },
  37 + {
  38 + type: 'el-input-text',
  39 + label: '树子节点字段',
  40 + name: 'propChildren',
  41 + required: false,
  42 + placeholder: '',
  43 + value: 'children',
  44 + },
  45 + {
  46 + type: 'el-input-number',
  47 + label: '外边框宽度',
  48 + name: 'viewBorder',
  49 + required: false,
  50 + placeholder: '',
  51 + value: 1 ,
  52 + cssTemplate:'border-width:%spx'
  53 + },
  54 + {
  55 + type: 'el-input-text',
  56 + label: '外边框描边',
  57 + name: 'viewShadow',
  58 + required: false,
  59 + placeholder: '',
  60 + value: '0px 3px 12px',
  61 + cssTemplate:"box-shadow:%s"
  62 + },
  63 + {
  64 + type: 'vue-color',
  65 + label: '外边框颜色',
  66 + name: 'borderColor',
  67 + required: false,
  68 + placeholder: '',
  69 + value: 'rgba(151, 151, 151, 0.13)',
  70 + cssTemplate:'border-color:%s'
  71 + },
  72 + {
  73 + type: 'el-input-number',
  74 + label: '字体大小',
  75 + name: 'titleFontSize',
  76 + required: false,
  77 + placeholder: '',
  78 + value: '16',
  79 + cssTemplate:'font-size:%spx'
  80 + },
  81 + {
  82 + type: 'vue-color',
  83 + label: '字体颜色',
  84 + name: 'titleColor',
  85 + required: false,
  86 + placeholder: '',
  87 + value: '#666',
  88 + cssTemplate:'color:%s'
  89 + },
  90 + {
  91 + type: 'el-select',
  92 + label: '字体粗细',
  93 + name: 'titleFontWeight',
  94 + required: false,
  95 + placeholder: '',
  96 + cssTemplate:'font-weight:%s',
  97 + selectOptions: [
  98 + {code: 'normal', name: '正常'},
  99 + {code: 'bold', name: '粗体'},
  100 + {code: 'bolder', name: '特粗体'},
  101 + {code: 'lighter', name: '细体'}
  102 + ],
  103 + value: 'normal',
  104 + isCss:true
  105 + },
  106 +
  107 + ],
  108 + // 数据
  109 + data: [
  110 + {
  111 + type: 'el-radio-group',
  112 + label: '数据类型',
  113 + name: 'dataType',
  114 + require: false,
  115 + placeholder: '',
  116 + selectValue: true,
  117 + selectOptions: [
  118 + {
  119 + code: 'staticData',
  120 + name: '静态数据',
  121 + },
  122 + {
  123 + code: 'dynamicData',
  124 + name: '动态数据',
  125 + },
  126 + ],
  127 + value: 'staticData',
  128 + },
  129 + {
  130 + type: 'el-switch',
  131 + label: '是否刷新',
  132 + name: 'isRefresh',
  133 + relactiveDom: 'dataType',
  134 + relactiveDomValue: 'dynamicData',
  135 + value: true
  136 + },
  137 + {
  138 + type: 'el-input-number',
  139 + label: '刷新时间(毫秒)',
  140 + name: 'refreshTime',
  141 + relactiveDom: 'dataType',
  142 + relactiveDomValue: 'dynamicData',
  143 + value: 5000
  144 + },
  145 + {
  146 + type: 'el-button',
  147 + label: '静态数据',
  148 + name: 'staticData',
  149 + required: false,
  150 + placeholder: '',
  151 + relactiveDom: 'dataType',
  152 + relactiveDomValue: 'staticData',
  153 + value: [{
  154 + label: '一级 1',
  155 + children: [{
  156 + label: '二级 1-1',
  157 + children: [{
  158 + label: '三级 1-1-1'
  159 + }]
  160 + }]
  161 + }],
  162 + },
  163 + {
  164 + type: 'dycustComponents',
  165 + label: '',
  166 + name: 'dynamicData',
  167 + required: false,
  168 + placeholder: '',
  169 + relactiveDom: 'dataType',
  170 + chartType: 'widget-table',
  171 + dictKey: 'TEXT_PROPERTIES',
  172 + relactiveDomValue: 'dynamicData',
  173 + value: '',
  174 + },
  175 + ],
  176 + // 坐标
  177 + position: [
  178 + {
  179 + type: 'el-input-number',
  180 + label: '左边距',
  181 + name: 'left',
  182 + required: false,
  183 + placeholder: '',
  184 + value: 0,
  185 + },
  186 + {
  187 + type: 'el-input-number',
  188 + label: '上边距',
  189 + name: 'top',
  190 + required: false,
  191 + placeholder: '',
  192 + value: 0,
  193 + },
  194 + {
  195 + type: 'el-input-number',
  196 + label: '宽度',
  197 + name: 'width',
  198 + required: false,
  199 + placeholder: '该容器在1920px大屏中的宽度',
  200 + value: 320,
  201 + },
  202 + {
  203 + type: 'el-input-number',
  204 + label: '高度',
  205 + name: 'height',
  206 + required: false,
  207 + placeholder: '该容器在1080px大屏中的高度',
  208 + value: 1080,
  209 + },
  210 + ],
  211 + }
  212 +}
@@ -62,6 +62,8 @@ import {monitorAjButton} from "./echartsConfigJson/monitorConfigJson/monitor-aj- @@ -62,6 +62,8 @@ import {monitorAjButton} from "./echartsConfigJson/monitorConfigJson/monitor-aj-
62 import {monitorCustomScatterWeight} from "./echartsConfigJson/monitorConfigJson/monitor-custom-scatter-weight"; 62 import {monitorCustomScatterWeight} from "./echartsConfigJson/monitorConfigJson/monitor-custom-scatter-weight";
63 import {monitorSelectOption} from "./echartsConfigJson/monitorConfigJson/monitor-select-option"; 63 import {monitorSelectOption} from "./echartsConfigJson/monitorConfigJson/monitor-select-option";
64 64
  65 +import {monitorCustomTreeWeight} from "./echartsConfigJson/monitorConfigJson/monitor-custom-tree-weight";
  66 +
65 export const {widgetTool,monitor} = { 67 export const {widgetTool,monitor} = {
66 widgetTool : [ 68 widgetTool : [
67 // type=html类型的组件 69 // type=html类型的组件
@@ -144,6 +146,8 @@ export const {widgetTool,monitor} = { @@ -144,6 +146,8 @@ export const {widgetTool,monitor} = {
144 // 散点图 146 // 散点图
145 monitorCustomScatterWeight, 147 monitorCustomScatterWeight,
146 //下拉列表 148 //下拉列表
147 - monitorSelectOption 149 + monitorSelectOption,
  150 + // 自定义树
  151 + monitorCustomTreeWeight
148 ] 152 ]
149 } 153 }
1 -<template>  
2 - <div :id="id" :style="styleObj"></div>  
3 -</template>  
4 -  
5 -<script>  
6 -export default {  
7 - name: "busyAnalysisPage",  
8 - data() {  
9 - return {  
10 - options: {},  
11 - optionsSetUp: {},  
12 - optionsPosition: {},  
13 - optionsData: {},  
14 - id:(new Date()).getTime(),  
15 - chartInfo:null,  
16 - scatterWeightOptions: {  
17 - title: {  
18 - text: '散点图',  
19 - subtext: '二级标题描述'  
20 - },  
21 - grid: {  
22 - left: '3%',  
23 - right: '7%',  
24 - bottom: '7%',  
25 - containLabel: true  
26 - },  
27 - tooltip: {  
28 - showDelay: 0,  
29 - formatter: function (params) {  
30 - if (params.value.length > 1) {  
31 - return (  
32 - params.seriesName +  
33 - ' :<br/>' +  
34 - params.value[0] +  
35 - 'cm ' +  
36 - params.value[1] +  
37 - 'kg '  
38 - );  
39 - } else {  
40 - return (  
41 - params.seriesName +  
42 - ' :<br/>' +  
43 - params.name +  
44 - ' : ' +  
45 - params.value +  
46 - 'kg '  
47 - );  
48 - }  
49 - },  
50 - axisPointer: {  
51 - show: true,  
52 - type: 'cross',  
53 - lineStyle: {  
54 - type: 'dashed',  
55 - width: 1  
56 - }  
57 - }  
58 - },  
59 - toolbox: {  
60 - feature: {  
61 - dataZoom: {},  
62 - brush: {  
63 - type: ['rect', 'polygon', 'clear']  
64 - }  
65 - }  
66 - },  
67 - brush: {},  
68 - legend: {  
69 - data: ['Female', 'Male'],  
70 - left: 'center',  
71 - bottom: 10  
72 - },  
73 - xAxis: [  
74 - {  
75 - type: 'value',  
76 - scale: true,  
77 - axisLabel: {  
78 - formatter: '{value} cm'  
79 - },  
80 - splitLine: {  
81 - show: false  
82 - }  
83 - }  
84 - ],  
85 - yAxis: [  
86 - {  
87 - type: 'value',  
88 - scale: true,  
89 - axisLabel: {  
90 - formatter: '{value} kg'  
91 - },  
92 - splitLine: {  
93 - show: false  
94 - }  
95 - }  
96 - ],  
97 - series: [  
98 - {  
99 - name: 'Female',  
100 - type: 'scatter',  
101 - emphasis: {  
102 - focus: 'series'  
103 - },  
104 - // prettier-ignore  
105 - data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],  
106 - [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],  
107 - [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],  
108 - [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],  
109 - [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],  
110 - [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],  
111 - [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],  
112 - [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],  
113 - [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],  
114 - [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],  
115 - [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],  
116 - [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],  
117 - [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],  
118 - [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],  
119 - [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],  
120 - [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],  
121 - [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],  
122 - [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],  
123 - [161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],  
124 - [159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],  
125 - [161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],  
126 - [171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],  
127 - [166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],  
128 - [159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],  
129 - [162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],  
130 - [172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],  
131 - [162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],  
132 - [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],  
133 - [167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],  
134 - [170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],  
135 - [160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],  
136 - [166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],  
137 - [170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],  
138 - [167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],  
139 - [160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],  
140 - [177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],  
141 - [172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],  
142 - [175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],  
143 - [165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],  
144 - [168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],  
145 - [162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],  
146 - [157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],  
147 - [172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],  
148 - [161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],  
149 - [152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],  
150 - [160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],  
151 - [167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],  
152 - [175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],  
153 - [174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],  
154 - [156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],  
155 - [169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],  
156 - [176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]  
157 - ],  
158 - markArea: {  
159 - silent: true,  
160 - itemStyle: {  
161 - color: 'transparent',  
162 - borderWidth: 1,  
163 - borderType: 'dashed'  
164 - },  
165 - data: [  
166 - [  
167 - {  
168 - name: 'Female Data Range',  
169 - xAxis: 'min',  
170 - yAxis: 'min'  
171 - },  
172 - {  
173 - xAxis: 'max',  
174 - yAxis: 'max'  
175 - }  
176 - ]  
177 - ]  
178 - },  
179 - markPoint: {  
180 - data: [  
181 - {type: 'max', name: 'Max'},  
182 - {type: 'min', name: 'Min'}  
183 - ]  
184 - },  
185 - markLine: {  
186 - lineStyle: {  
187 - type: 'solid'  
188 - },  
189 - data: [{type: 'average', name: 'AVG'}, {xAxis: 160}]  
190 - }  
191 - },  
192 - {  
193 - name: 'Male',  
194 - type: 'scatter',  
195 - emphasis: {  
196 - focus: 'series'  
197 - },  
198 - // prettier-ignore  
199 - data: [[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8],  
200 - [181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0], [184.0, 81.6],  
201 - [180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6], [174.0, 71.0],  
202 - [184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4], [176.0, 85.9],  
203 - [176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4], [173.5, 81.8],  
204 - [178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2], [173.0, 60.9],  
205 - [183.5, 74.8], [175.5, 70.0], [188.0, 72.4], [189.2, 84.1], [172.8, 69.1],  
206 - [170.0, 59.5], [182.0, 67.2], [170.0, 61.3], [177.8, 68.6], [184.2, 80.1],  
207 - [186.7, 87.8], [171.4, 84.7], [172.7, 73.4], [175.3, 72.1], [180.3, 82.6],  
208 - [182.9, 88.7], [188.0, 84.1], [177.2, 94.1], [172.1, 74.9], [167.0, 59.1],  
209 - [169.5, 75.6], [174.0, 86.2], [172.7, 75.3], [182.2, 87.1], [164.1, 55.2],  
210 - [163.0, 57.0], [171.5, 61.4], [184.2, 76.8], [174.0, 86.8], [174.0, 72.2],  
211 - [177.0, 71.6], [186.0, 84.8], [167.0, 68.2], [171.8, 66.1], [182.0, 72.0],  
212 - [167.0, 64.6], [177.8, 74.8], [164.5, 70.0], [192.0, 101.6], [175.5, 63.2],  
213 - [171.2, 79.1], [181.6, 78.9], [167.4, 67.7], [181.1, 66.0], [177.0, 68.2],  
214 - [174.5, 63.9], [177.5, 72.0], [170.5, 56.8], [182.4, 74.5], [197.1, 90.9],  
215 - [180.1, 93.0], [175.5, 80.9], [180.6, 72.7], [184.4, 68.0], [175.5, 70.9],  
216 - [180.6, 72.5], [177.0, 72.5], [177.1, 83.4], [181.6, 75.5], [176.5, 73.0],  
217 - [175.0, 70.2], [174.0, 73.4], [165.1, 70.5], [177.0, 68.9], [192.0, 102.3],  
218 - [176.5, 68.4], [169.4, 65.9], [182.1, 75.7], [179.8, 84.5], [175.3, 87.7],  
219 - [184.9, 86.4], [177.3, 73.2], [167.4, 53.9], [178.1, 72.0], [168.9, 55.5],  
220 - [157.2, 58.4], [180.3, 83.2], [170.2, 72.7], [177.8, 64.1], [172.7, 72.3],  
221 - [165.1, 65.0], [186.7, 86.4], [165.1, 65.0], [174.0, 88.6], [175.3, 84.1],  
222 - [185.4, 66.8], [177.8, 75.5], [180.3, 93.2], [180.3, 82.7], [177.8, 58.0],  
223 - [177.8, 79.5], [177.8, 78.6], [177.8, 71.8], [177.8, 116.4], [163.8, 72.2],  
224 - [188.0, 83.6], [198.1, 85.5], [175.3, 90.9], [166.4, 85.9], [190.5, 89.1],  
225 - [166.4, 75.0], [177.8, 77.7], [179.7, 86.4], [172.7, 90.9], [190.5, 73.6],  
226 - [185.4, 76.4], [168.9, 69.1], [167.6, 84.5], [175.3, 64.5], [170.2, 69.1],  
227 - [190.5, 108.6], [177.8, 86.4], [190.5, 80.9], [177.8, 87.7], [184.2, 94.5],  
228 - [176.5, 80.2], [177.8, 72.0], [180.3, 71.4], [171.4, 72.7], [172.7, 84.1],  
229 - [172.7, 76.8], [177.8, 63.6], [177.8, 80.9], [182.9, 80.9], [170.2, 85.5],  
230 - [167.6, 68.6], [175.3, 67.7], [165.1, 66.4], [185.4, 102.3], [181.6, 70.5],  
231 - [172.7, 95.9], [190.5, 84.1], [179.1, 87.3], [175.3, 71.8], [170.2, 65.9],  
232 - [193.0, 95.9], [171.4, 91.4], [177.8, 81.8], [177.8, 96.8], [167.6, 69.1],  
233 - [167.6, 82.7], [180.3, 75.5], [182.9, 79.5], [176.5, 73.6], [186.7, 91.8],  
234 - [188.0, 84.1], [188.0, 85.9], [177.8, 81.8], [174.0, 82.5], [177.8, 80.5],  
235 - [171.4, 70.0], [185.4, 81.8], [185.4, 84.1], [188.0, 90.5], [188.0, 91.4],  
236 - [182.9, 89.1], [176.5, 85.0], [175.3, 69.1], [175.3, 73.6], [188.0, 80.5],  
237 - [188.0, 82.7], [175.3, 86.4], [170.5, 67.7], [179.1, 92.7], [177.8, 93.6],  
238 - [175.3, 70.9], [182.9, 75.0], [170.8, 93.2], [188.0, 93.2], [180.3, 77.7],  
239 - [177.8, 61.4], [185.4, 94.1], [168.9, 75.0], [185.4, 83.6], [180.3, 85.5],  
240 - [174.0, 73.9], [167.6, 66.8], [182.9, 87.3], [160.0, 72.3], [180.3, 88.6],  
241 - [167.6, 75.5], [186.7, 101.4], [175.3, 91.1], [175.3, 67.3], [175.9, 77.7],  
242 - [175.3, 81.8], [179.1, 75.5], [181.6, 84.5], [177.8, 76.6], [182.9, 85.0],  
243 - [177.8, 102.5], [184.2, 77.3], [179.1, 71.8], [176.5, 87.9], [188.0, 94.3],  
244 - [174.0, 70.9], [167.6, 64.5], [170.2, 77.3], [167.6, 72.3], [188.0, 87.3],  
245 - [174.0, 80.0], [176.5, 82.3], [180.3, 73.6], [167.6, 74.1], [188.0, 85.9],  
246 - [180.3, 73.2], [167.6, 76.3], [183.0, 65.9], [183.0, 90.9], [179.1, 89.1],  
247 - [170.2, 62.3], [177.8, 82.7], [179.1, 79.1], [190.5, 98.2], [177.8, 84.1],  
248 - [180.3, 83.2], [180.3, 83.2]  
249 - ],  
250 - markArea: {  
251 - silent: true,  
252 - itemStyle: {  
253 - color: 'transparent',  
254 - borderWidth: 1,  
255 - borderType: 'dashed'  
256 - },  
257 - data: [  
258 - [  
259 - {  
260 - name: 'Male Data Range',  
261 - xAxis: 'min',  
262 - yAxis: 'min'  
263 - },  
264 - {  
265 - xAxis: 'max',  
266 - yAxis: 'max'  
267 - }  
268 - ]  
269 - ]  
270 - },  
271 - markPoint: {  
272 - data: [  
273 - {type: 'max', name: 'Max'},  
274 - {type: 'min', name: 'Min'}  
275 - ]  
276 - },  
277 - markLine: {  
278 - lineStyle: {  
279 - type: 'solid'  
280 - },  
281 - data: [{type: 'average', name: 'Average'}, {xAxis: 170}]  
282 - }  
283 - }  
284 - ]  
285 - }  
286 - }  
287 - },  
288 - components: {},  
289 - props: {  
290 - value: Object,  
291 - ispreview: Boolean  
292 - },  
293 - computed: {  
294 - styleObj() {  
295 - const allStyle = this.optionsPosition;  
296 - return {  
297 - width: allStyle.width + "px",  
298 - height: allStyle.height + "px"  
299 - };  
300 - },  
301 - },  
302 - watch: {  
303 - value: {  
304 - handler(val) {  
305 - this.options = val;  
306 - this.optionsSetUp = val.setup;  
307 - this.optionsPosition = val.position;  
308 - this.resizeChart();  
309 - },  
310 - deep: true  
311 - }  
312 - },  
313 - mounted() {  
314 - this.options = this.value;  
315 - this.optionsSetUp = this.value.setup;  
316 - this.optionsPosition = this.value.position;  
317 - this.loadData();  
318 - },  
319 - methods: {  
320 - resizeChart(){  
321 - debugger  
322 - if(this.chartInfo){  
323 - this.chartInfo.resize();  
324 - }  
325 - },  
326 - loadData() {  
327 - let that = this;  
328 - setTimeout(function () {  
329 - var myChart = that.$echarts.init(document.getElementById(that.id));  
330 - // 使用刚指定的配置项和数据显示图表。  
331 - myChart.setOption(that.scatterWeightOptions);  
332 - that.chartInfo = myChart;  
333 - }, 1000);  
334 -  
335 - }  
336 - }  
337 -}  
338 -</script>  
339 -  
340 -<style scoped>  
341 -  
342 -</style>  
  1 +<template>
  2 + <div :style="getStyle">
  3 + <div>标题</div>
  4 + <div>
  5 + <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
  6 + </div>
  7 + </div>
  8 +</template>
  9 +
  10 +<script>
  11 +import commonWeight from '@/mixins/commonWeight'
  12 +
  13 +export default {
  14 + name: "monitorCustomTreeWeight",
  15 + mixins: [commonWeight],
  16 + data() {
  17 + return {
  18 + data: [{
  19 + label: '一级 1',
  20 + children: [{
  21 + label: '二级 1-1',
  22 + children: [{
  23 + label: '三级 1-1-1'
  24 + }]
  25 + }]
  26 + }],
  27 + defaultProps: {
  28 + children: 'children',
  29 + label: 'label'
  30 + }
  31 + }
  32 + },
  33 + components: {},
  34 + computed: {
  35 +
  36 + },
  37 + mounted() {
  38 +
  39 + },
  40 + methods: {
  41 + reloadPage(){
  42 + console.log("2222222222222222222")
  43 + },
  44 + /**
  45 + * 树节点点击
  46 + * @param data
  47 + */
  48 + handleNodeClick(data) {
  49 + console.log(data);
  50 + }
  51 + }
  52 +}
  53 +</script>
  54 +
  55 +<style scoped>
  56 +
  57 +</style>
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 !--> 6 !-->
7 <template> 7 <template>
8 <div> 8 <div>
9 - <component :is="type" :value="value" :ispreview="true"/> 9 + <component :is="type" :value="value" :config="options" :ispreview="true"/>
10 </div> 10 </div>
11 </template> 11 </template>
12 12
@@ -65,6 +65,7 @@ import monitorAjButton from "./monitor/monitorAjButton"; @@ -65,6 +65,7 @@ import monitorAjButton from "./monitor/monitorAjButton";
65 import monitorCustomScatterWeight from "./monitor/monitorCustomScatterWeight.vue"; 65 import monitorCustomScatterWeight from "./monitor/monitorCustomScatterWeight.vue";
66 import monitorSelectOption from "./monitor/selectOption.vue"; 66 import monitorSelectOption from "./monitor/selectOption.vue";
67 67
  68 +import monitorCustomTreeWeight from "./monitor/page/monitorCustomTreeWeight";
68 export default { 69 export default {
69 name: "WidgetTemp", 70 name: "WidgetTemp",
70 components: { 71 components: {
@@ -119,7 +120,8 @@ export default { @@ -119,7 +120,8 @@ export default {
119 monitorJimuButton, 120 monitorJimuButton,
120 monitorAjButton, 121 monitorAjButton,
121 monitorCustomScatterWeight, 122 monitorCustomScatterWeight,
122 - monitorSelectOption 123 + monitorSelectOption,
  124 + monitorCustomTreeWeight
123 }, 125 },
124 model: { 126 model: {
125 prop: "value", 127 prop: "value",
@@ -131,7 +133,12 @@ export default { @@ -131,7 +133,12 @@ export default {
131 type: [Object], 133 type: [Object],
132 default: () => { 134 default: () => {
133 } 135 }
134 - } 136 + },
  137 + options: {
  138 + type: Array,
  139 + default: () => {
  140 + }
  141 + },
135 }, 142 },
136 data() { 143 data() {
137 return {}; 144 return {};
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 @focus="handleFocus" 17 @focus="handleFocus"
18 @blur="handleBlur" 18 @blur="handleBlur"
19 > 19 >
20 - <component :is="type" :value="value"/> 20 + <component :is="type" :value="value" :config="options"/>
21 </avue-draggable> 21 </avue-draggable>
22 </template> 22 </template>
23 23
@@ -75,6 +75,7 @@ import monitorJimuButton from "./monitor/monitorJimuButton"; @@ -75,6 +75,7 @@ import monitorJimuButton from "./monitor/monitorJimuButton";
75 import monitorAjButton from "./monitor/monitorAjButton"; 75 import monitorAjButton from "./monitor/monitorAjButton";
76 import monitorCustomScatterWeight from "./monitor/monitorCustomScatterWeight"; 76 import monitorCustomScatterWeight from "./monitor/monitorCustomScatterWeight";
77 import monitorSelectOption from "./monitor/selectOption.vue"; 77 import monitorSelectOption from "./monitor/selectOption.vue";
  78 +import monitorCustomTreeWeight from "./monitor/page/monitorCustomTreeWeight";
78 79
79 export default { 80 export default {
80 name: "Widget", 81 name: "Widget",
@@ -129,7 +130,8 @@ export default { @@ -129,7 +130,8 @@ export default {
129 monitorJimuButton, 130 monitorJimuButton,
130 monitorAjButton, 131 monitorAjButton,
131 monitorCustomScatterWeight, 132 monitorCustomScatterWeight,
132 - monitorSelectOption 133 + monitorSelectOption,
  134 + monitorCustomTreeWeight
133 }, 135 },
134 model: { 136 model: {
135 prop: "value", 137 prop: "value",
@@ -148,6 +150,11 @@ export default { @@ -148,6 +150,11 @@ export default {
148 default: () => { 150 default: () => {
149 } 151 }
150 }, 152 },
  153 + options: {
  154 + type: [Object],
  155 + default: () => {
  156 + }
  157 + },
151 step: Number 158 step: Number
152 }, 159 },
153 data() { 160 data() {
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 <widget 10 <widget
11 v-for="(widget, index) in widgets" 11 v-for="(widget, index) in widgets"
12 :key="index" 12 :key="index"
  13 + :options="widget.options"
13 v-model="widget.value" 14 v-model="widget.value"
14 :type="widget.type" 15 :type="widget.type"
15 /> 16 />
@@ -41,6 +42,7 @@ export default { @@ -41,6 +42,7 @@ export default {
41 }, 42 },
42 methods: { 43 methods: {
43 async getData() { 44 async getData() {
  45 + debugger
44 const reportCode = this.$route.query.reportCode; 46 const reportCode = this.$route.query.reportCode;
45 const { code, data } = await detailDashboard(reportCode); 47 const { code, data } = await detailDashboard(reportCode);
46 if (code != 200) return; 48 if (code != 200) return;