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.64 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("@javaguns/utils"),U=require("@javaguns/icon"),B=require("../../utils/adminApi.js"),q={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"),I=p.pluginManager.getComponent("Button"),s=N,u=e.ref(null),{appContext:b}=e.getCurrentInstance(),f=b.app.config.globalProperties.$flowUI,c=e.ref(""),k=e.ref(!1),V=e.ref(!0),a=e.ref([]),E=e.ref([]),i=e.ref([]),y=e.ref([]),h=e.ref([]);e.ref([]);const v=e.ref([]),d=S,R=(n,t)=>{d("treeSelect",t.checkedNodes),h.value=t.checkedNodes},C=(n,t)=>{s.isRadio&&(f=="element-plus"?(d("treeSelect",n),d("update:currentSelectOrgId",n.id)):(d("treeSelect",t.selectedNodes),d("update:currentSelectOrgId",n[0]),h.value=t.checkedNodes))},O=n=>{const t=v.value.filter(l=>l.name.indexOf(n)!==-1);a.value=t},T=async()=>{try{k.value=!0;const n=await B.getPositions({});a.value=n.data.data,v.value=n.data.data}finally{k.value=!1}},D=async n=>{s.isRadio||(f=="element-plus"?await e.nextTick(()=>{u.value.setCheckedKeys(n,!1)}):(i.value=[],n.forEach(t=>{i.value.push(t)})))},M=()=>{if(!s.isRadio)return f=="element-plus"?u.value.getCheckedKeys(!1):i.value},P=()=>{if(!s.isRadio)return f=="element-plus"?u.value.getCheckedNodes(!1,!1):h.value},g=(n,t)=>{let l;for(let o=0;o<t.length;o++){const r=t[o];r.children&&(r.children.some(m=>m.key===n)?l=r.key:g(n,r.children)&&(l=g(n,r.children)))}return l};return e.watch(c,(n,t)=>{const l=a.value.map(o=>o.title.indexOf(n)>-1?g(o.key,v.value):null).filter((o,r,m)=>o&&m.indexOf(o)===r);E.value=l,c.value=n,V.value=!0}),e.onMounted(async()=>{await T(),d("load",a.value)}),x({setCheckedKeys:D,getCheckedKeys:M,getCheckedNodes:P}),(n,t)=>(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",j,[e.createElementVNode("span",A,e.toDisplayString(s.headerTitle),1)]),e.createElementVNode("div",G,[e.createVNode(e.unref(w),{value:c.value,"onUpdate:value":t[0]||(t[0]=l=>c.value=l),modelValue:c.value,"onUpdate:modelValue":t[1]||(t[1]=l=>c.value=l),"enter-button":"",clearableplaceholder:"请输入岗位名称",onChange:O},{append:e.withCtx(()=>[e.createVNode(e.unref(I),{icon:e.unref(U.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":"positionId",data:a.value,"tree-data":a.value,checkable:!s.isRadio,"show-checkbox":!s.isRadio,selectedKeys:y.value,"onUpdate:selectedKeys":t[2]||(t[2]=l=>y.value=l),checkedKeys:i.value,"onUpdate:checkedKeys":t[3]||(t[3]=l=>i.value=l),fieldNames:{children:"children",title:"positionName",key:"positionId"},props:{children:"children",label:"positionName",key:"positionId"},"key-field":"id","label-field":"name","children-field":"children","default-expand-all":!0,"expand-on-click-node":!1,onCheck:R,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;