需要:抉择本组织只获取单选的住址数据;如果是抉择 本组织及子组织,就抉择该组织下所有节点数据蕴含父节点。
<template> <div class="dialog-user-role"> <div class="row-box"> <div class="col-left"> <div class="item-con"> <span class="choice-organ">抉择组织</span> <div class="organ-con"> <div class="tree-filter"> <fin-input placeholder="输出关键字查问" v-model="filterText" prefix-icon="fin-icon-search" clearable style="width: 170px" > </fin-input> </div> <div class="choise-radio"> <span class="organ-fw">组织范畴:</span> <fin-radio v-model="radio" label="0" @change="onParentNode">仅本组织</fin-radio> <fin-radio v-model="radio" label="1" @change="onParentAndChildNode" >本组织及子组织</fin-radio > </div> <div class="organ-tree"> <div class="tree-list"> <fin-tree ref="organTree" :data="treeData" :props="treeProps" node-key="id" :expand-on-click-node="false" :default-expand-all="true" :filter-node-method="filterNode" > <span slot-scope="{ node, data }"> <fin-radio v-model="radioNode" :label="data.id" @change="change(data)"> {{ node.label }} </fin-radio> </span> </fin-tree> </div> </div> </div> </div> </div> </div></template><script>export default { data() { return { params: {}, checkedList: [], checkedRoleIds: [], checkedOrganRoleList: [], roleIds: [], hideBtns: true, showPage: true, filterText: '', tooltipEffect: 'light', radio: '0', radioNode: '', scope: 'SELF', formsRole: [ { label: '角色名称', prop: 'name', style: 'width:100%', }, { label: '利用名称', prop: 'appName', style: 'width:100%', }, ], treeData: [], treeProps: { children: 'child', label: 'name', }, }; }, components: { AppTable, FormSearch, }, methods: { filterNode(value, data) { if (!value) return true; return data.name.indexOf(value) !== -1; }, // 单选组织 change(data) { this.checkedList.length = 0; // this.scope = 'SELF'; // this.checkedList[0] = data; console.log('单选组织---', data); if (this.scope == 'CHILD') { this.checkedList = data.map((item) => ({ organId: item.id, organName: item.name, })); console.log('duo选组织---', this.checkedList); } else { this.checkedList[0] = data; } }, // 本组织 onParentNode() { this.scope = 'SELF'; }, // 本组织及子组织 onParentAndChildNode() { this.scope = 'CHILD'; // this.checkedList.map((item) => { // if (item.child && item.child.length > 0) { // this.checkedList = this.checkedList.concat(item.child); // console.log('this.checkedList---', this.checkedList); // } else { // item.child = []; // } // }); }, goBack() { this.$router.go(-1); }, formatStatus(row, column, cellValue) { var statusTxt = ''; statusTxt = cellValue == 'CHILD' ? '本组织及子组织' : cellValue === 'SELF' ? '仅本组织' : '状态谬误'; return statusTxt; }, handleParams(params) { return { ...params, ...this.params, }; }, },};</script>