@chewel611/naive-ui-plus 0.0.41 → 0.0.43

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,78 +1,86 @@
1
1
  import { defineStore as o } from "pinia";
2
2
  import { reactive as n } from "vue";
3
- const i = ["Redirect", "RedirectSon", "login"], I = o("p-layout", () => {
4
- const e = n({
5
- collapsed: !1,
6
- title: "输入项目名称",
7
- logo: "https://picsum.photos/id/1/100/100",
8
- avatar: "",
9
- uid: "",
10
- uname: "",
11
- tabs: [],
12
- cacheTabs: !1,
13
- enableLanguage: !1
14
- });
15
- return {
16
- state: e,
17
- initTabs: (t) => {
18
- t.sort((s, a) => s.meta.affix && !a.meta.affix ? -1 : !s.meta.affix && a.meta.affix ? 1 : Number(a.meta.sort ?? 0) - Number(s.meta.sort ?? 0)), e.tabs = t;
19
- },
20
- addTab: (t) => i.includes(t.name) ? !1 : (e.tabs?.some(
21
- (a) => a.fullPath == t.fullPath
22
- ) || e.tabs?.push(t), !0),
23
- closeCurrentTab: (t) => {
24
- const s = e.tabs.findIndex(
3
+ import { useRoute as i } from "vue-router";
4
+ const f = ["Redirect", "RedirectSon", "login"], y = o(
5
+ "p-layout",
6
+ () => {
7
+ const e = n({
8
+ collapsed: !1,
9
+ title: "输入项目名称",
10
+ logo: "https://picsum.photos/id/1/100/100",
11
+ avatar: "",
12
+ uid: "",
13
+ uname: "",
14
+ tabs: [],
15
+ cacheTabs: !1,
16
+ enableLanguage: !1
17
+ });
18
+ return {
19
+ state: e,
20
+ initTabs: (t) => {
21
+ t.sort((s, a) => s.meta.affix && !a.meta.affix ? -1 : !s.meta.affix && a.meta.affix ? 1 : Number(a.meta.sort ?? 0) - Number(s.meta.sort ?? 0)), e.tabs = t;
22
+ },
23
+ addTab: (t) => f.includes(t.name) ? !1 : (e.tabs?.some(
25
24
  (a) => a.fullPath == t.fullPath
26
- );
27
- e.tabs.splice(s, 1);
28
- },
29
- closeAllTabs: () => {
30
- e.tabs = e.tabs.filter((t) => t?.meta?.affix ?? !1);
31
- },
32
- closeOtherTabs: (t) => {
33
- e.tabs = e.tabs.filter(
34
- (s) => s.fullPath == t.fullPath || (s?.meta?.affix ?? !1)
35
- );
36
- },
37
- closeLeftTabs: (t) => {
38
- const s = e.tabs.findIndex(
39
- (a) => a.fullPath == t.fullPath
40
- );
41
- e.tabs = e.tabs.filter(
42
- (a, l) => l >= s || (a?.meta?.affix ?? !1)
43
- );
44
- },
45
- closeRightTabs: (t) => {
46
- const s = e.tabs.findIndex(
47
- (a) => a.fullPath == t.fullPath
48
- );
49
- e.tabs = e.tabs.filter(
50
- (a, l) => l <= s || (a?.meta?.affix ?? !1)
51
- );
52
- },
53
- collapse: () => {
54
- e.collapsed = !e.collapsed;
55
- },
56
- setTitle: (t) => {
57
- e.title = t;
58
- },
59
- setLogo: (t) => {
60
- e.logo = t;
61
- },
62
- setUser: (t, s) => {
63
- e.uid = t, e.uname = s;
64
- },
65
- setSettingPages: (t) => {
66
- e.settingPages = t;
67
- },
68
- setLogout: (t) => {
69
- e.logout = t;
70
- },
71
- enableLanguage: (t) => {
72
- e.enableLanguage = t;
73
- }
74
- };
75
- });
25
+ ) || e.tabs?.push(t), !0),
26
+ getCurrentTab: () => {
27
+ const t = i();
28
+ return e.tabs.find((s) => s.fullPath == t.fullPath);
29
+ },
30
+ closeCurrentTab: (t) => {
31
+ const s = e.tabs.findIndex(
32
+ (a) => a.fullPath == t.fullPath
33
+ );
34
+ e.tabs.splice(s, 1);
35
+ },
36
+ closeAllTabs: () => {
37
+ e.tabs = e.tabs.filter((t) => t?.meta?.affix ?? !1);
38
+ },
39
+ closeOtherTabs: (t) => {
40
+ e.tabs = e.tabs.filter(
41
+ (s) => s.fullPath == t.fullPath || (s?.meta?.affix ?? !1)
42
+ );
43
+ },
44
+ closeLeftTabs: (t) => {
45
+ const s = e.tabs.findIndex(
46
+ (a) => a.fullPath == t.fullPath
47
+ );
48
+ e.tabs = e.tabs.filter(
49
+ (a, l) => l >= s || (a?.meta?.affix ?? !1)
50
+ );
51
+ },
52
+ closeRightTabs: (t) => {
53
+ const s = e.tabs.findIndex(
54
+ (a) => a.fullPath == t.fullPath
55
+ );
56
+ e.tabs = e.tabs.filter(
57
+ (a, l) => l <= s || (a?.meta?.affix ?? !1)
58
+ );
59
+ },
60
+ collapse: () => {
61
+ e.collapsed = !e.collapsed;
62
+ },
63
+ setTitle: (t) => {
64
+ e.title = t;
65
+ },
66
+ setLogo: (t) => {
67
+ e.logo = t;
68
+ },
69
+ setUser: (t, s) => {
70
+ e.uid = t, e.uname = s;
71
+ },
72
+ setSettingPages: (t) => {
73
+ e.settingPages = t;
74
+ },
75
+ setLogout: (t) => {
76
+ e.logout = t;
77
+ },
78
+ enableLanguage: (t) => {
79
+ e.enableLanguage = t;
80
+ }
81
+ };
82
+ }
83
+ );
76
84
  export {
77
- I as useLayoutStore
85
+ y as useLayoutStore
78
86
  };
