vue實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單
本文實(shí)例為大家分享了vue實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單的具體代碼,供大家參考,具體內(nèi)容如下
三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單展示:一級(jí)菜單選中,生成二級(jí)菜單數(shù)據(jù),二級(jí)菜單選中,生成三級(jí)菜單數(shù)據(jù)(根據(jù)上一級(jí)菜單的id,作為請(qǐng)求下一級(jí)菜單數(shù)據(jù)接口的參數(shù))
1、代碼
<template>
? <div>
? ? <!-- inline:代表的是行內(nèi)表單,代表一行可以放置多個(gè)表單元素 -->
? ? <el-form :inline="true" class="demo-form-inline" :model="cForm">
? ? ? <el-form-item label="一級(jí)分類">
? ? ? ? <el-select placeholder="請(qǐng)選擇" v-model="cForm.Category1Id" @change="handler1">
? ? ? ? ? <!-- select框v-model收集的是value值,不是label,拿到一級(jí)分類的value值,用來獲取二級(jí)分類的數(shù)據(jù) -->
? ? ? ? ? <el-option :label="c1.name" :value="c1.id" v-for="c1 in list1" :key="c1.id"></el-option>
? ? ? ? </el-select>
? ? ? </el-form-item>
? ? ? <el-form-item label="二級(jí)分類">
? ? ? ? <el-select placeholder="請(qǐng)選擇" v-model="cForm.Category2Id" @change="handler2">
? ? ? ? ? <el-option :label="c2.name" :value="c2.id" v-for="c2 in list2" :key="c2.id"></el-option>
? ? ? ? </el-select>
? ? ? </el-form-item>
? ? ? <el-form-item label="三級(jí)分類">
? ? ? ? <el-select placeholder="請(qǐng)選擇" v-model="cForm.Category3Id">
? ? ? ? ? <el-option :label="c3.name" :value="c3.id" v-for="c3 in list3" :key="c3.id"></el-option>
? ? ? ? </el-select>
? ? ? </el-form-item>
? ? </el-form>
? </div>
</template>
?
<script>
export default {
? name: "CategorySelect",
? data() {
? ? return {
? ? ? list1: [], //一級(jí)分類數(shù)據(jù)
? ? ? list2: [], //二級(jí)分類數(shù)據(jù)
? ? ? list3: [], //三級(jí)分類數(shù)據(jù)
? ? ? cForm: {
? ? ? ? //收集相應(yīng)的一級(jí)二級(jí)分類的id
? ? ? ? Category1Id: "",
? ? ? ? Category2Id: "",
? ? ? ? Category3Id: "",
? ? ? },
? ? };
? },
?
? // 組件掛載完畢,向服務(wù)器發(fā)請(qǐng)求,獲取相應(yīng)的一級(jí)分類的數(shù)據(jù)
? mounted() {
? ? // 獲取一級(jí)分類的數(shù)據(jù)的方法
? ? this.getCategory1List();
? },
? methods: {
? ? // 獲取一級(jí)分類的數(shù)據(jù)的方法
? ? async getCategory1List() {
? ? ? let result1List = await this.$API.attr.reqCategory1List();
? ? ? if (result1List.code == 200) this.list1 = result1List.data;
? ? },
? ? async handler1() {
? ? ? // 一級(jí)分類的select事件的回調(diào)(當(dāng)一級(jí)分類的option發(fā)生變化時(shí)拿到對(duì)應(yīng)二級(jí)分類的數(shù)據(jù)
? ? ? //清除數(shù)據(jù)
? ? ? this.list2 = [];
? ? ? this.list3 = [];
? ? ? this.cForm.Category2Id = "";
? ? ? this.cForm.Category3Id = "";
? ? ? let result2List = await this.$API.attr.reqCategory2List(
? ? ? ? this.cForm.Category1Id
? ? ? );
? ? ? if (result2List.code == 200) {
? ? ? ? this.list2 = result2List.data;
? ? ? }
? ? },
? ? async handler2() {
? ? ? // 二級(jí)分類的事件回調(diào)(當(dāng)二級(jí)分類的option發(fā)生變化時(shí)拿到對(duì)應(yīng)三級(jí)分類的數(shù)據(jù)
? ? ? // ? 清除三級(jí)分類的數(shù)據(jù)
? ? ? this.list3 = [];
? ? ? this.cForm.Category3Id = "";
? ? ? let result3List = await this.$API.attr.reqCategory3List(
? ? ? ? this.cForm.Category2Id
? ? ? );
? ? ? if (result3List.code == 200) {
? ? ? ? this.list3 = result3List.data;
? ? ? }
? ? },
? },
};
</script>
?
<style>
</style>2、效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue3實(shí)現(xiàn)動(dòng)態(tài)路由及菜單
- vue3實(shí)現(xiàn)動(dòng)態(tài)側(cè)邊菜單欄的幾種方式簡(jiǎn)單總結(jié)
- Vue如何根據(jù)角色獲取菜單動(dòng)態(tài)添加路由
- vue3+element-plus動(dòng)態(tài)路由菜單示例代碼
- Vue3+Element?Plus實(shí)現(xiàn)動(dòng)態(tài)標(biāo)簽頁(yè)以及右鍵菜單功能
- 詳解Vue3如何加載動(dòng)態(tài)菜單
- vue后臺(tái)管理如何配置動(dòng)態(tài)路由菜單
- vue如何從后臺(tái)獲取數(shù)據(jù)生成動(dòng)態(tài)菜單列表
- Vue中實(shí)現(xiàn)動(dòng)態(tài)右鍵菜單的示例代碼
相關(guān)文章
使用 Vue 綁定單個(gè)或多個(gè) Class 名的實(shí)例代碼
這篇文章主要介紹了使用 Vue 綁定單個(gè)或多個(gè) Class 名的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-01-01
Vue表格首列相同數(shù)據(jù)合并實(shí)現(xiàn)方法
這篇文章主要介紹了Vue實(shí)現(xiàn)表格首列相同數(shù)據(jù)合并的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
在vue中nextTick用法及nextTick 的原理是什么
這篇文章主要介紹了在vue中nextTick用法及nextTick 的原理是什么,Vue.js 是一個(gè)流行的前端框架,它提供了一種響應(yīng)式的數(shù)據(jù)綁定機(jī)制,使得頁(yè)面的數(shù)據(jù)與頁(yè)面的 UI 組件之間能夠自動(dòng)同步,需要的朋友可以參考下2023-04-04
vue 解決uglifyjs-webpack-plugin打包出現(xiàn)報(bào)錯(cuò)的問題
這篇文章主要介紹了vue 解決uglifyjs-webpack-plugin打包出現(xiàn)報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue中使用element ui的input框?qū)崿F(xiàn)模糊搜索的輸入框
這篇文章主要介紹了vue中使用element ui的input框?qū)崿F(xiàn)模糊搜索的輸入框,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
Vue?Echarts實(shí)現(xiàn)實(shí)時(shí)大屏動(dòng)態(tài)數(shù)據(jù)顯示
同大多數(shù)的前端框架一樣,先讀官網(wǎng)的使用方法。學(xué)會(huì)基本使用后,在實(shí)例中找到自己想要demo。拿過來改一改,一個(gè)echarts圖表就形成,畢竟人家做就是為了方便使用,這篇文章主要介紹了Vue?Echarts實(shí)現(xiàn)實(shí)時(shí)大屏動(dòng)態(tài)數(shù)據(jù)顯示2022-10-10
Ant Design Vue pro 動(dòng)態(tài)路由的實(shí)現(xiàn)和打包方式
這篇文章主要介紹了Ant Design Vue pro 動(dòng)態(tài)路由的實(shí)現(xiàn)和打包方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

