测试 用electron + springboot 构建桌面应用
he wei
2022-03-18 020c6ebe0c43b0a0cedb1b91b3520d223b3415c3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// 引入 ECharts 主模块
import ECharts from "echarts/lib/echarts"
 
function ChartManage() {
  this.charts = {};
  this.group = '';
}
/**
 * [setChart description]
 *
 * @param   {String}  id     chart对象的id
 * @param   {Echarts}  chart  echarts对象
 */
ChartManage.prototype.set = function (id, chart) {
  // 将id和chart绑定
  this.charts[id] = chart;
};
 
ChartManage.prototype.get = function (id) {
  return this.charts[id] ? this.charts[id] : -1;
};
 
ChartManage.prototype.del = function (id) {
  let chart = this.get(id);
  if (chart != -1) {
    // 销毁echarts
    chart.dispose();
    delete this.charts[id];
  }
};
 
ChartManage.prototype.resize = function (id) {
  let chart = this.get(id);
  if (chart != -1) {
    chart.resize();
  }
};
 
ChartManage.prototype.connect = function (ids) {
  let self = this;
  let groups = ids.map(function (id) {
    let chart = self.get(id);
    if (chart != -1) {
      return chart;
    }
  });
 
  // 清空分组
  this.disconnect();
  this.group = ECharts.connect(groups);
 
}
 
ChartManage.prototype.disconnect = function () {
  ECharts.disconnect(this.group);
  // 清除分组信息
  Object.keys(this.charts).forEach(id => {
    delete this.charts[id].group;
  });
}
 
 
ChartManage.prototype.changeDataZoom = function (id, range) {
  let chart = this.get(id);
  if (chart != -1) {
    chart.dispatchAction({
      type: 'dataZoom',
      batch: [
        {
          // 第一个 dataZoom 组件
          start: range[0],
          end: range[1],
        }
      ]
    });
  }
}
 
export default new ChartManage();