@chewel611/naive-ui-plus 0.0.46 → 0.0.48
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.
- package/dist/index.js +452 -447
- package/dist/index.umd.cjs +1 -1
- package/es/layout/store.d.ts +8 -2
- package/es/layout/store.js +11 -6
- package/es/layout/typing.d.ts +13 -0
- package/es/modal/PModal.vue.js +23 -23
- package/lib/layout/store.cjs +1 -1
- package/lib/layout/store.d.ts +8 -2
- package/lib/layout/typing.d.ts +13 -0
- package/lib/modal/PModal.vue.cjs +1 -1
- package/package.json +3 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(w,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("naive-ui"),require("vue"),require("@vicons/antd"),require("pinia"),require("vue-router"),require("element-resize-detector"),require("vuedraggable")):typeof define=="function"&&define.amd?define(["exports","naive-ui","vue","@vicons/antd","pinia","vue-router","element-resize-detector","vuedraggable"],n):(w=typeof globalThis<"u"?globalThis:w||self,n(w.naiveplus={},w.naiveUi,w.Vue,w.antd,w.pinia,w.vueRouter,w.elementResizeDetectorMaker,w.Draggable))})(this,(function(w,n,e,T,Y,I,he,_e){"use strict";const ye={class:"text-lg font-medium"},be={id:"data-content"},ke={key:0,class:"rounded-lg bg-gray-50 flex flex-row gap-2 items-center justify-end p-4 mb-4"},we=e.defineComponent({__name:"PTable",props:{title:{},idField:{default:"id"},columns:{},onLoad:{},onDelete:{},onAdd:{},onEdit:{}},setup(t,{expose:s}){const l=e.ref(null),p=n.useDialog(),u=n.useMessage(),i=e.ref(!1),_=e.ref([]),c=e.ref([]),B=e.ref({page:1,itemCount:0,pageSize:10,pageSizes:[10,20,30,50],showSizePicker:!0,onChange:async b=>{B.value.page=b,await L()},onUpdatePageSize:async b=>{B.value.pageSize=b,await L()}}),y=t,r=b=>{const k=x=>{const E=[];return b&&b.forEach(O=>{O.key!=="edit"&&O.key!=="delete"&&E.push({label:O.name,key:O.key,icon:O.icon&&(()=>e.h(n.NIcon,null,{default:()=>e.h(O.icon)})),props:{onClick:()=>O.action(x)}})}),E};return{title:"操作",key:"actions",width:100,fixed:"right",render:x=>{let E=[];if(y.onEdit&&E.push({label:"编辑",key:"edit",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.EditOutlined)}),props:{onClick:async()=>await y.onEdit(x)}}),y.onDelete&&E.push({label:"删除",key:"delete",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.DeleteOutlined)}),props:{onClick:()=>N(x)}}),E=[...E,...k(x)],!(E.length<=0))return e.h(n.NDropdown,{options:E,placement:"bottom-start"},{default:()=>e.h(n.NButton,{size:"small",type:"primary"},{default:()=>["操作",e.h(n.NIcon,()=>e.h(T.MoreOutlined))]})})}}},V=e.computed(()=>{const b=y.columns.filter(x=>x.key!="action").map(x=>({title:x.title,key:x.key,width:x.width,fixed:x.fixed??!1,render:x.render,ellipsis:x.ellipsis?{tooltip:!0}:!1})),k=y.columns.reduce((x,E)=>E.key==="action"?E:x,void 0)?.action;return k&&k?.length>0||y.onEdit||y.onDelete?[{type:"selection",fixed:"left"},...b,r(k)]:[{type:"selection",fixed:"left"},...b]}),d=async()=>await L(),N=b=>C([b]),S=()=>{const b=a();C(b)},C=b=>{b&&b.length>0&&p.warning({title:"警告",content:"删除数据不可恢复, 确认删除吗?",positiveText:"确定",negativeText:"取消",onPositiveClick:async()=>{if(y.onDelete)try{await y.onDelete(b)?(L(),u.success("删除成功")):u.error("删除失败")}catch(k){u.error(k.message)}}})},a=()=>_.value?c.value.filter(k=>_.value.includes(k.id)).map(k=>e.toRaw(k)):[],g=()=>a()[0],P=()=>e.toRaw(c.value),L=async()=>{if(!i.value){i.value=!0;try{if(y.onLoad){var{items:b,totalCount:k}=await y.onLoad(B.value.page,B.value.pageSize);c.value=b,B.value.itemCount=k}}catch(x){u.error(x.message)}finally{i.value=!1}}},m=e.computed(()=>{const b=e.unref(l);if(!b)return;const k=b?.$el,x=k.querySelector(".n-data-table-thead "),{bottomIncludeBody:E}=F(x),O=48;let R=12,W=25;const z=k.querySelector(".n-data-table__pagination");if(z){const q=z.offsetHeight;R+=q||0}else R+=28;return E-(O+R+W)}),A=b=>!b||!b.getBoundingClientRect?0:b.getBoundingClientRect(),F=b=>{const k=document.documentElement,x=k.scrollLeft,E=k.scrollTop,O=k.clientLeft,R=k.clientTop,W=window.pageXOffset,z=window.pageYOffset,K=A(b),{left:q,top:X,width:J,height:o}=K,f=(W||x)-(O||0),h=(z||E)-(R||0),$=q+W,j=X+z,Z=$-f,G=j-h,ue=window.document.documentElement.clientWidth,ge=window.document.documentElement.clientHeight;return{left:Z,top:G,right:ue-J-Z,bottom:ge-o-G,rightIncludeBody:ue-Z,bottomIncludeBody:ge-G}};return e.onMounted(async()=>await L()),s({getData:P,getSelectedRow:g,getSelectedRows:a,refreshData:L,resetPage:()=>{B.value.page=1}}),(b,k)=>{const x=n.NTooltip,E=n.NSpace,O=n.NDataTable;return e.openBlock(),e.createBlock(e.unref(n.NCard),{bordered:!1},{header:e.withCtx(()=>[e.createVNode(E,{justify:"space-between",align:"center",class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("span",ye,e.toDisplayString(t.title),1),e.createVNode(E,null,{default:e.withCtx(()=>[y.onAdd?(e.openBlock(),e.createBlock(x,{key:0,trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"mr-1 cursor-pointer hover:text-blue-600",onClick:y.onAdd},{default:e.withCtx(()=>[e.createVNode(e.unref(T.PlusSquareOutlined))]),_:1},8,["onClick"])]),default:e.withCtx(()=>[k[1]||(k[1]=e.createElementVNode("span",null,"新增",-1))]),_:1})):e.createCommentVNode("",!0),y.onDelete?(e.openBlock(),e.createBlock(x,{key:1,trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"mr-1 cursor-pointer hover:text-blue-600",onClick:S},{default:e.withCtx(()=>[e.createVNode(e.unref(T.DeleteOutlined))]),_:1})]),default:e.withCtx(()=>[k[2]||(k[2]=e.createElementVNode("span",null,"删除",-1))]),_:1})):e.createCommentVNode("",!0),e.createVNode(x,{trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"cursor-pointer hover:text-blue-600",onClick:d},{default:e.withCtx(()=>[e.createVNode(e.unref(T.ReloadOutlined))]),_:1})]),default:e.withCtx(()=>[k[3]||(k[3]=e.createElementVNode("span",null,"刷新",-1))]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",be,[b.$slots.toolbar?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(b.$slots,"toolbar")])):e.createCommentVNode("",!0),e.createVNode(O,{remote:"",ref_key:"$table",ref:l,"checked-row-keys":_.value,"onUpdate:checkedRowKeys":k[0]||(k[0]=R=>_.value=R),"max-height":m.value,loading:i.value,bordered:!1,"single-line":!1,columns:V.value,data:c.value,pagination:B.value,"row-key":R=>R[t.idField]},null,8,["checked-row-keys","max-height","loading","columns","data","pagination","row-key"])])]),_:3})}}}),D=t=>{const s=t;return s.install=function(l){l.component(s.__name,t)},t},Q=D(we),Ne=["Redirect","RedirectSon","login"],H=Y.defineStore("p-layout",()=>{const t=e.reactive({collapsed:!1,title:"输入项目名称",logo:"https://picsum.photos/id/1/100/100",avatar:"",uid:"",uname:"",tabs:[],cacheTabs:!1,enableLanguage:!1});return{state:t,initTabs:a=>{a.sort((g,P)=>g.meta.affix&&!P.meta.affix?-1:!g.meta.affix&&P.meta.affix?1:Number(P.meta.sort??0)-Number(g.meta.sort??0)),t.tabs=a},addTab:a=>Ne.includes(a.name)?!1:(t.tabs?.some(P=>P.fullPath==a.fullPath)||t.tabs?.push(a),!0),getCurrentTab:()=>{const a=I.useRoute();return t.tabs.find(g=>g.fullPath==a.fullPath)},closeCurrentTab:a=>{const g=t.tabs.findIndex(P=>P.fullPath==a.fullPath);t.tabs.splice(g,1)},closeAllTabs:()=>{t.tabs=t.tabs.filter(a=>a?.meta?.affix??!1)},closeOtherTabs:a=>{t.tabs=t.tabs.filter(g=>g.fullPath==a.fullPath||(g?.meta?.affix??!1))},closeLeftTabs:a=>{const g=t.tabs.findIndex(P=>P.fullPath==a.fullPath);t.tabs=t.tabs.filter((P,L)=>L>=g||(P?.meta?.affix??!1))},closeRightTabs:a=>{const g=t.tabs.findIndex(P=>P.fullPath==a.fullPath);t.tabs=t.tabs.filter((P,L)=>L<=g||(P?.meta?.affix??!1))},collapse:()=>{t.collapsed=!t.collapsed},setTitle:a=>{t.title=a},setLogo:a=>{t.logo=a},setUser:(a,g)=>{t.uid=a,t.uname=g},setSettingPages:a=>{t.settingPages=a},setLogout:a=>{t.logout=a},enableLanguage:a=>{t.enableLanguage=a}}}),Ce={class:"logo"},xe=e.defineComponent({__name:"PLogo",setup(t){const s=H();return(l,p)=>(e.openBlock(),e.createElementBlock("div",Ce,[e.createVNode(e.unref(n.NAvatar),{color:"var(--color-logo)",size:32,src:e.unref(s).state.logo,class:e.normalizeClass({"mr-2":!e.unref(s).state.collapsed})},null,8,["src","class"]),e.withDirectives(e.createElementVNode("h1",{class:"font-bold ease-in-out ml-2 logo-size"},e.toDisplayString(e.unref(s).state.title),513),[[e.vShow,!e.unref(s).state.collapsed]])]))}}),M=(t,s)=>{const l=t.__vccOpts||t;for(const[p,u]of s)l[p]=u;return l},Pe=M(xe,[["__scopeId","data-v-e48aeefa"]]),Ve={translationApiUrl:"https://translate.zvo.cn/api",defaultLanguage:"chinese",currentLanguage:"",options:[],initLanguages:async()=>[],selectLanguage:async t=>{}},U=Y.defineStore("language",()=>{const t=e.ref(Ve),s=async()=>(t.value.options.length===0&&(t.value.options=await t.value.initLanguages()),t.value.options);return{select:async r=>{if(t.value.currentLanguage===r)return;const V=(await s()).find(d=>d.key===r);V&&(t.value.currentLanguage=V.key,t.value.selectLanguage(V))},selectLanguageCallback:async r=>{t.value.selectLanguage=r},initLanguagesCallback:async r=>{t.value.initLanguages=r},getLanguages:s,getCurrentLanguage:async()=>{if(t.value.currentLanguage)return(await s()).find(r=>r.key===t.value.currentLanguage)},setTranslationApiUrl:r=>{t.value.translationApiUrl=r},getTranslationApiUrl:()=>t.value.translationApiUrl,getDefaultLanguage:()=>t.value.defaultLanguage?t.value.defaultLanguage:"chinese_simplified",setDefaultLanguage:r=>{(r==="Chinese"||r==="chinese")&&(r="chinese_simplified"),t.value.defaultLanguage=r}}}),Be={key:1},v=e.defineComponent({__name:"PLanguage",setup(t){const{select:s,getLanguages:l,getCurrentLanguage:p,getDefaultLanguage:u,getTranslationApiUrl:i}=U(),_=e.ref(),c=e.ref([]),B=async r=>await s(r),y=async()=>{const r=window.translate;r&&(r.selectLanguageTag.show=!1,r.selectLanguageTag.languages=(await l()).map(V=>V.key).join(","),r.ignore.class.push("ignore-translate-flag"),r.ignore.id.push("ignore-translation"),r.language.setLocal(u()),r.request.api.translate="api/v1/translation",r.request.api.connectTest="api/v1/translation/connect-test",r.request.api.init="api/v1/translation/init",r.request.api.language="api/v1/translation/language",r.request.setHost(i()),r.request.listener.start(),r.listener.start(),r.whole.enableAll(),r.execute())};return e.onMounted(async()=>{await e.nextTick(),await y(),_.value=await p(),c.value=await l()}),(r,V)=>{const d=n.NIcon,N=n.NButton;return c.value.length>0?(e.openBlock(),e.createBlock(e.unref(n.NDropdown),{key:0,id:"ignore-translation",placement:"bottom-start",trigger:"hover",class:"flex flex-col justify-center h-full ignore",onSelect:B,options:c.value},{default:e.withCtx(()=>[e.createVNode(N,{quaternary:"",type:"info"},{default:e.withCtx(()=>[_.value?(e.openBlock(),e.createElementBlock("label",Be,e.toDisplayString(_.value?.label),1)):(e.openBlock(),e.createBlock(d,{key:0,size:"18"},{default:e.withCtx(()=>[...V[0]||(V[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[e.createElementVNode("path",{d:"M478.33 433.6l-90-218a22 22 0 0 0-40.67 0l-90 218a22 22 0 1 0 40.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 0 0 458 464a22 22 0 0 0 20.32-30.4zM334.83 362L368 281.65L401.17 362z",fill:"currentColor"}),e.createElementVNode("path",{d:"M267.84 342.92a22 22 0 0 0-4.89-30.7c-.2-.15-15-11.13-36.49-34.73c39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 0 0 0-44H214V70a22 22 0 0 0-44 0v20H54a22 22 0 0 0 0 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36c-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 0 0-40.58 17c.58 1.38 14.55 34.23 52.86 83.93c.92 1.19 1.83 2.35 2.74 3.51c-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1 0 21.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59c22.52 24.08 38 35.44 38.93 36.1a22 22 0 0 0 30.75-4.9z",fill:"currentColor"})],-1)])]),_:1}))]),_:1})]),_:1},8,["options"])):e.createCommentVNode("",!0)}}}),Se={class:"layout-header"},Le={class:"layout-header-left"},Ee={class:"link-text"},Te={key:1,class:"link-text"},$e={class:"layout-header-right"},Oe={key:0,class:"layout-header-trigger-min"},De={class:"layout-header-trigger layout-header-trigger-min"},Ie={class:"layout-header-trigger layout-header-trigger-min"},Re={class:"avatar"},Me=M(e.defineComponent({__name:"PHeader",setup(t){const s=n.useMessage(),l=n.useDialog(),p=H(),u=I.useRouter(),i=I.useRoute(),_=e.inject("reloadPage"),c=C=>u.push({name:C}),B=e.computed(()=>y(i.matched)),y=C=>C.map(a=>{const g={key:a.name,label:a.meta.title,icon:a.meta.icon,meta:a.meta,disabled:a.path==="/",children:void 0};return a.children&&a.children.length>0&&(g.children=y(a.children)),g}),r=e.ref(!1),V=()=>{document.fullscreenElement?document.exitFullscreen&&(document.exitFullscreen(),r.value=!1):(document.documentElement.requestFullscreen(),r.value=!0)},d=e.computed(()=>{const C=[];return C.push({label:"退出登录",key:"logout"}),p.state.settingPages&&p.state.settingPages.length>0&&p.state.settingPages.forEach(a=>{C.push({label:a.title,key:a.route})}),C}),N=C=>{C==="logout"?S():u.push({name:C})},S=()=>{l.info({title:"提示",content:"您确定要退出登录吗",positiveText:"确定",negativeText:"取消",onPositiveClick:async()=>{if(p.state.logout)try{await p.state.logout(),localStorage.removeItem("TABS-ROUTES"),s.error("退出成功")}catch(C){console.error(C),s.error("退出登录失败")}finally{location.reload()}else s.error("没有配置登出接口, 请配置[usePLayoutStore.logout]方法")},onNegativeClick:()=>{}})};return(C,a)=>{const g=n.NTooltip,P=n.NDivider,L=n.NAvatar;return e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("div",Le,[e.createElementVNode("div",{class:"ml-1 layout-header-trigger layout-header-trigger-min",onClick:a[0]||(a[0]=(...m)=>e.unref(p).collapse&&e.unref(p).collapse(...m))},[e.unref(p).state.collapsed?(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:0,size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.MenuUnfoldOutlined))]),_:1})):(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:1,size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.MenuFoldOutlined))]),_:1}))]),e.createElementVNode("div",{class:"mr-1 layout-header-trigger layout-header-trigger-min",onClick:a[1]||(a[1]=(...m)=>e.unref(_)&&e.unref(_)(...m))},[e.createVNode(e.unref(n.NIcon),{size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.ReloadOutlined))]),_:1})]),e.createVNode(e.unref(n.NBreadcrumb),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m.label},[m.label?(e.openBlock(),e.createBlock(e.unref(n.NBreadcrumbItem),{key:0},{default:e.withCtx(()=>[m.children&&m.children.length?(e.openBlock(),e.createBlock(e.unref(n.NDropdown),{key:0,options:m.children,onSelect:c},{default:e.withCtx(()=>[e.createElementVNode("span",Ee,[m.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.icon),{key:0})):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(m.label),1)])]),_:2},1032,["options"])):(e.openBlock(),e.createElementBlock("span",Te,[m.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.icon),{key:0})):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(m.label),1)]))]),_:2},1024)):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createElementVNode("div",$e,[e.unref(p).state.enableLanguage?(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(v)])):e.createCommentVNode("",!0),e.createElementVNode("div",De,[e.createVNode(g,{placement:"bottom"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",onClick:e.withModifiers(V,["stop"])},{default:e.withCtx(()=>[r.value?(e.openBlock(),e.createBlock(e.unref(T.FullscreenExitOutlined),{key:1})):(e.openBlock(),e.createBlock(e.unref(T.FullscreenOutlined),{key:0}))]),_:1})]),default:e.withCtx(()=>[a[2]||(a[2]=e.createElementVNode("span",null,"全屏",-1))]),_:1})]),e.createElementVNode("div",Ie,[e.createVNode(e.unref(n.NDropdown),{trigger:"hover",onSelect:N,options:d.value},{default:e.withCtx(()=>[e.createElementVNode("div",Re,[e.createElementVNode("span",null,e.toDisplayString(e.unref(p).state.uname),1),e.createVNode(P,{vertical:""}),e.createVNode(L,{round:"",src:e.unref(p).state.avatar},null,8,["src"])])]),_:1},8,["options"])])])])}}}),[["__scopeId","data-v-563e4e55"]]),Ae={class:"mt-1"},ze=e.defineComponent({__name:"PContent",props:{loading:{type:Boolean,default:!1}},setup(t){return(s,l)=>{const p=e.resolveComponent("RouterView");return e.openBlock(),e.createElementBlock("div",Ae,[t.loading?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(p,{key:0},{default:e.withCtx(({Component:u,route:i})=>[(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u),{key:i.fullPath}))],1024))]),_:1}))])}}}),qe={class:"tabs-view-main"},je=["id","onClick","onContextmenu"],He={class:"tabs-close"},We={class:"tabs-close-btn"},Fe=M(e.defineComponent({__name:"PTabs",setup(t){e.useCssVars(o=>({v4f917f8c:l.value,v1c2fb72a:p.value}));const s=n.useThemeVars(),l=e.computed(()=>s.value.cardColor),p=e.computed(()=>s.value.textColor1),u=n.useMessage(),i=I.useRoute(),_=I.useRouter(),c=e.ref(null),B=e.ref(null),y=e.ref(!1),r=H(),V=e.computed(()=>r.state.tabs),d=e.reactive({activeKey:i.fullPath,scrollable:!0,dropdownX:0,dropdownY:0,showDropdown:!1,isMultiHeaderFixed:!0,multiTabsSetting:!0}),N=["Login","Redirect","ErrorPage"],S=o=>({meta:o.meta,name:o.name,fullPath:o.fullPath??o.path,path:o.path,hash:o.hash??"",query:o.query??{},params:o.params??{}}),C=e.computed(()=>{const h=r.state.collapsed?"64px":"272px";return{left:h,width:`calc(100% - ${h})`}}),a=e.computed(()=>{const o=V.value.length<=1;return[{label:"刷新当前",key:"1",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.ReloadOutlined)})},{label:"关闭当前",key:"2",disabled:y.value||o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.CloseOutlined)})},{label:"关闭其他",key:"3",disabled:o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.ColumnWidthOutlined)})},{label:"关闭全部",key:"4",disabled:o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.MinusOutlined)})}]}),g=()=>{let o=[S(i)];_.getRoutes().filter(f=>f.meta.affix).forEach(f=>{const h=S(f);o.every($=>$.name!==h.name)&&o.push(h)});try{if(r.state.cacheTabs){const f=localStorage.getItem("TABS_ROUTES");o=f?JSON.parse(f):o}}finally{return o}},P=o=>{const f=_.getRoutes();o.forEach(h=>{const $=f.find(j=>j.path===h.path);$&&(h.meta=$.meta||h.meta,h.name=$.name||h.name)}),r.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(o))},L=()=>{const o=g();P(o),r.initTabs(o)},m=async o=>{if(await e.nextTick(),!c.value)return;const f=c.value.offsetWidth,h=c.value.scrollWidth;f<h?(d.scrollable=!0,o&&[...c.value.querySelectorAll(".tabs-card-scroll-item")||[]].forEach(j=>{j.id===`tag${d.activeKey.split("/").join("/")}`&&j.scrollIntoView&&j.scrollIntoView()})):d.scrollable=!1},A=o=>!(o.draggedContext.element.meta.affix||o.relatedContext.element.meta.affix),F=()=>{let o;o=he(),o.listenTo(B.value,()=>m(!0))},b=o=>{if(!o||o.fullPath===i.fullPath)return;if(d.activeKey=o.fullPath,toString.call(o)==="[object String]"){_.replace(o).catch(console.error);return}const f=o;_.replace(f).catch(console.error)},k=(o,f)=>{o.preventDefault(),y.value=f.path==="/home",d.showDropdown=!1,e.nextTick().then(()=>{d.showDropdown=!0,d.dropdownX=o.clientX,d.dropdownY=o.clientY})},x=()=>{if(i.meta.keepAlive){var o=_.currentRoute.value.matched.find(f=>f.name==i.name);o&&o.components?.default?.name}},E=o=>{if(V.value.length===1)return u.warning("这已经是最后一页,不能再关闭了!");if(x(),r.closeCurrentTab(o),d.activeKey===o.fullPath){const f=V.value[Math.max(0,V.value.length-1)];d.activeKey=f.fullPath,_.push(f)}m()},O=o=>{const f=V.value.find(h=>h.fullPath==o.fullPath);f&&E(f)},R=o=>{r.closeOtherTabs(o),d.activeKey=o.fullPath,m()},W=()=>{r.closeAllTabs(),m()},z=e.inject("reloadPage"),K=o=>{switch(o){case"1":z();break;case"2":E(i);break;case"3":R(i);break;case"4":W();break}m(),d.showDropdown=!1},q=(o,f)=>{const h=c.value.scrollLeft,$=f>0&&h+f>=o||f<0&&h+f<=o?o:h+f;if(c.value&&c.value.scrollTo($,0),$!==o)return window.requestAnimationFrame(()=>q(o,f))},X=()=>{const o=c.value.offsetWidth,f=c.value.scrollLeft;if(!f)return;const h=f>o?f-o:0;q(h,(h-f)/20)},J=()=>{const o=c.value.offsetWidth,f=c.value.scrollWidth,h=c.value.scrollLeft;if(f-h<=o)return;const $=f-h>o*2?h+o:f-o;q($,($-h)/20)};return window.addEventListener("beforeunload",()=>{r.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(V.value))}),window.addEventListener("scroll",o=>{let f=o.target.scrollTop||document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;d.isMultiHeaderFixed=f>=64},!0),e.watch(()=>i.fullPath,o=>{N.includes(i.name)||(d.activeKey=o,r.addTab(S(i)),m(!0))},{immediate:!0}),L(),e.onMounted(()=>F()),(o,f)=>(e.openBlock(),e.createElementBlock("div",{class:"box-border tabs-view tabs-view-fix tabs-view-default-background",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",qe,[e.createElementVNode("div",{ref_key:"navWrap",ref:B,class:e.normalizeClass(["tabs-card",{"tabs-card-scrollable":d.scrollable}])},[e.createElementVNode("span",{class:e.normalizeClass(["tabs-card-prev",{"tabs-card-prev-hide":!d.scrollable}]),onClick:X},[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.LeftOutlined))]),_:1})],2),e.createElementVNode("span",{class:e.normalizeClass(["tabs-card-next",{"tabs-card-next-hide":!d.scrollable}]),onClick:J},[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.RightOutlined))]),_:1})],2),e.createElementVNode("div",{ref_key:"navScroll",ref:c,class:"tabs-card-scroll"},[e.createVNode(e.unref(_e),{animation:"300","item-key":"fullPath",class:"flex",list:V.value,move:A},{item:e.withCtx(({element:h})=>[e.createElementVNode("div",{class:e.normalizeClass(["tabs-card-scroll-item",{"active-item":d.activeKey===h.fullPath}]),id:`tag${h.fullPath.split("/").join("/")}`,onClick:e.withModifiers($=>b(h),["stop"]),onContextmenu:$=>k($,h)},[e.createElementVNode("span",null,e.toDisplayString(h.meta.title),1),h.meta.affix?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:0,size:"14",onClick:e.withModifiers($=>O(h),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(T.CloseOutlined))]),_:1},8,["onClick"]))],42,je)]),_:1},8,["list"])],512)],2),e.createElementVNode("div",He,[e.createVNode(e.unref(n.NDropdown),{trigger:"hover",placement:"bottom-end",options:a.value,onSelect:K},{default:e.withCtx(()=>[e.createElementVNode("div",We,[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.DownOutlined))]),_:1})])]),_:1},8,["options"])]),e.createVNode(e.unref(n.NDropdown),{placement:"bottom-start",show:d.showDropdown,x:d.dropdownX,y:d.dropdownY,options:a.value,onClickoutside:f[0]||(f[0]=h=>d.showDropdown=!1),onSelect:K},null,8,["show","x","y","options"])])],4))}}),[["__scopeId","data-v-50f5202c"]]),Ke=e.defineComponent({__name:"PMenus",setup(t){const s=e.ref([]),l=I.useRoute(),p=I.useRouter(),u=H(),i=e.ref(l.name),_=e.ref(l.matched&&l.matched.length?l.matched.map(N=>N.name):[]),c=N=>{l.name!==N&&(/http(s)?:/.test(N)?window.open(N):p.push({name:N}))},B=N=>{if(!N)return;const S=N.find(C=>_.value.indexOf(C)===-1);_.value=S?[S]:[]},y=()=>{const N=l.matched;_.value=N.map(C=>C.name);const S=l.meta?.activeMenu||"";i.value=S||l.name},r=["/:path(.*)*","/redirect","/redirect/:path(.*)","/login","/oidc-callback"],V=(N,S=[],C=!1)=>{const a=[];if(!N||N.length===0)return a;N=N.sort((g,P)=>{let L=(P.children?.length?1:0)-(g.children?.length?1:0);return L===0&&(L=Number(g.meta?.sort??0)-Number(P.meta?.sort??0)),L});for(const g of N){if(C||g.meta?.hidden||r.includes(g.path.toLowerCase())){S.push(g.name),V(g.children||[],S,!0);continue}const P=g.children?.filter(F=>!F.meta?.hidden)||[],L=P.length===1,m=L?P[0]:g,A={key:m.name,label:m.meta?.title,affix:m.meta?.affix,sort:Number(L?g.meta?.sort??0:m.meta?.sort??0),path:m.path,redirect:m.redirect,icon:L?g.meta?.icon:m.meta?.icon,permission:m.meta?.permission,meta:m.meta,children:void 0};if(m.children&&m.children.length>0&&(A.children=V(m.children,S,C),!L&&(!A.children||A.children.length===0))){S.push(m.name);continue}S.includes(m.name)||(a.push(A),S.push(m.name))}return a},d=()=>{const N=p.getRoutes();s.value=V(N)};return e.watch(()=>l.fullPath,()=>{y()}),e.onMounted(()=>{d(),y()}),(N,S)=>(e.openBlock(),e.createBlock(e.unref(n.NMenu),{class:"h-full",inverted:"",mode:"vertical",options:s.value,collapsed:e.unref(u).state.collapsed,"collapsed-width":64,"collapsed-icon-size":20,indent:24,"expanded-keys":_.value,value:i.value,"onUpdate:value":c,"onUpdate:expandedKeys":B},null,8,["options","collapsed","expanded-keys","value"]))}}),Ye={class:"layout-content-main layout-content-main-fix"},Xe={class:"main-view main-view-fix"},Je=M(e.defineComponent({__name:"PLayout",setup(t){const s=H(),l=e.ref(!1),p=()=>{l.value=!0,e.nextTick(()=>l.value=!1)};return e.provide("reloadPage",p),(u,i)=>{const _=n.NBackTop;return e.openBlock(),e.createBlock(e.unref(n.NLayout),{"has-sider":"",class:"layout",position:"absolute"},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NLayoutSider),{class:"layout-sider",inverted:"","show-trigger":"bar",position:"absolute","collapse-mode":"width","trigger-class":"!-right-5","collapsed-trigger-class":"!-right-5",collapsed:e.unref(s).state.collapsed,"native-scrollbar":!1,"collapsed-width":64,onCollapse:e.unref(s).collapse,onExpand:e.unref(s).collapse},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NFlex),{vertical:""},{default:e.withCtx(()=>[e.createVNode(Pe),e.createVNode(Ke)]),_:1})]),_:1},8,["collapsed","onCollapse","onExpand"]),e.createVNode(e.unref(n.NLayout),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NLayoutHeader),{position:"absolute"},{default:e.withCtx(()=>[e.createVNode(Me)]),_:1}),e.createVNode(e.unref(n.NLayoutContent),{class:"layout-content layout-default-background"},{default:e.withCtx(()=>[e.createElementVNode("div",Ye,[e.createVNode(Fe),e.createElementVNode("div",Xe,[e.createVNode(ze,{loading:l.value},null,8,["loading"])])])]),_:1}),e.createVNode(_,{right:20,class:"z-50"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0bac2e7d"]]),Ze={};function Ge(t,s){const l=e.resolveComponent("router-view");return e.openBlock(),e.createBlock(l)}const ee=D(M(Ze,[["render",Ge]])),te=D(Je),oe=D(e.defineComponent({__name:"PApplication",props:{theme:{},themeOverrides:{default:{common:{primaryColor:"#2d8cf0",primaryColorHover:"#3c9bff",primaryColorPressed:"#3c9bff",primaryColorSuppl:"#2d8cf0"},LoadingBar:{colorLoading:"#2d8cf0"}}}},setup(t){return(s,l)=>{const p=n.NConfigProvider;return e.openBlock(),e.createBlock(p,{locale:e.unref(n.zhCN),theme:t.theme,"theme-overrides":t.themeOverrides,"date-locale":e.unref(n.dateZhCN)},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NDialogProvider),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NNotificationProvider),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NMessageProvider),null,{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3})]),_:3})]),_:3})]),_:3},8,["locale","theme","theme-overrides","date-locale"])}}})),ne=D(e.defineComponent({__name:"PModal",props:{saveBtnText:{default:"保存"},cancelBtnText:{default:"取消"},hideCancelBtn:{type:Boolean,default:!1},hideSaveBtn:{type:Boolean,default:!1},title:{},width:{default:800},height:{default:500},visible:{type:Boolean},onSave:{},onClose:{},onAfterEnter:{},onAfterLeave:{},onUpdateVisible:{}},emits:["update:visible","update:loading"],setup(t,{expose:s,emit:l}){const p=n.useMessage(),u=e.ref(!1),i=e.ref(!1),_=l,c=t,B=async()=>{try{u.value=!0,c.onSave&&await c.onSave()&&y()}catch(d){d instanceof Error&&window.$message.error(d.message),console.error(d)}finally{u.value=!1}},y=()=>{u.value=!1,i.value=!1,_("update:visible",!1)},r=async()=>{try{i.value=!0,c.onClose?await c.onClose()&&y():y()}catch(d){p.error(d.message)}finally{i.value=!1}};return s({open:()=>{u.value=!1,i.value=!1,_("update:visible",!0)},close:y}),(d,N)=>{const S=n.NText,C=n.NButton,a=n.NSpace;return e.openBlock(),e.createBlock(e.unref(n.NModal),e.mergeProps({ref:"$modal",preset:"card"},d.$attrs,{"header-class":"bg-gray-50",show:c.visible,draggable:!0,closable:!1,"close-on-esc":!1,"mask-closable":!1,bordered:!1,style:{width:`${c.width}px`},onClose:y,onAfterEnter:c.onAfterEnter,onAfterLeave:c.onAfterLeave,onUpdateVisible:c.onUpdateVisible}),{header:e.withCtx(()=>[d.$slots.header?e.renderSlot(d.$slots,"header",{key:0}):c.title?(e.openBlock(),e.createBlock(S,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1})):e.createCommentVNode("",!0)]),"header-extra":e.withCtx(()=>[e.renderSlot(d.$slots,"header-extra")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"overflow-y-auto overflow-hidden mt-5",style:e.normalizeStyle({maxHeight:`${c.height}px`})},[e.renderSlot(d.$slots,"default")],4)]),footer:e.withCtx(()=>[e.renderSlot(d.$slots,"footer")]),action:e.withCtx(()=>[e.createVNode(a,{justify:"end"},{default:e.withCtx(()=>[c.hideSaveBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(C,{key:0,type:"primary",loading:u.value,onClick:B},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.saveBtnText),1)]),_:1},8,["loading"])),e.renderSlot(d.$slots,"action-extra"),c.hideCancelBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(C,{key:1,loading:i.value,onClick:r},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelBtnText),1)]),_:1},8,["loading"]))]),_:3})]),_:3},16,["show","style","onAfterEnter","onAfterLeave","onUpdateVisible"])}}})),ae=D(v),Qe=e.defineComponent({name:"Redirect",setup(){const t=I.useRoute(),s=I.useRouter();return e.onBeforeMount(()=>{const{params:l,query:p}=t,{path:u}=l;s.replace({path:"/"+(Array.isArray(u)?u.join("/"):u),query:p})}),()=>React.createElement(n.NEmpty,null)}}),le=D(Qe),Ue={class:"frame"},ve=["src"],se=D(M(e.defineComponent({__name:"PIframe",setup(t){const s=I.useRoute(),l=e.ref(!1),p=e.ref(null),u=e.ref("");e.unref(s.meta)?.frameSrc&&(u.value=e.unref(s.meta)?.frameSrc);function i(){l.value=!1}function _(){e.nextTick(()=>{const c=e.unref(p);if(!c)return;const B=c;B.attachEvent?B.attachEvent("onload",()=>{i()}):c.onload=()=>{i()}})}return e.onMounted(()=>{l.value=!0,_()}),(c,B)=>{const y=n.NSpin;return e.openBlock(),e.createBlock(y,{show:l.value},{default:e.withCtx(()=>[e.createElementVNode("div",Ue,[e.createElementVNode("iframe",{src:u.value,class:"frame-iframe",ref_key:"frameRef",ref:p},null,8,ve)])]),_:1},8,["show"])}}}),[["__scopeId","data-v-161a378e"]])),et={class:"border border-gray-100 rounded-lg"},tt={class:"text-xl font-semibold text-gray-800"},ot={class:"text-sm text-gray-500 mt-1"},re=D(e.defineComponent({__name:"PPage",props:{icon:{type:Object,required:!1,default:()=>T.AlertOutlined},title:{type:String,required:!0},subtitle:{type:String,required:!1}},setup(t){const s=t;return(l,p)=>{const u=n.NIcon,i=n.NAvatar,_=n.NSpace,c=n.NCard;return e.openBlock(),e.createElementBlock("div",et,[s.title?(e.openBlock(),e.createBlock(c,{key:0,class:"mb-4",bordered:!1,"content-class":"py-4"},{default:e.withCtx(()=>[e.createVNode(_,{align:"center",justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(_,{align:"center",size:16},{default:e.withCtx(()=>[s.icon?(e.openBlock(),e.createBlock(i,{key:0,size:48,class:"bg-linear-to-br from-blue-500 to-indigo-600"},{default:e.withCtx(()=>[e.createVNode(u,{size:24,component:s.icon,color:"#fff"},null,8,["component"])]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("div",tt,e.toDisplayString(s.title),1),e.createElementVNode("div",ot,e.toDisplayString(s.subtitle??s.title+"主页"),1)])]),_:1})]),_:1})]),_:1})):e.createCommentVNode("",!0),l.$slots.search?(e.openBlock(),e.createBlock(c,{key:1,class:"mb-4","content-class":"flex flex-row gap-2",bordered:!1},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"search")]),_:3})):e.createCommentVNode("",!0),l.$slots.default?(e.openBlock(),e.createBlock(c,{key:2,"content-class":"flex flex-row gap-2 p-0!",bordered:!1},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3})):e.createCommentVNode("",!0)])}}})),nt={},at={class:"flex flex-col justify-center page-container"};function lt(t,s){const l=n.NResult;return e.openBlock(),e.createElementBlock("div",at,[e.createVNode(l,{status:"500",title:"服务器错误",description:"抱歉,服务器出错了"})])}const st=M(nt,[["render",lt],["__scopeId","data-v-89cb65c7"]]),rt={},ct={class:"flex flex-col justify-center page-container"};function it(t,s){const l=n.NResult;return e.openBlock(),e.createElementBlock("div",ct,[e.createVNode(l,{status:"404",title:"资源不存在",description:"抱歉,你访问的页面不存在"})])}const dt=M(rt,[["render",it],["__scopeId","data-v-99232671"]]),ft={},pt={class:"flex flex-col justify-center page-container"};function mt(t,s){const l=n.NResult;return e.openBlock(),e.createElementBlock("div",pt,[e.createVNode(l,{status:"403",title:"禁止访问",description:"抱歉,你无权访问该页面"})])}const ut=M(ft,[["render",mt],["__scopeId","data-v-3baa9c16"]]),ce=D(st),ie=D(dt),de=D(ut),fe=Y.defineStore("app-oidc",()=>{const t=e.reactive({});return{setCallback:i=>t.callback=i,callCallback:async i=>await t.callback?.(i),setError:i=>t.error=i,callError:async(i,_)=>await t.error?.(i,_)}}),gt={class:"view-auth-callback"},pe=D(M(e.defineComponent({__name:"POidc",setup(t){const s=I.useRouter(),{callCallback:l,callError:p}=fe();return e.onMounted(async()=>{try{await l(s)}catch(u){await p(s,u)}}),(u,i)=>(e.openBlock(),e.createElementBlock("div",gt,[...i[0]||(i[0]=[e.createElementVNode("div",{class:"view-auth-callback-content"},[e.createElementVNode("div",{class:"view-auth-callback-spinner"},[e.createElementVNode("span",null,"正在处理登录回调...")])],-1)])]))}}),[["__scopeId","data-v-167395ae"]])),ht=Object.freeze(Object.defineProperty({__proto__:null,P403:de,P404:ie,P500:ce,PApplication:oe,PEmptyLayout:ee,PIframe:se,PLanguage:ae,PLayout:te,PModal:ne,POidc:pe,PPage:re,PRedirect:le,PTable:Q},Symbol.toStringTag,{value:"Module"})),me=(t,s)=>(Object.values(ht).forEach(l=>{l.install&&t.use(l)}),s?.(),t),_t={install:me};w.P403=de,w.P404=ie,w.P500=ce,w.PApplication=oe,w.PEmptyLayout=ee,w.PIframe=se,w.PLanguage=ae,w.PLayout=te,w.PModal=ne,w.POidc=pe,w.PPage=re,w.PRedirect=le,w.PTable=Q,w.default=_t,w.install=me,w.useLanguageStore=U,w.useLayoutStore=H,w.useOidcStore=fe,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
1
|
+
(function(N,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("naive-ui"),require("vue"),require("@vicons/antd"),require("pinia"),require("vue-router"),require("element-resize-detector"),require("vuedraggable")):typeof define=="function"&&define.amd?define(["exports","naive-ui","vue","@vicons/antd","pinia","vue-router","element-resize-detector","vuedraggable"],n):(N=typeof globalThis<"u"?globalThis:N||self,n(N.naiveplus={},N.naiveUi,N.Vue,N.antd,N.pinia,N.vueRouter,N.elementResizeDetectorMaker,N.Draggable))})(this,(function(N,n,e,T,Y,M,he,_e){"use strict";const ye={class:"text-lg font-medium"},be={id:"data-content"},ke={key:0,class:"rounded-lg bg-gray-50 flex flex-row gap-2 items-center justify-end p-4 mb-4"},we=e.defineComponent({__name:"PTable",props:{title:{},idField:{default:"id"},columns:{},onLoad:{},onDelete:{},onAdd:{},onEdit:{}},setup(t,{expose:s}){const a=e.ref(null),m=n.useDialog(),g=n.useMessage(),i=e.ref(!1),_=e.ref([]),c=e.ref([]),B=e.ref({page:1,itemCount:0,pageSize:10,pageSizes:[10,20,30,50],showSizePicker:!0,onChange:async b=>{B.value.page=b,await u()},onUpdatePageSize:async b=>{B.value.pageSize=b,await u()}}),y=t,r=b=>{const k=P=>{const L=[];return b&&b.forEach(O=>{O.key!=="edit"&&O.key!=="delete"&&L.push({label:O.name,key:O.key,icon:O.icon&&(()=>e.h(n.NIcon,null,{default:()=>e.h(O.icon)})),props:{onClick:()=>O.action(P)}})}),L};return{title:"操作",key:"actions",width:100,fixed:"right",render:P=>{let L=[];if(y.onEdit&&L.push({label:"编辑",key:"edit",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.EditOutlined)}),props:{onClick:async()=>await y.onEdit(P)}}),y.onDelete&&L.push({label:"删除",key:"delete",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.DeleteOutlined)}),props:{onClick:()=>C(P)}}),L=[...L,...k(P)],!(L.length<=0))return e.h(n.NDropdown,{options:L,placement:"bottom-start"},{default:()=>e.h(n.NButton,{size:"small",type:"primary"},{default:()=>["操作",e.h(n.NIcon,()=>e.h(T.MoreOutlined))]})})}}},V=e.computed(()=>{const b=y.columns.filter(P=>P.key!="action").map(P=>({title:P.title,key:P.key,width:P.width,fixed:P.fixed??!1,render:P.render,ellipsis:P.ellipsis?{tooltip:!0}:!1})),k=y.columns.reduce((P,L)=>L.key==="action"?L:P,void 0)?.action;return k&&k?.length>0||y.onEdit||y.onDelete?[{type:"selection",fixed:"left"},...b,r(k)]:[{type:"selection",fixed:"left"},...b]}),d=async()=>await u(),C=b=>x([b]),S=()=>{const b=w();x(b)},x=b=>{b&&b.length>0&&m.warning({title:"警告",content:"删除数据不可恢复, 确认删除吗?",positiveText:"确定",negativeText:"取消",onPositiveClick:async()=>{if(y.onDelete)try{await y.onDelete(b)?(u(),g.success("删除成功")):g.error("删除失败")}catch(k){g.error(k.message)}}})},w=()=>_.value?c.value.filter(k=>_.value.includes(k.id)).map(k=>e.toRaw(k)):[],E=()=>w()[0],p=()=>e.toRaw(c.value),u=async()=>{if(!i.value){i.value=!0;try{if(y.onLoad){var{items:b,totalCount:k}=await y.onLoad(B.value.page,B.value.pageSize);c.value=b,B.value.itemCount=k}}catch(P){g.error(P.message)}finally{i.value=!1}}},l=e.computed(()=>{const b=e.unref(a);if(!b)return;const k=b?.$el,P=k.querySelector(".n-data-table-thead "),{bottomIncludeBody:L}=F(P),O=48;let R=12,W=25;const z=k.querySelector(".n-data-table__pagination");if(z){const q=z.offsetHeight;R+=q||0}else R+=28;return L-(O+R+W)}),I=b=>!b||!b.getBoundingClientRect?0:b.getBoundingClientRect(),F=b=>{const k=document.documentElement,P=k.scrollLeft,L=k.scrollTop,O=k.clientLeft,R=k.clientTop,W=window.pageXOffset,z=window.pageYOffset,K=I(b),{left:q,top:X,width:J,height:o}=K,f=(W||P)-(O||0),h=(z||L)-(R||0),$=q+W,j=X+z,Z=$-f,G=j-h,ue=window.document.documentElement.clientWidth,ge=window.document.documentElement.clientHeight;return{left:Z,top:G,right:ue-J-Z,bottom:ge-o-G,rightIncludeBody:ue-Z,bottomIncludeBody:ge-G}};return e.onMounted(async()=>await u()),s({getData:p,getSelectedRow:E,getSelectedRows:w,refreshData:u,resetPage:()=>{B.value.page=1}}),(b,k)=>{const P=n.NTooltip,L=n.NSpace,O=n.NDataTable;return e.openBlock(),e.createBlock(e.unref(n.NCard),{bordered:!1},{header:e.withCtx(()=>[e.createVNode(L,{justify:"space-between",align:"center",class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("span",ye,e.toDisplayString(t.title),1),e.createVNode(L,null,{default:e.withCtx(()=>[y.onAdd?(e.openBlock(),e.createBlock(P,{key:0,trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"mr-1 cursor-pointer hover:text-blue-600",onClick:y.onAdd},{default:e.withCtx(()=>[e.createVNode(e.unref(T.PlusSquareOutlined))]),_:1},8,["onClick"])]),default:e.withCtx(()=>[k[1]||(k[1]=e.createElementVNode("span",null,"新增",-1))]),_:1})):e.createCommentVNode("",!0),y.onDelete?(e.openBlock(),e.createBlock(P,{key:1,trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"mr-1 cursor-pointer hover:text-blue-600",onClick:S},{default:e.withCtx(()=>[e.createVNode(e.unref(T.DeleteOutlined))]),_:1})]),default:e.withCtx(()=>[k[2]||(k[2]=e.createElementVNode("span",null,"删除",-1))]),_:1})):e.createCommentVNode("",!0),e.createVNode(P,{trigger:"hover"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",class:"cursor-pointer hover:text-blue-600",onClick:d},{default:e.withCtx(()=>[e.createVNode(e.unref(T.ReloadOutlined))]),_:1})]),default:e.withCtx(()=>[k[3]||(k[3]=e.createElementVNode("span",null,"刷新",-1))]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",be,[b.$slots.toolbar?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(b.$slots,"toolbar")])):e.createCommentVNode("",!0),e.createVNode(O,{remote:"",ref_key:"$table",ref:a,"checked-row-keys":_.value,"onUpdate:checkedRowKeys":k[0]||(k[0]=R=>_.value=R),"max-height":l.value,loading:i.value,bordered:!1,"single-line":!1,columns:V.value,data:c.value,pagination:B.value,"row-key":R=>R[t.idField]},null,8,["checked-row-keys","max-height","loading","columns","data","pagination","row-key"])])]),_:3})}}}),D=t=>{const s=t;return s.install=function(a){a.component(s.__name,t)},t},Q=D(we),Ne=["Redirect","RedirectSon","login"],H=Y.defineStore("p-layout",()=>{const t=e.reactive({collapsed:!1,title:"输入项目名称",logo:"https://picsum.photos/id/1/100/100",avatar:"",uid:"",uname:"",tabs:[],menus:[],cacheTabs:!1,enableLanguage:!1});return{state:t,initMenus:p=>{p.sort((u,l)=>u.affix&&!l.affix?-1:!u.affix&&l.affix?1:Number(l.sort??0)-Number(u.sort??0)),t.menus=p},getMenus:()=>t.menus,initTabs:p=>{p.sort((u,l)=>u.meta.affix&&!l.meta.affix?-1:!u.meta.affix&&l.meta.affix?1:Number(l.meta.sort??0)-Number(u.meta.sort??0)),t.tabs=p},addTab:p=>Ne.includes(p.name)?!1:(t.tabs?.some(l=>l.fullPath==p.fullPath)||t.tabs?.push(p),!0),getCurrentTab:()=>{const p=M.useRoute();return t.tabs.find(u=>u.fullPath==p.fullPath)},closeCurrentTab:p=>{const u=t.tabs.findIndex(l=>l.fullPath==p.fullPath);t.tabs.splice(u,1)},closeAllTabs:()=>{t.tabs=t.tabs.filter(p=>p?.meta?.affix??!1)},closeOtherTabs:p=>{t.tabs=t.tabs.filter(u=>u.fullPath==p.fullPath||(u?.meta?.affix??!1))},closeLeftTabs:p=>{const u=t.tabs.findIndex(l=>l.fullPath==p.fullPath);t.tabs=t.tabs.filter((l,I)=>I>=u||(l?.meta?.affix??!1))},closeRightTabs:p=>{const u=t.tabs.findIndex(l=>l.fullPath==p.fullPath);t.tabs=t.tabs.filter((l,I)=>I<=u||(l?.meta?.affix??!1))},collapse:()=>{t.collapsed=!t.collapsed},setTitle:p=>{t.title=p},setLogo:p=>{t.logo=p},setUser:(p,u)=>{t.uid=p,t.uname=u},setSettingPages:p=>{t.settingPages=p},setLogout:p=>{t.logout=p},enableLanguage:p=>{t.enableLanguage=p}}}),Ce={class:"logo"},xe=e.defineComponent({__name:"PLogo",setup(t){const s=H();return(a,m)=>(e.openBlock(),e.createElementBlock("div",Ce,[e.createVNode(e.unref(n.NAvatar),{color:"var(--color-logo)",size:32,src:e.unref(s).state.logo,class:e.normalizeClass({"mr-2":!e.unref(s).state.collapsed})},null,8,["src","class"]),e.withDirectives(e.createElementVNode("h1",{class:"font-bold ease-in-out ml-2 logo-size"},e.toDisplayString(e.unref(s).state.title),513),[[e.vShow,!e.unref(s).state.collapsed]])]))}}),A=(t,s)=>{const a=t.__vccOpts||t;for(const[m,g]of s)a[m]=g;return a},Pe=A(xe,[["__scopeId","data-v-e48aeefa"]]),Ve={translationApiUrl:"https://translate.zvo.cn/api",defaultLanguage:"chinese",currentLanguage:"",options:[],initLanguages:async()=>[],selectLanguage:async t=>{}},U=Y.defineStore("language",()=>{const t=e.ref(Ve),s=async()=>(t.value.options.length===0&&(t.value.options=await t.value.initLanguages()),t.value.options);return{select:async r=>{if(t.value.currentLanguage===r)return;const V=(await s()).find(d=>d.key===r);V&&(t.value.currentLanguage=V.key,t.value.selectLanguage(V))},selectLanguageCallback:async r=>{t.value.selectLanguage=r},initLanguagesCallback:async r=>{t.value.initLanguages=r},getLanguages:s,getCurrentLanguage:async()=>{if(t.value.currentLanguage)return(await s()).find(r=>r.key===t.value.currentLanguage)},setTranslationApiUrl:r=>{t.value.translationApiUrl=r},getTranslationApiUrl:()=>t.value.translationApiUrl,getDefaultLanguage:()=>t.value.defaultLanguage?t.value.defaultLanguage:"chinese_simplified",setDefaultLanguage:r=>{(r==="Chinese"||r==="chinese")&&(r="chinese_simplified"),t.value.defaultLanguage=r}}}),Be={key:1},v=e.defineComponent({__name:"PLanguage",setup(t){const{select:s,getLanguages:a,getCurrentLanguage:m,getDefaultLanguage:g,getTranslationApiUrl:i}=U(),_=e.ref(),c=e.ref([]),B=async r=>await s(r),y=async()=>{const r=window.translate;r&&(r.selectLanguageTag.show=!1,r.selectLanguageTag.languages=(await a()).map(V=>V.key).join(","),r.ignore.class.push("ignore-translate-flag"),r.ignore.id.push("ignore-translation"),r.language.setLocal(g()),r.request.api.translate="api/v1/translation",r.request.api.connectTest="api/v1/translation/connect-test",r.request.api.init="api/v1/translation/init",r.request.api.language="api/v1/translation/language",r.request.setHost(i()),r.request.listener.start(),r.listener.start(),r.whole.enableAll(),r.execute())};return e.onMounted(async()=>{await e.nextTick(),await y(),_.value=await m(),c.value=await a()}),(r,V)=>{const d=n.NIcon,C=n.NButton;return c.value.length>0?(e.openBlock(),e.createBlock(e.unref(n.NDropdown),{key:0,id:"ignore-translation",placement:"bottom-start",trigger:"hover",class:"flex flex-col justify-center h-full ignore",onSelect:B,options:c.value},{default:e.withCtx(()=>[e.createVNode(C,{quaternary:"",type:"info"},{default:e.withCtx(()=>[_.value?(e.openBlock(),e.createElementBlock("label",Be,e.toDisplayString(_.value?.label),1)):(e.openBlock(),e.createBlock(d,{key:0,size:"18"},{default:e.withCtx(()=>[...V[0]||(V[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[e.createElementVNode("path",{d:"M478.33 433.6l-90-218a22 22 0 0 0-40.67 0l-90 218a22 22 0 1 0 40.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 0 0 458 464a22 22 0 0 0 20.32-30.4zM334.83 362L368 281.65L401.17 362z",fill:"currentColor"}),e.createElementVNode("path",{d:"M267.84 342.92a22 22 0 0 0-4.89-30.7c-.2-.15-15-11.13-36.49-34.73c39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 0 0 0-44H214V70a22 22 0 0 0-44 0v20H54a22 22 0 0 0 0 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36c-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 0 0-40.58 17c.58 1.38 14.55 34.23 52.86 83.93c.92 1.19 1.83 2.35 2.74 3.51c-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1 0 21.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59c22.52 24.08 38 35.44 38.93 36.1a22 22 0 0 0 30.75-4.9z",fill:"currentColor"})],-1)])]),_:1}))]),_:1})]),_:1},8,["options"])):e.createCommentVNode("",!0)}}}),Se={class:"layout-header"},Le={class:"layout-header-left"},Ee={class:"link-text"},Te={key:1,class:"link-text"},$e={class:"layout-header-right"},Oe={key:0,class:"layout-header-trigger-min"},De={class:"layout-header-trigger layout-header-trigger-min"},Ie={class:"layout-header-trigger layout-header-trigger-min"},Me={class:"avatar"},Re=A(e.defineComponent({__name:"PHeader",setup(t){const s=n.useMessage(),a=n.useDialog(),m=H(),g=M.useRouter(),i=M.useRoute(),_=e.inject("reloadPage"),c=x=>g.push({name:x}),B=e.computed(()=>y(i.matched)),y=x=>x.map(w=>{const E={key:w.name,label:w.meta.title,icon:w.meta.icon,meta:w.meta,disabled:w.path==="/",children:void 0};return w.children&&w.children.length>0&&(E.children=y(w.children)),E}),r=e.ref(!1),V=()=>{document.fullscreenElement?document.exitFullscreen&&(document.exitFullscreen(),r.value=!1):(document.documentElement.requestFullscreen(),r.value=!0)},d=e.computed(()=>{const x=[];return x.push({label:"退出登录",key:"logout"}),m.state.settingPages&&m.state.settingPages.length>0&&m.state.settingPages.forEach(w=>{x.push({label:w.title,key:w.route})}),x}),C=x=>{x==="logout"?S():g.push({name:x})},S=()=>{a.info({title:"提示",content:"您确定要退出登录吗",positiveText:"确定",negativeText:"取消",onPositiveClick:async()=>{if(m.state.logout)try{await m.state.logout(),localStorage.removeItem("TABS-ROUTES"),s.error("退出成功")}catch(x){console.error(x),s.error("退出登录失败")}finally{location.reload()}else s.error("没有配置登出接口, 请配置[usePLayoutStore.logout]方法")},onNegativeClick:()=>{}})};return(x,w)=>{const E=n.NTooltip,p=n.NDivider,u=n.NAvatar;return e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("div",Le,[e.createElementVNode("div",{class:"ml-1 layout-header-trigger layout-header-trigger-min",onClick:w[0]||(w[0]=(...l)=>e.unref(m).collapse&&e.unref(m).collapse(...l))},[e.unref(m).state.collapsed?(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:0,size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.MenuUnfoldOutlined))]),_:1})):(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:1,size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.MenuFoldOutlined))]),_:1}))]),e.createElementVNode("div",{class:"mr-1 layout-header-trigger layout-header-trigger-min",onClick:w[1]||(w[1]=(...l)=>e.unref(_)&&e.unref(_)(...l))},[e.createVNode(e.unref(n.NIcon),{size:"18"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.ReloadOutlined))]),_:1})]),e.createVNode(e.unref(n.NBreadcrumb),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.label},[l.label?(e.openBlock(),e.createBlock(e.unref(n.NBreadcrumbItem),{key:0},{default:e.withCtx(()=>[l.children&&l.children.length?(e.openBlock(),e.createBlock(e.unref(n.NDropdown),{key:0,options:l.children,onSelect:c},{default:e.withCtx(()=>[e.createElementVNode("span",Ee,[l.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon),{key:0})):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(l.label),1)])]),_:2},1032,["options"])):(e.openBlock(),e.createElementBlock("span",Te,[l.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon),{key:0})):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(l.label),1)]))]),_:2},1024)):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createElementVNode("div",$e,[e.unref(m).state.enableLanguage?(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(v)])):e.createCommentVNode("",!0),e.createElementVNode("div",De,[e.createVNode(E,{placement:"bottom"},{trigger:e.withCtx(()=>[e.createVNode(e.unref(n.NIcon),{size:"18",onClick:e.withModifiers(V,["stop"])},{default:e.withCtx(()=>[r.value?(e.openBlock(),e.createBlock(e.unref(T.FullscreenExitOutlined),{key:1})):(e.openBlock(),e.createBlock(e.unref(T.FullscreenOutlined),{key:0}))]),_:1})]),default:e.withCtx(()=>[w[2]||(w[2]=e.createElementVNode("span",null,"全屏",-1))]),_:1})]),e.createElementVNode("div",Ie,[e.createVNode(e.unref(n.NDropdown),{trigger:"hover",onSelect:C,options:d.value},{default:e.withCtx(()=>[e.createElementVNode("div",Me,[e.createElementVNode("span",null,e.toDisplayString(e.unref(m).state.uname),1),e.createVNode(p,{vertical:""}),e.createVNode(u,{round:"",src:e.unref(m).state.avatar},null,8,["src"])])]),_:1},8,["options"])])])])}}}),[["__scopeId","data-v-563e4e55"]]),Ae={class:"mt-1"},ze=e.defineComponent({__name:"PContent",props:{loading:{type:Boolean,default:!1}},setup(t){return(s,a)=>{const m=e.resolveComponent("RouterView");return e.openBlock(),e.createElementBlock("div",Ae,[t.loading?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(m,{key:0},{default:e.withCtx(({Component:g,route:i})=>[(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g),{key:i.fullPath}))],1024))]),_:1}))])}}}),qe={class:"tabs-view-main"},je=["id","onClick","onContextmenu"],He={class:"tabs-close"},We={class:"tabs-close-btn"},Fe=A(e.defineComponent({__name:"PTabs",setup(t){e.useCssVars(o=>({v4f917f8c:a.value,v1c2fb72a:m.value}));const s=n.useThemeVars(),a=e.computed(()=>s.value.cardColor),m=e.computed(()=>s.value.textColor1),g=n.useMessage(),i=M.useRoute(),_=M.useRouter(),c=e.ref(null),B=e.ref(null),y=e.ref(!1),r=H(),V=e.computed(()=>r.state.tabs),d=e.reactive({activeKey:i.fullPath,scrollable:!0,dropdownX:0,dropdownY:0,showDropdown:!1,isMultiHeaderFixed:!0,multiTabsSetting:!0}),C=["Login","Redirect","ErrorPage"],S=o=>({meta:o.meta,name:o.name,fullPath:o.fullPath??o.path,path:o.path,hash:o.hash??"",query:o.query??{},params:o.params??{}}),x=e.computed(()=>{const h=r.state.collapsed?"64px":"272px";return{left:h,width:`calc(100% - ${h})`}}),w=e.computed(()=>{const o=V.value.length<=1;return[{label:"刷新当前",key:"1",icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.ReloadOutlined)})},{label:"关闭当前",key:"2",disabled:y.value||o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.CloseOutlined)})},{label:"关闭其他",key:"3",disabled:o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.ColumnWidthOutlined)})},{label:"关闭全部",key:"4",disabled:o,icon:()=>e.h(n.NIcon,null,{default:()=>e.h(T.MinusOutlined)})}]}),E=()=>{let o=[S(i)];_.getRoutes().filter(f=>f.meta.affix).forEach(f=>{const h=S(f);o.every($=>$.name!==h.name)&&o.push(h)});try{if(r.state.cacheTabs){const f=localStorage.getItem("TABS_ROUTES");o=f?JSON.parse(f):o}}finally{return o}},p=o=>{const f=_.getRoutes();o.forEach(h=>{const $=f.find(j=>j.path===h.path);$&&(h.meta=$.meta||h.meta,h.name=$.name||h.name)}),r.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(o))},u=()=>{const o=E();p(o),r.initTabs(o)},l=async o=>{if(await e.nextTick(),!c.value)return;const f=c.value.offsetWidth,h=c.value.scrollWidth;f<h?(d.scrollable=!0,o&&[...c.value.querySelectorAll(".tabs-card-scroll-item")||[]].forEach(j=>{j.id===`tag${d.activeKey.split("/").join("/")}`&&j.scrollIntoView&&j.scrollIntoView()})):d.scrollable=!1},I=o=>!(o.draggedContext.element.meta.affix||o.relatedContext.element.meta.affix),F=()=>{let o;o=he(),o.listenTo(B.value,()=>l(!0))},b=o=>{if(!o||o.fullPath===i.fullPath)return;if(d.activeKey=o.fullPath,toString.call(o)==="[object String]"){_.replace(o).catch(console.error);return}const f=o;_.replace(f).catch(console.error)},k=(o,f)=>{o.preventDefault(),y.value=f.path==="/home",d.showDropdown=!1,e.nextTick().then(()=>{d.showDropdown=!0,d.dropdownX=o.clientX,d.dropdownY=o.clientY})},P=()=>{if(i.meta.keepAlive){var o=_.currentRoute.value.matched.find(f=>f.name==i.name);o&&o.components?.default?.name}},L=o=>{if(V.value.length===1)return g.warning("这已经是最后一页,不能再关闭了!");if(P(),r.closeCurrentTab(o),d.activeKey===o.fullPath){const f=V.value[Math.max(0,V.value.length-1)];d.activeKey=f.fullPath,_.push(f)}l()},O=o=>{const f=V.value.find(h=>h.fullPath==o.fullPath);f&&L(f)},R=o=>{r.closeOtherTabs(o),d.activeKey=o.fullPath,l()},W=()=>{r.closeAllTabs(),l()},z=e.inject("reloadPage"),K=o=>{switch(o){case"1":z();break;case"2":L(i);break;case"3":R(i);break;case"4":W();break}l(),d.showDropdown=!1},q=(o,f)=>{const h=c.value.scrollLeft,$=f>0&&h+f>=o||f<0&&h+f<=o?o:h+f;if(c.value&&c.value.scrollTo($,0),$!==o)return window.requestAnimationFrame(()=>q(o,f))},X=()=>{const o=c.value.offsetWidth,f=c.value.scrollLeft;if(!f)return;const h=f>o?f-o:0;q(h,(h-f)/20)},J=()=>{const o=c.value.offsetWidth,f=c.value.scrollWidth,h=c.value.scrollLeft;if(f-h<=o)return;const $=f-h>o*2?h+o:f-o;q($,($-h)/20)};return window.addEventListener("beforeunload",()=>{r.state.cacheTabs&&localStorage.setItem("TABS_ROUTES",JSON.stringify(V.value))}),window.addEventListener("scroll",o=>{let f=o.target.scrollTop||document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;d.isMultiHeaderFixed=f>=64},!0),e.watch(()=>i.fullPath,o=>{C.includes(i.name)||(d.activeKey=o,r.addTab(S(i)),l(!0))},{immediate:!0}),u(),e.onMounted(()=>F()),(o,f)=>(e.openBlock(),e.createElementBlock("div",{class:"box-border tabs-view tabs-view-fix tabs-view-default-background",style:e.normalizeStyle(x.value)},[e.createElementVNode("div",qe,[e.createElementVNode("div",{ref_key:"navWrap",ref:B,class:e.normalizeClass(["tabs-card",{"tabs-card-scrollable":d.scrollable}])},[e.createElementVNode("span",{class:e.normalizeClass(["tabs-card-prev",{"tabs-card-prev-hide":!d.scrollable}]),onClick:X},[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.LeftOutlined))]),_:1})],2),e.createElementVNode("span",{class:e.normalizeClass(["tabs-card-next",{"tabs-card-next-hide":!d.scrollable}]),onClick:J},[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.RightOutlined))]),_:1})],2),e.createElementVNode("div",{ref_key:"navScroll",ref:c,class:"tabs-card-scroll"},[e.createVNode(e.unref(_e),{animation:"300","item-key":"fullPath",class:"flex",list:V.value,move:I},{item:e.withCtx(({element:h})=>[e.createElementVNode("div",{class:e.normalizeClass(["tabs-card-scroll-item",{"active-item":d.activeKey===h.fullPath}]),id:`tag${h.fullPath.split("/").join("/")}`,onClick:e.withModifiers($=>b(h),["stop"]),onContextmenu:$=>k($,h)},[e.createElementVNode("span",null,e.toDisplayString(h.meta.title),1),h.meta.affix?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(n.NIcon),{key:0,size:"14",onClick:e.withModifiers($=>O(h),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(T.CloseOutlined))]),_:1},8,["onClick"]))],42,je)]),_:1},8,["list"])],512)],2),e.createElementVNode("div",He,[e.createVNode(e.unref(n.NDropdown),{trigger:"hover",placement:"bottom-end",options:w.value,onSelect:K},{default:e.withCtx(()=>[e.createElementVNode("div",We,[e.createVNode(e.unref(n.NIcon),{size:"16",color:"#515a6e"},{default:e.withCtx(()=>[e.createVNode(e.unref(T.DownOutlined))]),_:1})])]),_:1},8,["options"])]),e.createVNode(e.unref(n.NDropdown),{placement:"bottom-start",show:d.showDropdown,x:d.dropdownX,y:d.dropdownY,options:w.value,onClickoutside:f[0]||(f[0]=h=>d.showDropdown=!1),onSelect:K},null,8,["show","x","y","options"])])],4))}}),[["__scopeId","data-v-50f5202c"]]),Ke=e.defineComponent({__name:"PMenus",setup(t){const s=e.ref([]),a=M.useRoute(),m=M.useRouter(),g=H(),i=e.ref(a.name),_=e.ref(a.matched&&a.matched.length?a.matched.map(C=>C.name):[]),c=C=>{a.name!==C&&(/http(s)?:/.test(C)?window.open(C):m.push({name:C}))},B=C=>{if(!C)return;const S=C.find(x=>_.value.indexOf(x)===-1);_.value=S?[S]:[]},y=()=>{const C=a.matched;_.value=C.map(x=>x.name);const S=a.meta?.activeMenu||"";i.value=S||a.name},r=["/:path(.*)*","/redirect","/redirect/:path(.*)","/login","/oidc-callback"],V=(C,S=[],x=!1)=>{const w=[];if(!C||C.length===0)return w;C=C.sort((E,p)=>{let u=(p.children?.length?1:0)-(E.children?.length?1:0);return u===0&&(u=Number(E.meta?.sort??0)-Number(p.meta?.sort??0)),u});for(const E of C){if(x||E.meta?.hidden||r.includes(E.path.toLowerCase())){S.push(E.name),V(E.children||[],S,!0);continue}const p=E.children?.filter(F=>!F.meta?.hidden)||[],u=p.length===1,l=u?p[0]:E,I={key:l.name,label:l.meta?.title,affix:l.meta?.affix,sort:Number(u?E.meta?.sort??0:l.meta?.sort??0),path:l.path,redirect:l.redirect,icon:u?E.meta?.icon:l.meta?.icon,permission:l.meta?.permission,meta:l.meta,children:void 0};if(l.children&&l.children.length>0&&(I.children=V(l.children,S,x),!u&&(!I.children||I.children.length===0))){S.push(l.name);continue}S.includes(l.name)||(w.push(I),S.push(l.name))}return w},d=()=>{const C=m.getRoutes();s.value=V(C)};return e.watch(()=>a.fullPath,()=>{y()}),e.onMounted(()=>{d(),y()}),(C,S)=>(e.openBlock(),e.createBlock(e.unref(n.NMenu),{class:"h-full",inverted:"",mode:"vertical",options:s.value,collapsed:e.unref(g).state.collapsed,"collapsed-width":64,"collapsed-icon-size":20,indent:24,"expanded-keys":_.value,value:i.value,"onUpdate:value":c,"onUpdate:expandedKeys":B},null,8,["options","collapsed","expanded-keys","value"]))}}),Ye={class:"layout-content-main layout-content-main-fix"},Xe={class:"main-view main-view-fix"},Je=A(e.defineComponent({__name:"PLayout",setup(t){const s=H(),a=e.ref(!1),m=()=>{a.value=!0,e.nextTick(()=>a.value=!1)};return e.provide("reloadPage",m),(g,i)=>{const _=n.NBackTop;return e.openBlock(),e.createBlock(e.unref(n.NLayout),{"has-sider":"",class:"layout",position:"absolute"},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NLayoutSider),{class:"layout-sider",inverted:"","show-trigger":"bar",position:"absolute","collapse-mode":"width","trigger-class":"!-right-5","collapsed-trigger-class":"!-right-5",collapsed:e.unref(s).state.collapsed,"native-scrollbar":!1,"collapsed-width":64,onCollapse:e.unref(s).collapse,onExpand:e.unref(s).collapse},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NFlex),{vertical:""},{default:e.withCtx(()=>[e.createVNode(Pe),e.createVNode(Ke)]),_:1})]),_:1},8,["collapsed","onCollapse","onExpand"]),e.createVNode(e.unref(n.NLayout),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NLayoutHeader),{position:"absolute"},{default:e.withCtx(()=>[e.createVNode(Re)]),_:1}),e.createVNode(e.unref(n.NLayoutContent),{class:"layout-content layout-default-background"},{default:e.withCtx(()=>[e.createElementVNode("div",Ye,[e.createVNode(Fe),e.createElementVNode("div",Xe,[e.createVNode(ze,{loading:a.value},null,8,["loading"])])])]),_:1}),e.createVNode(_,{right:20,class:"z-50"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0bac2e7d"]]),Ze={};function Ge(t,s){const a=e.resolveComponent("router-view");return e.openBlock(),e.createBlock(a)}const ee=D(A(Ze,[["render",Ge]])),te=D(Je),oe=D(e.defineComponent({__name:"PApplication",props:{theme:{},themeOverrides:{default:{common:{primaryColor:"#2d8cf0",primaryColorHover:"#3c9bff",primaryColorPressed:"#3c9bff",primaryColorSuppl:"#2d8cf0"},LoadingBar:{colorLoading:"#2d8cf0"}}}},setup(t){return(s,a)=>{const m=n.NConfigProvider;return e.openBlock(),e.createBlock(m,{locale:e.unref(n.zhCN),theme:t.theme,"theme-overrides":t.themeOverrides,"date-locale":e.unref(n.dateZhCN)},{default:e.withCtx(()=>[e.createVNode(e.unref(n.NDialogProvider),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NNotificationProvider),null,{default:e.withCtx(()=>[e.createVNode(e.unref(n.NMessageProvider),null,{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3})]),_:3})]),_:3})]),_:3},8,["locale","theme","theme-overrides","date-locale"])}}})),ne=D(e.defineComponent({__name:"PModal",props:{saveBtnText:{default:"保存"},cancelBtnText:{default:"取消"},hideCancelBtn:{type:Boolean,default:!1},hideSaveBtn:{type:Boolean,default:!1},title:{},width:{default:800},height:{default:500},visible:{type:Boolean},onSave:{},onClose:{},onAfterEnter:{},onAfterLeave:{},onUpdateVisible:{}},emits:["update:visible","update:loading"],setup(t,{expose:s,emit:a}){const m=n.useMessage(),g=e.ref(!1),i=e.ref(!1),_=a,c=t,B=async()=>{try{g.value=!0,c.onSave&&await c.onSave()&&y()}catch(d){d instanceof Error&&m.error(d.message),console.error(d)}finally{g.value=!1}},y=()=>{g.value=!1,i.value=!1,_("update:visible",!1)},r=async()=>{try{i.value=!0,c.onClose?await c.onClose()&&y():y()}catch(d){m.error(d.message)}finally{i.value=!1}};return s({open:()=>{g.value=!1,i.value=!1,_("update:visible",!0)},close:y}),(d,C)=>{const S=n.NText,x=n.NButton,w=n.NSpace;return e.openBlock(),e.createBlock(e.unref(n.NModal),e.mergeProps({ref:"$modal",preset:"card"},d.$attrs,{"header-class":"bg-gray-50",show:c.visible,draggable:!0,closable:!1,"close-on-esc":!1,"mask-closable":!1,bordered:!1,style:{width:`${c.width}px`},onClose:y,onAfterEnter:c.onAfterEnter,onAfterLeave:c.onAfterLeave,onUpdateVisible:c.onUpdateVisible}),{header:e.withCtx(()=>[d.$slots.header?e.renderSlot(d.$slots,"header",{key:0}):c.title?(e.openBlock(),e.createBlock(S,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1})):e.createCommentVNode("",!0)]),"header-extra":e.withCtx(()=>[e.renderSlot(d.$slots,"header-extra")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"overflow-y-auto overflow-hidden mt-5",style:e.normalizeStyle({maxHeight:`${c.height}px`})},[e.renderSlot(d.$slots,"default")],4)]),footer:e.withCtx(()=>[e.renderSlot(d.$slots,"footer")]),action:e.withCtx(()=>[e.createVNode(w,{justify:"end"},{default:e.withCtx(()=>[c.hideSaveBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(x,{key:0,type:"primary",loading:g.value,onClick:B},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.saveBtnText),1)]),_:1},8,["loading"])),e.renderSlot(d.$slots,"action-extra"),c.hideCancelBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(x,{key:1,loading:i.value,onClick:r},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelBtnText),1)]),_:1},8,["loading"]))]),_:3})]),_:3},16,["show","style","onAfterEnter","onAfterLeave","onUpdateVisible"])}}})),ae=D(v),Qe=e.defineComponent({name:"Redirect",setup(){const t=M.useRoute(),s=M.useRouter();return e.onBeforeMount(()=>{const{params:a,query:m}=t,{path:g}=a;s.replace({path:"/"+(Array.isArray(g)?g.join("/"):g),query:m})}),()=>React.createElement(n.NEmpty,null)}}),le=D(Qe),Ue={class:"frame"},ve=["src"],se=D(A(e.defineComponent({__name:"PIframe",setup(t){const s=M.useRoute(),a=e.ref(!1),m=e.ref(null),g=e.ref("");e.unref(s.meta)?.frameSrc&&(g.value=e.unref(s.meta)?.frameSrc);function i(){a.value=!1}function _(){e.nextTick(()=>{const c=e.unref(m);if(!c)return;const B=c;B.attachEvent?B.attachEvent("onload",()=>{i()}):c.onload=()=>{i()}})}return e.onMounted(()=>{a.value=!0,_()}),(c,B)=>{const y=n.NSpin;return e.openBlock(),e.createBlock(y,{show:a.value},{default:e.withCtx(()=>[e.createElementVNode("div",Ue,[e.createElementVNode("iframe",{src:g.value,class:"frame-iframe",ref_key:"frameRef",ref:m},null,8,ve)])]),_:1},8,["show"])}}}),[["__scopeId","data-v-161a378e"]])),et={class:"border border-gray-100 rounded-lg"},tt={class:"text-xl font-semibold text-gray-800"},ot={class:"text-sm text-gray-500 mt-1"},re=D(e.defineComponent({__name:"PPage",props:{icon:{type:Object,required:!1,default:()=>T.AlertOutlined},title:{type:String,required:!0},subtitle:{type:String,required:!1}},setup(t){const s=t;return(a,m)=>{const g=n.NIcon,i=n.NAvatar,_=n.NSpace,c=n.NCard;return e.openBlock(),e.createElementBlock("div",et,[s.title?(e.openBlock(),e.createBlock(c,{key:0,class:"mb-4",bordered:!1,"content-class":"py-4"},{default:e.withCtx(()=>[e.createVNode(_,{align:"center",justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(_,{align:"center",size:16},{default:e.withCtx(()=>[s.icon?(e.openBlock(),e.createBlock(i,{key:0,size:48,class:"bg-linear-to-br from-blue-500 to-indigo-600"},{default:e.withCtx(()=>[e.createVNode(g,{size:24,component:s.icon,color:"#fff"},null,8,["component"])]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("div",tt,e.toDisplayString(s.title),1),e.createElementVNode("div",ot,e.toDisplayString(s.subtitle??s.title+"主页"),1)])]),_:1})]),_:1})]),_:1})):e.createCommentVNode("",!0),a.$slots.search?(e.openBlock(),e.createBlock(c,{key:1,class:"mb-4","content-class":"flex flex-row gap-2",bordered:!1},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"search")]),_:3})):e.createCommentVNode("",!0),a.$slots.default?(e.openBlock(),e.createBlock(c,{key:2,"content-class":"flex flex-row gap-2 p-0!",bordered:!1},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3})):e.createCommentVNode("",!0)])}}})),nt={},at={class:"flex flex-col justify-center page-container"};function lt(t,s){const a=n.NResult;return e.openBlock(),e.createElementBlock("div",at,[e.createVNode(a,{status:"500",title:"服务器错误",description:"抱歉,服务器出错了"})])}const st=A(nt,[["render",lt],["__scopeId","data-v-89cb65c7"]]),rt={},ct={class:"flex flex-col justify-center page-container"};function it(t,s){const a=n.NResult;return e.openBlock(),e.createElementBlock("div",ct,[e.createVNode(a,{status:"404",title:"资源不存在",description:"抱歉,你访问的页面不存在"})])}const dt=A(rt,[["render",it],["__scopeId","data-v-99232671"]]),ft={},pt={class:"flex flex-col justify-center page-container"};function mt(t,s){const a=n.NResult;return e.openBlock(),e.createElementBlock("div",pt,[e.createVNode(a,{status:"403",title:"禁止访问",description:"抱歉,你无权访问该页面"})])}const ut=A(ft,[["render",mt],["__scopeId","data-v-3baa9c16"]]),ce=D(st),ie=D(dt),de=D(ut),fe=Y.defineStore("app-oidc",()=>{const t=e.reactive({});return{setCallback:i=>t.callback=i,callCallback:async i=>await t.callback?.(i),setError:i=>t.error=i,callError:async(i,_)=>await t.error?.(i,_)}}),gt={class:"view-auth-callback"},pe=D(A(e.defineComponent({__name:"POidc",setup(t){const s=M.useRouter(),{callCallback:a,callError:m}=fe();return e.onMounted(async()=>{try{await a(s)}catch(g){await m(s,g)}}),(g,i)=>(e.openBlock(),e.createElementBlock("div",gt,[...i[0]||(i[0]=[e.createElementVNode("div",{class:"view-auth-callback-content"},[e.createElementVNode("div",{class:"view-auth-callback-spinner"},[e.createElementVNode("span",null,"正在处理登录回调...")])],-1)])]))}}),[["__scopeId","data-v-167395ae"]])),ht=Object.freeze(Object.defineProperty({__proto__:null,P403:de,P404:ie,P500:ce,PApplication:oe,PEmptyLayout:ee,PIframe:se,PLanguage:ae,PLayout:te,PModal:ne,POidc:pe,PPage:re,PRedirect:le,PTable:Q},Symbol.toStringTag,{value:"Module"})),me=(t,s)=>(Object.values(ht).forEach(a=>{a.install&&t.use(a)}),s?.(),t),_t={install:me};N.P403=de,N.P404=ie,N.P500=ce,N.PApplication=oe,N.PEmptyLayout=ee,N.PIframe=se,N.PLanguage=ae,N.PLayout=te,N.PModal=ne,N.POidc=pe,N.PPage=re,N.PRedirect=le,N.PTable=Q,N.default=_t,N.install=me,N.useLanguageStore=U,N.useLayoutStore=H,N.useOidcStore=fe,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/es/layout/store.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { LayoutState, RouteItem } from './typing';
|
|
1
|
+
import { LayoutState, MenuItem, RouteItem } from './typing';
|
|
2
2
|
export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout", Pick<{
|
|
3
3
|
state: LayoutState;
|
|
4
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
5
|
+
getMenus: () => MenuItem[];
|
|
4
6
|
initTabs: (routes: RouteItem[]) => void;
|
|
5
7
|
addTab: (route: RouteItem) => boolean;
|
|
6
8
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -21,6 +23,8 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
21
23
|
enableLanguage: (enable: boolean) => void;
|
|
22
24
|
}, "state">, Pick<{
|
|
23
25
|
state: LayoutState;
|
|
26
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
27
|
+
getMenus: () => MenuItem[];
|
|
24
28
|
initTabs: (routes: RouteItem[]) => void;
|
|
25
29
|
addTab: (route: RouteItem) => boolean;
|
|
26
30
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -41,6 +45,8 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
41
45
|
enableLanguage: (enable: boolean) => void;
|
|
42
46
|
}, never>, Pick<{
|
|
43
47
|
state: LayoutState;
|
|
48
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
49
|
+
getMenus: () => MenuItem[];
|
|
44
50
|
initTabs: (routes: RouteItem[]) => void;
|
|
45
51
|
addTab: (route: RouteItem) => boolean;
|
|
46
52
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -59,4 +65,4 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
59
65
|
}[]) => void;
|
|
60
66
|
setLogout: (logout: () => Promise<void>) => void;
|
|
61
67
|
enableLanguage: (enable: boolean) => void;
|
|
62
|
-
}, "initTabs" | "addTab" | "getCurrentTab" | "closeCurrentTab" | "closeAllTabs" | "closeOtherTabs" | "closeLeftTabs" | "closeRightTabs" | "collapse" | "setTitle" | "setLogo" | "setUser" | "setSettingPages" | "setLogout" | "enableLanguage">>;
|
|
68
|
+
}, "initMenus" | "getMenus" | "initTabs" | "addTab" | "getCurrentTab" | "closeCurrentTab" | "closeAllTabs" | "closeOtherTabs" | "closeLeftTabs" | "closeRightTabs" | "collapse" | "setTitle" | "setLogo" | "setUser" | "setSettingPages" | "setLogout" | "enableLanguage">>;
|
package/es/layout/store.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineStore as
|
|
2
|
-
import { reactive as
|
|
1
|
+
import { defineStore as l } from "pinia";
|
|
2
|
+
import { reactive as o } from "vue";
|
|
3
3
|
import { useRoute as i } from "vue-router";
|
|
4
|
-
const f = ["Redirect", "RedirectSon", "login"], y =
|
|
4
|
+
const f = ["Redirect", "RedirectSon", "login"], y = l(
|
|
5
5
|
"p-layout",
|
|
6
6
|
() => {
|
|
7
|
-
const e =
|
|
7
|
+
const e = o({
|
|
8
8
|
collapsed: !1,
|
|
9
9
|
title: "输入项目名称",
|
|
10
10
|
logo: "https://picsum.photos/id/1/100/100",
|
|
@@ -12,11 +12,16 @@ const f = ["Redirect", "RedirectSon", "login"], y = o(
|
|
|
12
12
|
uid: "",
|
|
13
13
|
uname: "",
|
|
14
14
|
tabs: [],
|
|
15
|
+
menus: [],
|
|
15
16
|
cacheTabs: !1,
|
|
16
17
|
enableLanguage: !1
|
|
17
18
|
});
|
|
18
19
|
return {
|
|
19
20
|
state: e,
|
|
21
|
+
initMenus: (t) => {
|
|
22
|
+
t.sort((s, a) => s.affix && !a.affix ? -1 : !s.affix && a.affix ? 1 : Number(a.sort ?? 0) - Number(s.sort ?? 0)), e.menus = t;
|
|
23
|
+
},
|
|
24
|
+
getMenus: () => e.menus,
|
|
20
25
|
initTabs: (t) => {
|
|
21
26
|
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
27
|
},
|
|
@@ -46,7 +51,7 @@ const f = ["Redirect", "RedirectSon", "login"], y = o(
|
|
|
46
51
|
(a) => a.fullPath == t.fullPath
|
|
47
52
|
);
|
|
48
53
|
e.tabs = e.tabs.filter(
|
|
49
|
-
(a,
|
|
54
|
+
(a, n) => n >= s || (a?.meta?.affix ?? !1)
|
|
50
55
|
);
|
|
51
56
|
},
|
|
52
57
|
closeRightTabs: (t) => {
|
|
@@ -54,7 +59,7 @@ const f = ["Redirect", "RedirectSon", "login"], y = o(
|
|
|
54
59
|
(a) => a.fullPath == t.fullPath
|
|
55
60
|
);
|
|
56
61
|
e.tabs = e.tabs.filter(
|
|
57
|
-
(a,
|
|
62
|
+
(a, n) => n <= s || (a?.meta?.affix ?? !1)
|
|
58
63
|
);
|
|
59
64
|
},
|
|
60
65
|
collapse: () => {
|
package/es/layout/typing.d.ts
CHANGED
|
@@ -2,6 +2,18 @@ import { RouteLocationNormalized } from 'vue-router';
|
|
|
2
2
|
export type RouteItem = Partial<RouteLocationNormalized> & {
|
|
3
3
|
meta: object;
|
|
4
4
|
};
|
|
5
|
+
export type MenuItem = {
|
|
6
|
+
key: string;
|
|
7
|
+
title: string;
|
|
8
|
+
icon: any;
|
|
9
|
+
affix: boolean;
|
|
10
|
+
path: string;
|
|
11
|
+
redirect: string;
|
|
12
|
+
sort: number;
|
|
13
|
+
meta: Record<string, any>;
|
|
14
|
+
permission: string;
|
|
15
|
+
children?: MenuItem[];
|
|
16
|
+
};
|
|
5
17
|
export type LayoutState = {
|
|
6
18
|
title: string;
|
|
7
19
|
logo: string;
|
|
@@ -10,6 +22,7 @@ export type LayoutState = {
|
|
|
10
22
|
avatar: string;
|
|
11
23
|
collapsed: boolean;
|
|
12
24
|
tabs: RouteItem[];
|
|
25
|
+
menus: MenuItem[];
|
|
13
26
|
cacheTabs: boolean;
|
|
14
27
|
settingPages?: {
|
|
15
28
|
route: string;
|
package/es/modal/PModal.vue.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useMessage as
|
|
2
|
-
import { defineComponent as N, ref as
|
|
1
|
+
import { useMessage as w, NModal as x, NSpace as S, NButton as k, NText as A } from "naive-ui";
|
|
2
|
+
import { defineComponent as N, ref as h, openBlock as i, createBlock as d, unref as V, mergeProps as _, withCtx as a, createVNode as E, createTextVNode as f, toDisplayString as c, createCommentVNode as u, renderSlot as s, createElementVNode as L, normalizeStyle as T } from "vue";
|
|
3
3
|
const z = /* @__PURE__ */ N({
|
|
4
4
|
__name: "PModal",
|
|
5
5
|
props: {
|
|
@@ -18,33 +18,33 @@ const z = /* @__PURE__ */ N({
|
|
|
18
18
|
onUpdateVisible: {}
|
|
19
19
|
},
|
|
20
20
|
emits: ["update:visible", "update:loading"],
|
|
21
|
-
setup(r, { expose:
|
|
22
|
-
const
|
|
21
|
+
setup(r, { expose: y, emit: g }) {
|
|
22
|
+
const v = w(), o = h(!1), l = h(!1), p = g, t = r, b = async () => {
|
|
23
23
|
try {
|
|
24
|
-
o.value = !0, t.onSave && await t.onSave() &&
|
|
24
|
+
o.value = !0, t.onSave && await t.onSave() && n();
|
|
25
25
|
} catch (e) {
|
|
26
|
-
e instanceof Error &&
|
|
26
|
+
e instanceof Error && v.error(e.message), console.error(e);
|
|
27
27
|
} finally {
|
|
28
28
|
o.value = !1;
|
|
29
29
|
}
|
|
30
|
-
},
|
|
31
|
-
o.value = !1, l.value = !1,
|
|
30
|
+
}, n = () => {
|
|
31
|
+
o.value = !1, l.value = !1, p("update:visible", !1);
|
|
32
32
|
}, B = async () => {
|
|
33
33
|
try {
|
|
34
|
-
l.value = !0, t.onClose ? await t.onClose() &&
|
|
34
|
+
l.value = !0, t.onClose ? await t.onClose() && n() : n();
|
|
35
35
|
} catch (e) {
|
|
36
|
-
|
|
36
|
+
v.error(e.message);
|
|
37
37
|
} finally {
|
|
38
38
|
l.value = !1;
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
return
|
|
41
|
+
return y({
|
|
42
42
|
open: () => {
|
|
43
|
-
o.value = !1, l.value = !1,
|
|
43
|
+
o.value = !1, l.value = !1, p("update:visible", !0);
|
|
44
44
|
},
|
|
45
|
-
close:
|
|
45
|
+
close: n
|
|
46
46
|
}), (e, M) => {
|
|
47
|
-
const C = A,
|
|
47
|
+
const C = A, m = k, $ = S;
|
|
48
48
|
return i(), d(V(x), _({
|
|
49
49
|
ref: "$modal",
|
|
50
50
|
preset: "card"
|
|
@@ -57,13 +57,13 @@ const z = /* @__PURE__ */ N({
|
|
|
57
57
|
"mask-closable": !1,
|
|
58
58
|
bordered: !1,
|
|
59
59
|
style: { width: `${t.width}px` },
|
|
60
|
-
onClose:
|
|
60
|
+
onClose: n,
|
|
61
61
|
onAfterEnter: t.onAfterEnter,
|
|
62
62
|
onAfterLeave: t.onAfterLeave,
|
|
63
63
|
onUpdateVisible: t.onUpdateVisible
|
|
64
64
|
}), {
|
|
65
65
|
header: a(() => [
|
|
66
|
-
e.$slots.header ?
|
|
66
|
+
e.$slots.header ? s(e.$slots, "header", { key: 0 }) : t.title ? (i(), d(C, { key: 1 }, {
|
|
67
67
|
default: a(() => [
|
|
68
68
|
f(c(r.title), 1)
|
|
69
69
|
]),
|
|
@@ -71,23 +71,23 @@ const z = /* @__PURE__ */ N({
|
|
|
71
71
|
})) : u("", !0)
|
|
72
72
|
]),
|
|
73
73
|
"header-extra": a(() => [
|
|
74
|
-
|
|
74
|
+
s(e.$slots, "header-extra")
|
|
75
75
|
]),
|
|
76
76
|
default: a(() => [
|
|
77
77
|
L("div", {
|
|
78
78
|
class: "overflow-y-auto overflow-hidden mt-5",
|
|
79
79
|
style: T({ maxHeight: `${t.height}px` })
|
|
80
80
|
}, [
|
|
81
|
-
|
|
81
|
+
s(e.$slots, "default")
|
|
82
82
|
], 4)
|
|
83
83
|
]),
|
|
84
84
|
footer: a(() => [
|
|
85
|
-
|
|
85
|
+
s(e.$slots, "footer")
|
|
86
86
|
]),
|
|
87
87
|
action: a(() => [
|
|
88
|
-
E(
|
|
88
|
+
E($, { justify: "end" }, {
|
|
89
89
|
default: a(() => [
|
|
90
|
-
t.hideSaveBtn ? u("", !0) : (i(), d(
|
|
90
|
+
t.hideSaveBtn ? u("", !0) : (i(), d(m, {
|
|
91
91
|
key: 0,
|
|
92
92
|
type: "primary",
|
|
93
93
|
loading: o.value,
|
|
@@ -98,8 +98,8 @@ const z = /* @__PURE__ */ N({
|
|
|
98
98
|
]),
|
|
99
99
|
_: 1
|
|
100
100
|
}, 8, ["loading"])),
|
|
101
|
-
|
|
102
|
-
t.hideCancelBtn ? u("", !0) : (i(), d(
|
|
101
|
+
s(e.$slots, "action-extra"),
|
|
102
|
+
t.hideCancelBtn ? u("", !0) : (i(), d(m, {
|
|
103
103
|
key: 1,
|
|
104
104
|
loading: l.value,
|
|
105
105
|
onClick: B
|
package/lib/layout/store.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("pinia"),o=require("vue"),i=require("vue-router"),u=["Redirect","RedirectSon","login"],r=l.defineStore("p-layout",()=>{const e=o.reactive({collapsed:!1,title:"输入项目名称",logo:"https://picsum.photos/id/1/100/100",avatar:"",uid:"",uname:"",tabs:[],menus:[],cacheTabs:!1,enableLanguage:!1});return{state:e,initMenus:t=>{t.sort((s,a)=>s.affix&&!a.affix?-1:!s.affix&&a.affix?1:Number(a.sort??0)-Number(s.sort??0)),e.menus=t},getMenus:()=>e.menus,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,n)=>n>=s||(a?.meta?.affix??!1))},closeRightTabs:t=>{const s=e.tabs.findIndex(a=>a.fullPath==t.fullPath);e.tabs=e.tabs.filter((a,n)=>n<=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=r;
|
package/lib/layout/store.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { LayoutState, RouteItem } from './typing';
|
|
1
|
+
import { LayoutState, MenuItem, RouteItem } from './typing';
|
|
2
2
|
export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout", Pick<{
|
|
3
3
|
state: LayoutState;
|
|
4
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
5
|
+
getMenus: () => MenuItem[];
|
|
4
6
|
initTabs: (routes: RouteItem[]) => void;
|
|
5
7
|
addTab: (route: RouteItem) => boolean;
|
|
6
8
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -21,6 +23,8 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
21
23
|
enableLanguage: (enable: boolean) => void;
|
|
22
24
|
}, "state">, Pick<{
|
|
23
25
|
state: LayoutState;
|
|
26
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
27
|
+
getMenus: () => MenuItem[];
|
|
24
28
|
initTabs: (routes: RouteItem[]) => void;
|
|
25
29
|
addTab: (route: RouteItem) => boolean;
|
|
26
30
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -41,6 +45,8 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
41
45
|
enableLanguage: (enable: boolean) => void;
|
|
42
46
|
}, never>, Pick<{
|
|
43
47
|
state: LayoutState;
|
|
48
|
+
initMenus: (menus: MenuItem[]) => void;
|
|
49
|
+
getMenus: () => MenuItem[];
|
|
44
50
|
initTabs: (routes: RouteItem[]) => void;
|
|
45
51
|
addTab: (route: RouteItem) => boolean;
|
|
46
52
|
getCurrentTab: () => RouteItem | undefined;
|
|
@@ -59,4 +65,4 @@ export declare const useLayoutStore: import('pinia').StoreDefinition<"p-layout",
|
|
|
59
65
|
}[]) => void;
|
|
60
66
|
setLogout: (logout: () => Promise<void>) => void;
|
|
61
67
|
enableLanguage: (enable: boolean) => void;
|
|
62
|
-
}, "initTabs" | "addTab" | "getCurrentTab" | "closeCurrentTab" | "closeAllTabs" | "closeOtherTabs" | "closeLeftTabs" | "closeRightTabs" | "collapse" | "setTitle" | "setLogo" | "setUser" | "setSettingPages" | "setLogout" | "enableLanguage">>;
|
|
68
|
+
}, "initMenus" | "getMenus" | "initTabs" | "addTab" | "getCurrentTab" | "closeCurrentTab" | "closeAllTabs" | "closeOtherTabs" | "closeLeftTabs" | "closeRightTabs" | "collapse" | "setTitle" | "setLogo" | "setUser" | "setSettingPages" | "setLogout" | "enableLanguage">>;
|
package/lib/layout/typing.d.ts
CHANGED
|
@@ -2,6 +2,18 @@ import { RouteLocationNormalized } from 'vue-router';
|
|
|
2
2
|
export type RouteItem = Partial<RouteLocationNormalized> & {
|
|
3
3
|
meta: object;
|
|
4
4
|
};
|
|
5
|
+
export type MenuItem = {
|
|
6
|
+
key: string;
|
|
7
|
+
title: string;
|
|
8
|
+
icon: any;
|
|
9
|
+
affix: boolean;
|
|
10
|
+
path: string;
|
|
11
|
+
redirect: string;
|
|
12
|
+
sort: number;
|
|
13
|
+
meta: Record<string, any>;
|
|
14
|
+
permission: string;
|
|
15
|
+
children?: MenuItem[];
|
|
16
|
+
};
|
|
5
17
|
export type LayoutState = {
|
|
6
18
|
title: string;
|
|
7
19
|
logo: string;
|
|
@@ -10,6 +22,7 @@ export type LayoutState = {
|
|
|
10
22
|
avatar: string;
|
|
11
23
|
collapsed: boolean;
|
|
12
24
|
tabs: RouteItem[];
|
|
25
|
+
menus: MenuItem[];
|
|
13
26
|
cacheTabs: boolean;
|
|
14
27
|
settingPages?: {
|
|
15
28
|
route: string;
|
package/lib/modal/PModal.vue.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("naive-ui"),e=require("vue"),y=e.defineComponent({__name:"PModal",props:{saveBtnText:{default:"保存"},cancelBtnText:{default:"取消"},hideCancelBtn:{type:Boolean,default:!1},hideSaveBtn:{type:Boolean,default:!1},title:{},width:{default:800},height:{default:500},visible:{type:Boolean},onSave:{},onClose:{},onAfterEnter:{},onAfterLeave:{},onUpdateVisible:{}},emits:["update:visible","update:loading"],setup(r,{expose:
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("naive-ui"),e=require("vue"),y=e.defineComponent({__name:"PModal",props:{saveBtnText:{default:"保存"},cancelBtnText:{default:"取消"},hideCancelBtn:{type:Boolean,default:!1},hideSaveBtn:{type:Boolean,default:!1},title:{},width:{default:800},height:{default:500},visible:{type:Boolean},onSave:{},onClose:{},onAfterEnter:{},onAfterLeave:{},onUpdateVisible:{}},emits:["update:visible","update:loading"],setup(r,{expose:f,emit:u}){const i=s.useMessage(),a=e.ref(!1),l=e.ref(!1),d=u,o=r,v=async()=>{try{a.value=!0,o.onSave&&await o.onSave()&&n()}catch(t){t instanceof Error&&i.error(t.message),console.error(t)}finally{a.value=!1}},n=()=>{a.value=!1,l.value=!1,d("update:visible",!1)},h=async()=>{try{l.value=!0,o.onClose?await o.onClose()&&n():n()}catch(t){i.error(t.message)}finally{l.value=!1}};return f({open:()=>{a.value=!1,l.value=!1,d("update:visible",!0)},close:n}),(t,C)=>{const p=s.NText,c=s.NButton,m=s.NSpace;return e.openBlock(),e.createBlock(e.unref(s.NModal),e.mergeProps({ref:"$modal",preset:"card"},t.$attrs,{"header-class":"bg-gray-50",show:o.visible,draggable:!0,closable:!1,"close-on-esc":!1,"mask-closable":!1,bordered:!1,style:{width:`${o.width}px`},onClose:n,onAfterEnter:o.onAfterEnter,onAfterLeave:o.onAfterLeave,onUpdateVisible:o.onUpdateVisible}),{header:e.withCtx(()=>[t.$slots.header?e.renderSlot(t.$slots,"header",{key:0}):o.title?(e.openBlock(),e.createBlock(p,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.title),1)]),_:1})):e.createCommentVNode("",!0)]),"header-extra":e.withCtx(()=>[e.renderSlot(t.$slots,"header-extra")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"overflow-y-auto overflow-hidden mt-5",style:e.normalizeStyle({maxHeight:`${o.height}px`})},[e.renderSlot(t.$slots,"default")],4)]),footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer")]),action:e.withCtx(()=>[e.createVNode(m,{justify:"end"},{default:e.withCtx(()=>[o.hideSaveBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(c,{key:0,type:"primary",loading:a.value,onClick:v},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.saveBtnText),1)]),_:1},8,["loading"])),e.renderSlot(t.$slots,"action-extra"),o.hideCancelBtn?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(c,{key:1,loading:l.value,onClick:h},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.cancelBtnText),1)]),_:1},8,["loading"]))]),_:3})]),_:3},16,["show","style","onAfterEnter","onAfterLeave","onUpdateVisible"])}}});exports.default=y;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chewel611/naive-ui-plus",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.48",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"@types/minimist": "^1.2.5",
|
|
51
51
|
"@types/node": "^24.12.0",
|
|
52
52
|
"@vicons/antd": "^0.13.0",
|
|
53
|
+
"@vicons/carbon": "^0.13.0",
|
|
54
|
+
"@vicons/ionicons5": "^0.12.0",
|
|
53
55
|
"@vitejs/plugin-vue": "^6.0.4",
|
|
54
56
|
"@vue/tsconfig": "^0.8.1",
|
|
55
57
|
"alova": "^3.5.1",
|