【发布时间】:2021-04-09 07:50:59
【问题描述】:
我是 Vuejs 新手,我使用了 3 个按钮,分别是 chart1、chart2 和 chart3。因此,每当我单击任何按钮时,我都希望显示单选类型的日期选择。如下图:
我想要做的是,我试图显示图表,每当单击按钮时,无论单击哪个按钮,我都想显示日期选择。
这是我的尝试:
<template>
<div class="Different charts">
<div class="buttons" >
<vs-button color="warning" size="small" @click="chartapi(chart1, all)">Chart1</vs-button>
<vs-button color="warning" size="small" @click="chartapi(chart2, all)" >Chart2</vs-button>
<vs-button color="warning" size="small" @click="chartapi(chart3, all)">Chart3</vs-button>
</div>
<ul class="demo-alignment ">
<li>
<vs-radio id="all" color="warning" vs-name="options" vs-value="all" v-model="radios2" >All</vs-radio>
</li>
<li>
<vs-radio id="6mon" color="warning" vs-name="options" vs-value="6mon" v-model="val1">6mon</vs-radio>
</li>
<li>
<vs-radio id="3mon" color="warning" vs-name="options" vs-value="3mon" v-model="val1">3mon</vs-radio>
</li>
<li>
<vs-radio id="1mon" color="warning" vs-name="options" vs-value="1mon" v-model="val1">1mon</vs-radio>
</li>
</ul>
<div class="chart-container">
<canvas id="chart"></canvas>
</div>
</div>
</template>
<script>
import Chart from 'chart.js'
export default {
data () {
return {
date: [],
challenge: [],
data: [],
val1: 'all'
}
},
mounted () {
this.chartapi()
},
methods: {
chartapi (type_name, interval) {
this.$http.get(`/different/chart/${ type_name }?interval=${ interval}`)
.then((r) => {
this.date = r.data.date
this.challenge = r.data.challenge
this.data = this.date.map((date, index) => ({
x: new Date(date * 1000),
y: this.challenge[index]
}))
const ctx = this.$refs.chart.getContext('2d')
new Chart(ctx, {
type: 'line',
data: {
datasets: [
{
label: 'Challenge',
data: this.data,
borderColor: 'black',
}
]
},
options: {
scales: {
yAxes: [
{
ticks: {
callback (value) {
return `${value}%`
}
}
}
],
xAxes: [
{
type: 'time',
time: {
unit: 'month'
}
}
]
}
}
})
})
}
}
}
</script>
正如您所看到的我的代码,您可以理解,每当单击按钮时,都会显示相应的图表
并且我在用于指定日期范围选择值的方法中使用了间隔。
我的问题是如何显示所有选项(按钮)的日期范围选择以及如何在单选按钮中指定间隔。
例如,如果 chartapi(chart1, 3mon) 则显示前 3 个月的 chart1 数据。但我想要的是当单击按钮时它应该显示整个图表数据,如果用户想要查看任何间隔,他可以使用单选按钮,即日期范围选择。所以我想知道如何将间隔集成到单选按钮。请帮帮我。
【问题讨论】:
标签: javascript vue.js button radio