Template
1
0
mirror of https://github.com/un-pany/v3-admin-vite.git synced 2025-04-21 11:29:20 +08:00

Deploying to gh-pages from @ 88033a823d825006787382793249e9bfcae80880 🚀

This commit is contained in:
pany-ang 2023-08-23 04:00:39 +00:00
parent d88596ff5c
commit c57132a684
56 changed files with 78 additions and 28 deletions

View File

@ -6,8 +6,11 @@
<link rel="icon" href="/v3-admin-vite/favicon.ico" />
<link rel="stylesheet" href="/v3-admin-vite/app-loading.css" />
<title>V3 Admin Vite</title>
<script type="module" crossorigin src="/v3-admin-vite/static/index-71a5bbac.js"></script>
<link rel="stylesheet" href="/v3-admin-vite/static/index-a3d59a14.css">
<script type="module" crossorigin src="/v3-admin-vite/static/index-e4bdd1e0.js"></script>
<link rel="modulepreload" crossorigin href="/v3-admin-vite/static/vue-09136d94.js">
<link rel="modulepreload" crossorigin href="/v3-admin-vite/static/elment-3594ebb6.js">
<link rel="modulepreload" crossorigin href="/v3-admin-vite/static/vxe-2c15164e.js">
<link rel="stylesheet" href="/v3-admin-vite/static/index-d97d262e.css">
</head>
<body>
<div id="app">

File diff suppressed because one or more lines are too long

1
static/403-57a05e45.js Normal file

File diff suppressed because one or more lines are too long

1
static/404-5b706df0.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as s,i as a,j as r,k as t,l as e,C as o,m as n,n as d,H as i}from"./index-71a5bbac.js";const l={class:"error-page"},c={class:"error-page-svg"};const p=s({},[["render",function(s,p){const u=a("el-button"),f=a("router-link");return r(),t("div",l,[e("div",c,[o(s.$slots,"default",{},void 0,!0)]),n(f,{to:"/"},{default:d((()=>[n(u,{type:"primary"},{default:d((()=>[i("回到首页")])),_:1})])),_:1})])}],["__scopeId","data-v-2fba9562"]]);export{p as E};

View File

@ -0,0 +1 @@
import{_}from"./index-e4bdd1e0.js";import{ah as e,l as n,m as c,p as d,I as l,V as t,P as o,T as p}from"./vue-09136d94.js";const u={},i={class:"error-page"},f={class:"error-page-svg"};function m(r,v){const a=e("el-button"),s=e("router-link");return n(),c("div",i,[d("div",f,[l(r.$slots,"default",{},void 0,!0)]),t(s,{to:"/"},{default:o(()=>[t(a,{type:"primary"},{default:o(()=>[p("回到首页")]),_:1})]),_:1})])}const h=_(u,[["render",m],["__scopeId","data-v-2fba9562"]]);export{h as E};

View File

@ -0,0 +1 @@
import{d as p,_ as u}from"./index-e4bdd1e0.js";import{H as m,r as h,b as v,ah as _,l as S,m as w,p as t,U as f,u as g,V as a,P as V,aH as b,aI as x}from"./vue-09136d94.js";const I=e=>(b("data-v-54e6a169"),e=e(),x(),e),R={class:"switch-roles"},y=I(()=>t("span",null,"切换权限:",-1)),B=m({__name:"SwitchRoles",emits:["change"],setup(e,{emit:r}){const o=p(),s=h(o.roles[0]);return v(s,async l=>{await o.changeRoles(l),r("change")}),(l,n)=>{const c=_("el-radio-button"),d=_("el-radio-group");return S(),w("div",null,[t("div",null,"你的权限:"+f(g(o).roles),1),t("div",R,[y,a(d,{modelValue:s.value,"onUpdate:modelValue":n[0]||(n[0]=i=>s.value=i)},{default:V(()=>[a(c,{label:"editor"}),a(c,{label:"admin"})]),_:1},8,["modelValue"])])])}}});const k=u(B,[["__scopeId","data-v-54e6a169"]]);export{k as S};

View File

@ -1 +0,0 @@
import{e as a,a1 as e,a as s,w as l,i as o,j as t,k as n,l as d,A as i,q as r,m as u,n as c,V as m,W as p,_ as v}from"./index-71a5bbac.js";const _={class:"switch-roles"},h=(a=>(m("data-v-54e6a169"),a=a(),p(),a))((()=>d("span",null,"切换权限:",-1))),g=v(a({__name:"SwitchRoles",emits:["change"],setup(a,{emit:m}){const p=e(),v=s(p.roles[0]);return l(v,(async a=>{await p.changeRoles(a),m("change")})),(a,e)=>{const s=o("el-radio-button"),l=o("el-radio-group");return t(),n("div",null,[d("div",null,"你的权限:"+i(r(p).roles),1),d("div",_,[h,u(l,{modelValue:v.value,"onUpdate:modelValue":e[0]||(e[0]=a=>v.value=a)},{default:c((()=>[u(s,{label:"editor"}),u(s,{label:"admin"})])),_:1},8,["modelValue"])])])}}}),[["__scopeId","data-v-54e6a169"]]);export{g as S};

View File

