You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
4.0 KiB
202 lines
4.0 KiB
<template>
|
|
<div
|
|
:prop="config"
|
|
:change:prop="depthmap.changeConfig"
|
|
class="depthMap bg-panel-1"
|
|
ref="depthMap"
|
|
></div>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
props: {
|
|
serveSellList: {
|
|
default() {
|
|
return [];
|
|
},
|
|
type: Array,
|
|
},
|
|
serveBuyList: {
|
|
default() {
|
|
return [];
|
|
},
|
|
type: Array,
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
config:{}
|
|
};
|
|
},
|
|
computed: {
|
|
mapConfig() {
|
|
return {
|
|
chart: {
|
|
type: "areaspline",
|
|
spacingRight: 0,
|
|
spacingLeft: 0,
|
|
zoomType: "xy",
|
|
backgroundColor: "transparent",
|
|
},
|
|
title: { text: null },
|
|
credits: {
|
|
enabled: false,
|
|
},
|
|
tooltip: {
|
|
// enabled: false,
|
|
},
|
|
xAxis: {
|
|
visible: false,
|
|
},
|
|
yAxis: {
|
|
visible: false,
|
|
},
|
|
legend: {
|
|
floating: true,
|
|
verticalAlign: "top",
|
|
// rtl: true,
|
|
},
|
|
plotOptions: {
|
|
area: {
|
|
fillOpacity: 0.2,
|
|
lineWidth: 1,
|
|
step: "center",
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: this.$t("exchange.b5"),
|
|
lineWidth: 1,
|
|
data: [],
|
|
marker: {
|
|
enabled: false,
|
|
},
|
|
color: "#00c162",
|
|
|
|
fillColor: {
|
|
linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },
|
|
stops: [
|
|
[0, "rgba(2,150,82,.5)"],
|
|
[1, "rgba(2,150,82,.2)"],
|
|
],
|
|
},
|
|
},
|
|
{
|
|
name: this.$t("exchange.b6"),
|
|
lineWidth: 1,
|
|
data: [],
|
|
marker: {
|
|
enabled: false,
|
|
},
|
|
color: "#dd1900",
|
|
fillColor: {
|
|
linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },
|
|
stops: [
|
|
[0, "rgba(221,25,0,.5)"],
|
|
[1, "rgba(221,25,0,.2)"],
|
|
],
|
|
},
|
|
|
|
// fillColor:'#00c162'
|
|
},
|
|
],
|
|
};
|
|
},
|
|
},
|
|
watch: {
|
|
serveSellList() {
|
|
this.resetData();
|
|
},
|
|
serveBuyList() {
|
|
this.resetData();
|
|
},
|
|
},
|
|
methods: {
|
|
getConfig(){
|
|
return {
|
|
type:'initPage',
|
|
sellList:this.serveSellList,
|
|
buyList:this.serveBuyList,
|
|
config:this.mapConfig
|
|
}
|
|
},
|
|
resetData(){
|
|
this.config = {
|
|
type:'resetData',
|
|
sellList:this.serveSellList,
|
|
buyList:this.serveBuyList,
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.config = this.getConfig()
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<script module="depthmap" lang="renderjs">
|
|
import Highcharts from "highcharts/highstock";
|
|
export default {
|
|
data(){
|
|
return {
|
|
buyList:[],
|
|
sellList:[],
|
|
chartConfig:{},
|
|
chart: undefined,
|
|
}
|
|
},
|
|
methods: {
|
|
initMap() {
|
|
this.chart = Highcharts.chart(this.$refs.depthMap, this.chartConfig);
|
|
},
|
|
getBuyList() {
|
|
let arr = this.buyList
|
|
.map((item) => {
|
|
return [item.price*1, item.amount];
|
|
})
|
|
.sort((a, b) => a[0] - b[0]);
|
|
return arr;
|
|
},
|
|
getSellList() {
|
|
let arr = this.sellList
|
|
.map((item) => {
|
|
return [item.price*1, item.amount];
|
|
})
|
|
.sort((a, b) => a[0] - b[0]);
|
|
return arr;
|
|
},
|
|
setData(){
|
|
this.chart.series[0].setData(this.getBuyList());
|
|
this.chart.series[1].setData(this.getSellList());
|
|
},
|
|
changeConfig(n){
|
|
this.task(n)
|
|
},
|
|
task(obj){
|
|
switch (obj.type) {
|
|
case 'initPage':
|
|
this.buyList = obj.buyList
|
|
this.sellList = obj.sellList
|
|
this.chartConfig = obj.config
|
|
break;
|
|
case 'resetData':
|
|
this.buyList = obj.buyList;
|
|
this.sellList = obj.sellList
|
|
this.setData()
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
mounted() {
|
|
this.task(this.config)
|
|
this.initMap();
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.depthMap {
|
|
height: 200px;
|
|
}
|
|
</style>
|