1 |
- import{d as e,bw as t,bj as a,r as n,aD as r,T as s,ap as o,e6 as c,al as u,u as i,bl as l,hG as m,hI as h,hE as d,iX as f,a7 as p,e as g,o as b,g as v,j as C,l as k,p as I,q as x,t as y,m as B,ah as w}from"./index-49f65204.js";import{a as j}from"./index-f1ff9853.js";const M=e({name:"LayoutBreadcrumb",components:{Icon:t,[j.name]:j},props:{theme:a.oneOf(["dark","light"])},setup(){const e=n([]),{currentRoute:t}=r(),{prefixCls:a}=s("layout-breadcrumb"),{getShowBreadCrumbIcon:p}=o(),g=c(),{t:b}=i();function v(e,t){const a=[];return e.forEach((e=>{t.includes(e.path)&&a.push({...e,name:e.meta?.title||e.name}),e.children?.length&&a.push(...v(e.children,t))})),a}return u((async()=>{if(t.value.name===m)return;const a=await h(),n=t.value.matched,r=n?.[n.length-1];let s=t.value.path;r&&r?.meta?.currentActiveMenu&&(s=r.meta.currentActiveMenu);const o=d(a,s),c=v(a.filter((e=>e.path===o[0])),o);if(!c||0===c.length)return;const u=f(c,(e=>{const{meta:t,name:a}=e;if(!t)return!!a;const{title:n,hideBreadcrumb:r,hideMenu:s}=t;return!(!n||r||s)})).filter((e=>!e.meta?.hideBreadcrumb));t.value.meta?.currentActiveMenu&&u.push({...t.value,name:t.value.meta?.title||t.value.name}),e.value=u})),{routes:e,t:b,prefixCls:a,getIcon:function(e){return e.icon||e.meta?.icon},getShowBreadCrumbIcon:p,handleClick:function(e,t,a){a?.preventDefault();const{children:n,redirect:r,meta:s}=e;if(!n?.length||r){if(!s?.carryParam)if(r&&l(r))g(r);else{let e="";if(1===t.length)e=t[0];else{e=`${t.slice(1).pop()||""}`}e=/^\//.test(e)?e:`/${e}`,g(e)}}else a?.stopPropagation()},hasRedirect:function(e,t){return e.indexOf(t)!==e.length-1}}}}),R={key:1};const $=p(M,[["render",function(e,t,a,n,r,s){const o=g("Icon"),c=g("router-link"),u=g("a-breadcrumb");return b(),v("div",{class:w([e.prefixCls,`${e.prefixCls}--${e.theme}`])},[C(u,{routes:e.routes},{itemRender:k((({route:t,routes:a,paths:n})=>[e.getShowBreadCrumbIcon&&e.getIcon(t)?(b(),I(o,{key:0,icon:e.getIcon(t)},null,8,["icon"])):x("",!0),e.hasRedirect(a,t)?(b(),I(c,{key:2,to:"",onClick:a=>e.handleClick(t,n,a)},{default:k((()=>[B(y(e.t(t.name||t.meta.title)),1)])),_:2},1032,["onClick"])):(b(),v("span",R,y(e.t(t.name||t.meta.title)),1))])),_:1},8,["routes"])],2)}]]);export{$ as default};
|