@ -0,0 +1 @@
import{j as g,_ as y}from"./index-e4bdd1e0.js";import{S as b}from"./SwitchRoles-38b4fcc5.js";import{H as P,r as x,ah as m,ar as C,l as i,m as _,V as s,p,Q as u,O as o,P as t,T as e,u as f,S as v}from"./vue-09136d94.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const h=r=>{if(Array.isArray(r)&&r.length>0){const{roles:n}=g();return n.some(c=>r.includes(c))}else return console.error("need roles! Like checkPermission(['admin','editor'])"),!1},V={class:"app-container"},w={class:"margin-top-15"},z=P({__name:"directive",setup(r){const n=x(1),c=()=>{n.value++};return(B,N)=>{const a=m("el-tag"),l=m("el-tab-pane"),k=m("el-tabs"),d=C("permission");return i(),_("div",V,[s(b,{onChange:c}),(i(),_("div",{key:n.value,class:"margin-top-30"},[p("div",null,[u((i(),o(a,{type:"success",size:"large",effect:"plain"},{default:t(()=>[e(` 这里采用了 v-permission="['admin']" 所以只有 admin 可以看见这句话 `)]),_:1})),[[d,["admin"]]])]),p("div",null,[u((i(),o(a,{type:"success",size:"large",effect:"plain"},{default:t(()=>[e(` 这里采用了 v-permission="['editor']" 所以只有 editor 可以看见这句话 `)]),_:1})),[[d,["editor"]]])]),p("div",w,[u((i(),o(a,{type:"success",size:"large",effect:"plain"},{default:t(()=>[e(` 这里采用了 v-permission="['admin', 'editor']" 所以 admin 和 editor 都可以看见这句话 `)]),_:1})),[[d,["admin","editor"]]])])])),(i(),_("div",{key:`checkPermission${n.value}`,class:"margin-top-30"},[s(a,{type:"warning",size:"large"},{default:t(()=>[e(" 例如 Element Plus 的 el-tab-pane 或 el-table-column 以及其它动态渲染 Dom 的场景不适合使用 v-permission这种情况下你可以通过 v-if 和 checkPermission 来实现: ")]),_:1}),s(k,{type:"border-card",class:"margin-top-15"},{default:t(()=>[f(h)(["admin"])?(i(),o(l,{key:0,label:"admin"},{default:t(()=>[e(" 这里采用了 "),s(a,null,{default:t(()=>[e(`v-if="checkPermission(['admin'])"`)]),_:1}),e(" 所以只有 admin 可以看见这句话 ")]),_:1})):v("",!0),f(h)(["editor"])?(i(),o(l,{key:1,label:"editor"},{default:t(()=>[e(" 这里采用了 "),s(a,null,{default:t(()=>[e(`v-if="checkPermission(['editor'])"`)]),_:1}),e(" 所以只有 editor 可以看见这句话 ")]),_:1})):v("",!0),f(h)(["admin","editor"])?(i(),o(l,{key:2,label:"admin 和 editor"},{default:t(()=>[e(" 这里采用了 "),s(a,null,{default:t(()=>[e(`v-if="checkPermission(['admin', 'editor'])"`)]),_:1}),e(" 所以 admin 和 editor 都可以看见这句话 ")]),_:1})):v("",!0)]),_:1})]))])}}});const T=y(z,[["__scopeId","data-v-6d704b73"]]);export{T as default};

View File

@ -1 +0,0 @@
import{ay as e,e as a,a as i,i as s,an as n,j as r,k as t,m as l,l as d,aa as o,p as m,n as c,H as u,q as p,G as f,_ as v}from"./index-71a5bbac.js";import{S as _}from"./SwitchRoles-54cee3da.js";const k=a=>{if(Array.isArray(a)&&a.length>0){const{roles:i}=e();return i.some((e=>a.includes(e)))}return console.error("need roles! Like checkPermission(['admin','editor'])"),!1},y={class:"app-container"},g={class:"margin-top-15"},b=v(a({__name:"directive",setup(e){const a=i(1),v=()=>{a.value++};return(e,i)=>{const b=s("el-tag"),h=s("el-tab-pane"),P=s("el-tabs"),z=n("permission");return r(),t("div",y,[l(_,{onChange:v}),(r(),t("div",{key:a.value,class:"margin-top-30"},[d("div",null,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['admin']\" 所以只有 admin 可以看见这句话 ")])),_:1})),[[z,["admin"]]])]),d("div",null,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['editor']\" 所以只有 editor 可以看见这句话 ")])),_:1})),[[z,["editor"]]])]),d("div",g,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['admin', 'editor']\" 所以 admin 和 editor 都可以看见这句话 ")])),_:1})),[[z,["admin","editor"]]])])])),(r(),t("div",{key:`checkPermission${a.value}`,class:"margin-top-30"},[l(b,{type:"warning",size:"large"},{default:c((()=>[u(" 例如 Element Plus 的 el-tab-pane 或 el-table-column 以及其它动态渲染 Dom 的场景不适合使用 v-permission这种情况下你可以通过 v-if 和 checkPermission 来实现: ")])),_:1}),l(P,{type:"border-card",class:"margin-top-15"},{default:c((()=>[p(k)(["admin"])?(r(),m(h,{key:0,label:"admin"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['admin'])\"")])),_:1}),u(" 所以只有 admin 可以看见这句话 ")])),_:1})):f("",!0),p(k)(["editor"])?(r(),m(h,{key:1,label:"editor"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['editor'])\"")])),_:1}),u(" 所以只有 editor 可以看见这句话 ")])),_:1})):f("",!0),p(k)(["admin","editor"])?(r(),m(h,{key:2,label:"admin 和 editor"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['admin', 'editor'])\"")])),_:1}),u(" 所以 admin 和 editor 都可以看见这句话 ")])),_:1})):f("",!0)])),_:1})]))])}}}),[["__scopeId","data-v-6d704b73"]]);export{b as default};

