基于vue3+antDesign2+echarts?實(shí)現(xiàn)雷達(dá)圖效果

右上角時(shí)間選擇器的實(shí)現(xiàn)
- 修改ant組件樣式
根據(jù)原型圖,該選擇器為月份時(shí)間選擇器,使用a-month-picker,但原始的月份選擇器樣式與設(shè)計(jì)圖不符,需要進(jìn)行修改,修改有分為兩部分:1.選擇框;2.額外彈出的日歷
- 選擇框樣式修改
修改ant組件時(shí)應(yīng)避免全局修改,如使用less語(yǔ)法,對(duì)ant組件的修改應(yīng)在該頁(yè)面的class下
<style lang="less" >
@vw: 19.2vw;
@vh: 10.8vh;
.ping_index {
.ant-picker {
border: none;
height: 28 / @vh;
font-size: 14 / @vw;
//修改字體居中
.ant-picker-input > input {
text-align: center;
color: rgba(255, 255, 255, 0.8);
}
//修改右側(cè)下拉圖標(biāo)
.anticon svg {
color: rgb(143, 135, 135);
}
}
</style>- 額外彈出的日歷
額外彈出的日歷框是在#app之外的,故無(wú)法與選擇框使用相同方法進(jìn)行修改,需要利用dropdownClassName屬性來(lái)修改樣式


a-month-picker(
...
dropdownClassName="month_class"
)
<style lang="less">
.month_class {
.ant-picker-panel-container {
background-color: #010a21;
border: none;
.ant-picker-panel {
background: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(222, 60, 70, 0));
box-shadow: 0 0 10 / @vh 0 #005088 inset;
.ant-picker-header button {
color: rgba(255, 255, 255, 0.8);
}
.ant-picker-cell-in-view {
color: rgba(255, 255, 255, 0.8);
}
.ant-picker-cell-selected {
background: rgba(28, 68, 169, 0.7);
}
.ant-picker-cell-in-view:hover {
background: rgba(28, 68, 169, 0.6);
box-shadow: 0 0 18 / @vh 0 #1c44a9 inset;
}
.ant-picker-cell:hover {
background-color: transparent;
}
.ant-picker-cell-inner {
background: transparent !important;
}
}
}
}
</style>
- 數(shù)據(jù)綁定
- 默認(rèn)時(shí)間
設(shè)置默認(rèn)事件時(shí)需要對(duì)時(shí)間格式進(jìn)行確定,根據(jù)原型圖需要的時(shí)年-月的格式,故需要將ant組件的valueFormat設(shè)置為“YYYY-MM”
綁定的值也需要利用moment.js處理得到相同是時(shí)間格式

a-month-picker.info_btn(
v-model:value="selectedMonth",
value-format="YYYY-MM"
)
let selectedMonth = ref(moment(new Date()).format("YYYY-MM"));
- 時(shí)間改變時(shí)觸發(fā)的事件
利用@change綁定事件,考慮到接口需要分別傳輸年、月,需要對(duì)selectedMonth進(jìn)行切割
a-month-picker.info_btn(
v-model:value="selectedMonth",
value-format="YYYY-MM"
@change="changeMonth()"
)
let changeMonth = () => {
let year = selectedMonth.value.substring(0,4)
let month = Number(selectedMonth.value.substring(5,7))
//封裝過(guò)的接口
getSafetyIndex({
year,
month
}).then(( res ) => {
console.log(res);
})
}
五角雷達(dá)圖的繪制及數(shù)據(jù)渲染
接口返回的數(shù)據(jù)是類(lèi)別名稱(chēng)的縮寫(xiě),為了使得數(shù)據(jù)和類(lèi)別在渲染時(shí)能夠?qū)?yīng),在定義雷達(dá)圖indicator時(shí)添加了index字段,用于遍歷接口數(shù)據(jù)得到與indicator中順序相同的數(shù)據(jù)數(shù)組

let indecatorList = [
{
name: "火災(zāi)情況",
max: 10,
index: 'hjqk',
},
{
name: "交通安全",
max: 10,
index: 'jtaq',
},
{
name: "信訪(fǎng)形勢(shì)",
max: 10,
index: 'xfxs',
},
{
name: "反電詐",
max: 10,
index: 'fdz',
},
{
name: "矛盾糾紛",
max: 10,
index: 'mdjf',
},
];
let getData = ( data ) => {
let series = []
indecatorList.map(( item ) => {
series.push(data[item.index])
})
setOptions(series);
};
let setOptions = ( seriesData = [0,0,0,0,0] ) => {
let option = {
radar: {
...
indicator: indecatorList,
},
...
series: [
...
{
type: "radar",
data: [
{
value: seriesData,
},
],
},
],
};
chart.setOption(option);
};
到此這篇關(guān)于基于vue3+antDesign2+echarts 實(shí)現(xiàn)雷達(dá)圖的文章就介紹到這了,更多相關(guān)vue3 echarts雷達(dá)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+element實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼注冊(cè)的示例
本文主要介紹了vue+element實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼注冊(cè)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo
這篇文章主要為大家介紹了解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-06-06
Vue實(shí)現(xiàn)動(dòng)態(tài)樣式的多種方法匯總
本文要給大家介紹Vue實(shí)現(xiàn)動(dòng)態(tài)樣式的多種方法,下面給大家?guī)?lái)幾個(gè)案列,需要的朋友可以借鑒研究一下。2021-06-06
form?表單驗(yàn)證是異步問(wèn)題記錄(推薦)
這篇文章主要介紹了form?表單驗(yàn)證是異步問(wèn)題記錄,通過(guò)實(shí)例代碼介紹了Promise.all 和 Promise.allSettled 區(qū)別,需要的朋友可以參考下2023-01-01
vue elementUI實(shí)現(xiàn)拖拽流程圖效果
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)vue elementUI實(shí)現(xiàn)拖拽流程圖效果,不引入插件,純手寫(xiě)實(shí)現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01
使用vue項(xiàng)目配置多個(gè)代理的注意點(diǎn)
這篇文章主要介紹了使用vue項(xiàng)目配置多個(gè)代理的注意點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
VuePress使用Algolia實(shí)現(xiàn)全文搜索
這篇文章主要為大家介紹了VuePress使用Algolia實(shí)現(xiàn)全文搜索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

