UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 772 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("lodash-unified"),a=require("vue"),v=e=>{let i=0;const u=a.ref(e.treeData||[]),c=a.ref(!1);a.watch(()=>e.treeData,t=>{u.value=t},{deep:!0});function f(t,r){if(!t?.length)return;const l=e.fieldNames?.value||"value";for(const n of t){if(n[l]===r[l])return n;if(n.children?.length)return f(n.children,r)}}async function s(t,r=!1){if(!d.isFunction(e.request))return;c.value=!0,i+=1;const l=i;try{r&&(u.value=[]);const n=await e.request(t,e.params);if(l!==i)return;if(t){const o=f(u.value,t);o&&(o.children=n)}else u.value=n}finally{c.value=!1}}return a.onMounted(()=>{e.lazy||s()}),a.watch(()=>e.params,()=>{s()},{deep:!0}),{treeData:u,request:s,loading:c}};exports.useRequest=v;