31
static/elment-3594ebb6.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{e,a,i as n,j as l,k as s,m as u,n as t}from"./index-71a5bbac.js";const d={class:"app-container"},o=e({name:"Menu1-1",__name:"index",setup(e){const o=a("");return(e,a)=>{const r=n("el-input"),m=n("el-card");return l(),s("div",d,[u(m,{header:"三级路由缓存 - menu1-1"},{default:t((()=>[u(r,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e)},null,8,["modelValue"])])),_:1})])}}});export{o as default};

1
static/index-0b249b89.js Normal file
View File

@ -0,0 +1 @@
import{H as r,r as c,ah as t,l as m,m as p,V as o,P as u}from"./vue-09136d94.js";const _={class:"app-container"},x=r({name:"Menu1-3",__name:"index",setup(d){const e=c("");return(i,n)=>{const a=t("el-input"),l=t("el-card");return m(),p("div",_,[o(l,{header:"三级路由缓存 - menu1-3"},{default:u(()=>[o(a,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=s=>e.value=s)},null,8,["modelValue"])]),_:1})])}}});export{x as default};

1
static/index-11469e45.js Normal file
View File

@ -0,0 +1 @@
import{_ as n}from"./index-e4bdd1e0.js";import{ah as e,l as c,m as a,V as o,P as s}from"./vue-09136d94.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const _={},i={class:"app-container"};function m(p,d){const t=e("router-view"),r=e("el-card");return c(),a("div",i,[o(r,{header:"三级路由 - menu1-2"},{default:s(()=>[o(t)]),_:1})])}const x=n(_,[["render",m]]);export{x as default};

View File

@ -1 +0,0 @@
import{_ as a,i as e,j as s,k as n,m as r,n as t}from"./index-71a5bbac.js";const o={class:"app-container"};const c=a({},[["render",function(a,c){const d=e("router-view"),i=e("el-card");return s(),n("div",o,[r(i,{header:"二级路由 - menu1"},{default:t((()=>[r(d)])),_:1})])}]]);export{c as default};

1
static/index-1be248e6.js Normal file
View File

@ -0,0 +1 @@
import{H as r,r as c,ah as t,l as m,m as p,V as o,P as u}from"./vue-09136d94.js";const _={class:"app-container"},x=r({name:"Menu1-1",__name:"index",setup(d){const e=c("");return(i,n)=>{const a=t("el-input"),l=t("el-card");return m(),p("div",_,[o(l,{header:"三级路由缓存 - menu1-1"},{default:u(()=>[o(a,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=s=>e.value=s)},null,8,["modelValue"])]),_:1})])}}});export{x as default};

File diff suppressed because one or more lines are too long

1
static/index-1e159ad4.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{e,a,i as n,j as l,k as s,m as u,n as t}from"./index-71a5bbac.js";const d={class:"app-container"},o=e({name:"Menu1-2-1",__name:"index",setup(e){const o=a("");return(e,a)=>{const r=n("el-input"),m=n("el-card");return l(),s("div",d,[u(m,{header:"四级路由缓存 - menu1-2-1"},{default:t((()=>[u(r,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e)},null,8,["modelValue"])])),_:1})])}}});export{o as default};

1
static/index-2d517e4e.js Normal file
View File

@ -0,0 +1 @@
import{_ as c,d as a}from"./index-e4bdd1e0.js";import{ah as s,l as n,m as _,V as r,H as i,O as d,R as p,u as m}from"./vue-09136d94.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const l={},u={class:"app-container center"};function f(t,o){const e=s("el-empty");return n(),_("div",u,[r(e,{description:"Admin 权限可见"})])}const v=c(l,[["render",f],["__scopeId","data-v-540a7bcc"]]);const y={},x={class:"app-container center"};function h(t,o){const e=s("el-empty");return n(),_("div",x,[r(e,{description:"Editor 权限可见"})])}const b=c(y,[["render",h],["__scopeId","data-v-e677b768"]]),S=i({__name:"index",setup(t){const e=a().roles.includes("admin");return(A,E)=>(n(),d(p(m(e)?v:b)))}});export{S as default};

View File

@ -1 +0,0 @@
import{e,a,i as n,j as l,k as s,m as u,n as t}from"./index-71a5bbac.js";const d={class:"app-container"},o=e({name:"Menu1-2-2",__name:"index",setup(e){const o=a("");return(e,a)=>{const r=n("el-input"),m=n("el-card");return l(),s("div",d,[u(m,{header:"四级路由缓存 - menu1-2-2"},{default:t((()=>[u(r,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e)},null,8,["modelValue"])])),_:1})])}}});export{o as default};

View File

@ -1 +0,0 @@
import{av as t}from"./index-71a5bbac.js";function e(e){return t({url:"table",method:"post",data:e})}function a(e){return t({url:`table/${e}`,method:"delete"})}function r(e){return t({url:"table",method:"put",data:e})}function u(e){return t({url:"table",method:"get",params:e})}export{e as c,a as d,u as g,r as u};

View File

@ -1 +0,0 @@
import{_ as a,i as e,j as s,k as n,m as r,n as t}from"./index-71a5bbac.js";const o={class:"app-container"};const c=a({},[["render",function(a,c){const d=e("router-view"),i=e("el-card");return s(),n("div",o,[r(i,{header:"三级路由 - menu1-2"},{default:t((()=>[r(d)])),_:1})])}]]);export{c as default};

