自己做项目用到的懒加载方法
<template>
<el-dialog
class="depdialog"
title="请选择"
:visible.sync="depVisible"
:close-on-click-modal="false"
@close="depClose"
width="45%"
>
<div class="depmain">
<el-tree
v-loading="loading"
node-key="dictCode"
ref="tree"
:props="props"
:load="loadNode"
lazy
:default-checked-keys="defaultChecked"
:default-expanded-keys="defaultExpanded"
show-checkbox
>
</el-tree>
</div>
<div class="depbtn dialog-footer" slot="footer">
<el-button @click="calConfirm">取 消</el-button>
<el-button type="primary" @click="depComfirm">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
depVisible: false, // 部门弹框的显示与隐藏
depTags: [], // 部门标签
parentPath: '', // 父级路径
loading: true,
props: {
label: 'dictName',
isLeaf: 'flag'
},
selectArr1: [],
selectArr: []
}
},
props: ['dictCode', 'ruleId', 'defaultChecked', 'defaultExpanded'],
methods: {
depClose() { // 部门弹框关闭回调
this.depVisible = false
setTimeout(() => {
// this.dialogVisible = true
this.$emit('funcClose')
this.$emit('funcDepOpa')
// this.dialogOpa = true
}, 200)
},
// 部门弹框取消
calConfirm() {
this.depVisible = false
setTimeout(() => {
// this.dialogVisible = true
this.$emit('funcDepOpa')
// this.dialogOpa = true
}, 200)
},
getData(dictCode, ruleId, resolve) {
this.$http.post(this.$api.selectCityList, {
dictCode, ruleId
}).then(res => {
if (res.data.code === '200') {
this.loading = false
console.log(res.data.data)
this.parentPath = res.data.data.parentPath
resolve(res.data.data.standardList)
}
})
},
// tree树形控件的懒加载事件
loadNode(node, resolve) {
let dictCode = node.level === 0 ? this.dictCode : node.data.dictCode
let ruleId = ''
this.getData(dictCode, ruleId, resolve)
}
}
}
</script>