2018-01-27 22:38:39 +08:00
|
|
|
<template>
|
2018-01-28 14:58:34 +08:00
|
|
|
<Container type="ghost" :responsive="true" class="demo-chart-index">
|
2018-01-29 16:33:42 +08:00
|
|
|
<GridLayout v-bind="layout" @layout-updated="layoutUpdatedHandler">
|
2018-02-17 11:26:36 +08:00
|
|
|
<GridItem
|
|
|
|
|
v-bind="layout.layout[0]"
|
2018-02-17 13:08:17 +08:00
|
|
|
@resize="handleResize('G2LineBase1')"
|
|
|
|
|
@resized="handleResized('G2LineBase1')">
|
2018-01-29 16:33:42 +08:00
|
|
|
<el-card class="header-in">
|
2018-02-17 20:25:11 +08:00
|
|
|
<ChartCardHeader
|
|
|
|
|
slot="header"
|
2018-02-17 20:35:27 +08:00
|
|
|
title="近年行情"
|
|
|
|
|
@refresh="handleRefreshData('G2LineBase1')">
|
2018-02-17 20:25:11 +08:00
|
|
|
</ChartCardHeader>
|
2018-02-17 13:08:17 +08:00
|
|
|
<G2LineBase ref="G2LineBase1" v-bind="chart[0]"></G2LineBase>
|
2018-01-29 11:39:36 +08:00
|
|
|
</el-card>
|
2018-01-27 22:52:45 +08:00
|
|
|
</GridItem>
|
|
|
|
|
</GridLayout>
|
2018-01-27 22:38:39 +08:00
|
|
|
</Container>
|
|
|
|
|
</template>
|
2018-01-27 22:52:45 +08:00
|
|
|
|
|
|
|
|
<script>
|
2018-02-17 20:25:11 +08:00
|
|
|
import ChartCardHeader from './components/ChartCardHeader'
|
2018-01-27 22:52:45 +08:00
|
|
|
export default {
|
2018-02-17 20:25:11 +08:00
|
|
|
components: {
|
|
|
|
|
ChartCardHeader
|
2018-02-17 20:35:27 +08:00
|
|
|
},
|
|
|
|
|
data () {
|
|
|
|
|
return {
|
|
|
|
|
chart: [
|
|
|
|
|
{
|
2018-02-17 20:38:49 +08:00
|
|
|
api: {url: '/api/chart/G2Line', data: {code: 1}},
|
2018-02-17 20:35:27 +08:00
|
|
|
data: [],
|
|
|
|
|
padding: [30, 40, 50, 50]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
layout: {
|
|
|
|
|
// 调整布局时 复制 layoutUpdatedHandler() 输出的日志到这里
|
|
|
|
|
layout: [
|
|
|
|
|
{'x': 0, 'y': 0, 'w': 8, 'h': 9, 'i': '0'},
|
|
|
|
|
{'x': 8, 'y': 0, 'w': 4, 'h': 9, 'i': '1'},
|
|
|
|
|
{'x': 0, 'y': 9, 'w': 4, 'h': 7, 'i': '2'}
|
|
|
|
|
],
|
|
|
|
|
colNum: 12,
|
|
|
|
|
rowHeight: 30,
|
|
|
|
|
isDraggable: true,
|
|
|
|
|
isResizable: true,
|
|
|
|
|
isMirrored: false,
|
|
|
|
|
verticalCompact: true,
|
|
|
|
|
margin: [10, 10],
|
|
|
|
|
useCssTransforms: true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
// 请求图表数据
|
|
|
|
|
this.syncData()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 请求图表数据
|
|
|
|
|
syncData () {
|
2018-02-17 20:38:49 +08:00
|
|
|
this.$axios.all(this.chart.map(e => this.$axios.post(e.api.url, e.api.data)))
|
2018-02-17 20:35:27 +08:00
|
|
|
.then(this.$axios.spread((...res) => {
|
|
|
|
|
res.forEach((e, index) => {
|
|
|
|
|
this.chart[index].data = e
|
|
|
|
|
})
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
// 更新指定的图表
|
|
|
|
|
chartResize (name) {
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs[name].resize()
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 布局组件发生变化
|
|
|
|
|
layoutUpdatedHandler (newLayout) {
|
|
|
|
|
console.group('layoutUpdatedHandler')
|
|
|
|
|
newLayout.forEach(e => {
|
|
|
|
|
console.log(`{'x': ${e.x}, 'y': ${e.y}, 'w': ${e.w}, 'h': ${e.h}, 'i': '${e.i}'},`)
|
|
|
|
|
})
|
|
|
|
|
console.groupEnd()
|
|
|
|
|
},
|
|
|
|
|
// 改变尺寸
|
|
|
|
|
handleResize (name) {
|
|
|
|
|
// this.chartResize(name)
|
|
|
|
|
},
|
|
|
|
|
// 改变尺寸完成
|
|
|
|
|
handleResized (name) {
|
|
|
|
|
this.chartResize(name)
|
|
|
|
|
},
|
|
|
|
|
// 用户触发了卡片右上角的刷新按钮
|
|
|
|
|
handleRefreshData (name) {
|
|
|
|
|
//
|
|
|
|
|
}
|
2018-02-17 20:25:11 +08:00
|
|
|
}
|
2018-01-27 22:52:45 +08:00
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
2018-01-29 00:00:17 +08:00
|
|
|
@import './style.scss';
|
2018-01-27 22:52:45 +08:00
|
|
|
</style>
|