1
static/index-4a77cb18.js Normal file
View File

@ -0,0 +1 @@
import{H as k,aE as C,r as f,_ as z,ah as s,l as I,m as U,V as e,p as c,P as a,u as i,a3 as F,T as M,a9 as R,aH as S,aI as q}from"./vue-09136d94.js";import{f as B,d as K,_ as N}from"./index-e4bdd1e0.js";import{v as E,w as H,x as L,y as T,z as A}from"./elment-3594ebb6.js";import{_ as D}from"./index.vue_vue_type_script_setup_true_lang-26f006a9.js";import"./vxe-2c15164e.js";const P="/v3-admin-vite/static/logo-text-2-eef467fb.png",$=d=>(S("data-v-de8307a8"),d=d(),q(),d),j={class:"login-container"},G={class:"login-card"},J=$(()=>c("div",{class:"title"},[c("img",{src:P})],-1)),O={class:"content"},Q=k({__name:"index",setup(d){const h=C(),g=f(null),u=f(!1),p=f(""),o=z({username:"admin",password:"12345678",code:""}),w={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:8,max:16,message:"长度在 8 到 16 个字符",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"}]},x=()=>{var l;(l=g.value)==null||l.validate((t,r)=>{t?(u.value=!0,K().login(o).then(()=>{h.push({path:"/"})}).catch(()=>{m(),o.password=""}).finally(()=>{u.value=!1})):console.error("表单校验不通过",r)})},m=()=>{o.code="",p.value="",B().then(l=>{p.value=l.data})};return m(),(l,t)=>{const r=s("el-input"),_=s("el-form-item"),v=s("el-icon"),y=s("el-image"),V=s("el-button"),b=s("el-form");return I(),U("div",j,[e(D,{class:"theme-switch"}),c("div",G,[J,c("div",O,[e(b,{ref_key:"loginFormRef",ref:g,model:o,rules:w,onKeyup:R(x,["enter"])},{default:a(()=>[e(_,{prop:"username"},{default:a(()=>[e(r,{modelValue:o.username,"onUpdate:modelValue":t[0]||(t[0]=n=>o.username=n),modelModifiers:{trim:!0},placeholder:"用户名",type:"text",tabindex:"1","prefix-icon":i(E),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),e(_,{prop:"password"},{default:a(()=>[e(r,{modelValue:o.password,"onUpdate:modelValue":t[1]||(t[1]=n=>o.password=n),modelModifiers:{trim:!0},placeholder:"密码",type:"password",tabindex:"2","prefix-icon":i(H),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),e(_,{prop:"code"},{default:a(()=>[e(r,{modelValue:o.code,"onUpdate:modelValue":t[2]||(t[2]=n=>o.code=n),modelModifiers:{trim:!0},placeholder:"验证码",type:"text",tabindex:"3","prefix-icon":i(L),maxlength:"7",size:"large"},{append:a(()=>[e(y,{src:p.value,onClick:m,draggable:"false"},{placeholder:a(()=>[e(v,null,{default:a(()=>[e(i(T))]),_:1})]),error:a(()=>[e(v,null,{default:a(()=>[e(i(A))]),_:1})]),_:1},8,["src"])]),_:1},8,["modelValue","prefix-icon"])]),_:1}),e(V,{loading:u.value,type:"primary",size:"large",onClick:F(x,["prevent"])},{default:a(()=>[M("登 录")]),_:1},8,["loading","onClick"])]),_:1},8,["model","onKeyup"])])])])}}});const oe=N(Q,[["__scopeId","data-v-de8307a8"]]);export{oe as default};

View File

@ -1 +0,0 @@
import{e,a,i as n,j as l,k as s,m as u,n as t}from"./index-71a5bbac.js";const d={class:"app-container"},o=e({name:"Menu1-3",__name:"index",setup(e){const o=a("");return(e,a)=>{const r=n("el-input"),m=n("el-card");return l(),s("div",d,[u(m,{header:"三级路由缓存 - menu1-3"},{default:t((()=>[u(r,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e)},null,8,["modelValue"])])),_:1})])}}});export{o as default};

1
static/index-51f59bd9.js Normal file
View File

@ -0,0 +1 @@
import{i as e}from"./index-e4bdd1e0.js";function r(t){return e({url:"table",method:"post",data:t})}function u(t){return e({url:`table/${t}`,method:"delete"})}function l(t){return e({url:"table",method:"put",data:t})}function n(t){return e({url:"table",method:"get",params:t})}export{r as c,u as d,n as g,l as u};

View File

@ -1 +0,0 @@
import{_ as t,j as e,k as a,l as n}from"./index-71a5bbac.js";const o={},i={"h-full":"","uno-padding-20":""},r=[n("div",{"h-full":"","text-center":"",flex:"","select-none":"","all:transition-400":""},[n("div",{ma:""},[n("div",{"text-5xl":"",fw100:"","animate-bounce-alt":"","animate-count-infinite":"","animate-1s":""},"UnoCSS"),n("div",{op30:"","dark:op60":"","text-lg":"",fw300:"",m1:""},"具有高性能且极具灵活性的即时原子化 CSS 引擎"),n("div",{m2:"",flex:"","justify-center":"","text-lg":"",op30:"","dark:op60":"",hover:"op80","dark:hover":"op80"},[n("a",{href:"https://antfu.me/posts/reimagine-atomic-css-zh",target:"_blank"},"推荐阅读:重新构想原子化 CSS")])])],-1),n("div",{absolute:"","bottom-5":"","right-0":"","left-0":"","text-center":"",op30:"","dark:op60":"",fw300:""}," 该页面是一个 UnoCSS 的使用案例,其他页面依旧采用 Scss ",-1)];const s=t(o,[["render",function(t,n){return e(),a("div",i,r)}]]);export{s as default};

1
static/index-58897551.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{e,y as a,a as l,r as s,i as r,j as o,k as d,m as i,l as t,n,q as u,af as p,ag as m,ah as c,ai as g,aj as f,B as _,H as v,a0 as x,ak as h,V as y,W as b,a1 as w,_ as V}from"./index-71a5bbac.js";import{_ as k}from"./index.vue_vue_type_script_setup_true_lang-c325077e.js";const j={class:"login-container"},q={class:"login-card"},z=(e=>(y("data-v-de8307a8"),e=e(),b(),e))((()=>t("div",{class:"title"},[t("img",{src:"/v3-admin-vite/static/logo-text-2-eef467fb.png"})],-1))),C={class:"content"},M=V(e({__name:"index",setup(e){const y=a(),b=l(null),V=l(!1),M=l(""),U=s({username:"admin",password:"12345678",code:""}),K={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:8,max:16,message:"长度在 8 到 16 个字符",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"}]},B=()=>{var e;null==(e=b.value)||e.validate(((e,a)=>{e?(V.value=!0,w().login(U).then((()=>{y.push({path:"/"})})).catch((()=>{F(),U.password=""})).finally((()=>{V.value=!1}))):console.error("表单校验不通过",a)}))},F=()=>{U.code="",M.value="",h().then((e=>{M.value=e.data}))};return F(),(e,a)=>{const l=r("el-input"),s=r("el-form-item"),h=r("el-icon"),y=r("el-image"),w=r("el-button"),H=r("el-form");return o(),d("div",j,[i(k,{class:"theme-switch"}),t("div",q,[z,t("div",C,[i(H,{ref_key:"loginFormRef",ref:b,model:U,rules:K,onKeyup:x(B,["enter"])},{default:n((()=>[i(s,{prop:"username"},{default:n((()=>[i(l,{modelValue:U.username,"onUpdate:modelValue":a[0]||(a[0]=e=>U.username=e),modelModifiers:{trim:!0},placeholder:"用户名",type:"text",tabindex:"1","prefix-icon":u(p),size:"large"},null,8,["modelValue","prefix-icon"])])),_:1}),i(s,{prop:"password"},{default:n((()=>[i(l,{modelValue:U.password,"onUpdate:modelValue":a[1]||(a[1]=e=>U.password=e),modelModifiers:{trim:!0},placeholder:"密码",type:"password",tabindex:"2","prefix-icon":u(m),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])])),_:1}),i(s,{prop:"code"},{default:n((()=>[i(l,{modelValue:U.code,"onUpdate:modelValue":a[2]||(a[2]=e=>U.code=e),modelModifiers:{trim:!0},placeholder:"验证码",type:"text",tabindex:"3","prefix-icon":u(c),maxlength:"7",size:"large"},{append:n((()=>[i(y,{src:M.value,onClick:F,draggable:"false"},{placeholder:n((()=>[i(h,null,{default:n((()=>[i(u(g))])),_:1})])),error:n((()=>[i(h,null,{default:n((()=>[i(u(f))])),_:1})])),_:1},8,["src"])])),_:1},8,["modelValue","prefix-icon"])])),_:1}),i(w,{loading:V.value,type:"primary",size:"large",onClick:_(B,["prevent"])},{default:n((()=>[v("登 录")])),_:1},8,["loading","onClick"])])),_:1},8,["model","onKeyup"])])])])}}}),[["__scopeId","data-v-de8307a8"]]);export{M as default};

File diff suppressed because one or more lines are too long

1
static/index-7bc7cd19.js Normal file
View File

@ -0,0 +1 @@
import{H as t,aC as r,aE as a,l as o,m as s}from"./vue-09136d94.js";const _=t({__name:"index",setup(n){const e=r();return a().replace({path:"/"+e.params.path,query:e.query}),(c,p)=>(o(),s("div"))}});export{_ as default};

View File

@ -1 +0,0 @@
import{e as a,u as e,y as s,j as r,k as t}from"./index-71a5bbac.js";const p=a({__name:"index",setup(a){const p=e();return s().replace({path:"/"+p.params.path,query:p.query}),(a,e)=>(r(),t("div"))}});export{p as default};

File diff suppressed because one or more lines are too long

1
static/index-af7fb019.js Normal file
View File

@ -0,0 +1 @@
import{_ as e}from"./index-e4bdd1e0.js";import{l as o,m as n,p as t}from"./vue-09136d94.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const a={},i={"h-full":"","uno-padding-20":""},s=t("div",{"h-full":"","text-center":"",flex:"","select-none":"","all:transition-400":""},[t("div",{ma:""},[t("div",{"text-5xl":"",fw100:"","animate-bounce-alt":"","animate-count-infinite":"","animate-1s":""},"UnoCSS"),t("div",{op30:"","dark:op60":"","text-lg":"",fw300:"",m1:""},"具有高性能且极具灵活性的即时原子化 CSS 引擎"),t("div",{m2:"",flex:"","justify-center":"","text-lg":"",op30:"","dark:op60":"",hover:"op80","dark:hover":"op80"},[t("a",{href:"https://antfu.me/posts/reimagine-atomic-css-zh",target:"_blank"},"推荐阅读:重新构想原子化 CSS")])])],-1),r=t("div",{absolute:"","bottom-5":"","right-0":"","left-0":"","text-center":"",op30:"","dark:op60":"",fw300:""}," 该页面是一个 UnoCSS 的使用案例,其他页面依旧采用 Scss ",-1),c=[s,r];function d(l,f){return o(),n("div",i,c)}const x=e(a,[["render",d]]);export{x as default};

View File

@ -1 +0,0 @@
import{e,a,i as n,j as l,k as s,m as u,n as t}from"./index-71a5bbac.js";const d={class:"app-container"},o=e({name:"Menu2",__name:"index",setup(e){const o=a("");return(e,a)=>{const r=n("el-input"),m=n("el-card");return l(),s("div",d,[u(m,{header:"二级路由缓存 - menu2"},{default:t((()=>[u(r,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e)},null,8,["modelValue"])])),_:1})])}}});export{o as default};

File diff suppressed because one or more lines are too long

1
static/index-c1b32fa9.js Normal file
View File

@ -0,0 +1 @@
import{H as r,r as c,ah as t,l as m,m as p,V as o,P as u}from"./vue-09136d94.js";const _={class:"app-container"},x=r({name:"Menu2",__name:"index",setup(d){const e=c("");return(i,n)=>{const a=t("el-input"),l=t("el-card");return m(),p("div",_,[o(l,{header:"二级路由缓存 - menu2"},{default:u(()=>[o(a,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=s=>e.value=s)},null,8,["modelValue"])]),_:1})])}}});export{x as default};

File diff suppressed because one or more lines are too long

1
static/index-cb8b3c3b.js Normal file
View File

@ -0,0 +1 @@
import{H as r,r as c,ah as t,l as m,m as p,V as o,P as u}from"./vue-09136d94.js";const _={class:"app-container"},x=r({name:"Menu1-2-2",__name:"index",setup(d){const e=c("");return(i,n)=>{const a=t("el-input"),l=t("el-card");return m(),p("div",_,[o(l,{header:"四级路由缓存 - menu1-2-2"},{default:u(()=>[o(a,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=s=>e.value=s)},null,8,["modelValue"])]),_:1})])}}});export{x as default};

1
static/index-ceb73f97.js Normal file
View File

@ -0,0 +1 @@
import{_ as n}from"./index-e4bdd1e0.js";import{ah as e,l as c,m as a,V as o,P as s}from"./vue-09136d94.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const _={},i={class:"app-container"};function m(p,d){const t=e("router-view"),r=e("el-card");return c(),a("div",i,[o(r,{header:"二级路由 - menu1"},{default:s(()=>[o(t)]),_:1})])}const x=n(_,[["render",m]]);export{x as default};

File diff suppressed because one or more lines are too long

1
static/index-d9a07b25.js Normal file
View File

@ -0,0 +1 @@
import{H as r,r as c,ah as t,l as m,m as p,V as o,P as u}from"./vue-09136d94.js";const _={class:"app-container"},x=r({name:"Menu1-2-1",__name:"index",setup(d){const e=c("");return(i,n)=>{const a=t("el-input"),l=t("el-card");return m(),p("div",_,[o(l,{header:"四级路由缓存 - menu1-2-1"},{default:u(()=>[o(a,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=s=>e.value=s)},null,8,["modelValue"])]),_:1})])}}});export{x as default};

