UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 1.99 kB
import{createTextVNode as a,createVNode as n}from"vue";import{nextTick as t,ref as e,watch as i}from"vue";import{Panel as o,Toolbar as u}from"@jecloud/ui";import{useInjectFunc as l,useInjectMainFunc as c}from"../../../func/src/context";import{isEmpty as r,isNumber as v}from"@jecloud/utils";export function useChildNavbar(s){var f=s.$edit,d=l(),m=c(),p=null==d?void 0:d.parentFunc,g={useNavbar:d===m,navigation:e([]),downNavigation:function(a){g.navigation.value.push(a)},upNavigation:function(){g.navigation.value.pop()},jumpNavigation:function(a){v(a)&&(a=g.navigation.value[a]);var n=a.funcContext.getRefMaps("edit").value;null==n||n.setActiveItem(null==n?void 0:n.funcCode),null==n||n.setTabsVisible(!0);var e=g.navigation,i=e.value.indexOf(a),o=e.value.slice(i+1);t((function(){o.forEach((function(a){a.funcContext.doBack()}))}))}};Object.assign(f,g);var b=g.useNavbar?g:m.getRefMaps("edit").value,N=d.getFuncData(),j=N.info,h=N.getData("children"),C={title:j.funcName,code:j.funcCode,icon:j.icon,funcContext:d};i((function(){return d.activeItem.value}),(function(a){var n;if(r(h))"edit"===a&&f.setTabsVisible(!1);else{var t=null===(n=null==p?void 0:p.getRefMaps("edit"))||void 0===n?void 0:n.value;"edit"===a?(b.downNavigation(C),null==t||t.setTabsVisible(!1)):"data"===a&&(b.upNavigation(),null==t||t.setTabsVisible(!0))}}),{immediate:!0});return{childNavbarSlot:function(){return g.useNavbar?n(o.Item,{region:"tbar"},{default:function(){return[n(u,{class:"je-func-edit-navbar"},{default:function(){return[g.navigation.value.map((function(t,e){return n("span",{class:"navbar-item",key:t.code,onClick:function(){g.jumpNavigation(t)}},[n("span",{class:"navbar-item-title"},[t.title]),g.navigation.value.length===e+1?null:n("span",{class:"navbar-item-separator"},[a("/")])])})),n(u.Separator,null,null),n("span",{class:"navbar-item-back",onClick:function(){d.doBack(),g.jumpNavigation(0)}},[n("i",{class:"jeicon jeicon-return-withdraw"},null),a("返回")])]}})]}}):null},methods:g}}