Index.js规范
Index.js文件是组件的主入口文件,该文件提供了一个示例供您参考,并介绍了index.js文件中常用的组件生命周期或相关函数。
|
函数 |
说明 |
|---|---|
|
refresh() |
默认渲染方法,当组件初始化和重绘时被调用。 (自定义实现) |
|
resize() |
缩放,当组件被拖拽、缩放时被调用。 |
|
loadData() |
更新组件数据,当组件加载数据时调用。 (自定义实现) |
|
dispatch(String: eventType, object: data) |
可选方法,触发组件交互事件。如果该组件支持事件交互,需用户自定义实现该方法,并且此方法需要在gui.json中配置组件交互事件(events)。
|
|
getRelation() |
获取组件数据配置映射字段。 |
Index.js文件示例如下:
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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
import gui from './gui.json'; import './index.less'; //global: echarts jQuery class App extends BaseChart { constructor(props = {}) { super(props); Object.assign(props); this.chart = echarts.init(this.el); } refresh() { this.loadData(); } loadData() { let option = this.getOption(); if (option) { this.chart.setOption(option, true); } } resize() { this.chart.resize(); } getOption() { let styledata = this.config.styledata, relation = this.getRelation(); let yData = [], data = []; this.data.forEach(item => { yData.push(item[relation.x]); data.push(item[relation.y]); }); return { backgroundColor: '222', grid: { top: '20', left: '20', right: '20', bottom: '20', containLabel: true }, yAxis: [{ type: 'category', data: yData, inverse: true, axisTick: { show: false }, axisLabel: { margin: 10, textStyle: { fontFamily: styledata['font'], fontSize: 24, color: '#fff' } }, axisLine: { show: false } }], xAxis: [{ type: 'value', axisLabel: { show: false }, axisLine: { show: false }, splitLine: { show: false } }], series: [{ type: 'bar', barWidth: 14, data, label: { normal: { show: true, position: 'insideBottomRight', formatter: '{c}%', distance: 0, offset: [30, -20], color: '#fff', fontSize: 16, padding: [5, 15, 10, 15] } }, itemStyle: { normal: { color: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: '#57eabf' }, { offset: 1, color: '#2563f9' }], false), barBorderRadius: 14 } } }, { type: "bar", barWidth: 14, xAxisIndex: 0, barGap: "-100%", data: [120, 120], itemStyle: { normal: { color: "#444a58", barBorderRadius: 14 } }, zlevel: -1 }] }; } } App.gui = gui;export default App; |