3
static/index-e4bdd1e0.js Normal file

File diff suppressed because one or more lines are too long

1
static/index-ef284f77.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as e,i as n,j as s,k as t,m as a,e as c,a1 as r,p as o,t as i,q as d}from"./index-71a5bbac.js";const p={class:"app-container center"};const m=e({},[["render",function(e,c){const r=n("el-empty");return s(),t("div",p,[a(r,{description:"Admin 权限可见"})])}],["__scopeId","data-v-540a7bcc"]]),u={class:"app-container center"};const l=e({},[["render",function(e,c){const r=n("el-empty");return s(),t("div",u,[a(r,{description:"Editor 权限可见"})])}],["__scopeId","data-v-e677b768"]]),_=c({__name:"index",setup(e){const n=r().roles.includes("admin");return(e,t)=>(s(),o(i(d(n)?m:l)))}});export{_ as default};

View File

@ -0,0 +1 @@
import{h as k}from"./index-e4bdd1e0.js";import{A as h}from"./elment-3594ebb6.js";import{H as g,ah as o,l,O as m,P as e,V as n,m as C,a8 as x,u as t,F as B,p as s,U as b}from"./vue-09136d94.js";const L=g({__name:"index",setup(v){const{themeList:c,activeThemeName:d,setTheme:r}=k();return(N,T)=>{const _=o("el-icon"),p=o("el-tooltip"),i=o("el-dropdown-item"),u=o("el-dropdown-menu"),f=o("el-dropdown");return l(),m(f,{trigger:"click",onCommand:t(r)},{dropdown:e(()=>[n(u,null,{default:e(()=>[(l(!0),C(B,null,x(t(c),(a,w)=>(l(),m(i,{key:w,disabled:t(d)===a.name,command:a.name},{default:e(()=>[s("span",null,b(a.title),1)]),_:2},1032,["disabled","command"]))),128))]),_:1})]),default:e(()=>[s("div",null,[n(p,{effect:"dark",content:"主题模式",placement:"bottom"},{default:e(()=>[n(_,{size:20},{default:e(()=>[n(t(h))]),_:1})]),_:1})])]),_:1},8,["onCommand"])}}});export{L as _};

