@duxweb/dvha-core 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../stores/auth.cjs`),t=require(`../stores/i18n.cjs`),n=require(`../stores/manage.cjs`),r=require(`../stores/route.cjs`);require(`../stores/index.cjs`);const i=require(`../hooks/manage.cjs`),a=require(`../hooks/auth.cjs`),o=require(`../hooks/config.cjs`),s=require(`../hooks/json.cjs`);require(`../hooks/index.cjs`);const c=require(`../components/status/error.cjs`),l=require(`../components/status/notAuthorized.cjs`),u=require(`../components/status/notFound.cjs`);require(`../components/index.cjs`);let d=require(`vue`),f=require(`vue-router`),p=require(`@overlastic/vue`);const m=(0,d.defineComponent)({name:`DuxAppProvider`,props:{},setup(m,{slots:h}){let g=(0,d.inject)(`dux.manage`),_=o.useConfig(),v=(0,f.useRouter)();return v.beforeEach(async(o,d,f)=>{let p=o.meta.manageName,m=o.meta.authorization===!1;if(!p)return f({path:`/${_.defaultManage||_.manages?.[0]?.name||``}`,replace:!0});g&&(g.value=p);let h=n.useManageStore(p);h.isInit()||h.setConfig(_.manages?.find(e=>e.name===p),_);let y=r.useRouteStore(p),b=i.useManage(p),x=e.useAuthStore(p),S=t.useI18nStore(p);if(b.config?.i18nProvider&&!S.isInit()){let e=S.getLocale();e&&b.config?.i18nProvider.changeLocale(e)}if(s.initJsonSchemaComponents(_,p),!x.isLogin())return m?f():f({path:b.getRoutePath(`login`),replace:!0});let C=e=>e?.map(e=>({...e,path:e.path?b.getRoutePath(e.path):void 0}));if(!y.getRouteInit()){let e=b.config?.components||{},t=[];return t.push({name:`${p}.notFound`,label:`404`,path:`:pathMatch(.*)*`,component:e.notFound||u.DuxNotFound,hidden:!0,meta:{can:!1}}),t.push({name:`${p}.notAuthorized`,label:`403`,path:`notAuthorized`,component:e.notAuthorized||l.DuxNotAuthorized,hidden:!0,meta:{can:!1}}),t.push({name:`${p}.error`,label:`500`,path:`error`,component:e.error||c.DuxError,hidden:!0,meta:{can:!1}}),y.setRoutes(C(b.config?.menus||[])),b.config?.apiRoutePath&&await b.config?.dataProvider?.default?.custom({path:b.config.apiRoutePath,meta:{timeout:5e3}},b,x.getUser()).then(e=>{y.appendRoutes(C(e.data||[]))}).catch(e=>{throw b.config?.authProvider?.onError?.(e).then(e=>{e?.logout&&(x.logout(),v.push(b.getRoutePath(e.redirectTo||`/login`)))}),e}),y.appendRoutes(t),y.getRoutes().forEach(e=>{if(!e.path)return;let t={name:e.name,path:e.path,meta:e.meta};switch(e.loader){case`iframe`:t.component=b.config?.components?.iframe||(()=>Promise.resolve().then(()=>require(`../components/loader/iframe.cjs`)));break;case`remote`:t.component=b.config?.components?.remote||(()=>Promise.resolve().then(()=>require(`../components/loader/loader.cjs`)));break;case`link`:t.beforeEnter=()=>{let t=e.meta?.url||e.path;return t&&window.open(t,`_blank`),!1},t.component=()=>Promise.resolve({template:`<div></div>`});break;default:e.component&&(t.component=e.component);break}v.addRoute(`${p}.auth`,t)}),f({path:o.redirectedFrom?.path||o.path,replace:!0})}let w=[``,`/`,`/${p}`,`/${p}/`];if(w.includes(o.path)){let e=y.getIndexRoute();return!e?.path||w.includes(e?.path)?(console.warn(`[Dux] index route not found, skip redirect`),f()):f({path:e?.path||`/`,replace:!0})}let T=a.useCan(p);return(o.meta?.can===void 0||o.meta?.can===!0)&&!T(o.name)?f({name:`${p}.notAuthorized`}):f()}),()=>(0,d.createVNode)(p.OverlaysProvider,null,{default:()=>[h.default?.()]})}});exports.DuxAppProvider=m;
1
+ require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../stores/auth.cjs`),t=require(`../stores/i18n.cjs`),n=require(`../stores/manage.cjs`),r=require(`../stores/route.cjs`);require(`../stores/index.cjs`);const i=require(`../hooks/manage.cjs`),a=require(`../hooks/auth.cjs`),o=require(`../hooks/config.cjs`),s=require(`../hooks/json.cjs`);require(`../hooks/index.cjs`);const c=require(`../components/status/error.cjs`),l=require(`../components/status/notAuthorized.cjs`),u=require(`../components/status/notFound.cjs`);require(`../components/index.cjs`);let d=require(`vue`),f=require(`vue-router`),p=require(`@overlastic/vue`);const m=(0,d.defineComponent)({name:`DuxAppProvider`,props:{},setup(m,{slots:h}){let g=(0,d.inject)(`dux.manage`),_=o.useConfig(),v=(0,f.useRouter)();return v.beforeEach(async(o,d,f)=>{let p=o.meta.manageName,m=o.meta.authorization===!1;if(!p)return f({path:`/${_.defaultManage||_.manages?.[0]?.name||``}`,replace:!0});g&&(g.value=p);let h=n.useManageStore(p);h.isInit()||h.setConfig(_.manages?.find(e=>e.name===p),_);let y=r.useRouteStore(p),b=i.useManage(p),x=e.useAuthStore(p),S=t.useI18nStore(p);if(b.config?.i18nProvider&&!S.isInit()){let e=S.getLocale();e&&b.config?.i18nProvider.changeLocale(e)}if(s.initJsonSchemaComponents(_,p),!x.isLogin())return m?f():f({path:b.getRoutePath(`login`),replace:!0});let C=e=>e?.map(e=>({...e,path:e.path?b.getRoutePath(e.path):void 0}));if(!y.getRouteInit()){let e=b.config?.components||{},t=[];return t.push({name:`${p}.notFound`,label:`404`,path:`:pathMatch(.*)*`,component:e.notFound||u.DuxNotFound,hidden:!0,meta:{can:!1}}),t.push({name:`${p}.notAuthorized`,label:`403`,path:`notAuthorized`,component:e.notAuthorized||l.DuxNotAuthorized,hidden:!0,meta:{can:!1}}),t.push({name:`${p}.error`,label:`500`,path:`error`,component:e.error||c.DuxError,hidden:!0,meta:{can:!1}}),y.setRoutes(C(b.config?.menus||[])),b.config?.apiRoutePath&&await b.config?.dataProvider?.default?.custom({path:b.config.apiRoutePath,meta:{timeout:5e3}},b,x.getUser()).then(e=>{y.appendRoutes(C(e.data||[]))}).catch(e=>{throw b.config?.authProvider?.onError?.(e).then(e=>{e?.logout&&(x.logout(),v.push(b.getRoutePath(e.redirectTo||`/login`)))}),e}),y.appendRoutes(t),y.getRoutes().forEach(e=>{if(!e.path)return;let t={name:e.name,path:e.path,meta:e.meta};switch(e.loader){case`iframe`:t.component=b.config?.components?.iframe||(()=>Promise.resolve().then(()=>require(`../components/loader/iframe.cjs`)));break;case`remote`:t.component=b.config?.components?.remote||(()=>Promise.resolve().then(()=>require(`../components/loader/loader.cjs`)));break;case`link`:t.beforeEnter=()=>{let t=e.meta?.url||e.path;return t&&window.open(t,`_blank`),!1},t.component=()=>Promise.resolve({template:`<div></div>`});break;default:e.component&&(t.component=e.component);break}v.addRoute(`${p}.auth`,t)}),f({path:o.redirectedFrom?.path||o.path,query:o.redirectedFrom?.query||o.query,hash:o.redirectedFrom?.hash||o.hash,replace:!0})}let w=[``,`/`,`/${p}`,`/${p}/`];if(w.includes(o.path)){let e=y.getIndexRoute();return!e?.path||w.includes(e?.path)?(console.warn(`[Dux] index route not found, skip redirect`),f()):f({path:e?.path||`/`,replace:!0})}let T=a.useCan(p);return(o.meta?.can===void 0||o.meta?.can===!0)&&!T(o.name)?f({name:`${p}.notAuthorized`}):f()}),()=>(0,d.createVNode)(p.OverlaysProvider,null,{default:()=>[h.default?.()]})}});exports.DuxAppProvider=m;
@@ -1 +1 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../stores/route.cjs`),t=require(`../stores/tab.cjs`);require(`../stores/index.cjs`);let n=require(`vue`),r=require(`vue-router`);const i=(0,n.defineComponent)({name:`DuxTabRouterView`,props:{},setup(){let i=(0,r.useRoute)(),a=t.useTabStore(),o=e.useRouteStore(),s=new Map,c=(e,t)=>{let n,r=e;return s.has(r)?n=s.get(r):(n={name:r,render(){return t}},s.set(r,n)),n};a.$subscribe((e,t)=>{s.forEach(e=>{t.tabs.some(t=>t.path===e.name)||s.delete(e.name)})});let l=o.getIndexRoute();return l&&a.addTab({...l,meta:{...l.meta,lock:!0}}),(0,n.watch)([i,()=>o.routes],()=>{let e=o.searchRouteName(i.name);if(!e)return;let t={label:e.label,path:i.path,name:e.name};a.addTab(t)},{immediate:!0}),()=>(0,n.createVNode)(r.RouterView,null,{default:({Component:e})=>{let t=c(i.path,e);return(0,n.createVNode)(n.Transition,{name:`tab-fade`,mode:`out-in`,appear:!0},{default:()=>[(0,n.createVNode)(n.KeepAlive,{include:a.tabs.map(e=>e.path||``)},[(0,n.createVNode)(t,{key:i.path},null)])]})}})}});exports.DuxTabRouterView=i;
1
+ require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../stores/route.cjs`),t=require(`../stores/tab.cjs`);require(`../stores/index.cjs`);let n=require(`vue`),r=require(`vue-router`);const i=(0,n.defineComponent)({name:`DuxTabRouterView`,props:{},setup(){let i=(0,r.useRoute)(),a=t.useTabStore(),o=e.useRouteStore(),s=e=>Array.isArray(e)?e.map(e=>e??``).sort().join(`,`):e??``,c=()=>{let e=Object.entries(i.query||{}).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}=${s(t)}`);return e.length?`${i.path}?${e.join(`&`)}`:i.path},l=new Map,u=(e,t)=>{let n,r=e;return l.has(r)?n=l.get(r):(n={name:r,render(){return t}},l.set(r,n)),n};a.$subscribe((e,t)=>{l.forEach(e=>{t.tabs.some(t=>(t.tabKey||t.path)===e.name)||l.delete(e.name)})});let d=o.getIndexRoute();return d&&a.addTab({...d,meta:{...d.meta,lock:!0}}),(0,n.watch)([i,()=>o.routes],()=>{let e=o.searchRouteName(i.name);if(!e)return;let t={label:e.label,path:i.path,tabKey:c(),name:e.name};a.addTab(t)},{immediate:!0}),()=>(0,n.createVNode)(r.RouterView,null,{default:({Component:e})=>{let t=c(),r=u(t,e);return(0,n.createVNode)(n.Transition,{name:`tab-fade`,mode:`out-in`,appear:!0},{default:()=>[(0,n.createVNode)(n.KeepAlive,{include:a.tabs.map(e=>e.tabKey||e.path||``)},[(0,n.createVNode)(r,{key:t},null)])]})}})}});exports.DuxTabRouterView=i;
@@ -1 +1 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`pinia`);function n(t){let n=(0,e.inject)(`dux.manage`);if(t||=n?.value||``,!t)throw Error(`manage not found`);return r(t)()}function r(n){return(0,t.defineStore)(`tab-${n}`,()=>{let t=(0,e.ref)(),n=(0,e.ref)(),r=(0,e.ref)([]);return{current:t,tabs:r,isTab:e=>r.value.some(t=>t.path===e),addTab:(e,i)=>{e.path&&(r.value.some(t=>t.path===e.path)?(t.value&&t.value!==e.path&&(n.value=r.value.find(e=>e.path===t.value)),t.value=e.path):(t.value&&(n.value=r.value.find(e=>e.path===t.value)),r.value.push(e),i?.(e),t.value=e.path))},delTab:(e,i)=>{let a=r.value.findIndex(t=>t.path===e);if(a===-1||r.value.length<=1||r.value[a]?.meta?.lock)return;let o;if(e===t.value&&n.value&&(o=r.value.find(t=>t.path===n.value?.path&&t.path!==e)),!o){let e=r.value[a-1],t=r.value[a+1];o=e||t}r.value.splice(a,1),i?.(o)},changeTab:(e,i)=>{let a=r.value.find(t=>t.path===e);a&&(t.value&&t.value!==e&&(n.value=r.value.find(e=>e.path===t.value)),t.value=e,i?.(a))},delOther:(e,t)=>{r.value=r.value.filter(t=>t.path===e||t.meta?.lock),t?.()},delLeft:(t,n)=>{let i=r.value.findIndex(e=>e.path===t);i<=0||(0,e.nextTick)(()=>{r.value=[...r.value.slice(0,i).filter(e=>e.meta?.lock),...r.value.slice(i)],n?.()})},delRight:(t,n)=>{let i=r.value.findIndex(e=>e.path===t);i===-1||i===r.value.length-1||(0,e.nextTick)(()=>{r.value=[...r.value.slice(0,i+1),...r.value.slice(i+1).filter(e=>e.meta?.lock)],n?.()})},lockTab:e=>{let t=r.value.findIndex(t=>t.path===e);t!==-1&&r.value[t]&&(r.value[t].meta||(r.value[t].meta={}),r.value[t].meta.lock=!r.value[t].meta.lock)},clearTab:()=>{t.value=void 0,n.value=void 0,r.value=[]}}})}exports.createTabStore=r,exports.useTabStore=n;
1
+ require(`../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`pinia`);function n(t){let n=(0,e.inject)(`dux.manage`);if(t||=n?.value||``,!t)throw Error(`manage not found`);return r(t)()}function r(n){return(0,t.defineStore)(`tab-${n}`,()=>{let t=(0,e.ref)(),n=(0,e.ref)(),r=(0,e.ref)([]),i=e=>e.tabKey||e.path||``;return{current:t,tabs:r,isTab:e=>r.value.some(t=>i(t)===e),addTab:(e,a)=>{let o=i(e);o&&(e.tabKey||=o,r.value.some(e=>i(e)===o)?(t.value&&t.value!==o&&(n.value=r.value.find(e=>i(e)===t.value)),t.value=o):(t.value&&(n.value=r.value.find(e=>i(e)===t.value)),r.value.push(e),a?.(e),t.value=o))},delTab:(e,a)=>{let o=r.value.findIndex(t=>i(t)===e);if(o===-1||r.value.length<=1||r.value[o]?.meta?.lock)return;let s;if(e===t.value&&n.value){let t=i(n.value);s=r.value.find(n=>i(n)===t&&i(n)!==e)}if(!s){let e=r.value[o-1],t=r.value[o+1];s=e||t}r.value.splice(o,1),a?.(s)},changeTab:(e,a)=>{let o=r.value.find(t=>i(t)===e);o&&(t.value&&t.value!==e&&(n.value=r.value.find(e=>i(e)===t.value)),t.value=e,a?.(o))},delOther:(e,t)=>{r.value=r.value.filter(t=>i(t)===e||t.meta?.lock),t?.()},delLeft:(t,n)=>{let a=r.value.findIndex(e=>i(e)===t);a<=0||(0,e.nextTick)(()=>{r.value=[...r.value.slice(0,a).filter(e=>e.meta?.lock),...r.value.slice(a)],n?.()})},delRight:(t,n)=>{let a=r.value.findIndex(e=>i(e)===t);a===-1||a===r.value.length-1||(0,e.nextTick)(()=>{r.value=[...r.value.slice(0,a+1),...r.value.slice(a+1).filter(e=>e.meta?.lock)],n?.()})},lockTab:e=>{let t=r.value.findIndex(t=>i(t)===e);t!==-1&&r.value[t]&&(r.value[t].meta||(r.value[t].meta={}),r.value[t].meta.lock=!r.value[t].meta.lock)},clearTab:()=>{t.value=void 0,n.value=void 0,r.value=[]}}})}exports.createTabStore=r,exports.useTabStore=n;
@@ -101,6 +101,8 @@ const g = /* @__PURE__ */ f({
101
101
  y.addRoute(`${p}.auth`, t);
102
102
  }), f({
103
103
  path: o.redirectedFrom?.path || o.path,
104
+ query: o.redirectedFrom?.query || o.query,
105
+ hash: o.redirectedFrom?.hash || o.hash,
104
106
  replace: !0
105
107
  });
106
108
  }
@@ -7,25 +7,28 @@ const l = /* @__PURE__ */ a({
7
7
  name: "DuxTabRouterView",
8
8
  props: {},
9
9
  setup() {
10
- let a = c(), l = t(), u = e(), d = /* @__PURE__ */ new Map(), f = (e, t) => {
10
+ let a = c(), l = t(), u = e(), d = (e) => Array.isArray(e) ? e.map((e) => e ?? "").sort().join(",") : e ?? "", f = () => {
11
+ let e = Object.entries(a.query || {}).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => `${e}=${d(t)}`);
12
+ return e.length ? `${a.path}?${e.join("&")}` : a.path;
13
+ }, p = /* @__PURE__ */ new Map(), m = (e, t) => {
11
14
  let n, r = e;
12
- return d.has(r) ? n = d.get(r) : (n = {
15
+ return p.has(r) ? n = p.get(r) : (n = {
13
16
  name: r,
14
17
  render() {
15
18
  return t;
16
19
  }
17
- }, d.set(r, n)), n;
20
+ }, p.set(r, n)), n;
18
21
  };
19
22
  l.$subscribe((e, t) => {
20
- d.forEach((e) => {
21
- t.tabs.some((t) => t.path === e.name) || d.delete(e.name);
23
+ p.forEach((e) => {
24
+ t.tabs.some((t) => (t.tabKey || t.path) === e.name) || p.delete(e.name);
22
25
  });
23
26
  });
24
- let p = u.getIndexRoute();
25
- return p && l.addTab({
26
- ...p,
27
+ let h = u.getIndexRoute();
28
+ return h && l.addTab({
29
+ ...h,
27
30
  meta: {
28
- ...p.meta,
31
+ ...h.meta,
29
32
  lock: !0
30
33
  }
31
34
  }), o([a, () => u.routes], () => {
@@ -34,16 +37,17 @@ const l = /* @__PURE__ */ a({
34
37
  let t = {
35
38
  label: e.label,
36
39
  path: a.path,
40
+ tabKey: f(),
37
41
  name: e.name
38
42
  };
39
43
  l.addTab(t);
40
44
  }, { immediate: !0 }), () => i(s, null, { default: ({ Component: e }) => {
41
- let t = f(a.path, e);
45
+ let t = f(), a = m(t, e);
42
46
  return i(r, {
43
47
  name: "tab-fade",
44
48
  mode: "out-in",
45
49
  appear: !0
46
- }, { default: () => [i(n, { include: l.tabs.map((e) => e.path || "") }, [i(t, { key: a.path }, null)])] });
50
+ }, { default: () => [i(n, { include: l.tabs.map((e) => e.tabKey || e.path || "") }, [i(a, { key: t }, null)])] });
47
51
  } });
48
52
  }
49
53
  });
@@ -7,45 +7,50 @@ function i(t) {
7
7
  }
8
8
  function a(e) {
9
9
  return r(`tab-${e}`, () => {
10
- let e = n(), r = n(), i = n([]);
10
+ let e = n(), r = n(), i = n([]), a = (e) => e.tabKey || e.path || "";
11
11
  return {
12
12
  current: e,
13
13
  tabs: i,
14
- isTab: (e) => i.value.some((t) => t.path === e),
14
+ isTab: (e) => i.value.some((t) => a(t) === e),
15
15
  addTab: (t, n) => {
16
- t.path && (i.value.some((e) => e.path === t.path) ? (e.value && e.value !== t.path && (r.value = i.value.find((t) => t.path === e.value)), e.value = t.path) : (e.value && (r.value = i.value.find((t) => t.path === e.value)), i.value.push(t), n?.(t), e.value = t.path));
16
+ let o = a(t);
17
+ o && (t.tabKey ||= o, i.value.some((e) => a(e) === o) ? (e.value && e.value !== o && (r.value = i.value.find((t) => a(t) === e.value)), e.value = o) : (e.value && (r.value = i.value.find((t) => a(t) === e.value)), i.value.push(t), n?.(t), e.value = o));
17
18
  },
18
19
  delTab: (t, n) => {
19
- let a = i.value.findIndex((e) => e.path === t);
20
- if (a === -1 || i.value.length <= 1 || i.value[a]?.meta?.lock) return;
21
- let o;
22
- if (t === e.value && r.value && (o = i.value.find((e) => e.path === r.value?.path && e.path !== t)), !o) {
23
- let e = i.value[a - 1], t = i.value[a + 1];
24
- o = e || t;
20
+ let o = i.value.findIndex((e) => a(e) === t);
21
+ if (o === -1 || i.value.length <= 1 || i.value[o]?.meta?.lock) return;
22
+ let s;
23
+ if (t === e.value && r.value) {
24
+ let e = a(r.value);
25
+ s = i.value.find((n) => a(n) === e && a(n) !== t);
25
26
  }
26
- i.value.splice(a, 1), n?.(o);
27
+ if (!s) {
28
+ let e = i.value[o - 1], t = i.value[o + 1];
29
+ s = e || t;
30
+ }
31
+ i.value.splice(o, 1), n?.(s);
27
32
  },
28
33
  changeTab: (t, n) => {
29
- let a = i.value.find((e) => e.path === t);
30
- a && (e.value && e.value !== t && (r.value = i.value.find((t) => t.path === e.value)), e.value = t, n?.(a));
34
+ let o = i.value.find((e) => a(e) === t);
35
+ o && (e.value && e.value !== t && (r.value = i.value.find((t) => a(t) === e.value)), e.value = t, n?.(o));
31
36
  },
32
37
  delOther: (e, t) => {
33
- i.value = i.value.filter((t) => t.path === e || t.meta?.lock), t?.();
38
+ i.value = i.value.filter((t) => a(t) === e || t.meta?.lock), t?.();
34
39
  },
35
40
  delLeft: (e, n) => {
36
- let r = i.value.findIndex((t) => t.path === e);
41
+ let r = i.value.findIndex((t) => a(t) === e);
37
42
  r <= 0 || t(() => {
38
43
  i.value = [...i.value.slice(0, r).filter((e) => e.meta?.lock), ...i.value.slice(r)], n?.();
39
44
  });
40
45
  },
41
46
  delRight: (e, n) => {
42
- let r = i.value.findIndex((t) => t.path === e);
47
+ let r = i.value.findIndex((t) => a(t) === e);
43
48
  r === -1 || r === i.value.length - 1 || t(() => {
44
49
  i.value = [...i.value.slice(0, r + 1), ...i.value.slice(r + 1).filter((e) => e.meta?.lock)], n?.();
45
50
  });
46
51
  },
47
52
  lockTab: (e) => {
48
- let t = i.value.findIndex((t) => t.path === e);
53
+ let t = i.value.findIndex((t) => a(t) === e);
49
54
  t !== -1 && i.value[t] && (i.value[t].meta || (i.value[t].meta = {}), i.value[t].meta.lock = !i.value[t].meta.lock);
50
55
  },
51
56
  clearTab: () => {
@@ -3,14 +3,14 @@ import type { IMenu } from '../types';
3
3
  export interface TabStoreState {
4
4
  current: Ref<string | undefined>;
5
5
  tabs: Ref<IMenu[]>;
6
- isTab: (path: string) => boolean;
6
+ isTab: (key: string) => boolean;
7
7
  addTab: (item: IMenu, cb?: (item: IMenu) => void) => void;
8
- delTab: (path: string, cb?: (item: IMenu) => void) => void;
9
- changeTab: (path: string, cb?: (item: IMenu) => void) => void;
10
- delOther: (path: string, cb?: () => void) => void;
11
- delLeft: (path: string, cb?: () => void) => void;
12
- delRight: (path: string, cb?: () => void) => void;
13
- lockTab: (path: string) => void;
8
+ delTab: (key: string, cb?: (item: IMenu) => void) => void;
9
+ changeTab: (key: string, cb?: (item: IMenu) => void) => void;
10
+ delOther: (key: string, cb?: () => void) => void;
11
+ delLeft: (key: string, cb?: () => void) => void;
12
+ delRight: (key: string, cb?: () => void) => void;
13
+ lockTab: (key: string) => void;
14
14
  clearTab: () => void;
15
15
  }
16
16
  export declare function useTabStore(manageName?: string): import("pinia").Store<string, Pick<TabStoreState, "current" | "tabs">, Pick<TabStoreState, never>, Pick<TabStoreState, "isTab" | "addTab" | "delTab" | "changeTab" | "delOther" | "delLeft" | "delRight" | "lockTab" | "clearTab">>;
@@ -3,6 +3,7 @@ export interface IMenu {
3
3
  label?: string;
4
4
  name: string;
5
5
  path?: string;
6
+ tabKey?: string;
6
7
  icon?: string;
7
8
  sort?: number;
8
9
  parent?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duxweb/dvha-core",
3
3
  "type": "module",
4
- "version": "1.2.2",
4
+ "version": "1.2.4",
5
5
  "author": "DuxWeb",
6
6
  "license": "MIT",
7
7
  "repository": {