Create anji-tree.vue
parent
443cefe731
commit
7004ad4ffc
@ -0,0 +1,99 @@
|
||||
<!--
|
||||
* @Author: lide1202@hotmail.com
|
||||
* @Date: 2021-5-4 11:04:24
|
||||
* @Last Modified by: lide1202@hotmail.com
|
||||
* @Last Modified time: 2021-5-5 11:04:24
|
||||
!-->
|
||||
<template>
|
||||
<div>
|
||||
<el-input class="filterInput" placeholder="搜索" v-model="filterText" v-if="enableFilter" />
|
||||
<div class="title">{{ labelName }}</div>
|
||||
<el-tree ref="table_tree" :data="treeData" node-key="id" :default-expand-all="isOpen" :expand-on-click-node="false" :filter-node-method="filterNode" @node-click="nodeClick" @check="checkedEvent" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
export default {
|
||||
components: {},
|
||||
props: {
|
||||
url: {
|
||||
type: [String],
|
||||
default: () => {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
id: {
|
||||
type: [String],
|
||||
default: () => {
|
||||
return 'id'
|
||||
},
|
||||
},
|
||||
label: {
|
||||
type: [String],
|
||||
default: () => {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
value: {
|
||||
type: [String],
|
||||
default: () => {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
labelName: String,
|
||||
enableFilter: Boolean,
|
||||
isOpen: Boolean,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
filterText: '',
|
||||
treeData: [],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.table_tree.filter(val)
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.queryData()
|
||||
},
|
||||
methods: {
|
||||
filterNode(val, data) {
|
||||
if (!val) return true
|
||||
return data.label.indexOf(val) !== -1
|
||||
},
|
||||
queryData() {
|
||||
if (this.isBlank(this.url)) {
|
||||
return
|
||||
}
|
||||
request({
|
||||
url: this.url,
|
||||
method: 'GET',
|
||||
}).then((response) => {
|
||||
if (response.code != '200') {
|
||||
return
|
||||
}
|
||||
this.treeData = Object.prototype.toString.call(response.data) == '[object Array]' ? response.data : response.data.tree|| response.data.menuTree
|
||||
})
|
||||
},
|
||||
// 点击tree节点时 将tree的id作为上级机构代码 查询列表
|
||||
nodeClick(node) {
|
||||
this.$emit('input', node['id'])
|
||||
this.$emit('node-click', node['id'])
|
||||
},
|
||||
checkedEvent(item, evt) {
|
||||
var ids = evt.checkedKeys.toString()
|
||||
this.$emit('input', ids)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.filterInput {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue