@ditari/bsui 1.0.40 → 1.0.41
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
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),_=require("vue-router"),C=require("@ant-design/icons-vue"),y=require("pinia"),S=require("../../store/modules/NavTab.cjs.js"),g=require("../../store/modules/KeepAlive.cjs.js"),q=require("../../store/modules/Menu.cjs.js"),N={class:"ditari-nav"},T=e.createElementVNode("div",{class:"tab-dividers"},null,-1),B={key:0,class:"tab-close"},K={name:"DNavTabs"},E=e.defineComponent({...K,setup(V){const l=_.useRoute(),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),_=require("vue-router"),C=require("@ant-design/icons-vue"),y=require("pinia"),S=require("../../store/modules/NavTab.cjs.js"),g=require("../../store/modules/KeepAlive.cjs.js"),q=require("../../store/modules/Menu.cjs.js"),N={class:"ditari-nav"},T=e.createElementVNode("div",{class:"tab-dividers"},null,-1),B={key:0,class:"tab-close"},K={name:"DNavTabs"},E=e.defineComponent({...K,setup(V){const l=_.useRoute(),v=_.useRouter(),c=S.useNavTabsStore(),p=g.useKeepAliveStore(),h=q.useMenuStore(),n=e.computed(()=>c.getList),{selectedMenuKeys:u}=y.storeToRefs(h),r=e.ref("");e.watchEffect(()=>{r.value=u.value.length>0?u.value[0]:""}),d(),e.watch(()=>l.path,()=>{d()});function d(){c.save(l),u.value=[l.path],p.save(l)}const m=a=>{if(a!==l.path){const t=n.value.filter(s=>s.path===a)[0];v.push({path:t.path,query:t.query,params:t.params})}},f=(a,t)=>{const s=n.value.filter(i=>i.fullPath===t)[0];a.stopPropagation(),c.deleteTabs(t),v.push(n.value[n.value.length-1].fullPath),s.name&&p.deleteKeepAlive(s.name)},b=a=>{var t;return!((t=a.meta)!=null&&t.keepOpen)||n.value.length===1};return(a,t)=>{const s=e.resolveComponent("a-tab-pane"),i=e.resolveComponent("a-tabs");return e.openBlock(),e.createElementBlock("div",N,[e.createVNode(i,{activeKey:r.value,"onUpdate:activeKey":t[0]||(t[0]=o=>r.value=o),type:"card",onTabClick:m},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),o=>(e.openBlock(),e.createBlock(s,{key:o.path},{tab:e.withCtx(()=>[T,e.createElementVNode("div",{class:e.normalizeClass(["tab-item",{active:r.value===o.path}])},e.toDisplayString(o.meta.title),3),b(o)?(e.openBlock(),e.createElementBlock("div",B,[e.createVNode(e.unref(C.CloseOutlined),{onClick:k=>f(k,o.fullPath)},null,8,["onClick"])])):e.createCommentVNode("",!0)]),_:2},1024))),128))]),_:1},8,["activeKey"])])}}});exports.default=E;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as T, computed as N, ref as
|
|
1
|
+
import { defineComponent as T, computed as N, ref as P, watchEffect as w, watch as x, resolveComponent as f, openBlock as l, createElementBlock as p, createVNode as _, withCtx as h, Fragment as A, renderList as B, unref as b, createBlock as E, createElementVNode as C, normalizeClass as R, toDisplayString as V, createCommentVNode as q } from "vue";
|
|
2
2
|
import { useRoute as D, useRouter as L } from "vue-router";
|
|
3
3
|
import { CloseOutlined as M } from "@ant-design/icons-vue";
|
|
4
4
|
import { storeToRefs as O } from "pinia";
|
|
@@ -13,10 +13,10 @@ const j = { class: "ditari-nav" }, G = /* @__PURE__ */ C("div", { class: "tab-di
|
|
|
13
13
|
}, te = /* @__PURE__ */ T({
|
|
14
14
|
...I,
|
|
15
15
|
setup(J) {
|
|
16
|
-
const n = D(), v = L(), c = z(), m = F(), k = U(), o = N(() => c.getList), { selectedMenuKeys: u } = O(k), r =
|
|
17
|
-
|
|
16
|
+
const n = D(), v = L(), c = z(), m = F(), k = U(), o = N(() => c.getList), { selectedMenuKeys: u } = O(k), r = P("");
|
|
17
|
+
w(() => {
|
|
18
18
|
r.value = u.value.length > 0 ? u.value[0] : "";
|
|
19
|
-
}), d(),
|
|
19
|
+
}), d(), x(
|
|
20
20
|
() => n.path,
|
|
21
21
|
() => {
|
|
22
22
|
d();
|
|
@@ -35,11 +35,11 @@ const j = { class: "ditari-nav" }, G = /* @__PURE__ */ C("div", { class: "tab-di
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
}, S = (t, e) => {
|
|
38
|
-
const s = o.value.filter((i) => i.
|
|
38
|
+
const s = o.value.filter((i) => i.fullPath === e)[0];
|
|
39
39
|
t.stopPropagation(), c.deleteTabs(e), v.push(o.value[o.value.length - 1].fullPath), s.name && m.deleteKeepAlive(s.name);
|
|
40
40
|
}, g = (t) => {
|
|
41
41
|
var e;
|
|
42
|
-
return !((e = t.meta) != null && e.keepOpen) || o.value.length ===
|
|
42
|
+
return !((e = t.meta) != null && e.keepOpen) || o.value.length === 1;
|
|
43
43
|
};
|
|
44
44
|
return (t, e) => {
|
|
45
45
|
const s = f("a-tab-pane"), i = f("a-tabs");
|
|
@@ -51,7 +51,7 @@ const j = { class: "ditari-nav" }, G = /* @__PURE__ */ C("div", { class: "tab-di
|
|
|
51
51
|
onTabClick: y
|
|
52
52
|
}, {
|
|
53
53
|
default: h(() => [
|
|
54
|
-
(l(!0), p(
|
|
54
|
+
(l(!0), p(A, null, B(b(o), (a) => (l(), E(s, {
|
|
55
55
|
key: a.path
|
|
56
56
|
}, {
|
|
57
57
|
tab: h(() => [
|
package/package.json
CHANGED
|
@@ -72,7 +72,7 @@ const onClick = (key: string) => {
|
|
|
72
72
|
* @param targetKey
|
|
73
73
|
*/
|
|
74
74
|
const onClose = ($event: any, key: string) => {
|
|
75
|
-
const rs = navTabs.value.filter((item) => item.
|
|
75
|
+
const rs = navTabs.value.filter((item) => item.fullPath === key)[0];
|
|
76
76
|
//阻止冒泡
|
|
77
77
|
$event.stopPropagation();
|
|
78
78
|
// 删除标签
|
|
@@ -92,7 +92,8 @@ const onClose = ($event: any, key: string) => {
|
|
|
92
92
|
* 根据item和当前 navTabs 长度来判断是否要隐藏关闭标签按钮
|
|
93
93
|
*/
|
|
94
94
|
const closeStatus = (item: INavTab) => {
|
|
95
|
-
|
|
95
|
+
// 如果meta有设置keepOpen或者当前打开的标签只有一个的话不显示关闭按钮
|
|
96
|
+
return !item.meta?.keepOpen || navTabs.value.length === 1;
|
|
96
97
|
};
|
|
97
98
|
</script>
|
|
98
99
|
<script lang="ts">
|