View File

@ -1 +0,0 @@
import{e,i as a,j as n,p as t,n as l,m as o,k as s,z as d,q as m,F as i,l as r,al as u,am as c,A as p}from"./index-71a5bbac.js";const f=e({__name:"index",setup(e){const{themeList:f,activeThemeName:_,setTheme:k}=c();return(e,c)=>{const w=a("el-icon"),b=a("el-tooltip"),h=a("el-dropdown-item"),x=a("el-dropdown-menu"),g=a("el-dropdown");return n(),t(g,{trigger:"click",onCommand:m(k)},{dropdown:l((()=>[o(x,null,{default:l((()=>[(n(!0),s(i,null,d(m(f),((e,a)=>(n(),t(h,{key:a,disabled:m(_)===e.name,command:e.name},{default:l((()=>[r("span",null,p(e.title),1)])),_:2},1032,["disabled","command"])))),128))])),_:1})])),default:l((()=>[r("div",null,[o(b,{effect:"dark",content:"主题模式",placement:"bottom"},{default:l((()=>[o(w,{size:20},{default:l((()=>[o(m(u))])),_:1})])),_:1})])])),_:1},8,["onCommand"])}}});export{f as _};

View File

@ -1 +0,0 @@
import{e as a,y as s,i as e,j as t,k as n,m as o,n as p,H as r,_ as i}from"./index-71a5bbac.js";import{S as c}from"./SwitchRoles-54cee3da.js";const d={class:"app-container"},m=i(a({__name:"page",setup(a){const i=s(),m=()=>{i.push({path:"/403"})};return(a,s)=>{const i=e("el-tag");return t(),n("div",d,[o(c,{onChange:m}),o(i,{type:"warning",size:"large"},{default:p((()=>[r("当前页面只有 admin 权限可见,切换权限后将不能进入该页面")])),_:1})])}}}),[["__scopeId","data-v-7986af66"]]);export{m as default};

