日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

el-cascader多层级联点击动态加载子级

發(fā)布時間:2024/1/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 el-cascader多层级联点击动态加载子级 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

功能場景:

區(qū)劃級聯(lián),例如從全國各省->市->縣->鄉(xiāng)->村,五級結(jié)構(gòu),那么如果通過一個接口數(shù)據(jù)量勢必太大了。可能會出現(xiàn)接口請求慢的情況,所以就需要點擊父級再去請求下一級這樣一個實現(xiàn)思路。

效果圖:


實現(xiàn)代碼:

element的el-cascader 是提供了動態(tài)加載方法。


接口的數(shù)據(jù)結(jié)構(gòu)

<!--行政區(qū)級聯(lián)下拉框--> <template><div class="cas-wrap"><el-cascader :title="getCascaderTitle()":ref="refId" :placeholder="_areaName||'請選擇區(qū)域'" :show-all-levels="false":props="propsTree" @change="change" v-model="curXzq" size="small"></el-cascader></div></template><script> import api from '../../../../../api/api_configcenter' let defaultareaCode = '' let xzqLevel = 12 export default {name: "xzqSelect",data(){return {refId:'',curXzq:['1'],options:[],cTitle:undefined,/*行政區(qū)劃*/propsTree: {expandTrigger:"click",checkStrictly:true,emitPath:false,lazy: true,lazyLoad(node, resolve) {let qhdm;if (node.root) {qhdm = defaultareaCode} else {qhdm = node.value}api.getAreaTree({qhdm: qhdm?qhdm:1}).then(res => {if (res.code == 0 && res.data && res.data.length>0) {const nodes = Array.from(res.data).map(item => ({value: item.qhdm,label: item.qhmc,leaf: item.qhdm.length >= xzqLevel,}));resolve(nodes);} else {resolve([]);}})}},}},props:{"areaCode":{type:String,default:''},"areaName":{type:String,default:''},/*默認級聯(lián)級別,到村12, 省2,市4,縣6,鄉(xiāng)鎮(zhèn)9,村12*/level:{default: 12}},computed:{_areaCode:{get(){return this.areaCode||''},set(val){this.$emit('update:areaCode',val)}},_areaName:{get(){return this.areaName||''},set(val){this.$emit('update:areaName',val)}}},created() {xzqLevel = this.levelthis.refId= 'xzqSelect' + (Math.random() * 1000)},methods:{/*獲取行政區(qū)記錄下拉的title*/getCascaderTitle(){if(!this.$refs[this.refId]){return ""}let selectedNodes = this.$refs[this.refId].getCheckedNodes();let title = '';if(selectedNodes[0]){this.cTitle = selectedNodes[0].labellet pathNodes = selectedNodes[0].pathNodes;pathNodes.forEach(item => {title += item.label + "-"});if(title){title = title.slice(0,title.length -1 );}} return title;},getCheckedNodes(){return this.$refs[this.refId].getCheckedNodes()},change(row){let checkedNodes = this.$refs[this.refId].getCheckedNodes()let res = ''if(checkedNodes && checkedNodes.length > 0){res = this.$refs[this.refId].getCheckedNodes()[0].data}this.$nextTick(() =>{let obj = {qhdm:row,qhmc:this.cTitle}console.log('這里就拿到最后一級區(qū)劃名稱和區(qū)劃代碼',obj)this._areaCode = obj.qhdmthis._areaName = obj.qhmc// this.$emit('changeQhdm',obj)})},} } </script><style scoped lang="scss">.blue_select{width: 100%;}.sys_background_image{/deep/ .el-input__inner{&:-moz-placeholder, textarea:-moz-placeholder { color: #333; } &:-ms-input-placeholder, textarea:-ms-input-placeholder { color: #333; } &::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #333; } }}.cas-wrap{}.words{border-color: #E4E7ED;color: #606266;height: 30px;line-height: 30px;border-radius: 4px;border: 1px solid #DCDFE6;padding: 0 15px;box-sizing: content-box;font-size: 13px;margin-top: 3px;cursor: pointer;} </style>

總結(jié)

以上是生活随笔為你收集整理的el-cascader多层级联点击动态加载子级的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。