你好,
我最近因為專案遇到兩個問題。
一個問題是如何將<a>改成<router-link>?
另一個問題是<a>變數</a>的變數要如何帶入?
我的框架是Vue3.0、Vue-cli(之後會想改成vite,不過先這樣XD)
因為在使用Highcharts套件時,想要有個功能,
就是按下X軸的時候,或是按下長條圖後(這個好像沒辦法?),能跳到該資料的頁面。
舉例:在Highchart中顯示的是十個廠區,然後我想要按下X軸後,能跳到該廠區的詳細資料頁面。
我爬文,目前只找到可以在xAxis的labels,加入formatter
setup(){
//getdata是我的廠區們
const getdata = [
// { y: 24.2, name: "Point1"},(之後會改成這樣)
['Shanghai', 24.2],
['Beijing', 20.8],
['Karachi', 14.9],
['Shenzhen', 13.7],
['Guangzhou', 13.1],
['Istanbul', 12.7],
['Mumbai', 12.4],
['Moscow', 12.2],
['São Paulo', 12.0],
['Delhi', 11.7],
['Kinshasa', 11.5],
['Tianjin', 11.2],
['Lahore', 11.1],
['Jakarta', 10.6],
['Dongguan', 10.6],
['Lagos', 10.6],
['Bengaluru', 10.3],
['Seoul', 9.8],
['Foshan', 9.3],
['Tokyo', 9.3]
]
//Highchart的設定
const chartOptions = {
chart: {
type: 'column'
},
xAxis:{
type: 'category',
labels:{
formatter: function() {
//這裡
return '<a>廠區名稱</a>'
},
useHTML:true
}
}
}
}
(1)有什麼辦法可以將<a></a>改成<router-link></router-link>?
我試過直接換成 return '<router-link to="/">廠區名稱</router-link>',結果不行。
(2)廠區名稱的變數要怎麼帶入??我查到的是用this.value,不過因為我是寫在setup(){}裡面,所以沒有this的功能。
setup() {
const router = useRouter()
const getdata = [
// { y: 24.2, name: "Point1"},(之後會改成這樣)
['Shanghai', 24.2],
['Beijing', 20.8],
['Karachi', 14.9],
['Shenzhen', 13.7],
['Guangzhou', 13.1],
['Istanbul', 12.7],
['Mumbai', 12.4],
['Moscow', 12.2],
['São Paulo', 12.0],
['Delhi', 11.7],
['Kinshasa', 11.5],
['Tianjin', 11.2],
['Lahore', 11.1],
['Jakarta', 10.6],
['Dongguan', 10.6],
['Lagos', 10.6],
['Bengaluru', 10.3],
['Seoul', 9.8],
['Foshan', 9.3],
['Tokyo', 9.3]
]
const chartOptions = {
series: [{
data: getdata, // sample data
point: {
events: {
click: function () {
router.push(`/${this.name}`)
}
}
}
}],
chart: {
type: 'column'
},
xAxis:{
type: 'category',
}
}
onMounted(() => {
Highcharts.chart('container', chartOptions)
})
return { }
}
preview
也可以用 highcharts-vue 來做,作法是差不多的
我修改了原本的範例, cursor 的設定跟 label click 都有加上去了
listennn08能請教cursor跟label click是加在哪裡嗎?謝謝
長條圖的 cursor 加在 css
label click 可以看一下 chartOptions.chart.events.load 那個 function