@jecloud/func
Version:
JECloud 功能库
1 lines • 2.96 kB
JavaScript
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},e.apply(this,arguments)};import{isVNode as n,createVNode as t}from"vue";import{computed as o,ref as r,watch as u}from"vue";import{FuncTreeTypeEnum as i,FuncTypeEnum as l,FuncRefEnum as c}from"../../../data/enum";import{useFuncTreeEvents as a}from"../../../func-manager/events/func-tree-events";import{Panel as f,Menu as v}from"@jecloud/ui";import{execScript4Return as s,toTemplate as d}from"@jecloud/utils";import p from"../../../tree";function m(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!n(e)}export function useFuncTree(n){var g=n.$func,b=n.props,y=g.getFuncData,h=g.funcCode,T=g.setViewRef,C=g.setRefMaps,F=g.loading,M=g.isFuncForm,j=b.querys,E=r();if(T(c.FUNC_TREE,E),C(c.FUNC_TREE,E),M)return{funcTreeSlot:function(){return null}};var O=a({$func:g}),S=O.onTreeSelectChange,N=O.onTreeActionClick,D=O.onTreeMove,U=O.onTreeBeforeMove,_=o((function(){var e;return!(null===(e=E.value)||void 0===e?void 0:e.singleMode)&&g.activeItem.value===c.FUNC_EDIT}));u((function(){var e;return null===(e=E.value)||void 0===e?void 0:e.singleMode}),(function(e){var n;g.activeItem.value=e?c.FUNC_EDIT:c.FUNC_DATA,e&&S({records:E.value.multiple?[]:null===(n=E.value)||void 0===n?void 0:n.getSelectedRecords()})}));var k=r(!1),A=r(!0),I=u((function(){return A.value}),(function(e){e||k.value||(k.value=!0,I())}));u((function(){return F.value}),(function(e){if(!e){var n=y().info.treeQueryOptions.lazy;k.value=!n,A.value=n}}));var R=function(){var n=g.action.eventAction.bindButtonEvents,o=y(),r=o.info.treeOptions,u=o.info.funcTreeActionButtons.map((function(e){return Object.assign(e,n({type:"tree",button:e})),e}));return r.action&&u.length?function(n){var o;return t(v,{selectable:!1,onClick:function(t){var o,r=t.key;n.tooltip.visible=!1;var i=u.find((function(e){return e.code===r}));null===(o=null==i?void 0:i.onClick)||void 0===o||o.call(i,e(e({},n),{button:i}))}},m(o=u.filter((function(e){return!e.expression||s(d(e.expression,n.row))})).map((function(e){return"divider"===e.type?t(v.Divider,null,null):t(v.Item,{icon:e.icon,key:e.code},{default:function(){return[e.text]}})})))?o:{default:function(){return[o]}})}:null};return{funcTreeSlot:function(){var e=y().info,n=e.treeQueryOptions,o=e.funcType,r=n.title,u=n.width,c=n.helpMessage,a=n.enableSearchMode,v=u||230,s=r||"数据结构";return o===l.TREE?t(f.Item,{region:"left",split:!0,collapsible:!0,hidden:_.value,size:v,collapsed:A.value,"onUpdate:collapsed":function(e){return A.value=e}},{default:function(){return[k.value?t(p,{ref:E,title:s,class:"je-tree-func-search",type:i.FUNC,funcCode:h,querys:j,enableSelectMode:!0,enableSearchMode:a,draggable:!0,helpMessage:c,onSelectChange:S,onActionClick:N,onBeforeDrop:U,onDrop:D},{action:R()}):null]}}):null}}}