@jecloud/func
Version:
JECloud 功能库
1 lines • 1.31 kB
JavaScript
import{createVNode as e}from"vue";import{h as t,ref as n,resolveDynamicComponent as o,watch as u}from"vue";import{isString as r}from"@jecloud/utils";import{Panel as c}from"@jecloud/ui";import{FuncRefEnum as i}from"../../../data/enum";import{useFuncTree as f}from"./use-func-tree";export function useFuncRenderer(l){var d=l.props,a=l.context,m=l.$func,s=a.slots,p=m.funcCode,v=m.activeItem,F=m.getFuncData,j=m.setRefMaps,C=m.setViewRef,D=f({$func:m,props:d,editable:!0}).funcTreeSlot,N=[{code:i.FUNC_DATA,component:"JeFuncData",ref:n()},{code:i.FUNC_EDIT,component:"JeFuncEdit",ref:n()}];N.forEach((function(e){j(e.code,e.ref),C(e.code,e.ref)})),u((function(){return v.value}),(function(){N.find((function(e){return e.code===v.value})).rendered=!0}),{immediate:!0});return{funcSlot:function(){return N.map((function(e){return v.value===e.code||e.rendered?t(o(e.component),{funcCode:p,key:e.code,ref:e.ref,style:{display:v.value===e.code?void 0:"none"}}):null}))},titleSlot:function(){var t=F();return d.title?e(c.Item,{class:"je-func-title",region:"top"},{default:function(){var n,o;return[e("div",{class:"je-func-title-content"},[null!==(o=null===(n=s.title)||void 0===n?void 0:n.call(s,{$func:m}))&&void 0!==o?o:[e("i",{class:t.info.icon},null),r(d.title)?d.title:t.info.funcName]])]}}):null},funcTreeSlot:D}}