@@ -114,7 +114,7 @@ const we = { class: "text-lg font-medium" }, be = { id: "data-content" }, Ce = {
114
114
  k.value = !0;
115
115
  try {
116
116
  if (l.onLoad) {
117
- var { data: e, total: t } = await l.onLoad(
117
+ var { items: e, totalCount: t } = await l.onLoad(
118
118
  u.value.page,
119
119
  u.value.pageSize
120
120
  );
@@ -19,8 +19,8 @@ export type DataTableProps = {
19
19
  idField?: string;
20
20
  columns: DataTableColumnDefine[];
21
21
  onLoad: (page: number, pageSize: number) => Promise<{
22
- data: any[];
23
- total: number;
22
+ items: any[];
23
+ totalCount: number;
24
24
  }>;
25
25
  onDelete?: (rows: any[]) => Promise<boolean>;
26
26
  onAdd?: () => Promise<void>;
@@ -1 +1 @@
1
- .tabs-view[data-v-428fe23d]{width:100%;padding:6px 0;display:flex;transition:all .2s ease-in-out}.tabs-view-main[data-v-428fe23d]{height:32px;display:flex;max-width:100%;min-width:100%}.tabs-view-main .tabs-card[data-v-428fe23d]{-webkit-box-flex:1;flex-grow:1;flex-shrink:1;overflow:hidden;position:relative}.tabs-view-main .tabs-card .tabs-card-prev[data-v-428fe23d],.tabs-view-main .tabs-card .tabs-card-next[data-v-428fe23d]{width:32px;text-align:center;position:absolute;line-height:32px;cursor:pointer}.tabs-view-main .tabs-card .tabs-card-prev .n-icon[data-v-428fe23d],.tabs-view-main .tabs-card .tabs-card-next .n-icon[data-v-428fe23d]{display:flex;align-items:center;justify-content:center;height:32px;width:32px}.tabs-view-main .tabs-card .tabs-card-prev[data-v-428fe23d]{left:0}.tabs-view-main .tabs-card .tabs-card-next[data-v-428fe23d]{right:0}.tabs-view-main .tabs-card .tabs-card-next-hide[data-v-428fe23d],.tabs-view-main .tabs-card .tabs-card-prev-hide[data-v-428fe23d]{display:none}.tabs-view-main .tabs-card-scroll[data-v-428fe23d]{white-space:nowrap;overflow:hidden}.tabs-view-main .tabs-card-scroll-item[data-v-428fe23d]{background:var(--d48fbd46);color:var(--v380ec63c);height:32px;padding:6px 16px 4px;border-radius:3px;margin-right:6px;cursor:pointer;display:inline-block;position:relative;flex:0 0 auto}.tabs-view-main .tabs-card-scroll-item span[data-v-428fe23d]{float:left;vertical-align:middle}.tabs-view-main .tabs-card-scroll-item[data-v-428fe23d]:hover{color:#515a6e}.tabs-view-main .tabs-card-scroll-item .n-icon[data-v-428fe23d]{height:22px;width:21px;margin-right:-6px;position:relative;vertical-align:middle;text-align:center;color:#808695}.tabs-view-main .tabs-card-scroll-item .n-icon[data-v-428fe23d]:hover{color:#515a6e!important}.tabs-view-main .tabs-card-scroll-item .n-icon svg[data-v-428fe23d]{height:21px;display:inline-block}.tabs-view-main .tabs-card-scroll .active-item[data-v-428fe23d]{color:#2d8cf0}.tabs-view-main .tabs-card-scrollable[data-v-428fe23d]{padding:0 32px;overflow:hidden}.tabs-view .tabs-close[data-v-428fe23d]{min-width:32px;width:32px;height:32px;line-height:32px;text-align:center;background:var(--color);border-radius:2px;cursor:pointer}.tabs-view .tabs-close-btn[data-v-428fe23d]{color:var(--color);height:100%;display:flex;align-items:center;justify-content:center}.tabs-view-default-background[data-v-428fe23d]{background:#f5f7f9}.tabs-view-dark-background[data-v-428fe23d]{background:#101014}.tabs-view-fix[data-v-428fe23d]{position:fixed;z-index:5;padding:6px 10px;left:200px}.tabs-view-fixed-header[data-v-428fe23d]{top:0}
1
+ .tabs-view[data-v-50f5202c]{width:100%;padding:6px 0;display:flex;transition:all .2s ease-in-out}.tabs-view-main[data-v-50f5202c]{height:32px;display:flex;max-width:100%;min-width:100%}.tabs-view-main .tabs-card[data-v-50f5202c]{-webkit-box-flex:1;flex-grow:1;flex-shrink:1;overflow:hidden;position:relative}.tabs-view-main .tabs-card .tabs-card-prev[data-v-50f5202c],.tabs-view-main .tabs-card .tabs-card-next[data-v-50f5202c]{width:32px;text-align:center;position:absolute;line-height:32px;cursor:pointer}.tabs-view-main .tabs-card .tabs-card-prev .n-icon[data-v-50f5202c],.tabs-view-main .tabs-card .tabs-card-next .n-icon[data-v-50f5202c]{display:flex;align-items:center;justify-content:center;height:32px;width:32px}.tabs-view-main .tabs-card .tabs-card-prev[data-v-50f5202c]{left:0}.tabs-view-main .tabs-card .tabs-card-next[data-v-50f5202c]{right:0}.tabs-view-main .tabs-card .tabs-card-next-hide[data-v-50f5202c],.tabs-view-main .tabs-card .tabs-card-prev-hide[data-v-50f5202c]{display:none}.tabs-view-main .tabs-card-scroll[data-v-50f5202c]{white-space:nowrap;overflow:hidden}.tabs-view-main .tabs-card-scroll-item[data-v-50f5202c]{background:var(--v4f917f8c);color:var(--v1c2fb72a);height:32px;padding:6px 16px 4px;border-radius:3px;margin-right:6px;cursor:pointer;display:inline-block;position:relative;flex:0 0 auto}.tabs-view-main .tabs-card-scroll-item span[data-v-50f5202c]{float:left;vertical-align:middle}.tabs-view-main .tabs-card-scroll-item[data-v-50f5202c]:hover{color:#515a6e}.tabs-view-main .tabs-card-scroll-item .n-icon[data-v-50f5202c]{height:22px;width:21px;margin-right:-6px;position:relative;vertical-align:middle;text-align:center;color:#808695}.tabs-view-main .tabs-card-scroll-item .n-icon[data-v-50f5202c]:hover{color:#515a6e!important}.tabs-view-main .tabs-card-scroll-item .n-icon svg[data-v-50f5202c]{height:21px;display:inline-block}.tabs-view-main .tabs-card-scroll .active-item[data-v-50f5202c]{color:#2d8cf0}.tabs-view-main .tabs-card-scrollable[data-v-50f5202c]{padding:0 32px;overflow:hidden}.tabs-view .tabs-close[data-v-50f5202c]{min-width:32px;width:32px;height:32px;line-height:32px;text-align:center;background:var(--color);border-radius:2px;cursor:pointer}.tabs-view .tabs-close-btn[data-v-50f5202c]{color:var(--color);height:100%;display:flex;align-items:center;justify-content:center}.tabs-view-default-background[data-v-50f5202c]{background:#f5f7f9}.tabs-view-dark-background[data-v-50f5202c]{background:#101014}.tabs-view-fix[data-v-50f5202c]{position:fixed;z-index:5;padding:6px 10px;left:200px}.tabs-view-fixed-header[data-v-50f5202c]{top:0}
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./PTabs.vue2.cjs");;/* empty css */const t=require("../../_virtual/_plugin-vue_export-helper.cjs"),u=t.default(e.default,[["__scopeId","data-v-428fe23d"]]);exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./PTabs.vue2.cjs");;/* empty css */const t=require("../../_virtual/_plugin-vue_export-helper.cjs"),u=t.default(e.default,[["__scopeId","data-v-50f5202c"]]);exports.default=u;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),B=require("element-resize-detector"),j=require("vuedraggable"),u=require("@vicons/antd"),S=require("vue-router"),r=require("naive-ui"),Y=require("../store.cjs"),F={class:"tabs-view-main"},U=["id","onClick","onContextmenu"],X={class:"tabs-close"},H={class:"tabs-close-btn"},J=t.defineComponent({__name:"PTabs",setup(G){t.useCssVars(e=>({d48fbd46:x.value,v380ec63c:T.value}));const b=r.useThemeVars(),x=t.computed(()=>b.value.cardColor),T=t.computed(()=>b.value.textColor1),k=r.useMessage(),c=S.useRoute(),f=S.useRouter(),s=t.ref(null),w=t.ref(null),g=t.ref(!1),i=Y.useLayoutStore(),d=t.computed(()=>i.state.tabs),a=t.reactive({activeKey:c.fullPath,scrollable:!0,dropdownX:0,dropdownY:0,showDropdown:!1,isMultiHeaderFixed:!0,multiTabsSetting:!0}),_=["Login","Redirect","ErrorPage"],v=e=>({meta:e.meta,name:e.name,fullPath:e.fullPath??e.path,path:e.path,hash:e.hash??"",query:e.query??{},params:e.params??{}}),V=t.computed(()=>{const l=i.state.collapsed?"64px":"272px";return{left:l,width:`calc(100% - ${l})`}}),C=t.computed(()=>{const e=d.value.length<=1;return[{label:"刷新当前",key:"1",icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.ReloadOutlined)})},{label:"关闭当前",key:"2",disabled:g.value||e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.CloseOutlined)})},{label:"关闭其他",key:"3",disabled:e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.ColumnWidthOutlined)})},{label:"关闭全部",key:"4",disabled:e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.MinusOutlined)})}]}),P=()=>{let e=[v(c)];f.getRoutes().filter(o=>o.meta.affix).forEach(o=>{const l=v(o);e.every(n=>n.name!==l.name)&&e.push(l)});try{if(i.state.cacheTabs){const o=localStorage.getItem("TABS_ROUTES");e=o?JSON.parse(o):e}}finally{return e}},E=e=>{const o=f.getRoutes();e.forEach(l=>{const n=o.find(m=>m.path===l.path);n&&(l.meta=n.meta||l.meta,l.name=n.name||l.name)}),i.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(e))},O=()=>{const e=P();E(e),i.initTabs(e)},h=async e=>{if(await t.nextTick(),!s.value)return;const o=s.value.offsetWidth,l=s.value.scrollWidth;o<l?(a.scrollable=!0,e&&[...s.value.querySelectorAll(".tabs-card-scroll-item")||[]].forEach(m=>{m.id===`tag${a.activeKey.split("/").join("/")}`&&m.scrollIntoView&&m.scrollIntoView()})):a.scrollable=!1},W=e=>!(e.draggedContext.element.meta.affix||e.relatedContext.element.meta.affix),M=()=>{let e;e=B(),e.listenTo(w.value,()=>h(!0))},R=e=>{if(!e||e.fullPath===c.fullPath)return;if(a.activeKey=e.fullPath,toString.call(e)==="[object String]"){f.replace(e).catch(console.error);return}const o=e;f.replace(o).catch(console.error)},D=(e,o)=>{e.preventDefault(),g.value=o.path==="/home",a.showDropdown=!1,t.nextTick().then(()=>{a.showDropdown=!0,a.dropdownX=e.clientX,a.dropdownY=e.clientY})},I=()=>{if(c.meta.keepAlive){var e=f.currentRoute.value.matched.find(o=>o.name==c.name);e&&e.components?.default?.name}},N=e=>{if(d.value.length===1)return k.warning("这已经是最后一页,不能再关闭了!");if(I(),i.closeCurrentTab(e),a.activeKey===e.fullPath){const o=d.value[Math.max(0,d.value.length-1)];a.activeKey=o.fullPath,f.push(o)}h()},L=e=>{const o=d.value.find(l=>l.fullPath==e.fullPath);o&&N(o)},q=e=>{i.closeOtherTabs(e),a.activeKey=e.fullPath,h()},z=()=>{i.closeAllTabs(),h()},A=t.inject("reloadPage"),y=e=>{switch(e){case"1":A();break;case"2":N(c);break;case"3":q(c);break;case"4":z();break}h(),a.showDropdown=!1},p=(e,o)=>{const l=s.value.scrollLeft,n=o>0&&l+o>=e||o<0&&l+o<=e?e:l+o;if(s.value&&s.value.scrollTo(n,0),n!==e)return window.requestAnimationFrame(()=>p(e,o))},K=()=>{const e=s.value.offsetWidth,o=s.value.scrollLeft;if(!o)return;const l=o>e?o-e:0;p(l,(l-o)/20)},$=()=>{const e=s.value.offsetWidth,o=s.value.scrollWidth,l=s.value.scrollLeft;if(o-l<=e)return;const n=o-l>e*2?l+e:o-e;p(n,(n-l)/20)};return window.addEventListener("beforeunload",()=>{i.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(d.value))}),window.addEventListener("scroll",e=>{let o=e.target.scrollTop||document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;a.isMultiHeaderFixed=o>=64},!0),t.watch(()=>c.fullPath,e=>{_.includes(c.name)||(a.activeKey=e,i.addTab(v(c)),h(!0))},{immediate:!0}),O(),t.onMounted(()=>M()),(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:"box-border tabs-view tabs-view-fix tabs-view-default-background",style:t.normalizeStyle(V.value)},[t.createElementVNode("div",F,[t.createElementVNode("div",{ref_key:"navWrap",ref:w,class:t.normalizeClass(["tabs-card",{"tabs-card-scrollable":a.scrollable}])},[t.createElementVNode("span",{class:t.normalizeClass(["tabs-card-prev",{"tabs-card-prev-hide":!a.scrollable}]),onClick:K},[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.LeftOutlined))]),_:1})],2),t.createElementVNode("span",{class:t.normalizeClass(["tabs-card-next",{"tabs-card-next-hide":!a.scrollable}]),onClick:$},[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.RightOutlined))]),_:1})],2),t.createElementVNode("div",{ref_key:"navScroll",ref:s,class:"tabs-card-scroll"},[t.createVNode(t.unref(j),{animation:"300","item-key":"fullPath",class:"flex",list:d.value,move:W},{item:t.withCtx(({element:l})=>[t.createElementVNode("div",{class:t.normalizeClass(["tabs-card-scroll-item",{"active-item":a.activeKey===l.fullPath}]),id:`tag${l.fullPath.split("/").join("/")}`,onClick:t.withModifiers(n=>R(l),["stop"]),onContextmenu:n=>D(n,l)},[t.createElementVNode("span",null,t.toDisplayString(l.meta.title),1),l.meta.affix?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(r.NIcon),{key:0,size:"14",onClick:t.withModifiers(n=>L(l),["stop"])},{default:t.withCtx(()=>[t.createVNode(t.unref(u.CloseOutlined))]),_:1},8,["onClick"]))],42,U)]),_:1},8,["list"])],512)],2),t.createElementVNode("div",X,[t.createVNode(t.unref(r.NDropdown),{trigger:"hover",placement:"bottom-end",options:C.value,onSelect:y},{default:t.withCtx(()=>[t.createElementVNode("div",H,[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.DownOutlined))]),_:1})])]),_:1},8,["options"])]),t.createVNode(t.unref(r.NDropdown),{placement:"bottom-start",show:a.showDropdown,x:a.dropdownX,y:a.dropdownY,options:C.value,onClickoutside:o[0]||(o[0]=l=>a.showDropdown=!1),onSelect:y},null,8,["show","x","y","options"])])],4))}});exports.default=J;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),B=require("element-resize-detector"),j=require("vuedraggable"),u=require("@vicons/antd"),S=require("vue-router"),r=require("naive-ui"),Y=require("../store.cjs"),F={class:"tabs-view-main"},U=["id","onClick","onContextmenu"],X={class:"tabs-close"},H={class:"tabs-close-btn"},J=t.defineComponent({__name:"PTabs",setup(G){t.useCssVars(e=>({v4f917f8c:x.value,v1c2fb72a:T.value}));const b=r.useThemeVars(),x=t.computed(()=>b.value.cardColor),T=t.computed(()=>b.value.textColor1),k=r.useMessage(),c=S.useRoute(),f=S.useRouter(),s=t.ref(null),w=t.ref(null),g=t.ref(!1),i=Y.useLayoutStore(),d=t.computed(()=>i.state.tabs),l=t.reactive({activeKey:c.fullPath,scrollable:!0,dropdownX:0,dropdownY:0,showDropdown:!1,isMultiHeaderFixed:!0,multiTabsSetting:!0}),_=["Login","Redirect","ErrorPage"],v=e=>({meta:e.meta,name:e.name,fullPath:e.fullPath??e.path,path:e.path,hash:e.hash??"",query:e.query??{},params:e.params??{}}),V=t.computed(()=>{const a=i.state.collapsed?"64px":"272px";return{left:a,width:`calc(100% - ${a})`}}),C=t.computed(()=>{const e=d.value.length<=1;return[{label:"刷新当前",key:"1",icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.ReloadOutlined)})},{label:"关闭当前",key:"2",disabled:g.value||e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.CloseOutlined)})},{label:"关闭其他",key:"3",disabled:e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.ColumnWidthOutlined)})},{label:"关闭全部",key:"4",disabled:e,icon:()=>t.h(r.NIcon,null,{default:()=>t.h(u.MinusOutlined)})}]}),P=()=>{let e=[v(c)];f.getRoutes().filter(o=>o.meta.affix).forEach(o=>{const a=v(o);e.every(n=>n.name!==a.name)&&e.push(a)});try{if(i.state.cacheTabs){const o=localStorage.getItem("TABS_ROUTES");e=o?JSON.parse(o):e}}finally{return e}},E=e=>{const o=f.getRoutes();e.forEach(a=>{const n=o.find(m=>m.path===a.path);n&&(a.meta=n.meta||a.meta,a.name=n.name||a.name)}),i.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(e))},O=()=>{const e=P();E(e),i.initTabs(e)},h=async e=>{if(await t.nextTick(),!s.value)return;const o=s.value.offsetWidth,a=s.value.scrollWidth;o<a?(l.scrollable=!0,e&&[...s.value.querySelectorAll(".tabs-card-scroll-item")||[]].forEach(m=>{m.id===`tag${l.activeKey.split("/").join("/")}`&&m.scrollIntoView&&m.scrollIntoView()})):l.scrollable=!1},W=e=>!(e.draggedContext.element.meta.affix||e.relatedContext.element.meta.affix),M=()=>{let e;e=B(),e.listenTo(w.value,()=>h(!0))},R=e=>{if(!e||e.fullPath===c.fullPath)return;if(l.activeKey=e.fullPath,toString.call(e)==="[object String]"){f.replace(e).catch(console.error);return}const o=e;f.replace(o).catch(console.error)},D=(e,o)=>{e.preventDefault(),g.value=o.path==="/home",l.showDropdown=!1,t.nextTick().then(()=>{l.showDropdown=!0,l.dropdownX=e.clientX,l.dropdownY=e.clientY})},I=()=>{if(c.meta.keepAlive){var e=f.currentRoute.value.matched.find(o=>o.name==c.name);e&&e.components?.default?.name}},N=e=>{if(d.value.length===1)return k.warning("这已经是最后一页,不能再关闭了!");if(I(),i.closeCurrentTab(e),l.activeKey===e.fullPath){const o=d.value[Math.max(0,d.value.length-1)];l.activeKey=o.fullPath,f.push(o)}h()},L=e=>{const o=d.value.find(a=>a.fullPath==e.fullPath);o&&N(o)},q=e=>{i.closeOtherTabs(e),l.activeKey=e.fullPath,h()},z=()=>{i.closeAllTabs(),h()},A=t.inject("reloadPage"),y=e=>{switch(e){case"1":A();break;case"2":N(c);break;case"3":q(c);break;case"4":z();break}h(),l.showDropdown=!1},p=(e,o)=>{const a=s.value.scrollLeft,n=o>0&&a+o>=e||o<0&&a+o<=e?e:a+o;if(s.value&&s.value.scrollTo(n,0),n!==e)return window.requestAnimationFrame(()=>p(e,o))},K=()=>{const e=s.value.offsetWidth,o=s.value.scrollLeft;if(!o)return;const a=o>e?o-e:0;p(a,(a-o)/20)},$=()=>{const e=s.value.offsetWidth,o=s.value.scrollWidth,a=s.value.scrollLeft;if(o-a<=e)return;const n=o-a>e*2?a+e:o-e;p(n,(n-a)/20)};return window.addEventListener("beforeunload",()=>{i.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(d.value))}),window.addEventListener("scroll",e=>{let o=e.target.scrollTop||document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;l.isMultiHeaderFixed=o>=64},!0),t.watch(()=>c.fullPath,e=>{_.includes(c.name)||(l.activeKey=e,i.addTab(v(c)),h(!0))},{immediate:!0}),O(),t.onMounted(()=>M()),(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:"box-border tabs-view tabs-view-fix tabs-view-default-background",style:t.normalizeStyle(V.value)},[t.createElementVNode("div",F,[t.createElementVNode("div",{ref_key:"navWrap",ref:w,class:t.normalizeClass(["tabs-card",{"tabs-card-scrollable":l.scrollable}])},[t.createElementVNode("span",{class:t.normalizeClass(["tabs-card-prev",{"tabs-card-prev-hide":!l.scrollable}]),onClick:K},[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.LeftOutlined))]),_:1})],2),t.createElementVNode("span",{class:t.normalizeClass(["tabs-card-next",{"tabs-card-next-hide":!l.scrollable}]),onClick:$},[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.RightOutlined))]),_:1})],2),t.createElementVNode("div",{ref_key:"navScroll",ref:s,class:"tabs-card-scroll"},[t.createVNode(t.unref(j),{animation:"300","item-key":"fullPath",class:"flex",list:d.value,move:W},{item:t.withCtx(({element:a})=>[t.createElementVNode("div",{class:t.normalizeClass(["tabs-card-scroll-item",{"active-item":l.activeKey===a.fullPath}]),id:`tag${a.fullPath.split("/").join("/")}`,onClick:t.withModifiers(n=>R(a),["stop"]),onContextmenu:n=>D(n,a)},[t.createElementVNode("span",null,t.toDisplayString(a.meta.title),1),a.meta.affix?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(r.NIcon),{key:0,size:"14",onClick:t.withModifiers(n=>L(a),["stop"])},{default:t.withCtx(()=>[t.createVNode(t.unref(u.CloseOutlined))]),_:1},8,["onClick"]))],42,U)]),_:1},8,["list"])],512)],2),t.createElementVNode("div",X,[t.createVNode(t.unref(r.NDropdown),{trigger:"hover",placement:"bottom-end",options:C.value,onSelect:y},{default:t.withCtx(()=>[t.createElementVNode("div",H,[t.createVNode(t.unref(r.NIcon),{size:"16",color:"#515a6e"},{default:t.withCtx(()=>[t.createVNode(t.unref(u.DownOutlined))]),_:1})])]),_:1},8,["options"])]),t.createVNode(t.unref(r.NDropdown),{placement:"bottom-start",show:l.showDropdown,x:l.dropdownX,y:l.dropdownY,options:C.value,onClickoutside:o[0]||(o[0]=a=>l.showDropdown=!1),onSelect:y},null,8,["show","x","y","options"])])],4))}});exports.default=J;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("pinia"),n=require("vue"),i=["Redirect","RedirectSon","login"],f=o.defineStore("p-layout",()=>{const e=n.reactive({collapsed:!1,title:"输入项目名称",logo:"https://picsum.photos/id/1/100/100",avatar:"",uid:"",uname:"",tabs:[],cacheTabs:!1,enableLanguage:!1});return{state:e,initTabs:t=>{t.sort((s,a)=>s.meta.affix&&!a.meta.affix?-1:!s.meta.affix&&a.meta.affix?1:Number(a.meta.sort??0)-Number(s.meta.sort??0)),e.tabs=t},addTab:t=>i.includes(t.name)?!1:(e.tabs?.some(a=>a.fullPath==t.fullPath)||e.tabs?.push(t),!0),closeCurrentTab:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs.splice(s,1)},closeAllTabs:()=>{e.tabs=e.tabs.filter(t=>t?.meta?.affix??!1)},closeOtherTabs:t=>{e.tabs=e.tabs.filter(s=>s.fullPath==t.fullPath||(s?.meta?.affix??!1))},closeLeftTabs:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs=e.tabs.filter((a,l)=>l>=s||(a?.meta?.affix??!1))},closeRightTabs:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs=e.tabs.filter((a,l)=>l<=s||(a?.meta?.affix??!1))},collapse:()=>{e.collapsed=!e.collapsed},setTitle:t=>{e.title=t},setLogo:t=>{e.logo=t},setUser:(t,s)=>{e.uid=t,e.uname=s},setSettingPages:t=>{e.settingPages=t},setLogout:t=>{e.logout=t},enableLanguage:t=>{e.enableLanguage=t}}});exports.useLayoutStore=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("pinia"),n=require("vue"),i=require("vue-router"),u=["Redirect","RedirectSon","login"],f=o.defineStore("p-layout",()=>{const e=n.reactive({collapsed:!1,title:"输入项目名称",logo:"https://picsum.photos/id/1/100/100",avatar:"",uid:"",uname:"",tabs:[],cacheTabs:!1,enableLanguage:!1});return{state:e,initTabs:t=>{t.sort((s,a)=>s.meta.affix&&!a.meta.affix?-1:!s.meta.affix&&a.meta.affix?1:Number(a.meta.sort??0)-Number(s.meta.sort??0)),e.tabs=t},addTab:t=>u.includes(t.name)?!1:(e.tabs?.some(a=>a.fullPath==t.fullPath)||e.tabs?.push(t),!0),getCurrentTab:()=>{const t=i.useRoute();return e.tabs.find(s=>s.fullPath==t.fullPath)},closeCurrentTab:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs.splice(s,1)},closeAllTabs:()=>{e.tabs=e.tabs.filter(t=>t?.meta?.affix??!1)},closeOtherTabs:t=>{e.tabs=e.tabs.filter(s=>s.fullPath==t.fullPath||(s?.meta?.affix??!1))},closeLeftTabs:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs=e.tabs.filter((a,l)=>l>=s||(a?.meta?.affix??!1))},closeRightTabs:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs=e.tabs.filter((a,l)=>l<=s||(a?.meta?.affix??!1))},collapse:()=>{e.collapsed=!e.collapsed},setTitle:t=>{e.title=t},setLogo:t=>{e.logo=t},setUser:(t,s)=>{e.uid=t,e.uname=s},setSettingPages:t=>{e.settingPages=t},setLogout:t=>{e.logout=t},enableLanguage:t=>{e.enableLanguage=t}}});exports.useLayoutStore=f;