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.
161 lines
4.3 KiB
161 lines
4.3 KiB
<template>
|
|
<view class="qiun-columns">
|
|
<!--#ifdef H5 -->
|
|
<view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
|
|
<view class="qiun-title-dot-light">页面地址</view>
|
|
</view>
|
|
<view class="qiun-bg-white qiun-padding">
|
|
<text>pages/basic/column/stack</text>
|
|
</view>
|
|
<!--#endif-->
|
|
<view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
|
|
<view class="qiun-title-dot-light">堆叠柱状图</view>
|
|
</view>
|
|
<view class="qiun-charts" >
|
|
<!--#ifdef MP-ALIPAY -->
|
|
<canvas canvas-id="canvasColumnStack" id="canvasColumnStack" class="charts" :width="cWidth*pixelRatio" :height="cHeight*pixelRatio" :style="{'width':cWidth+'px','height':cHeight+'px'}" @touchstart="touchColumn"></canvas>
|
|
<!--#endif-->
|
|
<!--#ifndef MP-ALIPAY -->
|
|
<canvas canvas-id="canvasColumnStack" id="canvasColumnStack" class="charts" @touchstart="touchColumn"></canvas>
|
|
<!--#endif-->
|
|
</view>
|
|
<!--#ifdef H5 -->
|
|
<view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
|
|
<view class="qiun-title-dot-light">标准数据格式</view>
|
|
</view>
|
|
<view class="qiun-bg-white qiun-padding">
|
|
<textarea class="qiun-textarea" auto-height="true" maxlength="-1" v-model="textarea"/>
|
|
</view>
|
|
<view class="qiun-text-tips">Tips:修改后点击更新图表</view>
|
|
<button class="qiun-button" @tap="changeData()">更新图表</button>
|
|
<!--#endif-->
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import uCharts from '@/components/u-charts/u-charts.js';
|
|
import { isJSON } from '@/common/checker.js';
|
|
var _self;
|
|
var canvaColumn=null;
|
|
export default {
|
|
data() {
|
|
return {
|
|
cWidth:'',
|
|
cHeight:'',
|
|
pixelRatio:1,
|
|
textarea:''
|
|
}
|
|
},
|
|
onLoad() {
|
|
_self = this;
|
|
//#ifdef MP-ALIPAY
|
|
uni.getSystemInfo({
|
|
success: function (res) {
|
|
if(res.pixelRatio>1){
|
|
//正常这里给2就行,如果pixelRatio=3性能会降低一点
|
|
//_self.pixelRatio =res.pixelRatio;
|
|
_self.pixelRatio =2;
|
|
}
|
|
}
|
|
});
|
|
//#endif
|
|
this.cWidth=uni.upx2px(750);
|
|
this.cHeight=uni.upx2px(500);
|
|
this.getServerData();
|
|
},
|
|
methods: {
|
|
getServerData(){
|
|
uni.request({
|
|
url: 'http://www.yjlive.cn:8085/common/data.json',
|
|
data:{
|
|
},
|
|
success: function(res) {
|
|
console.log(res.data.data)
|
|
let ColumnStack={categories:[],series:[]};
|
|
//这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
|
|
ColumnStack.categories=res.data.data.ColumnStack.categories;
|
|
ColumnStack.series=res.data.data.ColumnStack.series;
|
|
_self.textarea = JSON.stringify(res.data.data.ColumnStack);
|
|
_self.showColumnStack("canvasColumnStack",ColumnStack);
|
|
},
|
|
fail: () => {
|
|
_self.tips="网络错误,小程序端请检查合法域名";
|
|
},
|
|
});
|
|
},
|
|
showColumnStack(canvasId,chartData){
|
|
canvaColumn=new uCharts({
|
|
$this:_self,
|
|
canvasId: canvasId,
|
|
type: 'column',
|
|
padding:[15,15,0,15],
|
|
legend:{
|
|
show:true,
|
|
padding:5,
|
|
lineHeight:11,
|
|
margin:0,
|
|
},
|
|
fontSize:11,
|
|
background:'#FFFFFF',
|
|
pixelRatio:_self.pixelRatio,
|
|
animation: true,
|
|
categories: chartData.categories,
|
|
series: chartData.series,
|
|
xAxis: {
|
|
disableGrid:true,
|
|
},
|
|
yAxis: {
|
|
//disabled:true
|
|
},
|
|
dataLabel: true,
|
|
width: _self.cWidth*_self.pixelRatio,
|
|
height: _self.cHeight*_self.pixelRatio,
|
|
extra: {
|
|
column: {
|
|
type:'stack',
|
|
width: _self.cWidth*_self.pixelRatio*0.5/chartData.categories.length
|
|
}
|
|
}
|
|
});
|
|
|
|
},
|
|
touchColumn(e){
|
|
canvaColumn.touchLegend(e);
|
|
canvaColumn.showToolTip(e, {
|
|
format: function (item, category) {
|
|
return category + ' ' + item.name + ':' + item.data
|
|
}
|
|
});
|
|
},
|
|
changeData(){
|
|
if(isJSON(_self.textarea)){
|
|
let newdata=JSON.parse(_self.textarea);
|
|
canvaColumn.updateData({
|
|
series: newdata.series,
|
|
categories: newdata.categories
|
|
});
|
|
}else{
|
|
uni.showToast({
|
|
title:'数据格式错误',
|
|
image:'../../../static/images/alert-warning.png'
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
/*样式的width和height一定要与定义的cWidth和cHeight相对应*/
|
|
.qiun-charts {
|
|
width: 750upx;
|
|
height: 500upx;
|
|
background-color: #FFFFFF;
|
|
}
|
|
|
|
.charts {
|
|
width: 750upx;
|
|
height: 500upx;
|
|
background-color: #FFFFFF;
|
|
}
|
|
</style>
|
|
|