UNPKG

@javaguns/flow-ui

Version:

``` <template> <a-spin :spinning="loading"> <FlowDesigner ref="flowDesigner" top="50px"> </FlowDesigner> </a-spin> </template> <script lang="ts" setup> import { ref, provide, onMounted } from 'vue'; import { FlowDesigner, LoadingKey } from '@j

2 lines (1 loc) 3.59 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("@javaguns/utils"),B=require("@javaguns/icon"),q=require("../../utils/adminApi.js"),P={class:"flow-select-org-tree"},j={class:"left-header"},A={class:"left-header-title"},G={class:"search"},$={class:"left-tree"},z=e.defineComponent({name:"flow-selection-multi-org-tree"}),F=e.defineComponent({...z,props:{headerTitle:{default:""},isRadio:{type:Boolean,default:!1}},emits:["treeSelect","update:currentSelectOrgId","load"],setup(N,{expose:x,emit:S}){const w=p.pluginManager.getComponent("InputSearch"),K=p.pluginManager.getComponent("Empty"),_=p.pluginManager.getComponent("Tree"),b=p.pluginManager.getComponent("Button"),r=N,u=e.ref(null),{appContext:V}=e.getCurrentInstance(),f=V.app.config.globalProperties.$flowUI,c=e.ref(""),k=e.ref(!1),O=e.ref(!0),a=e.ref([]),T=e.ref([]),i=e.ref([]),y=e.ref([]),h=e.ref([]);e.ref([]);const v=e.ref([]),d=S,E=(l,t)=>{d("treeSelect",t.checkedNodes),h.value=t.checkedNodes},C=(l,t)=>{r.isRadio&&(f=="element-plus"?(d("treeSelect",l),d("update:currentSelectOrgId",l.id)):(d("treeSelect",t.selectedNodes),d("update:currentSelectOrgId",l[0]),h.value=t.checkedNodes))},I=l=>{const t=v.value.filter(n=>n.name.indexOf(l)!==-1);a.value=t},R=async()=>{try{k.value=!0;const l=await q.getOrgTree({});a.value=l.data.data,v.value=l.data.data}finally{k.value=!1}},D=async l=>{r.isRadio||(f=="element-plus"?await e.nextTick(()=>{u.value.setCheckedKeys(l,!1)}):(i.value=[],l.forEach(t=>{i.value.push(t)})))},M=()=>{if(!r.isRadio)return f=="element-plus"?u.value.getCheckedKeys(!1):i.value},U=()=>{if(!r.isRadio)return f=="element-plus"?u.value.getCheckedNodes(!1,!1):h.value},g=(l,t)=>{let n;for(let o=0;o<t.length;o++){const s=t[o];s.children&&(s.children.some(m=>m.key===l)?n=s.key:g(l,s.children)&&(n=g(l,s.children)))}return n};return e.watch(c,(l,t)=>{const n=a.value.map(o=>o.title.indexOf(l)>-1?g(o.key,v.value):null).filter((o,s,m)=>o&&m.indexOf(o)===s);T.value=n,c.value=l,O.value=!0}),e.onMounted(async()=>{await R(),d("load",a.value)}),x({setCheckedKeys:D,getCheckedKeys:M,getCheckedNodes:U}),(l,t)=>(e.openBlock(),e.createElementBlock("div",P,[e.createElementVNode("div",j,[e.createElementVNode("span",A,e.toDisplayString(r.headerTitle),1)]),e.createElementVNode("div",G,[e.createVNode(e.unref(w),{value:c.value,"onUpdate:value":t[0]||(t[0]=n=>c.value=n),modelValue:c.value,"onUpdate:modelValue":t[1]||(t[1]=n=>c.value=n),"enter-button":"",clearableplaceholder:"请输入机构名称",onChange:I},{append:e.withCtx(()=>[e.createVNode(e.unref(b),{icon:e.unref(B.IconSearchOutline)},null,8,["icon"])]),_:1},8,["value","modelValue"])]),e.withDirectives(e.createElementVNode("div",$,[e.createVNode(e.unref(_),{ref_key:"treeRef",ref:u,class:"filter-tree","node-key":"id",data:a.value,"tree-data":a.value,checkable:!r.isRadio,"show-checkbox":!r.isRadio,selectedKeys:y.value,"onUpdate:selectedKeys":t[2]||(t[2]=n=>y.value=n),checkedKeys:i.value,"onUpdate:checkedKeys":t[3]||(t[3]=n=>i.value=n),fieldNames:{children:"children",title:"name",key:"id"},props:{children:"children",label:"name"},"key-field":"id","label-field":"name","children-field":"children","default-expand-all":!0,"expand-on-click-node":!1,onCheck:E,onSelect:C,onNodeClick:C},null,8,["data","tree-data","checkable","show-checkbox","selectedKeys","checkedKeys"])],512),[[e.vShow,a.value&&a.value.length>0]]),e.withDirectives(e.createVNode(e.unref(K),{description:"暂无数据"},null,512),[[e.vShow,a.value&&a.value.length===0]])]))}});exports.default=F;