<el-form-item label="区域编码" prop="districtCode" class="unit-districtCode">
<el-row class="unit-district-wrapper">
<div>
<el-input v-model="form.districtCode" disabled class="unit-district-input" />
<el-input v-model="districtLable" disabled class="unit-dislable-input" />
</div>
<el-tree v-if="true" ref="treeForm" v-model="form.districtCode" :load="loadNode1" lazy show-checkbox node-key="id" :props="defaultProps" check-strictly check-on-click-node accordion class="unit-district-tree" :check-on-click-node="isLastChild" @check-change="handleClick" @node-click="handleNodeClick" />
</el-row>
</el-form-item>
defaultProps: { isLeaf: 'leaf' },
isLastChild: true,
i: 0,
districtLable: ''
loadNode1 (node, resolve) {
const param = {}
if (node.level === 0) {
param.districtCode = 0
getTreeList(param).then(response => {
if (response && response.code === 200) {
resolve(response.data)
}
})
} else {
this.getTreeChild(node.data.id, resolve, node.level)
}
},
getTreeChild (id, resolve, level) {
const param = {
districtCode: id
}
getTreeList(param).then(response => {
if (response && response.code === 200) {
if (level != 2) {
resolve(response.data)
} else {
const obj = []
response.data.forEach((element) => {
const arr = Object.assign({}, element, { leaf: true })
obj.push(arr)
})
resolve(obj)
}
}
})
},
handleNodeClick (data, node) {
if (node.isLeaf) {
this.isLastChild = true
this.$refs.treeForm.setChecked(data.id, true)
} else {
this.isLastChild = false
}
},
handleClick (data, checked, node) {
this.i++
if (this.i % 2 == 0) {
if (checked) {
this.$refs.treeForm.setCheckedNodes([])
this.$refs.treeForm.setCheckedNodes([data])
} else {
this.$refs.treeForm.setCheckedNodes([])
this.form.districtCode = ''
this.districtLable = ''
}
}
if (checked) {
this.form.districtCode = data.id
this.districtLable = data.label
}
},