1
static/page-ce01b393.js Normal file
View File

@ -0,0 +1 @@
import{H as s,aE as n,ah as _,l as p,m as r,V as e,P as c,T as i}from"./vue-09136d94.js";import{S as l}from"./SwitchRoles-38b4fcc5.js";import{_ as m}from"./index-e4bdd1e0.js";import"./elment-3594ebb6.js";import"./vxe-2c15164e.js";const d={class:"app-container"},u=s({__name:"page",setup(f){const t=n(),a=()=>{t.push({path:"/403"})};return(g,h)=>{const o=_("el-tag");return p(),r("div",d,[e(l,{onChange:a}),e(o,{type:"warning",size:"large"},{default:c(()=>[i("当前页面只有 admin 权限可见,切换权限后将不能进入该页面")]),_:1})])}}});const R=m(u,[["__scopeId","data-v-7986af66"]]);export{R as default};

View File

@ -1 +0,0 @@
import{a as e,b as l,e as a,i as n,j as o,k as t,m as s,n as u,F as i,z as d,q as c,aw as r,l as p,p as m,au as v}from"./index-71a5bbac.js";function f(a){const{api:n}=a,o=e(!1),t=e([]),s=e("");return l((()=>{o.value=!0,t.value=[],n().then((e=>{t.value=e.data})).finally((()=>{o.value=!1}))})),{loading:o,options:t,value:s}}const h={code:0,data:[{label:"苹果",value:1},{label:"香蕉",value:2},{label:"橘子",value:3,disabled:!0}],message:"获取 Select 数据成功"};function b(){return new Promise(((e,l)=>{setTimeout((()=>{Math.random()<.8?e(h):l(new Error("接口发生错误"))}),2e3)}))}const g={class:"app-container"},V=p("h4",null,"该示例是演示:通过 hook 自动调用 api 后拿到 Select 组件需要的数据并传递给 Select 组件",-1),S=p("h5",null,"Select 示例",-1),k=p("h5",null,"Select V2 示例(如果数据量过多,可以选择该组件)",-1),w=a({__name:"use-fetch-select",setup(e){const{loading:l,options:a,value:p}=f({api:b});return(e,f)=>{const h=n("el-option"),b=n("el-select"),w=n("el-select-v2");return o(),t("div",g,[V,S,s(b,{loading:c(l),modelValue:c(p),"onUpdate:modelValue":f[0]||(f[0]=e=>r(p)?p.value=e:null),filterable:""},{default:u((()=>[(o(!0),t(i,null,d(c(a),((e,l)=>(o(),m(h,v(e,{key:l,placeholder:"请选择"}),null,16)))),128))])),_:1},8,["loading","modelValue"]),k,s(w,{loading:c(l),modelValue:c(p),"onUpdate:modelValue":f[1]||(f[1]=e=>r(p)?p.value=e:null),options:c(a),filterable:"",placeholder:"请选择"},null,8,["loading","modelValue","options"])])}}});export{w as default};

View File

