fujunling
2023-06-05 70fb56a9fb61f70ccc55fcbc085b470e9423858a
Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -1,29 +1,57 @@
<template>
  <avue-input-tree default-expand-all v-model="defaultValue" :placeholder="placeholder" :dic="dicData"></avue-input-tree>
  <avue-input-tree :props="props" :lazy="lazy" :tree-load="treeLoad" :leaf-only="!options.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="placeholder" :dic="treeData"></avue-input-tree>
</template>
<script>
import {getTree,getLazyTree} from "@/api/refer/tree";
export default {
  name: "vciWebReferTree",
  props:["options","defaultValue"],
  props:["options","value"],
  data() {
    return {
      lazy:this.options.loadType == 'node',
      isMuti:this.options.muti,
      placeholder:'请选择内容',
      dicData:[{
        label:'选项1',
        value:0,
        children:[{
          label:'选项3',
          value:2
        },{
          label:'选项4',
          value:3
        }]
      },{
        label:'选项2',
        value:1
      }]
      props: {
        value:this.options.valueField || 'oid',
        label:this.options.textField || "name"
        //value:"value",
        //label:"title"
      },
      treeData:[],
      params:{}
    };
  },
  created() {
    this.getParams();
  },
  mounted() {
    if(!this.lazy){
      this.getTree()
    }
  },
  methods: {
    getParams:function (){
    },
    getTree(){
      getTree(this.params,this.options.url).then(res => {
          this.treeData=res.data
        })
    },
    treeLoad: function (treeNode, resolve) {
      const parentId = (treeNode.level === 0) ? 0 : treeNode.data.id;
      getLazyTree({...this.params,parentId:parentId}).then(res => {
        resolve(res.data.data.map(item => {
          return {
            ...item,
            leaf: !item.hasChildren
          }
        }))
      });
    }
  }
}
</script>