@ -0,0 +1 @@
import{r as c,d as S,H as V,ah as r,l as i,m as _,V as m,P as b,F as E,a8 as k,u as a,B as f,p as d,O as B,L as C}from"./vue-09136d94.js";function P(s){const{api:l}=s,t=c(!1),e=c([]),p=c(""),o=()=>{t.value=!0,e.value=[],l().then(u=>{e.value=u.data}).finally(()=>{t.value=!1})};return S(()=>{o()}),{loading:t,options:e,value:p}}const w={code:0,data:[{label:"苹果",value:1},{label:"香蕉",value:2},{label:"橘子",value:3,disabled:!0}],message:"获取 Select 数据成功"};function x(){return new Promise((s,l)=>{setTimeout(()=>{Math.random()<.8?s(w):l(new Error("接口发生错误"))},2e3)})}const A={class:"app-container"},D=d("h4",null,"该示例是演示:通过 hook 自动调用 api 后拿到 Select 组件需要的数据并传递给 Select 组件",-1),F=d("h5",null,"Select 示例",-1),L=d("h5",null,"Select V2 示例(如果数据量过多,可以选择该组件)",-1),T=V({__name:"use-fetch-select",setup(s){const{loading:l,options:t,value:e}=P({api:x});return(p,o)=>{const u=r("el-option"),v=r("el-select"),h=r("el-select-v2");return i(),_("div",A,[D,F,m(v,{loading:a(l),modelValue:a(e),"onUpdate:modelValue":o[0]||(o[0]=n=>f(e)?e.value=n:null),filterable:""},{default:b(()=>[(i(!0),_(E,null,k(a(t),(n,g)=>(i(),B(u,C(n,{key:g,placeholder:"请选择"}),null,16))),128))]),_:1},8,["loading","modelValue"]),L,m(h,{loading:a(l),modelValue:a(e),"onUpdate:modelValue":o[1]||(o[1]=n=>f(e)?e.value=n:null),options:a(t),filterable:"",placeholder:"请选择"},null,8,["loading","modelValue","options"])])}}});export{T as default};

View File

@ -0,0 +1,10 @@
import{I as d,b as a}from"./elment-3594ebb6.js";import{H as p,ah as _,l as m,m as g,V as c,P as l,T as i,p as f}from"./vue-09136d94.js";const h={lock:!0,text:"加载中..."},u=(t,s={})=>{let e;return async(...n)=>{try{return e=d.service({...h,...s}),await t(...n)}finally{e==null||e.close()}}},k={code:0,data:{},message:"获取成功"};function w(){return new Promise(t=>{setTimeout(()=>{t(k)},1e3)})}function y(){return new Promise((t,s)=>{setTimeout(()=>{s(new Error("发生错误"))},1e3)})}const C={class:"app-container"},E=f("h4",null,"该示例是演示:通过将要执行的函数传递给 hook让 hook 自动开启全屏 loading函数执行结束后自动关闭 loading",-1),x=`
<path class="path" d="
M 30 15
L 28 17
M 25.61 25.61
A 15 15, 0, 0, 1, 15 30
A 15 15, 0, 1, 1, 27.99 7.5
L 15 15
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
`,b=p({__name:"use-fullscreen-loading",setup(t){const s={text:"即将发生错误...",background:"#F56C6C20",svg:x,svgViewBox:"-10, -10, 50, 50"},e=async()=>{const o=await u(w)();a.success(o.message)},n=async()=>{try{await u(y,s)()}catch(o){a.error(o.message)}};return(o,S)=>{const r=_("el-button");return m(),g("div",C,[E,c(r,{onClick:e},{default:l(()=>[i("查询成功")]),_:1}),c(r,{onClick:n},{default:l(()=>[i("查询失败")]),_:1})])}}});export{b as default};

View File

@ -1 +0,0 @@
import{ax as e,e as n,i as s,j as a,k as t,m as o,n as r,H as l,l as c,Q as i}from"./index-71a5bbac.js";const u={lock:!0,text:"加载中..."},d=(n,s={})=>{let a;return async(...t)=>{try{return a=e.service({...u,...s}),await n(...t)}finally{null==a||a.close()}}},m={code:0,data:{},message:"获取成功"};function g(){return new Promise((e=>{setTimeout((()=>{e(m)}),1e3)}))}function f(){return new Promise(((e,n)=>{setTimeout((()=>{n(new Error("发生错误"))}),1e3)}))}const k={class:"app-container"},p=c("h4",null,"该示例是演示:通过将要执行的函数传递给 hook让 hook 自动开启全屏 loading函数执行结束后自动关闭 loading",-1),w=n({__name:"use-fullscreen-loading",setup(e){const n={text:"即将发生错误...",background:"#F56C6C20",svg:'\n <path class="path" d="\n M 30 15\n L 28 17\n M 25.61 25.61\n A 15 15, 0, 0, 1, 15 30\n A 15 15, 0, 1, 1, 27.99 7.5\n L 15 15\n " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>\n',svgViewBox:"-10, -10, 50, 50"},c=async()=>{const e=await d(g)();i.success(e.message)},u=async()=>{try{await d(f,n)()}catch(e){i.error(e.message)}};return(e,n)=>{const i=s("el-button");return a(),t("div",k,[p,o(i,{onClick:c},{default:r((()=>[l("查询成功")])),_:1}),o(i,{onClick:u},{default:r((()=>[l("查询失败")])),_:1})])}}});export{w as default};

1
static/vue-09136d94.js Normal file

File diff suppressed because one or more lines are too long

4
static/vxe-2c15164e.js Normal file

File diff suppressed because one or more lines are too long