@sugarat/easypicker2-client 2.5.0 → 2.6.1-beta.1
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/assets/{data-analysis-13490516.js → data-analysis-b5271288.js} +2 -2
- package/dist/assets/{data-analysis-13490516.js.map → data-analysis-b5271288.js.map} +1 -1
- package/dist/assets/{data-analysis-legacy.f8612e65.js → data-analysis-legacy.6a4ab152.js} +2 -2
- package/dist/assets/{data-board-229a3bf5.js → data-board-fac5314d.js} +2 -2
- package/dist/assets/{data-board-229a3bf5.js.map → data-board-fac5314d.js.map} +1 -1
- package/dist/assets/{data-board-legacy.a60c4519.js → data-board-legacy.6c886296.js} +2 -2
- package/dist/assets/{el-date-picker-5a3e3d86.js → el-date-picker-7c194444.js} +2 -2
- package/dist/assets/{el-date-picker-5a3e3d86.js.map → el-date-picker-7c194444.js.map} +1 -1
- package/dist/assets/{el-date-picker-legacy.6d67764b.js → el-date-picker-legacy.749a72ef.js} +2 -2
- package/dist/assets/{el-dialog-463960e0.js → el-dialog-6d1c807a.js} +2 -2
- package/dist/assets/{el-dialog-463960e0.js.map → el-dialog-6d1c807a.js.map} +1 -1
- package/dist/assets/{el-dialog-legacy.0bcf48a4.js → el-dialog-legacy.5be8230f.js} +2 -2
- package/dist/assets/{el-dropdown-item-7c33f4fa.js → el-dropdown-item-958bfc71.js} +2 -2
- package/dist/assets/{el-dropdown-item-7c33f4fa.js.map → el-dropdown-item-958bfc71.js.map} +1 -1
- package/dist/assets/{el-dropdown-item-legacy.8625546e.js → el-dropdown-item-legacy.6457e2d9.js} +2 -2
- package/dist/assets/{el-form-item-f40006bf.js → el-form-item-14709389.js} +2 -2
- package/dist/assets/{el-form-item-f40006bf.js.map → el-form-item-14709389.js.map} +1 -1
- package/dist/assets/{el-form-item-legacy.d28db5d0.js → el-form-item-legacy.964d0dc1.js} +2 -2
- package/dist/assets/{el-loading-5d91bb6c.js → el-loading-2e8f5cae.js} +2 -2
- package/dist/assets/{el-loading-5d91bb6c.js.map → el-loading-2e8f5cae.js.map} +1 -1
- package/dist/assets/{el-loading-legacy.0f35210f.js → el-loading-legacy.8e1450cb.js} +2 -2
- package/dist/assets/{el-pagination-ffb99240.js → el-pagination-257e3c38.js} +2 -2
- package/dist/assets/{el-pagination-ffb99240.js.map → el-pagination-257e3c38.js.map} +1 -1
- package/dist/assets/{el-pagination-legacy.25b54e8d.js → el-pagination-legacy.20f976d7.js} +2 -2
- package/dist/assets/{el-progress-2fff98be.js → el-progress-d60eb9c6.js} +2 -2
- package/dist/assets/{el-progress-2fff98be.js.map → el-progress-d60eb9c6.js.map} +1 -1
- package/dist/assets/{el-progress-legacy.db8b5855.js → el-progress-legacy.d8c96dd6.js} +2 -2
- package/dist/assets/{el-select-7d894fd0.js → el-select-ca05d15a.js} +2 -2
- package/dist/assets/{el-select-7d894fd0.js.map → el-select-ca05d15a.js.map} +1 -1
- package/dist/assets/{el-select-legacy.ad6ded5a.js → el-select-legacy.96230556.js} +2 -2
- package/dist/assets/{el-switch-2eda0412.js → el-switch-a175c6ff.js} +2 -2
- package/dist/assets/{el-switch-2eda0412.js.map → el-switch-a175c6ff.js.map} +1 -1
- package/dist/assets/{el-switch-legacy.e17e7919.js → el-switch-legacy.c18bba6a.js} +2 -2
- package/dist/assets/{el-tab-pane-b3156067.js → el-tab-pane-499e4804.js} +2 -2
- package/dist/assets/{el-tab-pane-b3156067.js.map → el-tab-pane-499e4804.js.map} +1 -1
- package/dist/assets/{el-tab-pane-legacy.2cf21031.js → el-tab-pane-legacy.dfd3489b.js} +2 -2
- package/dist/assets/{el-table-column-22352e92.js → el-table-column-bccbd0ee.js} +2 -2
- package/dist/assets/{el-table-column-22352e92.js.map → el-table-column-bccbd0ee.js.map} +1 -1
- package/dist/assets/{el-table-column-legacy.fd665e2a.js → el-table-column-legacy.b083e5c9.js} +2 -2
- package/dist/assets/{index-c61deab7.js → index-04a69740.js} +2 -2
- package/dist/assets/index-04a69740.js.map +1 -0
- package/dist/assets/{index-6d7ac779.js → index-05e1d8e9.js} +2 -2
- package/dist/assets/{index-6d7ac779.js.map → index-05e1d8e9.js.map} +1 -1
- package/dist/assets/{index-b0a4c236.js → index-0aa5a09d.js} +2 -2
- package/dist/assets/{index-b0a4c236.js.map → index-0aa5a09d.js.map} +1 -1
- package/dist/assets/{index-f298d979.js → index-13570b16.js} +2 -2
- package/dist/assets/{index-f298d979.js.map → index-13570b16.js.map} +1 -1
- package/dist/assets/{index-f47a54b0.js → index-39c9824a.js} +2 -2
- package/dist/assets/{index-f47a54b0.js.map → index-39c9824a.js.map} +1 -1
- package/dist/assets/{index-c3a1cd43.js → index-3a3af29f.js} +2 -2
- package/dist/assets/{index-c3a1cd43.js.map → index-3a3af29f.js.map} +1 -1
- package/dist/assets/{index-d32645f3.js → index-4766f4e2.js} +2 -2
- package/dist/assets/{index-d32645f3.js.map → index-4766f4e2.js.map} +1 -1
- package/dist/assets/{index-c840d3aa.js → index-4f21c270.js} +2 -2
- package/dist/assets/{index-c840d3aa.js.map → index-4f21c270.js.map} +1 -1
- package/dist/assets/{index-f6ffb548.js → index-57c9ea07.js} +2 -2
- package/dist/assets/{index-f6ffb548.js.map → index-57c9ea07.js.map} +1 -1
- package/dist/assets/{index-bc1a6d96.js → index-930e03dd.js} +2 -2
- package/dist/assets/{index-bc1a6d96.js.map → index-930e03dd.js.map} +1 -1
- package/dist/assets/{index-17fa8fb7.js → index-9d8bb3cd.js} +2 -2
- package/dist/assets/{index-17fa8fb7.js.map → index-9d8bb3cd.js.map} +1 -1
- package/dist/assets/{index-75b8c91c.js → index-a880a055.js} +2 -2
- package/dist/assets/{index-75b8c91c.js.map → index-a880a055.js.map} +1 -1
- package/dist/assets/{index-5f3a9ae0.css → index-b6a0083a.css} +1 -1
- package/dist/assets/{index-34bd5929.js → index-c0ed4574.js} +2 -2
- package/dist/assets/{index-34bd5929.js.map → index-c0ed4574.js.map} +1 -1
- package/dist/assets/index-ce410282.js +19 -0
- package/dist/assets/index-ce410282.js.map +1 -0
- package/dist/assets/{index-ca90e8da.js → index-d14594d8.js} +2 -2
- package/dist/assets/{index-ca90e8da.js.map → index-d14594d8.js.map} +1 -1
- package/dist/assets/{index-8eff6b5a.js → index-d88fcb67.js} +2 -2
- package/dist/assets/{index-8eff6b5a.js.map → index-d88fcb67.js.map} +1 -1
- package/dist/assets/{index-6f4c911e.js → index-f2876d54.js} +2 -2
- package/dist/assets/{index-6f4c911e.js.map → index-f2876d54.js.map} +1 -1
- package/dist/assets/{index-afb7d164.js → index-f2af0aed.js} +2 -2
- package/dist/assets/{index-afb7d164.js.map → index-f2af0aed.js.map} +1 -1
- package/dist/assets/{index-98964915.js → index-f3cfa998.js} +2 -2
- package/dist/assets/{index-98964915.js.map → index-f3cfa998.js.map} +1 -1
- package/dist/assets/{index-b3774417.js → index-ff4fa185.js} +2 -2
- package/dist/assets/{index-b3774417.js.map → index-ff4fa185.js.map} +1 -1
- package/dist/assets/{index-legacy.6c7021b3.js → index-legacy.08acab8b.js} +2 -2
- package/dist/assets/{index-legacy.5d174bde.js → index-legacy.0fa09a50.js} +2 -2
- package/dist/assets/index-legacy.1bc3fb32.js +23 -0
- package/dist/assets/{index-legacy.e7464d3c.js → index-legacy.350597a4.js} +2 -2
- package/dist/assets/{index-legacy.1540c5bc.js → index-legacy.42c315a5.js} +2 -2
- package/dist/assets/{index-legacy.01d9320a.js → index-legacy.48503271.js} +2 -2
- package/dist/assets/{index-legacy.189f20a8.js → index-legacy.487dc8a3.js} +2 -2
- package/dist/assets/{index-legacy.d9854cf5.js → index-legacy.592d0ad8.js} +2 -2
- package/dist/assets/{index-legacy.45ec3501.js → index-legacy.764c62f4.js} +2 -2
- package/dist/assets/{index-legacy.7dae3131.js → index-legacy.7754567f.js} +2 -2
- package/dist/assets/{index-legacy.9f65dcb9.js → index-legacy.9bbb913d.js} +2 -2
- package/dist/assets/{index-legacy.4f956884.js → index-legacy.a30b5102.js} +2 -2
- package/dist/assets/{index-legacy.9dc57803.js → index-legacy.a755cc49.js} +2 -2
- package/dist/assets/{index-legacy.e6994f0a.js → index-legacy.af83663e.js} +2 -2
- package/dist/assets/{index-legacy.d32480a5.js → index-legacy.b7dbd470.js} +2 -2
- package/dist/assets/{index-legacy.9c4986d3.js → index-legacy.c2ac3287.js} +2 -2
- package/dist/assets/{index-legacy.08663170.js → index-legacy.c81edf2b.js} +2 -2
- package/dist/assets/{index-legacy.51740a44.js → index-legacy.d7412d7f.js} +2 -2
- package/dist/assets/{index-legacy.bd5a4368.js → index-legacy.e0df9935.js} +2 -2
- package/dist/assets/{index-legacy.1f2405e5.js → index-legacy.fcf53d84.js} +2 -2
- package/dist/assets/{isEqual-9c466456.js → isEqual-3a3c96c5.js} +2 -2
- package/dist/assets/{isEqual-9c466456.js.map → isEqual-3a3c96c5.js.map} +1 -1
- package/dist/assets/{isEqual-legacy.985bb619.js → isEqual-legacy.184e606c.js} +2 -2
- package/dist/assets/{refresh-6ae903c0.js → refresh-3ba5bdd3.js} +2 -2
- package/dist/assets/{refresh-6ae903c0.js.map → refresh-3ba5bdd3.js.map} +1 -1
- package/dist/assets/{refresh-legacy.8092415a.js → refresh-legacy.25fa8f66.js} +2 -2
- package/dist/assets/{tip-00ddf749.js → tip-e392c57d.js} +2 -2
- package/dist/assets/{tip-00ddf749.js.map → tip-e392c57d.js.map} +1 -1
- package/dist/assets/{tip-legacy.6e921091.js → tip-legacy.707697b5.js} +2 -2
- package/dist/assets/validator-001cb5f7.js +2 -0
- package/dist/assets/{validator-853854a1.js.map → validator-001cb5f7.js.map} +1 -1
- package/dist/assets/validator-legacy.9dc39c21.js +2 -0
- package/dist/index.html +3 -3
- package/package.json +8 -4
- package/dist/assets/index-62c7029f.js +0 -15
- package/dist/assets/index-62c7029f.js.map +0 -1
- package/dist/assets/index-c61deab7.js.map +0 -1
- package/dist/assets/index-legacy.978f90e1.js +0 -18
- package/dist/assets/validator-853854a1.js +0 -2
- package/dist/assets/validator-legacy.b34dfdfa.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as U,d as $,f as b,c as k,a as o,r as u,h as A,u as M,i as S,j as a,w as d,l as q,k as m,m as H,b as h,t as N,n as g,q as V,E as n,P as I,U as j,s as F,v as L,x as R,y as G,z as J,A as K,_ as O}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{g as U,d as $,f as b,c as k,a as o,r as u,h as A,u as M,i as S,j as a,w as d,l as q,k as m,m as H,b as h,t as N,n as g,q as V,E as n,P as I,U as j,s as F,v as L,x as R,y as G,z as J,A as K,_ as O}from"./index-ce410282.js";const Q=$({name:"ChatDotSquare"}),W={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X=o("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),Y=o("path",{fill:"currentColor",d:"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1),Z=[X,Y];function ee(C,s,i,r,p,x){return b(),k("svg",W,Z)}var te=U(Q,[["render",ee]]);const ae={class:"login"},oe={class:"inputArea"},ne={class:"tc"},se={class:"links"},le=$({__name:"index",setup(C){const s=u(""),i=u(""),r=u(""),p=u(""),x=A(),y=M(),D=()=>{y.replace({name:"dashboard"})},T=()=>V.test(s.value)?J.test(r.value)?r.value!==p.value?(n.warning("两次输入的密码不一致"),!1):K.test(i.value)?!0:(n.warning("验证码不正确(4位 数字)"),!1):(n.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1):(n.warning("手机号格式不正确"),!1),f=u("获取验证码"),c=u(0),w=()=>{if(c.value===0){f.value="获取验证码";return}f.value="".concat(c.value,"s"),c.value-=1,setTimeout(w,1e3)},z=()=>{if(!V.test(s.value)){n.warning("手机号格式不正确");return}I.getCode(s.value).then(()=>{c.value=120,w(),n.success("获取成功,请注意查看手机短信")})},B=()=>{T()&&j.resetPwd(s.value,i.value,r.value).then(_=>{n.success("密码重置成功");const{token:e}=_.data;x.commit("user/setToken",e),D()}).catch(_=>{const{code:e,data:t}=_,v={1008:"该手机号未绑定任何账号",1003:"验证码不正确",1004:"密码格式不正确",1010:"账号已被封禁,有疑问请联系管理员",1009:"账号已被冻结,解冻时间".concat((t==null?void 0:t.openTime)&&F(new Date(t.openTime)))};n.error(v[e]||"重置失败,未知错误")})};return(_,e)=>{const t=L,v=R,E=G,P=S("router-link");return b(),k("div",ae,[a(q,null,{default:d(()=>[o("div",oe,[o("div",null,[a(t,{maxlength:"11",placeholder:"手机号","prefix-icon":m(H),modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=l=>s.value=l),clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[a(t,{maxlength:"4",type:"number",placeholder:"请输入验证码","prefix-icon":m(te),modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=l=>i.value=l),clearable:""},{append:d(()=>[a(v,{disabled:c.value!==0,onClick:z},{default:d(()=>[h(N(f.value),1)]),_:1},8,["disabled"])]),_:1},8,["prefix-icon","modelValue"])]),o("div",null,[a(t,{maxlength:"16",minlength:"6",type:"password",placeholder:"请输入新密码","prefix-icon":m(g),modelValue:r.value,"onUpdate:modelValue":e[2]||(e[2]=l=>r.value=l),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[a(t,{maxlength:"16",minlength:"6",type:"password",placeholder:"请再次输入新密码","prefix-icon":m(g),modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=l=>p.value=l),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",ne,[a(v,{onClick:B,type:"primary",class:"fw-w100"},{default:d(()=>[h("确认重置")]),_:1})]),a(E),o("div",se,[a(P,{to:"/login"},{default:d(()=>[h("去登陆")]),_:1})])])]),_:1})])}}});const ue=O(le,[["__scopeId","data-v-4e645608"]]);export{ue as default};
|
|
2
|
+
//# sourceMappingURL=index-d14594d8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-d14594d8.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/chat-dot-square.mjs","../../src/pages/reset/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ChatDotSquare\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar chatDotSquare = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { chatDotSquare as default };\n","<template>\n <div class=\"login\">\n <login-panel>\n <!-- 表单输入区域 -->\n <div class=\"inputArea\">\n <div>\n <el-input\n maxlength=\"11\"\n placeholder=\"手机号\"\n :prefix-icon=\"Phone\"\n v-model=\"account\"\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"4\"\n type=\"number\"\n placeholder=\"请输入验证码\"\n :prefix-icon=\"ChatDotSquare\"\n v-model=\"code\"\n clearable\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">{{ codeText }}</el-button>\n </template>\n </el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd1\"\n show-password\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请再次输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd2\"\n show-password\n clearable\n ></el-input>\n </div>\n <div class=\"tc\">\n <el-button @click=\"reset\" type=\"primary\" class=\"fw-w100\">确认重置</el-button>\n </div>\n <el-divider></el-divider>\n <div class=\"links\">\n <router-link to=\"/login\">去登陆</router-link>\n </div>\n </div>\n </login-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport {\n Lock, Phone, ChatDotSquare,\n} from '@element-plus/icons-vue'\nimport {\n ref,\n} from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport loginPanel from '@components/loginPanel.vue'\nimport { PublicApi, UserApi } from '@/apis'\nimport {\n rMobilePhone, rPassword, rVerCode,\n} from '@/utils/regExp'\nimport { formatDate } from '@/utils/stringUtil'\n\nconst account = ref('')\nconst code = ref('')\nconst pwd1 = ref('')\nconst pwd2 = ref('')\nconst $store = useStore()\nconst $router = useRouter()\nconst redirectDashBoard = () => {\n $router.replace({\n name: 'dashboard',\n })\n}\nconst checkForm = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n\n if (!rPassword.test(pwd1.value)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwd1.value !== pwd2.value) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n if (!rVerCode.test(code.value)) {\n ElMessage.warning('验证码不正确(4位 数字)')\n return false\n }\n return true\n}\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nconst refreshCodeText = () => {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nconst getCode = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n PublicApi.getCode(account.value).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n}\nconst reset = () => {\n if (!checkForm()) {\n return\n }\n UserApi\n .resetPwd(account.value, code.value, pwd1.value)\n .then((res) => {\n ElMessage.success('密码重置成功')\n const { token } = res.data\n $store.commit('user/setToken', token)\n redirectDashBoard()\n })\n .catch((err) => {\n const { code: c, data } = err\n const options: any = {\n 1008: '该手机号未绑定任何账号',\n 1003: '验证码不正确',\n 1004: '密码格式不正确',\n 1010: '账号已被封禁,有疑问请联系管理员',\n 1009: `账号已被冻结,解冻时间${data?.openTime && formatDate(new Date(data.openTime))}`,\n }\n ElMessage.error(options[c] || '重置失败,未知错误')\n })\n}\n\n</script>\n\n<style scoped lang=\"scss\">\n.login {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\n\n.inputArea {\n // padding: 1rem;\n margin: 0 auto;\n max-width: 320px;\n div {\n margin-top: 10px;\n }\n}\n// 登录按钮下方链接\n.links {\n display: flex;\n justify-content: center;\n a {\n color: #409eff;\n margin-left: 10px;\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","chatDotSquare","_export_sfc","account","ref","code","pwd1","pwd2","$store","useStore","$router","useRouter","redirectDashBoard","checkForm","rMobilePhone","rPassword","ElMessage","rVerCode","codeText","time","refreshCodeText","getCode","PublicApi","reset","UserApi","res","token","err","c","data","options","formatDate"],"mappings":"qOAGA,MAAMA,EAAYC,EAAgB,CAChC,KAAM,eACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,mOACL,EAAG,KAAM,EAAE,EACLC,EAA6BD,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,4KACL,EAAG,KAAM,EAAE,EACLE,EAAa,CACjBH,EACAE,CACF,EACA,SAASE,GAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOb,EAAYI,CAAU,CACtE,CACA,IAAIU,GAAgCC,EAAYjB,EAAW,CAAC,CAAC,SAAUO,EAAW,CAAC,CAAC,mHCwDpF,MAAAW,EAAAC,EAAA,EAAA,EACAC,EAAAD,EAAA,EAAA,EACAE,EAAAF,EAAA,EAAA,EACAG,EAAAH,EAAA,EAAA,EACAI,EAAAC,IACAC,EAAAC,IACAC,EAAA,IAAA,CACEF,EAAA,QAAA,CAAgB,KAAA,WACR,CAAA,CACP,EAEHG,EAAA,IACEC,EAAA,KAAAX,EAAA,KAAA,EAKAY,EAAA,KAAAT,EAAA,KAAA,EAIAA,EAAA,QAAAC,EAAA,OACES,EAAA,QAAA,YAAA,EACA,IAGFC,EAAA,KAAAZ,EAAA,KAAA,EAIA,IAHEW,EAAA,QAAA,eAAA,EACA,KAVAA,EAAA,QAAA,4BAAA,EACA,KANAA,EAAA,QAAA,UAAA,EACA,IAkBJE,EAAAd,EAAA,OAAA,EACAe,EAAAf,EAAA,CAAA,EACAgB,EAAA,IAAA,CACE,GAAAD,EAAA,QAAA,EAAA,CACED,EAAA,MAAA,QACA,MAAA,CAEFA,EAAA,MAAA,GAAA,OAAAC,EAAA,MAAA,KACAA,EAAA,OAAA,EACA,WAAAC,EAAA,GAAA,CAAgC,EAElCC,EAAA,IAAA,CACE,GAAA,CAAAP,EAAA,KAAAX,EAAA,KAAA,EAAA,CACEa,EAAA,QAAA,UAAA,EACA,MAAA,CAEFM,EAAA,QAAAnB,EAAA,KAAA,EAAA,KAAA,IAAA,CACEgB,EAAA,MAAA,IACAC,IACAJ,EAAA,QAAA,gBAAA,CAAkC,CAAA,CACnC,EAEHO,EAAA,IAAA,CACEV,EAAA,GAGAW,EAAA,SAAArB,EAAA,MAAAE,EAAA,MAAAC,EAAA,KAAA,EAAA,KAAAmB,GAAA,CAGIT,EAAA,QAAA,QAAA,EACA,KAAA,CAAA,MAAAU,CAAA,EAAAD,EAAA,KACAjB,EAAA,OAAA,gBAAAkB,CAAA,EACAd,GAAkB,CAAA,EAAA,MAAAe,GAAA,CAGlB,KAAA,CAAA,KAAAC,EAAA,KAAAC,CAAA,EAAAF,EACAG,EAAA,CAAqB,KAAA,cACb,KAAA,SACA,KAAA,UACA,KAAA,mBACA,KAAA,cAAA,QAAAD,GAAA,YAAAA,EAAA,WAAAE,EAAA,IAAA,KAAAF,EAAA,QAAA,CAAA,EACmE,EAE3Eb,EAAA,MAAAc,EAAAF,CAAA,GAAA,WAAA,CAAyC,CAAA,CAC1C","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{J as se,K as R,L as $,M as ae,N as ne,d as E,O as y,Q as le,r as A,k as m,R as re,f as c,D as K,w as p,c as _,H as I,t as k,S as C,T as U,b as B,V as ie,W as pe,X as ce,Y as de,g as L,a as o,Z as N,$ as J,h as Q,F as D,C as X,s as F,j as n,a0 as Y,x as G,_ as z,a1 as ee,o as te,a2 as ue,u as _e,U as O,i as W,E as fe,I as ve,p as he,e as me,a3 as ge}from"./index-62c7029f.js";import{E as be}from"./el-dialog-463960e0.js";import{d as H,E as we,a as $e,b as ye,c as Ce}from"./el-dropdown-item-7c33f4fa.js";import{E as ke,a as xe}from"./el-tab-pane-b3156067.js";import{E as Ee}from"./index-17fa8fb7.js";import"./index-6d7ac779.js";import"./aria-bc8e8b0f.js";import"./validator-853854a1.js";const Me=se({trigger:R.trigger,placement:H.placement,disabled:R.disabled,visible:$.visible,transition:$.transition,popperOptions:H.popperOptions,tabindex:H.tabindex,content:$.content,popperStyle:$.popperStyle,popperClass:$.popperClass,enterable:{...$.enterable,default:!0},effect:{...$.effect,default:"light"},teleported:$.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),Ve={"update:visible":r=>ae(r),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},Se={name:"ElPopover"},Ae=E({...Se,props:Me,emits:Ve,setup(r,{expose:l,emit:t}){const s=r,f="onUpdate:visible",i=y(()=>s[f]),h=le("popover"),g=A(),u=y(()=>{var e;return(e=m(g))==null?void 0:e.popperRef}),v=y(()=>[{width:re(s.width)},s.popperStyle]),b=y(()=>[h.b(),s.popperClass,{[h.m("plain")]:!!s.content}]),d=y(()=>s.transition==="el-fade-in-linear"),a=()=>{var e;(e=g.value)==null||e.hide()},x=()=>{t("before-enter")},w=()=>{t("before-leave")},M=()=>{t("after-enter")},V=()=>{t("update:visible",!1),t("after-leave")};return l({popperRef:u,hide:a}),(e,T)=>(c(),K(m(pe),ie({ref_key:"tooltipRef",ref:g},e.$attrs,{trigger:e.trigger,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":m(b),"popper-style":m(v),teleported:e.teleported,persistent:e.persistent,"gpu-acceleration":m(d),"onUpdate:visible":m(i),onBeforeShow:x,onBeforeHide:w,onShow:M,onHide:V}),{content:p(()=>[e.title?(c(),_("div",{key:0,class:I(m(h).e("title")),role:"title"},k(e.title),3)):C("v-if",!0),U(e.$slots,"default",{},()=>[B(k(e.content),1)])]),default:p(()=>[e.$slots.reference?U(e.$slots,"reference",{key:0}):C("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var Be=ne(Ae,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Z=(r,l)=>{const t=l.arg||l.value,s=t==null?void 0:t.popperRef;s&&(s.triggerRef=r)};var Pe={mounted(r,l){Z(r,l)},updated(r,l){Z(r,l)}};const He="popover",De=ce(Pe,He),Ie=de(Be,{directive:De}),Le=E({name:"Bell"}),Ne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ze=o("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z"},null,-1),Te=o("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z"},null,-1),Re=o("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z"},null,-1),Ue=[ze,Te,Re];function Fe(r,l,t,s,f,i){return c(),_("svg",Ne,Ue)}var Oe=L(Le,[["render",Fe]]);const We=E({name:"Close"}),Ze={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},je=o("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),qe=[je];function Ke(r,l,t,s,f,i){return c(),_("svg",Ze,qe)}var Je=L(We,[["render",Ke]]);const Qe=E({name:"Expand"}),Xe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ye=o("path",{fill:"currentColor",d:"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z"},null,-1),Ge=[Ye];function et(r,l,t,s,f,i){return c(),_("svg",Xe,Ge)}var tt=L(Qe,[["render",et]]);const ot={key:0,class:"empty"},st={class:"message-list"},at=["onClick"],nt={class:"text"},lt={class:"date"},rt=["innerHTML"],it={class:"dialog-date"},pt=E({__name:"index",props:{data:{},autoShow:{type:Boolean}},setup(r){const l=r,t=N({show:!1,title:"系统消息",text:"内容"}),s=A(null),f=u=>{s.value=u,t.text=u.text,t.title=u.type===0?"【系统消息】":"【私信】",t.show=!0},i=()=>{if(s.value.read){t.show=!1;return}Y.readMessage(s.value.id).then(()=>{s.value.read=!0,t.show=!1})};J(()=>l.data.length,()=>{if(!l.autoShow)return;const u=l.data.find(v=>!v.read);u&&f(u)});const h=Q(),g=y(()=>h.getters["public/isMobile"]);return(u,v)=>{const b=G,d=be;return c(),_(D,null,[u.data.length?C("",!0):(c(),_("div",ot,"暂无更多消息 ღ( ´・ᴗ・` )比心")),o("ul",st,[(c(!0),_(D,null,X(u.data,a=>(c(),_("li",{key:a.id,class:I({read:a.read}),onClick:x=>f(a)},[o("p",nt,k(a.text),1),o("p",lt,k(m(F)(new Date(a.date))),1)],10,at))),128))]),n(d,{center:"","show-close":"","append-to-body":"",modelValue:t.show,"onUpdate:modelValue":v[1]||(v[1]=a=>t.show=a),"close-on-click-modal":!1,title:t.title,width:"30%",fullscreen:g.value},{footer:p(()=>[o("p",it," 时间:"+k(m(F)(new Date(s.value.date))),1),o("span",null,[n(b,{type:"default",onClick:v[0]||(v[0]=()=>{t.show=!1})},{default:p(()=>[B(" 下次提醒 ")]),_:1}),n(b,{type:"primary",onClick:i},{default:p(()=>[B(" 确定 ")]),_:1})])]),default:p(()=>[o("div",{class:"message-text",innerHTML:t.text},null,8,rt)]),_:1},8,["modelValue","title","fullscreen"])],64)}}});const j=z(pt,[["__scopeId","data-v-46eebd19"]]),ct={class:"message-panel"},dt=E({__name:"index",setup(r){const l=A("all"),t=N([]),s=y(()=>t.filter(i=>!i.read)),f=ee();return te(()=>{f.name!=="config"&&Y.getMessageList().then(i=>{t.push(...i.data)})}),(i,h)=>{const g=G,u=ue,v=ke,b=xe,d=Ie;return c(),_("div",ct,[n(d,{placement:"bottom-end",width:375,trigger:"hover"},{reference:p(()=>[n(u,{value:s.value.length||"",max:99},{default:p(()=>[n(g,{icon:m(Oe),circle:""},null,8,["icon"])]),_:1},8,["value"])]),default:p(()=>[o("div",null,[n(b,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=a=>l.value=a)},{default:p(()=>[n(v,{label:"未读 ".concat(s.value.length||""),name:"no"},{default:p(()=>[n(j,{"auto-show":"",data:s.value},null,8,["data"])]),_:1},8,["label"]),n(v,{label:"全部 ".concat(t.length||""),name:"all"},{default:p(()=>[n(j,{data:t},null,8,["data"])]),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})])}}});const q=z(dt,[["__scopeId","data-v-9de070a6"]]),S=r=>(he("data-v-2108dc2b"),r=r(),me(),r),ut={class:"dashboard"},_t={class:"pc-nav"},ft={class:"nav"},vt={class:"logo"},ht=S(()=>o("img",{src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1)),mt={key:0,type:"checkbox",id:"navActive"},gt={key:0,for:"navActive",class:"nav-item"},bt=S(()=>o("span",null,"Hello💐,",-1)),wt=["onClick"],$t=S(()=>o("span",{style:{"margin-right":"6px"}},"退出",-1)),yt=S(()=>o("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-v-53d86618":""},[o("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z",fill:"#86909C","data-v-53d86618":""})],-1)),Ct=S(()=>o("div",{class:"mask"},null,-1)),kt={id:"navMenu"},xt={for:"navActive"},Et={key:0,class:"flex fac"},Mt=S(()=>o("span",null,"Hello 💐,",-1)),Vt={class:"exit-info"},St={class:"ellipsis"},At=E({__name:"index",setup(r){const l=_e(),t=Q(),s=ee(),f=y(()=>t.getters["public/isMobile"]),i=N([{title:"文件管理",path:"/dashboard/files"},{title:"任务管理",path:"/dashboard/tasks"}]),h=A(0),g=d=>{const a=i[d];!a.isExternal&&d!==h.value&&l.push({path:a.path}),a.isExternal&&window.open(a.path,"_blank")};J(()=>s.path,d=>{const a=i.findIndex(x=>d.startsWith(x.path));a!==-1&&(h.value=a)});const u=()=>{Ee.confirm("确认退出登录?","登出提示",{draggable:!0}).then(()=>{O.logout().finally(()=>{t.commit("user/setToken",null),l.replace({name:"home"})})}).catch(()=>{fe.info("取消")})},v=A("World"),b=()=>{h.value=i.findIndex(d=>s.path.startsWith(d.path))};return te(()=>{O.checkPower().then(d=>{var w,M,V;const a=(w=d.data)==null?void 0:w.power;if(v.value=(M=d.data)==null?void 0:M.name,t.commit("user/setSuperAdmin",a),a){const e=[{title:"应用管理",path:"/dashboard/manage"},{title:"网站监控",path:"https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78",isExternal:!0}];i.push(...e)}((V=d.data)==null?void 0:V.system)&&(i.splice(0,i.length),i.push({title:"系统管理",path:"/dashboard/config"})),b()})}),(d,a)=>{const x=W("router-link"),w=ve,M=ye,V=Ce,e=we,T=W("router-view");return c(),_("div",ut,[o("div",_t,[o("div",ft,[o("div",vt,[n(x,{to:"/"},{default:p(()=>[ht]),_:1})]),f.value?(c(),_("input",mt)):C("",!0),o("nav",null,[f.value?(c(),_("label",gt,[bt,B(" "+k(v.value),1)])):C("",!0),(c(!0),_(D,null,X(i,(oe,P)=>(c(),_("label",{for:"navActive",class:I(["nav-item",{active:h.value===P}]),key:P,onClick:Bt=>g(P)},k(oe.title),11,wt))),128)),f.value?(c(),_("label",{key:1,onClick:u,for:"navActive",class:"nav-item"},[$t,n(w,{size:"16"},{default:p(()=>[yt]),_:1})])):C("",!0)]),Ct]),o("span",kt,[f.value?(c(),K(q,{key:0,class:"mobile-message-bell"})):C("",!0),o("label",xt,[n(w,{size:"32"},{default:p(()=>[n(m(tt))]),_:1})])]),f.value?C("",!0):(c(),_("div",Et,[n(q),Mt,n(e,{class:"exit"},{dropdown:p(()=>[n(V,null,{default:p(()=>[n(M,{onClick:u,icon:m(Je)},{default:p(()=>[B("退出")]),_:1},8,["icon"])]),_:1})]),default:p(()=>[o("span",Vt,[o("span",St,k(v.value),1),n(w,null,{default:p(()=>[n(m($e))]),_:1})])]),_:1})]))]),n(T),o("div",null,[n(ge,{type:"dashboard"})])])}}});const Rt=z(At,[["__scopeId","data-v-2108dc2b"]]);export{Rt as default};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{J as se,K as R,L as $,M as ae,N as ne,d as E,O as y,Q as le,r as A,k as m,R as re,f as c,D as K,w as p,c as _,H as I,t as k,S as C,T as U,b as B,V as ie,W as pe,X as ce,Y as de,g as L,a as o,Z as N,$ as J,h as Q,F as D,C as X,s as F,j as n,a0 as Y,x as G,_ as z,a1 as ee,o as te,a2 as ue,u as _e,U as O,i as W,E as fe,I as ve,p as he,e as me,a3 as ge}from"./index-ce410282.js";import{E as be}from"./el-dialog-6d1c807a.js";import{d as H,E as we,a as $e,b as ye,c as Ce}from"./el-dropdown-item-958bfc71.js";import{E as ke,a as xe}from"./el-tab-pane-499e4804.js";import{E as Ee}from"./index-9d8bb3cd.js";import"./index-05e1d8e9.js";import"./aria-bc8e8b0f.js";import"./validator-001cb5f7.js";const Me=se({trigger:R.trigger,placement:H.placement,disabled:R.disabled,visible:$.visible,transition:$.transition,popperOptions:H.popperOptions,tabindex:H.tabindex,content:$.content,popperStyle:$.popperStyle,popperClass:$.popperClass,enterable:{...$.enterable,default:!0},effect:{...$.effect,default:"light"},teleported:$.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),Ve={"update:visible":r=>ae(r),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},Se={name:"ElPopover"},Ae=E({...Se,props:Me,emits:Ve,setup(r,{expose:l,emit:t}){const s=r,f="onUpdate:visible",i=y(()=>s[f]),h=le("popover"),g=A(),u=y(()=>{var e;return(e=m(g))==null?void 0:e.popperRef}),v=y(()=>[{width:re(s.width)},s.popperStyle]),b=y(()=>[h.b(),s.popperClass,{[h.m("plain")]:!!s.content}]),d=y(()=>s.transition==="el-fade-in-linear"),a=()=>{var e;(e=g.value)==null||e.hide()},x=()=>{t("before-enter")},w=()=>{t("before-leave")},M=()=>{t("after-enter")},V=()=>{t("update:visible",!1),t("after-leave")};return l({popperRef:u,hide:a}),(e,T)=>(c(),K(m(pe),ie({ref_key:"tooltipRef",ref:g},e.$attrs,{trigger:e.trigger,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":m(b),"popper-style":m(v),teleported:e.teleported,persistent:e.persistent,"gpu-acceleration":m(d),"onUpdate:visible":m(i),onBeforeShow:x,onBeforeHide:w,onShow:M,onHide:V}),{content:p(()=>[e.title?(c(),_("div",{key:0,class:I(m(h).e("title")),role:"title"},k(e.title),3)):C("v-if",!0),U(e.$slots,"default",{},()=>[B(k(e.content),1)])]),default:p(()=>[e.$slots.reference?U(e.$slots,"reference",{key:0}):C("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var Be=ne(Ae,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Z=(r,l)=>{const t=l.arg||l.value,s=t==null?void 0:t.popperRef;s&&(s.triggerRef=r)};var Pe={mounted(r,l){Z(r,l)},updated(r,l){Z(r,l)}};const He="popover",De=ce(Pe,He),Ie=de(Be,{directive:De}),Le=E({name:"Bell"}),Ne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ze=o("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z"},null,-1),Te=o("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z"},null,-1),Re=o("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z"},null,-1),Ue=[ze,Te,Re];function Fe(r,l,t,s,f,i){return c(),_("svg",Ne,Ue)}var Oe=L(Le,[["render",Fe]]);const We=E({name:"Close"}),Ze={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},je=o("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),qe=[je];function Ke(r,l,t,s,f,i){return c(),_("svg",Ze,qe)}var Je=L(We,[["render",Ke]]);const Qe=E({name:"Expand"}),Xe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ye=o("path",{fill:"currentColor",d:"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z"},null,-1),Ge=[Ye];function et(r,l,t,s,f,i){return c(),_("svg",Xe,Ge)}var tt=L(Qe,[["render",et]]);const ot={key:0,class:"empty"},st={class:"message-list"},at=["onClick"],nt={class:"text"},lt={class:"date"},rt=["innerHTML"],it={class:"dialog-date"},pt=E({__name:"index",props:{data:{},autoShow:{type:Boolean}},setup(r){const l=r,t=N({show:!1,title:"系统消息",text:"内容"}),s=A(null),f=u=>{s.value=u,t.text=u.text,t.title=u.type===0?"【系统消息】":"【私信】",t.show=!0},i=()=>{if(s.value.read){t.show=!1;return}Y.readMessage(s.value.id).then(()=>{s.value.read=!0,t.show=!1})};J(()=>l.data.length,()=>{if(!l.autoShow)return;const u=l.data.find(v=>!v.read);u&&f(u)});const h=Q(),g=y(()=>h.getters["public/isMobile"]);return(u,v)=>{const b=G,d=be;return c(),_(D,null,[u.data.length?C("",!0):(c(),_("div",ot,"暂无更多消息 ღ( ´・ᴗ・` )比心")),o("ul",st,[(c(!0),_(D,null,X(u.data,a=>(c(),_("li",{key:a.id,class:I({read:a.read}),onClick:x=>f(a)},[o("p",nt,k(a.text),1),o("p",lt,k(m(F)(new Date(a.date))),1)],10,at))),128))]),n(d,{center:"","show-close":"","append-to-body":"",modelValue:t.show,"onUpdate:modelValue":v[1]||(v[1]=a=>t.show=a),"close-on-click-modal":!1,title:t.title,width:"30%",fullscreen:g.value},{footer:p(()=>[o("p",it," 时间:"+k(m(F)(new Date(s.value.date))),1),o("span",null,[n(b,{type:"default",onClick:v[0]||(v[0]=()=>{t.show=!1})},{default:p(()=>[B(" 下次提醒 ")]),_:1}),n(b,{type:"primary",onClick:i},{default:p(()=>[B(" 确定 ")]),_:1})])]),default:p(()=>[o("div",{class:"message-text",innerHTML:t.text},null,8,rt)]),_:1},8,["modelValue","title","fullscreen"])],64)}}});const j=z(pt,[["__scopeId","data-v-46eebd19"]]),ct={class:"message-panel"},dt=E({__name:"index",setup(r){const l=A("all"),t=N([]),s=y(()=>t.filter(i=>!i.read)),f=ee();return te(()=>{f.name!=="config"&&Y.getMessageList().then(i=>{t.push(...i.data)})}),(i,h)=>{const g=G,u=ue,v=ke,b=xe,d=Ie;return c(),_("div",ct,[n(d,{placement:"bottom-end",width:375,trigger:"hover"},{reference:p(()=>[n(u,{value:s.value.length||"",max:99},{default:p(()=>[n(g,{icon:m(Oe),circle:""},null,8,["icon"])]),_:1},8,["value"])]),default:p(()=>[o("div",null,[n(b,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=a=>l.value=a)},{default:p(()=>[n(v,{label:"未读 ".concat(s.value.length||""),name:"no"},{default:p(()=>[n(j,{"auto-show":"",data:s.value},null,8,["data"])]),_:1},8,["label"]),n(v,{label:"全部 ".concat(t.length||""),name:"all"},{default:p(()=>[n(j,{data:t},null,8,["data"])]),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})])}}});const q=z(dt,[["__scopeId","data-v-9de070a6"]]),S=r=>(he("data-v-2108dc2b"),r=r(),me(),r),ut={class:"dashboard"},_t={class:"pc-nav"},ft={class:"nav"},vt={class:"logo"},ht=S(()=>o("img",{src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1)),mt={key:0,type:"checkbox",id:"navActive"},gt={key:0,for:"navActive",class:"nav-item"},bt=S(()=>o("span",null,"Hello💐,",-1)),wt=["onClick"],$t=S(()=>o("span",{style:{"margin-right":"6px"}},"退出",-1)),yt=S(()=>o("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-v-53d86618":""},[o("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z",fill:"#86909C","data-v-53d86618":""})],-1)),Ct=S(()=>o("div",{class:"mask"},null,-1)),kt={id:"navMenu"},xt={for:"navActive"},Et={key:0,class:"flex fac"},Mt=S(()=>o("span",null,"Hello 💐,",-1)),Vt={class:"exit-info"},St={class:"ellipsis"},At=E({__name:"index",setup(r){const l=_e(),t=Q(),s=ee(),f=y(()=>t.getters["public/isMobile"]),i=N([{title:"文件管理",path:"/dashboard/files"},{title:"任务管理",path:"/dashboard/tasks"}]),h=A(0),g=d=>{const a=i[d];!a.isExternal&&d!==h.value&&l.push({path:a.path}),a.isExternal&&window.open(a.path,"_blank")};J(()=>s.path,d=>{const a=i.findIndex(x=>d.startsWith(x.path));a!==-1&&(h.value=a)});const u=()=>{Ee.confirm("确认退出登录?","登出提示",{draggable:!0}).then(()=>{O.logout().finally(()=>{t.commit("user/setToken",null),l.replace({name:"home"})})}).catch(()=>{fe.info("取消")})},v=A("World"),b=()=>{h.value=i.findIndex(d=>s.path.startsWith(d.path))};return te(()=>{O.checkPower().then(d=>{var w,M,V;const a=(w=d.data)==null?void 0:w.power;if(v.value=(M=d.data)==null?void 0:M.name,t.commit("user/setSuperAdmin",a),a){const e=[{title:"应用管理",path:"/dashboard/manage"},{title:"网站监控",path:"https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78",isExternal:!0}];i.push(...e)}((V=d.data)==null?void 0:V.system)&&(i.splice(0,i.length),i.push({title:"系统管理",path:"/dashboard/config"})),b()})}),(d,a)=>{const x=W("router-link"),w=ve,M=ye,V=Ce,e=we,T=W("router-view");return c(),_("div",ut,[o("div",_t,[o("div",ft,[o("div",vt,[n(x,{to:"/"},{default:p(()=>[ht]),_:1})]),f.value?(c(),_("input",mt)):C("",!0),o("nav",null,[f.value?(c(),_("label",gt,[bt,B(" "+k(v.value),1)])):C("",!0),(c(!0),_(D,null,X(i,(oe,P)=>(c(),_("label",{for:"navActive",class:I(["nav-item",{active:h.value===P}]),key:P,onClick:Bt=>g(P)},k(oe.title),11,wt))),128)),f.value?(c(),_("label",{key:1,onClick:u,for:"navActive",class:"nav-item"},[$t,n(w,{size:"16"},{default:p(()=>[yt]),_:1})])):C("",!0)]),Ct]),o("span",kt,[f.value?(c(),K(q,{key:0,class:"mobile-message-bell"})):C("",!0),o("label",xt,[n(w,{size:"32"},{default:p(()=>[n(m(tt))]),_:1})])]),f.value?C("",!0):(c(),_("div",Et,[n(q),Mt,n(e,{class:"exit"},{dropdown:p(()=>[n(V,null,{default:p(()=>[n(M,{onClick:u,icon:m(Je)},{default:p(()=>[B("退出")]),_:1},8,["icon"])]),_:1})]),default:p(()=>[o("span",Vt,[o("span",St,k(v.value),1),n(w,null,{default:p(()=>[n(m($e))]),_:1})])]),_:1})]))]),n(T),o("div",null,[n(ge,{type:"dashboard"})])])}}});const Rt=z(At,[["__scopeId","data-v-2108dc2b"]]);export{Rt as default};
|
|
2
|
+
//# sourceMappingURL=index-d88fcb67.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-8eff6b5a.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/index.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/bell.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/close.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/expand.mjs","../../src/components/MessageList/index.vue","../../src/components/MessagePanel/index.vue","../../src/pages/dashboard/index.vue"],"sourcesContent":["import '../../../utils/index.mjs';\nimport '../../tooltip/index.mjs';\nimport '../../dropdown/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useTooltipTriggerProps, useTooltipContentProps } from '../../tooltip/src/tooltip.mjs';\nimport { dropdownProps } from '../../dropdown/src/dropdown.mjs';\nimport { isBoolean } from '@vueuse/core';\n\nconst popoverProps = buildProps({\n trigger: useTooltipTriggerProps.trigger,\n placement: dropdownProps.placement,\n disabled: useTooltipTriggerProps.disabled,\n visible: useTooltipContentProps.visible,\n transition: useTooltipContentProps.transition,\n popperOptions: dropdownProps.popperOptions,\n tabindex: dropdownProps.tabindex,\n content: useTooltipContentProps.content,\n popperStyle: useTooltipContentProps.popperStyle,\n popperClass: useTooltipContentProps.popperClass,\n enterable: {\n ...useTooltipContentProps.enterable,\n default: true\n },\n effect: {\n ...useTooltipContentProps.effect,\n default: \"light\"\n },\n teleported: useTooltipContentProps.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n persistent: {\n type: Boolean,\n default: true\n },\n \"onUpdate:visible\": {\n type: Function\n }\n});\nconst popoverEmits = {\n \"update:visible\": (value) => isBoolean(value),\n \"before-enter\": () => true,\n \"before-leave\": () => true,\n \"after-enter\": () => true,\n \"after-leave\": () => true\n};\n\nexport { popoverEmits, popoverProps };\n//# sourceMappingURL=popover.mjs.map\n","import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { popoverProps, popoverEmits } from './popover.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\n\nconst __default__ = {\n name: \"ElPopover\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: popoverProps,\n emits: popoverEmits,\n setup(__props, { expose, emit }) {\n const props = __props;\n const updateEventKeyRaw = `onUpdate:visible`;\n const onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw];\n });\n const ns = useNamespace(\"popover\");\n const tooltipRef = ref();\n const popperRef = computed(() => {\n var _a;\n return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;\n });\n const style = computed(() => {\n return [\n {\n width: addUnit(props.width)\n },\n props.popperStyle\n ];\n });\n const kls = computed(() => {\n return [ns.b(), props.popperClass, { [ns.m(\"plain\")]: !!props.content }];\n });\n const gpuAcceleration = computed(() => {\n return props.transition === \"el-fade-in-linear\";\n });\n const hide = () => {\n var _a;\n (_a = tooltipRef.value) == null ? void 0 : _a.hide();\n };\n const beforeEnter = () => {\n emit(\"before-enter\");\n };\n const beforeLeave = () => {\n emit(\"before-leave\");\n };\n const afterEnter = () => {\n emit(\"after-enter\");\n };\n const afterLeave = () => {\n emit(\"update:visible\", false);\n emit(\"after-leave\");\n };\n expose({\n popperRef,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElTooltip), mergeProps({\n ref_key: \"tooltipRef\",\n ref: tooltipRef\n }, _ctx.$attrs, {\n trigger: _ctx.trigger,\n placement: _ctx.placement,\n disabled: _ctx.disabled,\n visible: _ctx.visible,\n transition: _ctx.transition,\n \"popper-options\": _ctx.popperOptions,\n tabindex: _ctx.tabindex,\n content: _ctx.content,\n offset: _ctx.offset,\n \"show-after\": _ctx.showAfter,\n \"hide-after\": _ctx.hideAfter,\n \"auto-close\": _ctx.autoClose,\n \"show-arrow\": _ctx.showArrow,\n \"aria-label\": _ctx.title,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"popper-class\": unref(kls),\n \"popper-style\": unref(style),\n teleported: _ctx.teleported,\n persistent: _ctx.persistent,\n \"gpu-acceleration\": unref(gpuAcceleration),\n \"onUpdate:visible\": unref(onUpdateVisible),\n onBeforeShow: beforeEnter,\n onBeforeHide: beforeLeave,\n onShow: afterEnter,\n onHide: afterLeave\n }), {\n content: withCtx(() => [\n _ctx.title ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).e(\"title\")),\n role: \"title\"\n }, toDisplayString(_ctx.title), 3)) : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.content), 1)\n ])\n ]),\n default: withCtx(() => [\n _ctx.$slots.reference ? renderSlot(_ctx.$slots, \"reference\", { key: 0 }) : createCommentVNode(\"v-if\", true)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]);\n };\n }\n});\nvar Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue\"]]);\n\nexport { Popover as default };\n//# sourceMappingURL=popover2.mjs.map\n","const attachEvents = (el, binding) => {\n const popperComponent = binding.arg || binding.value;\n const popover = popperComponent == null ? void 0 : popperComponent.popperRef;\n if (popover) {\n popover.triggerRef = el;\n }\n};\nvar PopoverDirective = {\n mounted(el, binding) {\n attachEvents(el, binding);\n },\n updated(el, binding) {\n attachEvents(el, binding);\n }\n};\nconst VPopover = \"popover\";\n\nexport { VPopover, PopoverDirective as default };\n//# sourceMappingURL=directive.mjs.map\n","import '../../utils/index.mjs';\nimport Popover from './src/popover2.mjs';\nimport PopoverDirective, { VPopover } from './src/directive.mjs';\nexport { popoverEmits, popoverProps } from './src/popover.mjs';\nimport { withInstallDirective, withInstall } from '../../utils/vue/install.mjs';\n\nconst ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);\nconst ElPopover = withInstall(Popover, {\n directive: ElPopoverDirective\n});\n\nexport { ElPopover, ElPopoverDirective, ElPopover as default };\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Bell\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar bell = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { bell as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Close\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar close = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { close as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Expand\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar expand = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { expand as default };\n","<script lang=\"ts\" setup>\nimport { ref, reactive, onMounted, watch, computed } from 'vue'\nimport { useStore } from 'vuex'\nimport { formatDate } from '@/utils/stringUtil'\nimport { SuperUserApi } from '@/apis'\n\nconst props = defineProps<{\n data: SuperUserApiTypes.MessageItem[]\n autoShow?: boolean\n}>()\n\nconst dialogMessage = reactive({\n show: false,\n title: '系统消息',\n text: '内容'\n})\nconst activeMessage = ref<SuperUserApiTypes.MessageItem>(null)\nconst handleViewDialogMessage = (v: SuperUserApiTypes.MessageItem) => {\n activeMessage.value = v\n dialogMessage.text = v.text\n // TODO: 魔法数字问题\n // TODO:支持更多的消息类型\n dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'\n dialogMessage.show = true\n}\n\nconst readMessage = () => {\n if (activeMessage.value.read) {\n dialogMessage.show = false\n return\n }\n SuperUserApi.readMessage(activeMessage.value.id).then(() => {\n activeMessage.value.read = true\n dialogMessage.show = false\n })\n}\n\nwatch(\n () => props.data.length,\n () => {\n if (!props.autoShow) {\n return\n }\n const showItem = props.data.find((v) => !v.read)\n if (showItem) {\n handleViewDialogMessage(showItem)\n }\n }\n)\n\n// TODO:换成自定义hook\nconst $store = useStore()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n</script>\n<template>\n <div v-if=\"!data.length\" class=\"empty\">暂无更多消息 ღ( ´・ᴗ・` )比心</div>\n <ul class=\"message-list\">\n <li\n v-for=\"d in data\"\n :key=\"d.id\"\n :class=\"{\n read: d.read\n }\"\n @click=\"handleViewDialogMessage(d)\"\n >\n <p class=\"text\">{{ d.text }}</p>\n <p class=\"date\">{{ formatDate(new Date(d.date)) }}</p>\n </li>\n </ul>\n <el-dialog\n center\n show-close\n append-to-body\n v-model=\"dialogMessage.show\"\n :close-on-click-modal=\"false\"\n :title=\"dialogMessage.title\"\n width=\"30%\"\n :fullscreen=\"isMobile\"\n >\n <div class=\"message-text\" v-html=\"dialogMessage.text\"></div>\n <template #footer>\n <p class=\"dialog-date\">\n 时间:{{ formatDate(new Date(activeMessage.date)) }}\n </p>\n <span>\n <el-button\n type=\"default\"\n @click=\"\n () => {\n dialogMessage.show = false\n }\n \"\n >\n 下次提醒\n </el-button>\n <el-button type=\"primary\" @click=\"readMessage\"> 确定 </el-button>\n </span>\n </template>\n </el-dialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-list {\n list-style: none;\n max-height: 500px;\n overflow-y: scroll;\n li {\n border-bottom: 1px solid #ddd;\n padding: 10px;\n cursor: pointer;\n &.read {\n opacity: 0.5;\n &:hover {\n opacity: 0.9;\n }\n }\n &:last-child {\n border-bottom: none;\n }\n\n p.text {\n font-size: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n p.date {\n font-size: 14px;\n margin-top: 4px;\n }\n }\n}\n.empty {\n text-align: center;\n padding: 10px;\n}\n\n.dialog-date {\n font-size: 14px;\n text-align: right;\n padding: 10px;\n color: grey;\n}\n</style>\n<style lang=\"scss\">\n.message-text {\n overflow-y: scroll;\n max-height: 500px;\n ul,\n ol {\n list-style: none;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { Bell } from '@element-plus/icons-vue'\nimport { computed, reactive, onMounted, ref } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SuperUserApi } from '@/apis'\nimport MessageList from '@/components/MessageList/index.vue'\n\nconst activeTab = ref<'all' | 'no'>('all')\nconst messageData = reactive<SuperUserApiTypes.MessageItem[]>([])\n\nconst noReadMessage = computed(() => messageData.filter((v) => !v.read))\nconst route = useRoute()\nonMounted(() => {\n if (route.name !== 'config') {\n SuperUserApi.getMessageList().then((v) => {\n messageData.push(...v.data)\n })\n }\n})\n</script>\n<template>\n <div class=\"message-panel\">\n <el-popover placement=\"bottom-end\" :width=\"375\" trigger=\"hover\">\n <template #reference>\n <el-badge :value=\"noReadMessage.length || ''\" :max=\"99\">\n <el-button :icon=\"Bell\" circle />\n </el-badge>\n </template>\n <div>\n <el-tabs v-model=\"activeTab\">\n <el-tab-pane :label=\"`未读 ${noReadMessage.length || ''}`\" name=\"no\">\n <message-list auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <message-list :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<template>\n <div class=\"dashboard\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n />\n </router-link>\n </div>\n <input v-if=\"isMobile\" type=\"checkbox\" id=\"navActive\" />\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n for=\"navActive\"\n class=\"nav-item\"\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n :class=\"{\n active: navActiveIdx === idx\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label\n >\n <label\n @click=\"handleLogout\"\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n >\n <span style=\"margin-right: 6px\">退出</span>\n <el-icon size=\"16\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-v-53d86618\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z\"\n fill=\"#86909C\"\n data-v-53d86618\n />\n </svg>\n </el-icon>\n </label>\n </nav>\n <div class=\"mask\"></div>\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <message-panel v-if=\"isMobile\" class=\"mobile-message-bell\" />\n <label for=\"navActive\">\n <el-icon size=\"32\">\n <Expand />\n </el-icon>\n </label>\n </span>\n <div class=\"flex fac\" v-if=\"!isMobile\">\n <message-panel />\n <span>Hello 💐,</span>\n <el-dropdown class=\"exit\">\n <span class=\"exit-info\">\n <span class=\"ellipsis\">{{ userName }}</span>\n <el-icon>\n <ArrowDown />\n </el-icon>\n </span>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item @click=\"handleLogout\" :icon=\"Close\"\n >退出</el-dropdown-item\n >\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view></router-view>\n <div>\n <home-footer type=\"dashboard\"></home-footer>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { Expand, Close, ArrowDown, Bell } from '@element-plus/icons-vue'\nimport HomeFooter from '@components/HomeFooter/index.vue'\n\nimport { onMounted, reactive, ref, computed, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { UserApi } from '@/apis'\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\nconst navList = reactive<\n { title: string; path: string; isExternal?: boolean }[]\n>([\n {\n title: '文件管理',\n path: '/dashboard/files'\n },\n {\n title: '任务管理',\n path: '/dashboard/tasks'\n }\n])\nconst navActiveIdx = ref(0)\nconst handleNav = (idx: number) => {\n const n = navList[idx]\n if (!n.isExternal && idx !== navActiveIdx.value) {\n $router.push({\n path: n.path\n })\n }\n if (n.isExternal) {\n window.open(n.path, '_blank')\n }\n}\n\n// 自动切换激活的标题栏\nwatch(\n () => $route.path,\n (path: string) => {\n const idx = navList.findIndex((n) => path.startsWith(n.path))\n if (idx !== -1) {\n navActiveIdx.value = idx\n }\n }\n)\n\nconst handleLogout = () => {\n ElMessageBox.confirm('确认退出登录?', '登出提示', {\n draggable: true\n })\n .then(() => {\n // 登出接口\n UserApi.logout().finally(() => {\n $store.commit('user/setToken', null)\n $router.replace({\n name: 'home'\n })\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n}\nconst userName = ref('World')\n\nconst refreshActiveTab = () => {\n // 动态修改active的项\n navActiveIdx.value = navList.findIndex((v) => $route.path.startsWith(v.path))\n}\nonMounted(() => {\n // 动态添加管理页面入口\n UserApi.checkPower().then((r) => {\n const isSuperAdmin = r.data?.power\n userName.value = r.data?.name\n $store.commit('user/setSuperAdmin', isSuperAdmin)\n if (isSuperAdmin) {\n const superNavList = [\n {\n title: '应用管理',\n path: '/dashboard/manage'\n },\n {\n title: '网站监控',\n path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',\n isExternal: true\n }\n ]\n navList.push(...superNavList)\n }\n const isSystem = r.data?.system\n if (isSystem) {\n navList.splice(0, navList.length)\n navList.push({\n title: '系统管理',\n path: '/dashboard/config'\n })\n }\n refreshActiveTab()\n })\n})\n</script>\n<style scoped lang=\"scss\">\n.dashboard {\n background-color: #fafafa;\n}\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n .exit {\n cursor: pointer;\n display: flex;\n align-items: center;\n .exit-info {\n display: flex;\n justify-content: center;\n align-items: center;\n > span {\n margin-right: 5px;\n display: block;\n max-width: 70px;\n }\n }\n }\n .nav {\n display: flex;\n nav {\n display: flex;\n align-items: center;\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n .exit {\n color: #595959;\n }\n }\n .logo {\n width: 180px;\n margin: 0 10px;\n img {\n height: 40px;\n }\n }\n}\n#navActive {\n display: none;\n opacity: 0;\n}\n#navMenu {\n display: none;\n}\n.mobile-message-bell {\n display: none;\n position: fixed;\n right: 0;\n top: 0;\n}\n@media screen and (max-width: 700px) {\n #navActive {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n }\n .mobile-message-bell {\n display: block;\n }\n #navMenu {\n cursor: pointer;\n display: block;\n position: absolute;\n left: 10px;\n top: 5px;\n font-size: 2rem;\n }\n .pc-nav {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n z-index: 6;\n .nav {\n flex-wrap: wrap;\n width: 100%;\n .logo {\n width: 100%;\n text-align: center;\n }\n }\n #navActive {\n & + nav {\n display: none;\n }\n }\n #navActive:checked {\n & + nav {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: absolute;\n z-index: 1;\n background: #fff;\n left: 0;\n top: 50px;\n + .mask {\n display: block;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 50px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n }\n .exit {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n }\n}\n</style>\n"],"names":["popoverProps","buildProps","useTooltipTriggerProps","dropdownProps","useTooltipContentProps","popoverEmits","value","isBoolean","__default__","_sfc_main","defineComponent","__props","expose","emit","props","updateEventKeyRaw","onUpdateVisible","computed","ns","useNamespace","tooltipRef","ref","popperRef","_a","unref","style","addUnit","kls","gpuAcceleration","hide","beforeEnter","beforeLeave","afterEnter","afterLeave","_ctx","_cache","openBlock","createBlock","ElTooltip","mergeProps","withCtx","createElementBlock","normalizeClass","toDisplayString","createCommentVNode","renderSlot","createTextVNode","Popover","_export_sfc","attachEvents","el","binding","popperComponent","popover","PopoverDirective","VPopover","ElPopoverDirective","withInstallDirective","ElPopover","withInstall","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","$props","$setup","$data","$options","bell","close","expand","dialogMessage","reactive","activeMessage","handleViewDialogMessage","v","readMessage","SuperUserApi","watch","showItem","$store","useStore","isMobile","activeTab","messageData","noReadMessage","route","useRoute","onMounted","$router","useRouter","$route","navList","navActiveIdx","handleNav","idx","n","path","handleLogout","ElMessageBox","UserApi","ElMessage","userName","refreshActiveTab","r","isSuperAdmin","_b","superNavList","_c"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"index-d88fcb67.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/index.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/bell.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/close.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/expand.mjs","../../src/components/MessageList/index.vue","../../src/components/MessagePanel/index.vue","../../src/pages/dashboard/index.vue"],"sourcesContent":["import '../../../utils/index.mjs';\nimport '../../tooltip/index.mjs';\nimport '../../dropdown/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useTooltipTriggerProps, useTooltipContentProps } from '../../tooltip/src/tooltip.mjs';\nimport { dropdownProps } from '../../dropdown/src/dropdown.mjs';\nimport { isBoolean } from '@vueuse/core';\n\nconst popoverProps = buildProps({\n trigger: useTooltipTriggerProps.trigger,\n placement: dropdownProps.placement,\n disabled: useTooltipTriggerProps.disabled,\n visible: useTooltipContentProps.visible,\n transition: useTooltipContentProps.transition,\n popperOptions: dropdownProps.popperOptions,\n tabindex: dropdownProps.tabindex,\n content: useTooltipContentProps.content,\n popperStyle: useTooltipContentProps.popperStyle,\n popperClass: useTooltipContentProps.popperClass,\n enterable: {\n ...useTooltipContentProps.enterable,\n default: true\n },\n effect: {\n ...useTooltipContentProps.effect,\n default: \"light\"\n },\n teleported: useTooltipContentProps.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n persistent: {\n type: Boolean,\n default: true\n },\n \"onUpdate:visible\": {\n type: Function\n }\n});\nconst popoverEmits = {\n \"update:visible\": (value) => isBoolean(value),\n \"before-enter\": () => true,\n \"before-leave\": () => true,\n \"after-enter\": () => true,\n \"after-leave\": () => true\n};\n\nexport { popoverEmits, popoverProps };\n//# sourceMappingURL=popover.mjs.map\n","import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { popoverProps, popoverEmits } from './popover.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\n\nconst __default__ = {\n name: \"ElPopover\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: popoverProps,\n emits: popoverEmits,\n setup(__props, { expose, emit }) {\n const props = __props;\n const updateEventKeyRaw = `onUpdate:visible`;\n const onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw];\n });\n const ns = useNamespace(\"popover\");\n const tooltipRef = ref();\n const popperRef = computed(() => {\n var _a;\n return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;\n });\n const style = computed(() => {\n return [\n {\n width: addUnit(props.width)\n },\n props.popperStyle\n ];\n });\n const kls = computed(() => {\n return [ns.b(), props.popperClass, { [ns.m(\"plain\")]: !!props.content }];\n });\n const gpuAcceleration = computed(() => {\n return props.transition === \"el-fade-in-linear\";\n });\n const hide = () => {\n var _a;\n (_a = tooltipRef.value) == null ? void 0 : _a.hide();\n };\n const beforeEnter = () => {\n emit(\"before-enter\");\n };\n const beforeLeave = () => {\n emit(\"before-leave\");\n };\n const afterEnter = () => {\n emit(\"after-enter\");\n };\n const afterLeave = () => {\n emit(\"update:visible\", false);\n emit(\"after-leave\");\n };\n expose({\n popperRef,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElTooltip), mergeProps({\n ref_key: \"tooltipRef\",\n ref: tooltipRef\n }, _ctx.$attrs, {\n trigger: _ctx.trigger,\n placement: _ctx.placement,\n disabled: _ctx.disabled,\n visible: _ctx.visible,\n transition: _ctx.transition,\n \"popper-options\": _ctx.popperOptions,\n tabindex: _ctx.tabindex,\n content: _ctx.content,\n offset: _ctx.offset,\n \"show-after\": _ctx.showAfter,\n \"hide-after\": _ctx.hideAfter,\n \"auto-close\": _ctx.autoClose,\n \"show-arrow\": _ctx.showArrow,\n \"aria-label\": _ctx.title,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"popper-class\": unref(kls),\n \"popper-style\": unref(style),\n teleported: _ctx.teleported,\n persistent: _ctx.persistent,\n \"gpu-acceleration\": unref(gpuAcceleration),\n \"onUpdate:visible\": unref(onUpdateVisible),\n onBeforeShow: beforeEnter,\n onBeforeHide: beforeLeave,\n onShow: afterEnter,\n onHide: afterLeave\n }), {\n content: withCtx(() => [\n _ctx.title ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).e(\"title\")),\n role: \"title\"\n }, toDisplayString(_ctx.title), 3)) : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.content), 1)\n ])\n ]),\n default: withCtx(() => [\n _ctx.$slots.reference ? renderSlot(_ctx.$slots, \"reference\", { key: 0 }) : createCommentVNode(\"v-if\", true)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]);\n };\n }\n});\nvar Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue\"]]);\n\nexport { Popover as default };\n//# sourceMappingURL=popover2.mjs.map\n","const attachEvents = (el, binding) => {\n const popperComponent = binding.arg || binding.value;\n const popover = popperComponent == null ? void 0 : popperComponent.popperRef;\n if (popover) {\n popover.triggerRef = el;\n }\n};\nvar PopoverDirective = {\n mounted(el, binding) {\n attachEvents(el, binding);\n },\n updated(el, binding) {\n attachEvents(el, binding);\n }\n};\nconst VPopover = \"popover\";\n\nexport { VPopover, PopoverDirective as default };\n//# sourceMappingURL=directive.mjs.map\n","import '../../utils/index.mjs';\nimport Popover from './src/popover2.mjs';\nimport PopoverDirective, { VPopover } from './src/directive.mjs';\nexport { popoverEmits, popoverProps } from './src/popover.mjs';\nimport { withInstallDirective, withInstall } from '../../utils/vue/install.mjs';\n\nconst ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);\nconst ElPopover = withInstall(Popover, {\n directive: ElPopoverDirective\n});\n\nexport { ElPopover, ElPopoverDirective, ElPopover as default };\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Bell\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar bell = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { bell as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Close\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar close = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { close as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Expand\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar expand = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { expand as default };\n","<script lang=\"ts\" setup>\nimport { ref, reactive, onMounted, watch, computed } from 'vue'\nimport { useStore } from 'vuex'\nimport { formatDate } from '@/utils/stringUtil'\nimport { SuperUserApi } from '@/apis'\n\nconst props = defineProps<{\n data: SuperUserApiTypes.MessageItem[]\n autoShow?: boolean\n}>()\n\nconst dialogMessage = reactive({\n show: false,\n title: '系统消息',\n text: '内容'\n})\nconst activeMessage = ref<SuperUserApiTypes.MessageItem>(null)\nconst handleViewDialogMessage = (v: SuperUserApiTypes.MessageItem) => {\n activeMessage.value = v\n dialogMessage.text = v.text\n // TODO: 魔法数字问题\n // TODO:支持更多的消息类型\n dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'\n dialogMessage.show = true\n}\n\nconst readMessage = () => {\n if (activeMessage.value.read) {\n dialogMessage.show = false\n return\n }\n SuperUserApi.readMessage(activeMessage.value.id).then(() => {\n activeMessage.value.read = true\n dialogMessage.show = false\n })\n}\n\nwatch(\n () => props.data.length,\n () => {\n if (!props.autoShow) {\n return\n }\n const showItem = props.data.find((v) => !v.read)\n if (showItem) {\n handleViewDialogMessage(showItem)\n }\n }\n)\n\n// TODO:换成自定义hook\nconst $store = useStore()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n</script>\n<template>\n <div v-if=\"!data.length\" class=\"empty\">暂无更多消息 ღ( ´・ᴗ・` )比心</div>\n <ul class=\"message-list\">\n <li\n v-for=\"d in data\"\n :key=\"d.id\"\n :class=\"{\n read: d.read\n }\"\n @click=\"handleViewDialogMessage(d)\"\n >\n <p class=\"text\">{{ d.text }}</p>\n <p class=\"date\">{{ formatDate(new Date(d.date)) }}</p>\n </li>\n </ul>\n <el-dialog\n center\n show-close\n append-to-body\n v-model=\"dialogMessage.show\"\n :close-on-click-modal=\"false\"\n :title=\"dialogMessage.title\"\n width=\"30%\"\n :fullscreen=\"isMobile\"\n >\n <div class=\"message-text\" v-html=\"dialogMessage.text\"></div>\n <template #footer>\n <p class=\"dialog-date\">\n 时间:{{ formatDate(new Date(activeMessage.date)) }}\n </p>\n <span>\n <el-button\n type=\"default\"\n @click=\"\n () => {\n dialogMessage.show = false\n }\n \"\n >\n 下次提醒\n </el-button>\n <el-button type=\"primary\" @click=\"readMessage\"> 确定 </el-button>\n </span>\n </template>\n </el-dialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-list {\n list-style: none;\n max-height: 500px;\n overflow-y: scroll;\n li {\n border-bottom: 1px solid #ddd;\n padding: 10px;\n cursor: pointer;\n &.read {\n opacity: 0.5;\n &:hover {\n opacity: 0.9;\n }\n }\n &:last-child {\n border-bottom: none;\n }\n\n p.text {\n font-size: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n p.date {\n font-size: 14px;\n margin-top: 4px;\n }\n }\n}\n.empty {\n text-align: center;\n padding: 10px;\n}\n\n.dialog-date {\n font-size: 14px;\n text-align: right;\n padding: 10px;\n color: grey;\n}\n</style>\n<style lang=\"scss\">\n.message-text {\n overflow-y: scroll;\n max-height: 500px;\n ul,\n ol {\n list-style: none;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { Bell } from '@element-plus/icons-vue'\nimport { computed, reactive, onMounted, ref } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SuperUserApi } from '@/apis'\nimport MessageList from '@/components/MessageList/index.vue'\n\nconst activeTab = ref<'all' | 'no'>('all')\nconst messageData = reactive<SuperUserApiTypes.MessageItem[]>([])\n\nconst noReadMessage = computed(() => messageData.filter((v) => !v.read))\nconst route = useRoute()\nonMounted(() => {\n if (route.name !== 'config') {\n SuperUserApi.getMessageList().then((v) => {\n messageData.push(...v.data)\n })\n }\n})\n</script>\n<template>\n <div class=\"message-panel\">\n <el-popover placement=\"bottom-end\" :width=\"375\" trigger=\"hover\">\n <template #reference>\n <el-badge :value=\"noReadMessage.length || ''\" :max=\"99\">\n <el-button :icon=\"Bell\" circle />\n </el-badge>\n </template>\n <div>\n <el-tabs v-model=\"activeTab\">\n <el-tab-pane :label=\"`未读 ${noReadMessage.length || ''}`\" name=\"no\">\n <message-list auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <message-list :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<template>\n <div class=\"dashboard\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n />\n </router-link>\n </div>\n <input v-if=\"isMobile\" type=\"checkbox\" id=\"navActive\" />\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n for=\"navActive\"\n class=\"nav-item\"\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n :class=\"{\n active: navActiveIdx === idx\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label\n >\n <label\n @click=\"handleLogout\"\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n >\n <span style=\"margin-right: 6px\">退出</span>\n <el-icon size=\"16\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-v-53d86618\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z\"\n fill=\"#86909C\"\n data-v-53d86618\n />\n </svg>\n </el-icon>\n </label>\n </nav>\n <div class=\"mask\"></div>\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <message-panel v-if=\"isMobile\" class=\"mobile-message-bell\" />\n <label for=\"navActive\">\n <el-icon size=\"32\">\n <Expand />\n </el-icon>\n </label>\n </span>\n <div class=\"flex fac\" v-if=\"!isMobile\">\n <message-panel />\n <span>Hello 💐,</span>\n <el-dropdown class=\"exit\">\n <span class=\"exit-info\">\n <span class=\"ellipsis\">{{ userName }}</span>\n <el-icon>\n <ArrowDown />\n </el-icon>\n </span>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item @click=\"handleLogout\" :icon=\"Close\"\n >退出</el-dropdown-item\n >\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view></router-view>\n <div>\n <home-footer type=\"dashboard\"></home-footer>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { Expand, Close, ArrowDown, Bell } from '@element-plus/icons-vue'\nimport HomeFooter from '@components/HomeFooter/index.vue'\n\nimport { onMounted, reactive, ref, computed, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { UserApi } from '@/apis'\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\nconst navList = reactive<\n { title: string; path: string; isExternal?: boolean }[]\n>([\n {\n title: '文件管理',\n path: '/dashboard/files'\n },\n {\n title: '任务管理',\n path: '/dashboard/tasks'\n }\n])\nconst navActiveIdx = ref(0)\nconst handleNav = (idx: number) => {\n const n = navList[idx]\n if (!n.isExternal && idx !== navActiveIdx.value) {\n $router.push({\n path: n.path\n })\n }\n if (n.isExternal) {\n window.open(n.path, '_blank')\n }\n}\n\n// 自动切换激活的标题栏\nwatch(\n () => $route.path,\n (path: string) => {\n const idx = navList.findIndex((n) => path.startsWith(n.path))\n if (idx !== -1) {\n navActiveIdx.value = idx\n }\n }\n)\n\nconst handleLogout = () => {\n ElMessageBox.confirm('确认退出登录?', '登出提示', {\n draggable: true\n })\n .then(() => {\n // 登出接口\n UserApi.logout().finally(() => {\n $store.commit('user/setToken', null)\n $router.replace({\n name: 'home'\n })\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n}\nconst userName = ref('World')\n\nconst refreshActiveTab = () => {\n // 动态修改active的项\n navActiveIdx.value = navList.findIndex((v) => $route.path.startsWith(v.path))\n}\nonMounted(() => {\n // 动态添加管理页面入口\n UserApi.checkPower().then((r) => {\n const isSuperAdmin = r.data?.power\n userName.value = r.data?.name\n $store.commit('user/setSuperAdmin', isSuperAdmin)\n if (isSuperAdmin) {\n const superNavList = [\n {\n title: '应用管理',\n path: '/dashboard/manage'\n },\n {\n title: '网站监控',\n path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',\n isExternal: true\n }\n ]\n navList.push(...superNavList)\n }\n const isSystem = r.data?.system\n if (isSystem) {\n navList.splice(0, navList.length)\n navList.push({\n title: '系统管理',\n path: '/dashboard/config'\n })\n }\n refreshActiveTab()\n })\n})\n</script>\n<style scoped lang=\"scss\">\n.dashboard {\n background-color: #fafafa;\n}\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n .exit {\n cursor: pointer;\n display: flex;\n align-items: center;\n .exit-info {\n display: flex;\n justify-content: center;\n align-items: center;\n > span {\n margin-right: 5px;\n display: block;\n max-width: 70px;\n }\n }\n }\n .nav {\n display: flex;\n nav {\n display: flex;\n align-items: center;\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n .exit {\n color: #595959;\n }\n }\n .logo {\n width: 180px;\n margin: 0 10px;\n img {\n height: 40px;\n }\n }\n}\n#navActive {\n display: none;\n opacity: 0;\n}\n#navMenu {\n display: none;\n}\n.mobile-message-bell {\n display: none;\n position: fixed;\n right: 0;\n top: 0;\n}\n@media screen and (max-width: 700px) {\n #navActive {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n }\n .mobile-message-bell {\n display: block;\n }\n #navMenu {\n cursor: pointer;\n display: block;\n position: absolute;\n left: 10px;\n top: 5px;\n font-size: 2rem;\n }\n .pc-nav {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n z-index: 6;\n .nav {\n flex-wrap: wrap;\n width: 100%;\n .logo {\n width: 100%;\n text-align: center;\n }\n }\n #navActive {\n & + nav {\n display: none;\n }\n }\n #navActive:checked {\n & + nav {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: absolute;\n z-index: 1;\n background: #fff;\n left: 0;\n top: 50px;\n + .mask {\n display: block;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 50px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n }\n .exit {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n }\n}\n</style>\n"],"names":["popoverProps","buildProps","useTooltipTriggerProps","dropdownProps","useTooltipContentProps","popoverEmits","value","isBoolean","__default__","_sfc_main","defineComponent","__props","expose","emit","props","updateEventKeyRaw","onUpdateVisible","computed","ns","useNamespace","tooltipRef","ref","popperRef","_a","unref","style","addUnit","kls","gpuAcceleration","hide","beforeEnter","beforeLeave","afterEnter","afterLeave","_ctx","_cache","openBlock","createBlock","ElTooltip","mergeProps","withCtx","createElementBlock","normalizeClass","toDisplayString","createCommentVNode","renderSlot","createTextVNode","Popover","_export_sfc","attachEvents","el","binding","popperComponent","popover","PopoverDirective","VPopover","ElPopoverDirective","withInstallDirective","ElPopover","withInstall","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","$props","$setup","$data","$options","bell","close","expand","dialogMessage","reactive","activeMessage","handleViewDialogMessage","v","readMessage","SuperUserApi","watch","showItem","$store","useStore","isMobile","activeTab","messageData","noReadMessage","route","useRoute","onMounted","$router","useRouter","$route","navList","navActiveIdx","handleNav","idx","n","path","handleLogout","ElMessageBox","UserApi","ElMessage","userName","refreshActiveTab","r","isSuperAdmin","_b","superNavList","_c"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as _,r as n,u as r,o as d,c as u,a as t,b as p,t as i,p as v,e as f,f as h,_ as m}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{d as _,r as n,u as r,o as d,c as u,a as t,b as p,t as i,p as v,e as f,f as h,_ as m}from"./index-ce410282.js";const c=e=>(v("data-v-7bc5f813"),e=e(),f(),e),x={class:"not-found"},I=c(()=>t("h1",null,"404 Not Found",-1)),b=c(()=>t("h2",null,"糟糕页面走丢了",-1)),S=_({__name:"index",setup(e){const o=n(3),a=n(null),s=r(),l=()=>{clearInterval(a.value),s.replace("/")};return d(()=>{a.value=setInterval(()=>{o.value===1&&(clearInterval(a.value),s.replace("/")),o.value-=1},1e3)}),(k,y)=>(h(),u("div",x,[I,b,t("h3",null,[p(i(o.value)+"s后",1),t("a",{onClick:l},"回到首页")])]))}});const N=m(S,[["__scopeId","data-v-7bc5f813"]]);export{N as default};
|
|
2
|
+
//# sourceMappingURL=index-f2876d54.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-f2876d54.js","sources":["../../src/pages/404/index.vue"],"sourcesContent":["<template>\n <div class=\"not-found\">\n <h1>404 Not Found</h1>\n <h2>糟糕页面走丢了</h2>\n <h3>{{ time }}s后<a @click=\"handleToHome\">回到首页</a></h3>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nconst time = ref(3)\nconst timer = ref(null)\nconst router = useRouter()\nconst handleToHome = () => {\n clearInterval(timer.value)\n router.replace('/')\n}\nonMounted(() => {\n timer.value = setInterval(() => {\n if (time.value === 1) {\n clearInterval(timer.value)\n router.replace('/')\n }\n time.value -= 1\n }, 1000)\n})\n</script>\n<style lang=\"scss\" scoped>\n.not-found {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);\n min-height: 100vh;\n}\nh1,\nh2,\nh3,\na {\n color: aliceblue;\n text-align: center;\n font-weight: lighter;\n}\na {\n margin-left: 10px;\n border-bottom: 2px solid aliceblue;\n}\nh1 {\n font-size: 48px;\n padding-top: 10%;\n}\nh2 {\n font-size: 30px;\n padding-top: 2vh;\n}\nh3 {\n font-size: 28px;\n padding-top: 1vh;\n}\n</style>\n"],"names":["time","ref","timer","router","useRouter","handleToHome","onMounted"],"mappings":"kSAWA,MAAAA,EAAAC,EAAA,CAAA,EACAC,EAAAD,EAAA,IAAA,EACAE,EAAAC,IACAC,EAAA,IAAA,CACE,cAAAH,EAAA,KAAA,EACAC,EAAA,QAAA,GAAA,CAAkB,EAEpB,OAAAG,EAAA,IAAA,CACEJ,EAAA,MAAA,YAAA,IAAA,CACEF,EAAA,QAAA,IACE,cAAAE,EAAA,KAAA,EACAC,EAAA,QAAA,GAAA,GAEFH,EAAA,OAAA,CAAc,EAAA,GAAA,CACT,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d,_ as r,i as F,c as i,a as u,j as c,w as e,b as t,B as s,f,p as o,e as n}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{d,_ as r,i as F,c as i,a as u,j as c,w as e,b as t,B as s,f,p as o,e as n}from"./index-ce410282.js";const v=d({setup(){return{}}});const l=a=>(o("data-v-57f0136c"),a=a(),n(),a),A={class:"about"},p={class:"panel"},B=l(()=>u("img",{class:"logo",src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png"},null,-1)),D=l(()=>u("div",{class:"panel"},[u("h1",null,"简介"),u("p",null,"在线文件收取助手,帮助用户快速的完成一对多的文件收取")],-1)),h={class:"panel"},g=s('<h1 data-v-57f0136c>诞生背景</h1><p data-v-57f0136c>校园学习或者工作场景中会有以下几个场景:</p><ul data-v-57f0136c><li data-v-57f0136c><strong data-v-57f0136c>电子文件:</strong> 班委向同学收取各种实验电子报告</li><li data-v-57f0136c><strong data-v-57f0136c>图片:</strong> 收取各种截图证明/活动照片</li><li data-v-57f0136c>...</li></ul><p data-v-57f0136c>目前最广泛的收取方式为,通过邮箱,QQ,微信等通讯工具传递</p><p data-v-57f0136c>弊端显而易见,不方便整理统计。还占用电脑/手机内存</p><p data-v-57f0136c>为了解决这个问题,此项目应运而生</p><p data-v-57f0136c>当然<span data-v-57f0136c><strong data-v-57f0136c>市面上也有几款类似的办公工具</strong></span> ,功能及使用方式都差不多</p><p data-v-57f0136c>本项目<strong data-v-57f0136c>是 <a href="https://github.com/ATQQ/easypicker2-client" data-v-57f0136c>开源</a> 的</strong></p>',8),_=s('<div class="panel" data-v-57f0136c><h1 data-v-57f0136c>现有功能 <span style="color:grey;font-size:0.8rem;" data-v-57f0136c>(用户关心的)</span></h1><h2 data-v-57f0136c>收集任务</h2><ul data-v-57f0136c><li data-v-57f0136c><strong data-v-57f0136c>分类管理: </strong> 收集任务支持分类管理</li><li data-v-57f0136c><strong data-v-57f0136c>设置DDL(截止日期): </strong> 任务截止后不可再提交文件</li><li data-v-57f0136c><strong data-v-57f0136c>限制提交人员: </strong> 非指定的人员(姓名),无法提交文件</li><li data-v-57f0136c><strong data-v-57f0136c>设置模板文件: </strong> 提交者可直接在提交页面下载此文件</li><li data-v-57f0136c><strong data-v-57f0136c>自动重命名: </strong> 提交的文件按填写表单信息进行自动重名(如:姓名-工号.后缀)</li></ul><h2 data-v-57f0136c>文件相关</h2><ul data-v-57f0136c><li data-v-57f0136c><strong data-v-57f0136c>上传(提交): </strong>单个/多个</li><li data-v-57f0136c><strong data-v-57f0136c>下载: </strong>单个/多个/按收集任务</li><li data-v-57f0136c><strong data-v-57f0136c>撤回: </strong>用户可以撤回自己提交的文件</li><li data-v-57f0136c><strong data-v-57f0136c>分享: </strong>用户可以将文件下载链接分享给朋友</li><li data-v-57f0136c><strong data-v-57f0136c>模板下载: </strong> 下载任务发布者设置的模板文件</li><li data-v-57f0136c><strong data-v-57f0136c>导出: </strong> 导出提交记录</li></ul></div><div class="panel" data-v-57f0136c><h1 data-v-57f0136c>相关链接</h1><h2 data-v-57f0136c>应用链接相关</h2><ul data-v-57f0136c><li data-v-57f0136c><a href="https://docs.ep.sugarat.top" target="_blank" rel="noopener noreferrer" data-v-57f0136c>私有化部署</a></li><li data-v-57f0136c><a target="_blank" href="https://ep.sugarat.top" data-v-57f0136c>Easypicker1.0</a></li><li data-v-57f0136c><a target="_blank" href="https://ep2.sugarat.top" data-v-57f0136c>Easypicker2.0</a></li></ul><h2 data-v-57f0136c>应用源代码 <span style="color:grey;font-size:0.8rem;" data-v-57f0136c>(开发者需要的)</span></h2><ul data-v-57f0136c><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/EasyPicker-webpack" data-v-57f0136c>Easypicker1.0-客户端</a></li><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/easypicker-server" data-v-57f0136c>Easypicker1.0-服务端</a></li></ul><ul data-v-57f0136c><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/easypicker2-client" data-v-57f0136c>Easypicker2.0-客户端</a></li><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/easypicker2-server" data-v-57f0136c>Easypicker2.0-服务端</a></li></ul><ul data-v-57f0136c><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/vite-vue3-template" data-v-57f0136c>Easypicker2.0-客户端模板仓库</a></li><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ/node-server" data-v-57f0136c>Easypicker2.0-服务端模板仓库</a></li></ul><h2 data-v-57f0136c>作者 <span style="color:grey;font-size:0.8rem;" data-v-57f0136c>(夹带私货)</span></h2><ul data-v-57f0136c><li data-v-57f0136c><a target="_blank" href="https://sugarat.top" data-v-57f0136c>博客</a></li><li data-v-57f0136c><a target="_blank" href="https://github.com/ATQQ" data-v-57f0136c>GitHub</a></li><li data-v-57f0136c><a target="_blank" href="https://juejin.cn/user/1028798615918983" data-v-57f0136c>掘金</a></li></ul></div>',2);function C(a,k,b,y,m,Q){const E=F("router-link");return f(),i("div",A,[u("main",null,[u("div",p,[c(E,{to:"/"},{default:e(()=>[B]),_:1})]),D,u("div",h,[g,u("p",null,[t("如有私有化的需求,可自行部署使用(也可 "),c(E,{to:"/author"},{default:e(()=>[t("联系作者")]),_:1}),t(" 提供帮助)")])]),_])])}const x=r(v,[["render",C],["__scopeId","data-v-57f0136c"]]);export{x as default};
|
|
2
|
+
//# sourceMappingURL=index-f2af0aed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-f2af0aed.js","sources":["../../src/pages/about/index.vue"],"sourcesContent":["<template>\n <div class=\"about\">\n <main>\n <div class=\"panel\">\n <router-link to=\"/\">\n <img class=\"logo\" src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\">\n </router-link>\n </div>\n <div class=\"panel\">\n <h1>简介</h1>\n <p>在线文件收取助手,帮助用户快速的完成一对多的文件收取</p>\n </div>\n <div class=\"panel\">\n <h1>诞生背景</h1>\n <p>校园学习或者工作场景中会有以下几个场景:</p>\n <ul>\n <li><strong>电子文件:</strong> 班委向同学收取各种实验电子报告</li>\n <li><strong>图片:</strong> 收取各种截图证明/活动照片</li>\n <li>...</li>\n </ul>\n <p>目前最广泛的收取方式为,通过邮箱,QQ,微信等通讯工具传递</p>\n <p>弊端显而易见,不方便整理统计。还占用电脑/手机内存</p>\n <p>为了解决这个问题,此项目应运而生</p>\n <p>当然<span><strong>市面上也有几款类似的办公工具</strong></span> ,功能及使用方式都差不多</p>\n <p>本项目<strong>是 <a href=\"https://github.com/ATQQ/easypicker2-client\">开源</a> 的</strong> </p>\n <p>如有私有化的需求,可自行部署使用(也可 <router-link to=\"/author\">联系作者</router-link> 提供帮助)</p>\n </div>\n <div class=\"panel\">\n <h1>现有功能 <span style=\"color:grey;font-size:0.8rem;\">(用户关心的)</span></h1>\n <h2>收集任务</h2>\n <ul>\n <li><strong>分类管理: </strong> 收集任务支持分类管理</li>\n <li><strong>设置DDL(截止日期): </strong> 任务截止后不可再提交文件</li>\n <li><strong>限制提交人员: </strong> 非指定的人员(姓名),无法提交文件</li>\n <li><strong>设置模板文件: </strong> 提交者可直接在提交页面下载此文件</li>\n <li><strong>自动重命名: </strong> 提交的文件按填写表单信息进行自动重名(如:姓名-工号.后缀)</li>\n </ul>\n <h2>文件相关</h2>\n <ul>\n <li><strong>上传(提交): </strong>单个/多个</li>\n <li><strong>下载: </strong>单个/多个/按收集任务</li>\n <li><strong>撤回: </strong>用户可以撤回自己提交的文件</li>\n <li><strong>分享: </strong>用户可以将文件下载链接分享给朋友</li>\n <li><strong>模板下载: </strong> 下载任务发布者设置的模板文件</li>\n <li><strong>导出: </strong> 导出提交记录</li>\n </ul>\n </div>\n <div class=\"panel\">\n <h1>相关链接</h1>\n <h2>应用链接相关</h2>\n <ul>\n <li><a href=\"https://docs.ep.sugarat.top\" target=\"_blank\" rel=\"noopener noreferrer\">私有化部署</a></li>\n <li><a target=\"_blank\" href=\"https://ep.sugarat.top\">Easypicker1.0</a></li>\n <li><a target=\"_blank\" href=\"https://ep2.sugarat.top\">Easypicker2.0</a></li>\n </ul>\n <h2>应用源代码 <span style=\"color:grey;font-size:0.8rem;\">(开发者需要的)</span></h2>\n <ul>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/EasyPicker-webpack\">Easypicker1.0-客户端</a></li>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/easypicker-server\">Easypicker1.0-服务端</a></li>\n </ul>\n <ul>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/easypicker2-client\">Easypicker2.0-客户端</a></li>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/easypicker2-server\">Easypicker2.0-服务端</a></li>\n </ul>\n <ul>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/vite-vue3-template\">Easypicker2.0-客户端模板仓库</a></li>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ/node-server\">Easypicker2.0-服务端模板仓库</a></li>\n </ul>\n <h2>作者 <span style=\"color:grey;font-size:0.8rem;\">(夹带私货)</span></h2>\n <ul>\n <li><a target=\"_blank\" href=\"https://sugarat.top\">博客</a></li>\n <li><a target=\"_blank\" href=\"https://github.com/ATQQ\">GitHub</a></li>\n <li><a target=\"_blank\" href=\"https://juejin.cn/user/1028798615918983\">掘金</a></li>\n </ul>\n </div>\n <!-- <div class=\"panel\">\n <h1>开发计划</h1>\n <h2>...未完待续</h2>\n </div>\n <div class=\"panel\">\n <h1>涉及技术</h1>\n <h2>...未完待续</h2>\n </div> -->\n </main>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n setup() {\n return {\n\n }\n },\n})\n</script>\n<style lang=\"scss\" scoped>\nh1,\nh2,\nh3,\nh4 {\n font-weight: 500;\n}\n.about {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\nmain {\n max-width: 860px;\n margin: 0 auto;\n padding: 20px;\n .panel {\n position: relative;\n margin: 0 auto 10px;\n padding: 16px 20px;\n width: 100%;\n overflow: hidden;\n border-radius: 0.25rem;\n box-shadow: #eee;\n box-sizing: border-box;\n transition: all 0.3s;\n background-color: #fff;\n }\n .logo{\n width: 100%;\n max-width: 520px;\n margin: 0 auto;\n display: block;\n }\n h1 {\n font-size: 1.6rem;\n margin-bottom: 10px;\n }\n h2{\n font-size: 1.3rem;\n margin-bottom: 12px;\n }\n ul,ol{\n margin-left: 20px;\n font-size: 15px;\n margin-bottom: 1em;\n }\n p{\n font-size: 15px;\n margin-bottom: 1em;\n }\n a{\n color: #409eff;\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_3","_createElementVNode","_hoisted_4","_hoisted_2","_createVNode","_component_router_link","_withCtx","_hoisted_6","_createTextVNode"],"mappings":"2GAyFA,MAAAA,EAAAC,EAAA,CAA+B,OAAA,CAE3B,MAAA,EAEA,CAEJ,CAAA,EA5FiB,MAAAC,EAAAC,IAAAC,EAAA,iBAAA,EAAAD,EAAAA,IAAAE,IAAAF,uCAEwBG,EAAAJ,EAAA,IAAAK,EAAA,MAAA,CAAwD,MAAA,8EAKjFC,EAAAN,EAAA,IAAAK,EAAA,MAAA,CAAA,MAAA,SAAA,CAA6BA,EAAA,KAAA,KAAA,IAAA,EAEfA,EAAA,IAAA,KAAA,4BAAA,+rHALZA,EAAA,OAAA,KAAA,CADYA,EAAA,MAAAE,EAAA,CADoEC,EAAAC,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,QAAAC,EAAA,IAAA,QAGtF,CAAA,CAAA,CAAA,EAIAJ,aAaiFK,EAAVN,EAAA,IAAA,KAAA,CAAAO,EAAA,sBAAA,EAAdJ,EAAAC,EAAA,CAAA,GAAA,SAAA,EAAA,CAAA,QAAAC,EAAA,IAAA,8BAEzD,CAAA,CAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as Pe,d as me,f as m,c as A,a as n,h as Te,Z,r,O as q,o as Be,j as t,w as o,k as f,a0 as C,v as De,x as Fe,p as Le,e as Re,F as re,C as ie,D as k,b as s,t as b,s as x,S as $,E as i,q as de,P as ce,z as Ae,A as Ne,_ as Ie}from"./index-62c7029f.js";import{E as Oe,a as je}from"./el-form-item-f40006bf.js";import{d as X,E as He}from"./el-date-picker-5a3e3d86.js";import{E as Ze}from"./el-dialog-463960e0.js";import{E as qe,s as We}from"./el-pagination-ffb99240.js";import{E as Ge,a as Je}from"./el-select-7d894fd0.js";import{E as Ke,a as Qe}from"./el-table-column-22352e92.js";import{U as E}from"./index-9e6bd406.js";import{r as Xe}from"./refresh-6ae903c0.js";import{E as pe}from"./index-17fa8fb7.js";import"./isEqual-9c466456.js";import"./index-6d7ac779.js";import"./validator-853854a1.js";import"./aria-bc8e8b0f.js";const Ye=me({name:"Message"}),el={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ll=n("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z"},null,-1),tl=n("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z"},null,-1),ol=[ll,tl];function al(U,Y,V,z,S,M){return m(),A("svg",el,ol)}var nl=Pe(Ye,[["render",al]]);const sl=U=>(Le("data-v-0b1b911a"),U=U(),Re(),U),ul={class:"user"},rl={class:"panel"},il={class:"p10 log-filter"},dl={class:"item"},cl=sl(()=>n("span",{class:"label"},"状态",-1)),pl={class:"item"},ml={class:"item"},_l={class:"item"},fl={class:"user-oss-info"},vl={class:"text-btn-list"},hl={class:"flex fc p10"},gl={class:"tc"},wl={class:"dialog-footer"},bl={class:"tc"},Cl={key:0,style:{"margin-top":"10px"},class:"tc"},kl={class:"dialog-footer"},Vl={class:"tc"},yl={class:"dialog-footer"},xl={class:"tc"},$l={class:"dialog-footer"},El=me({__name:"index",setup(U){const Y=Te(),V=Z([]),z=()=>{C.getUserList().then(a=>{V.splice(0,V.length);const l=a.data.list;V.push(...l)})},S=r(E.NORMAL),M=r(""),ee=Z([{label:"正常",type:E.NORMAL},{label:"冻结",type:E.FREEZE},{label:"封禁",type:E.BAN}]),W=q(()=>V.filter(a=>a.status===S.value).filter(a=>{const{id:l,account:p,phone:h,join_time:g,login_count:u,login_time:c,open_time:K}=a;return M.value.length===0?!0:"".concat(l," ").concat(p," ").concat(h," ").concat(u," ").concat(x(K)," ").concat(x(c)," ").concat(x(g)).includes(M.value)})),P=r(10),_e=a=>{P.value=a},fe=q(()=>Math.ceil(W.value.length/P.value)),N=r(1),ve=q(()=>{const a=(N.value-1)*P.value,l=N.value*P.value;return W.value.slice(a,l)}),he=a=>{N.value=a},T=r(!1),v=r(0),y=r(E.NORMAL),ge=ee,B=r(""),we=(a,l,p)=>{v.value=a,y.value=l,B.value=p,T.value=!0},be=()=>{const a=V.find(l=>l.id===v.value);if(y.value===E.FREEZE){if(!B.value){i.warning("请设置解冻时间");return}a.open_time=B.value}else a.open_time="";a.status=y.value,T.value=!1,C.updateUserStatus(a.id,a.status,a.open_time).then(()=>{i.success("修改成功")})},D=r(!1),_=Z({pwd1:"",pwd2:""}),Ce=a=>{v.value=a,D.value=!0,_.pwd1="",_.pwd2=""},ke=()=>Ae.test(_.pwd1)?_.pwd1!==_.pwd2?(i.warning("两次输入的密码不一致"),!1):!0:(i.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1),Ve=()=>{ke()&&pe.confirm("此操作不可逆,请谨慎操作","确定要重置用户的密码吗?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{C.resetPassword(v.value,_.pwd1).then(()=>{i.success("重置成功"),D.value=!1})}).catch(()=>{})},F=r(!1),d=Z({phone:"",code:""}),G=r("获取验证码"),L=r(0),le=()=>{if(L.value===0){G.value="获取验证码";return}G.value="".concat(L.value,"s"),L.value-=1,setTimeout(le,1e3)},ye=()=>{if(!de.test(d.phone)){i.warning("手机号格式不正确");return}ce.checkPhone(d.phone).then(()=>{ce.getCode(d.phone).then(()=>{L.value=120,le(),i.success("获取成功,请注意查看手机短信")})}).catch(a=>{const{code:l}=a,p="注册失败,未知错误",h={1002:"手机号已被注册",1006:"手机号格式不正确"};i.error(h[l]||p)})},xe=()=>de.test(d.phone)?Ne.test(d.code)?!0:(i.warning("验证码格式不正确"),!1):(i.warning("手机号格式不正确"),!1),$e=a=>{v.value=a,F.value=!0},Ee=async()=>{xe()&&C.resetPhone(v.value,d.phone,d.code).then(()=>{i.success("绑定成功"),F.value=!1,d.code="",d.phone="",z()}).catch(a=>{const{code:l}=a,p="绑定失败,未知错误",h={1002:"手机号已被注册",1003:"验证码不正确"};i.error(h[l]||p)})},J=(a,l)=>{const p={month:"一个月前",quarter:"三个月前",half:"半年前"};v.value=a,pe.confirm("移除后这些文件将无法恢复,请谨慎操作","删除前确认?",{confirmButtonText:"确认删除 ".concat(p[l],"文件")}).then(()=>{C.clearOssFile(a,l).then(()=>{i.success("清理成功")})}).catch(()=>{})},te=r(1),R=r(!1),I=r(""),oe=(a,l=1)=>{v.value=a,te.value=l,R.value=!0},Ue=()=>{C.sendMessage(I.value,te.value,v.value).then(()=>{i.success("推送成功"),I.value="",R.value=!1})},ze=a=>{C.logout(a).then(()=>{i.success("下线成功 ".concat(a)),z()})};Be(()=>{z()});const O=q(()=>Y.getters["public/isMobile"]);return(a,l)=>{const p=Je,h=Ge,g=De,u=Fe,c=Qe,K=Ke,Se=qe,j=Ze,Me=He,H=Oe,ae=je;return m(),A("div",ul,[n("div",rl,[n("div",il,[n("span",dl,[cl,t(h,{modelValue:S.value,"onUpdate:modelValue":l[0]||(l[0]=e=>S.value=e),size:"default",placeholder:"请选择日志类型"},{default:o(()=>[(m(!0),A(re,null,ie(ee,(e,w)=>(m(),k(p,{key:w,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),n("span",pl,[t(g,{size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":f(We),modelValue:M.value,"onUpdate:modelValue":l[1]||(l[1]=e=>M.value=e)},null,8,["prefix-icon","modelValue"])]),n("span",ml,[t(u,{size:"default",icon:f(Xe),onClick:z},{default:o(()=>[s("刷新")]),_:1},8,["icon"])]),n("span",_l,[t(u,{size:"warning",icon:f(nl),onClick:l[2]||(l[2]=e=>oe(null,0))},{default:o(()=>[s("推送全局消息")]),_:1},8,["icon"])])]),t(K,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:ve.value,style:{width:"100%"}},{default:o(()=>[t(c,{prop:"id",label:"ID",width:"60"}),t(c,{prop:"account",label:"账号",width:"120"}),t(c,{prop:"onlineCount",label:"token",width:"80"}),t(c,{prop:"phone",label:"手机号",width:"100"}),t(c,{sortable:"",prop:"login_time",label:"最后登录时间",width:"190"},{default:o(e=>[s(b(e.row.login_time&&f(x)(new Date(e.row.login_time))),1)]),_:1}),t(c,{prop:"join_time",label:"注册时间",width:"190"},{default:o(e=>[s(b(f(x)(new Date(e.row.join_time))),1)]),_:1}),t(c,{sortable:"",prop:"login_count",label:"登录次数"}),S.value===1?(m(),k(c,{key:0,prop:"open_time",label:"解封时间"},{default:o(e=>[s(b(e.row.open_time&&f(x)(new Date(e.row.open_time))),1)]),_:1})):$("",!0),t(c,{sortable:"",prop:"fileCount",label:"收集文件数"}),t(c,{label:"占用云空间",width:"200"},{default:o(({row:{resources:e,monthAgoSize:w,quarterAgoSize:ne,halfYearSize:se,id:Q}})=>[n("ul",fl,[n("li",null,"总大小:"+b(e),1),n("li",null,[s(" 一月前:"+b(w),1),e!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"month"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)]),n("li",null,[s(" 三月前:"+b(ne),1),ne!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"quarter"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)]),n("li",null,[s(" 半年前:"+b(se),1),se!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"half"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)])])]),_:1}),t(c,{fixed:"right",label:"操作",width:"100"},{default:o(e=>[n("div",vl,[t(u,{onClick:w=>we(e.row.id,e.row.status,e.row.open_time),type:"primary",text:"",size:"small"},{default:o(()=>[s("修改状态")]),_:2},1032,["onClick"]),t(u,{onClick:w=>Ce(e.row.id),type:"primary",text:"",size:"small"},{default:o(()=>[s("重置密码")]),_:2},1032,["onClick"]),t(u,{onClick:w=>$e(e.row.id),type:"primary",text:"",size:"small"},{default:o(()=>[s("绑定手机号")]),_:2},1032,["onClick"]),t(u,{onClick:w=>oe(e.row.id),type:"warning",text:"",size:"small"},{default:o(()=>[s("发送消息")]),_:2},1032,["onClick"]),e.row.onlineCount!==0?(m(),k(u,{key:0,onClick:w=>ze(e.row.account),type:"danger",text:"",size:"small"},{default:o(()=>[s("一键下线")]),_:2},1032,["onClick"])):$("",!0)])]),_:1})]),_:1},8,["data"]),n("div",hl,[t(Se,{"current-page":N.value,onCurrentChange:he,background:"","page-count":fe.value,"page-sizes":[10,50,100,200],"page-size":P.value,onSizeChange:_e,total:W.value.length,layout:"total, sizes, prev, pager, next, jumper"},null,8,["current-page","page-count","page-size","total"])])]),t(j,{fullscreen:O.value,center:"",title:"消息推送",modelValue:R.value,"onUpdate:modelValue":l[5]||(l[5]=e=>R.value=e)},{footer:o(()=>[n("span",wl,[t(u,{onClick:l[4]||(l[4]=e=>R.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ue},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",gl,[t(g,{modelValue:I.value,"onUpdate:modelValue":l[3]||(l[3]=e=>I.value=e),autosize:{minRows:6,maxRows:20},type:"textarea",placeholder:"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)"},null,8,["modelValue"])])]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"状态修改",modelValue:T.value,"onUpdate:modelValue":l[9]||(l[9]=e=>T.value=e)},{footer:o(()=>[n("span",kl,[t(u,{onClick:l[8]||(l[8]=e=>T.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:be},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",bl,[t(h,{modelValue:y.value,"onUpdate:modelValue":l[6]||(l[6]=e=>y.value=e),placeholder:"请选择新分类"},{default:o(()=>[(m(!0),A(re,null,ie(f(ge),e=>(m(),k(p,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),y.value===1?(m(),A("div",Cl,[t(Me,{editable:!1,modelValue:B.value,"onUpdate:modelValue":l[7]||(l[7]=e=>B.value=e),type:"datetime",placeholder:"点击设置解封日期"},null,8,["modelValue"])])):$("",!0)]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"密码重置",modelValue:D.value,"onUpdate:modelValue":l[13]||(l[13]=e=>D.value=e)},{footer:o(()=>[n("span",yl,[t(u,{onClick:l[12]||(l[12]=e=>D.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ve},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",Vl,[t(ae,{model:_,"label-width":"80px"},{default:o(()=>[t(H,{label:"新密码"},{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:_.pwd1,"onUpdate:modelValue":l[10]||(l[10]=e=>_.pwd1=e),placeholder:"请输入新密码",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1}),t(H,null,{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:_.pwd2,"onUpdate:modelValue":l[11]||(l[11]=e=>_.pwd2=e),placeholder:"请再次输入",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"绑定手机号",modelValue:F.value,"onUpdate:modelValue":l[17]||(l[17]=e=>F.value=e)},{footer:o(()=>[n("span",$l,[t(u,{onClick:l[16]||(l[16]=e=>F.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ee},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",xl,[t(ae,{model:d,"label-width":"60px"},{default:o(()=>[t(H,{label:"手机号"},{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:d.phone,"onUpdate:modelValue":l[14]||(l[14]=e=>d.phone=e),placeholder:"请输入手机号",maxlength:"11"},{append:o(()=>[t(u,{disabled:L.value!==0,onClick:ye},{default:o(()=>[s(b(G.value),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue"])]),_:1}),t(H,null,{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:d.code,"onUpdate:modelValue":l[15]||(l[15]=e=>d.code=e),placeholder:"请输入验证码",maxlength:"4"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["fullscreen","modelValue"])])}}});const Ol=Ie(El,[["__scopeId","data-v-0b1b911a"]]);export{Ol as default};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{g as Pe,d as me,f as m,c as A,a as n,h as Te,Z,r,O as q,o as Be,j as t,w as o,k as f,a0 as C,v as De,x as Fe,p as Le,e as Re,F as re,C as ie,D as k,b as s,t as b,s as x,S as $,E as i,q as de,P as ce,z as Ae,A as Ne,_ as Ie}from"./index-ce410282.js";import{E as Oe,a as je}from"./el-form-item-14709389.js";import{d as X,E as He}from"./el-date-picker-7c194444.js";import{E as Ze}from"./el-dialog-6d1c807a.js";import{E as qe,s as We}from"./el-pagination-257e3c38.js";import{E as Ge,a as Je}from"./el-select-ca05d15a.js";import{E as Ke,a as Qe}from"./el-table-column-bccbd0ee.js";import{U as E}from"./index-9e6bd406.js";import{r as Xe}from"./refresh-3ba5bdd3.js";import{E as pe}from"./index-9d8bb3cd.js";import"./isEqual-3a3c96c5.js";import"./index-05e1d8e9.js";import"./validator-001cb5f7.js";import"./aria-bc8e8b0f.js";const Ye=me({name:"Message"}),el={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ll=n("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z"},null,-1),tl=n("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z"},null,-1),ol=[ll,tl];function al(U,Y,V,z,S,M){return m(),A("svg",el,ol)}var nl=Pe(Ye,[["render",al]]);const sl=U=>(Le("data-v-0b1b911a"),U=U(),Re(),U),ul={class:"user"},rl={class:"panel"},il={class:"p10 log-filter"},dl={class:"item"},cl=sl(()=>n("span",{class:"label"},"状态",-1)),pl={class:"item"},ml={class:"item"},_l={class:"item"},fl={class:"user-oss-info"},vl={class:"text-btn-list"},hl={class:"flex fc p10"},gl={class:"tc"},wl={class:"dialog-footer"},bl={class:"tc"},Cl={key:0,style:{"margin-top":"10px"},class:"tc"},kl={class:"dialog-footer"},Vl={class:"tc"},yl={class:"dialog-footer"},xl={class:"tc"},$l={class:"dialog-footer"},El=me({__name:"index",setup(U){const Y=Te(),V=Z([]),z=()=>{C.getUserList().then(a=>{V.splice(0,V.length);const l=a.data.list;V.push(...l)})},S=r(E.NORMAL),M=r(""),ee=Z([{label:"正常",type:E.NORMAL},{label:"冻结",type:E.FREEZE},{label:"封禁",type:E.BAN}]),W=q(()=>V.filter(a=>a.status===S.value).filter(a=>{const{id:l,account:p,phone:h,join_time:g,login_count:u,login_time:c,open_time:K}=a;return M.value.length===0?!0:"".concat(l," ").concat(p," ").concat(h," ").concat(u," ").concat(x(K)," ").concat(x(c)," ").concat(x(g)).includes(M.value)})),P=r(10),_e=a=>{P.value=a},fe=q(()=>Math.ceil(W.value.length/P.value)),N=r(1),ve=q(()=>{const a=(N.value-1)*P.value,l=N.value*P.value;return W.value.slice(a,l)}),he=a=>{N.value=a},T=r(!1),v=r(0),y=r(E.NORMAL),ge=ee,B=r(""),we=(a,l,p)=>{v.value=a,y.value=l,B.value=p,T.value=!0},be=()=>{const a=V.find(l=>l.id===v.value);if(y.value===E.FREEZE){if(!B.value){i.warning("请设置解冻时间");return}a.open_time=B.value}else a.open_time="";a.status=y.value,T.value=!1,C.updateUserStatus(a.id,a.status,a.open_time).then(()=>{i.success("修改成功")})},D=r(!1),_=Z({pwd1:"",pwd2:""}),Ce=a=>{v.value=a,D.value=!0,_.pwd1="",_.pwd2=""},ke=()=>Ae.test(_.pwd1)?_.pwd1!==_.pwd2?(i.warning("两次输入的密码不一致"),!1):!0:(i.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1),Ve=()=>{ke()&&pe.confirm("此操作不可逆,请谨慎操作","确定要重置用户的密码吗?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{C.resetPassword(v.value,_.pwd1).then(()=>{i.success("重置成功"),D.value=!1})}).catch(()=>{})},F=r(!1),d=Z({phone:"",code:""}),G=r("获取验证码"),L=r(0),le=()=>{if(L.value===0){G.value="获取验证码";return}G.value="".concat(L.value,"s"),L.value-=1,setTimeout(le,1e3)},ye=()=>{if(!de.test(d.phone)){i.warning("手机号格式不正确");return}ce.checkPhone(d.phone).then(()=>{ce.getCode(d.phone).then(()=>{L.value=120,le(),i.success("获取成功,请注意查看手机短信")})}).catch(a=>{const{code:l}=a,p="注册失败,未知错误",h={1002:"手机号已被注册",1006:"手机号格式不正确"};i.error(h[l]||p)})},xe=()=>de.test(d.phone)?Ne.test(d.code)?!0:(i.warning("验证码格式不正确"),!1):(i.warning("手机号格式不正确"),!1),$e=a=>{v.value=a,F.value=!0},Ee=async()=>{xe()&&C.resetPhone(v.value,d.phone,d.code).then(()=>{i.success("绑定成功"),F.value=!1,d.code="",d.phone="",z()}).catch(a=>{const{code:l}=a,p="绑定失败,未知错误",h={1002:"手机号已被注册",1003:"验证码不正确"};i.error(h[l]||p)})},J=(a,l)=>{const p={month:"一个月前",quarter:"三个月前",half:"半年前"};v.value=a,pe.confirm("移除后这些文件将无法恢复,请谨慎操作","删除前确认?",{confirmButtonText:"确认删除 ".concat(p[l],"文件")}).then(()=>{C.clearOssFile(a,l).then(()=>{i.success("清理成功")})}).catch(()=>{})},te=r(1),R=r(!1),I=r(""),oe=(a,l=1)=>{v.value=a,te.value=l,R.value=!0},Ue=()=>{C.sendMessage(I.value,te.value,v.value).then(()=>{i.success("推送成功"),I.value="",R.value=!1})},ze=a=>{C.logout(a).then(()=>{i.success("下线成功 ".concat(a)),z()})};Be(()=>{z()});const O=q(()=>Y.getters["public/isMobile"]);return(a,l)=>{const p=Je,h=Ge,g=De,u=Fe,c=Qe,K=Ke,Se=qe,j=Ze,Me=He,H=Oe,ae=je;return m(),A("div",ul,[n("div",rl,[n("div",il,[n("span",dl,[cl,t(h,{modelValue:S.value,"onUpdate:modelValue":l[0]||(l[0]=e=>S.value=e),size:"default",placeholder:"请选择日志类型"},{default:o(()=>[(m(!0),A(re,null,ie(ee,(e,w)=>(m(),k(p,{key:w,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),n("span",pl,[t(g,{size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":f(We),modelValue:M.value,"onUpdate:modelValue":l[1]||(l[1]=e=>M.value=e)},null,8,["prefix-icon","modelValue"])]),n("span",ml,[t(u,{size:"default",icon:f(Xe),onClick:z},{default:o(()=>[s("刷新")]),_:1},8,["icon"])]),n("span",_l,[t(u,{size:"warning",icon:f(nl),onClick:l[2]||(l[2]=e=>oe(null,0))},{default:o(()=>[s("推送全局消息")]),_:1},8,["icon"])])]),t(K,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:ve.value,style:{width:"100%"}},{default:o(()=>[t(c,{prop:"id",label:"ID",width:"60"}),t(c,{prop:"account",label:"账号",width:"120"}),t(c,{prop:"onlineCount",label:"token",width:"80"}),t(c,{prop:"phone",label:"手机号",width:"100"}),t(c,{sortable:"",prop:"login_time",label:"最后登录时间",width:"190"},{default:o(e=>[s(b(e.row.login_time&&f(x)(new Date(e.row.login_time))),1)]),_:1}),t(c,{prop:"join_time",label:"注册时间",width:"190"},{default:o(e=>[s(b(f(x)(new Date(e.row.join_time))),1)]),_:1}),t(c,{sortable:"",prop:"login_count",label:"登录次数"}),S.value===1?(m(),k(c,{key:0,prop:"open_time",label:"解封时间"},{default:o(e=>[s(b(e.row.open_time&&f(x)(new Date(e.row.open_time))),1)]),_:1})):$("",!0),t(c,{sortable:"",prop:"fileCount",label:"收集文件数"}),t(c,{label:"占用云空间",width:"200"},{default:o(({row:{resources:e,monthAgoSize:w,quarterAgoSize:ne,halfYearSize:se,id:Q}})=>[n("ul",fl,[n("li",null,"总大小:"+b(e),1),n("li",null,[s(" 一月前:"+b(w),1),e!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"month"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)]),n("li",null,[s(" 三月前:"+b(ne),1),ne!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"quarter"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)]),n("li",null,[s(" 半年前:"+b(se),1),se!=="0B"?(m(),k(u,{key:0,class:"clear-btn",onClick:ue=>J(Q,"half"),icon:f(X),circle:"",size:"small"},null,8,["onClick","icon"])):$("",!0)])])]),_:1}),t(c,{fixed:"right",label:"操作",width:"100"},{default:o(e=>[n("div",vl,[t(u,{onClick:w=>we(e.row.id,e.row.status,e.row.open_time),type:"primary",text:"",size:"small"},{default:o(()=>[s("修改状态")]),_:2},1032,["onClick"]),t(u,{onClick:w=>Ce(e.row.id),type:"primary",text:"",size:"small"},{default:o(()=>[s("重置密码")]),_:2},1032,["onClick"]),t(u,{onClick:w=>$e(e.row.id),type:"primary",text:"",size:"small"},{default:o(()=>[s("绑定手机号")]),_:2},1032,["onClick"]),t(u,{onClick:w=>oe(e.row.id),type:"warning",text:"",size:"small"},{default:o(()=>[s("发送消息")]),_:2},1032,["onClick"]),e.row.onlineCount!==0?(m(),k(u,{key:0,onClick:w=>ze(e.row.account),type:"danger",text:"",size:"small"},{default:o(()=>[s("一键下线")]),_:2},1032,["onClick"])):$("",!0)])]),_:1})]),_:1},8,["data"]),n("div",hl,[t(Se,{"current-page":N.value,onCurrentChange:he,background:"","page-count":fe.value,"page-sizes":[10,50,100,200],"page-size":P.value,onSizeChange:_e,total:W.value.length,layout:"total, sizes, prev, pager, next, jumper"},null,8,["current-page","page-count","page-size","total"])])]),t(j,{fullscreen:O.value,center:"",title:"消息推送",modelValue:R.value,"onUpdate:modelValue":l[5]||(l[5]=e=>R.value=e)},{footer:o(()=>[n("span",wl,[t(u,{onClick:l[4]||(l[4]=e=>R.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ue},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",gl,[t(g,{modelValue:I.value,"onUpdate:modelValue":l[3]||(l[3]=e=>I.value=e),autosize:{minRows:6,maxRows:20},type:"textarea",placeholder:"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)"},null,8,["modelValue"])])]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"状态修改",modelValue:T.value,"onUpdate:modelValue":l[9]||(l[9]=e=>T.value=e)},{footer:o(()=>[n("span",kl,[t(u,{onClick:l[8]||(l[8]=e=>T.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:be},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",bl,[t(h,{modelValue:y.value,"onUpdate:modelValue":l[6]||(l[6]=e=>y.value=e),placeholder:"请选择新分类"},{default:o(()=>[(m(!0),A(re,null,ie(f(ge),e=>(m(),k(p,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),y.value===1?(m(),A("div",Cl,[t(Me,{editable:!1,modelValue:B.value,"onUpdate:modelValue":l[7]||(l[7]=e=>B.value=e),type:"datetime",placeholder:"点击设置解封日期"},null,8,["modelValue"])])):$("",!0)]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"密码重置",modelValue:D.value,"onUpdate:modelValue":l[13]||(l[13]=e=>D.value=e)},{footer:o(()=>[n("span",yl,[t(u,{onClick:l[12]||(l[12]=e=>D.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ve},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",Vl,[t(ae,{model:_,"label-width":"80px"},{default:o(()=>[t(H,{label:"新密码"},{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:_.pwd1,"onUpdate:modelValue":l[10]||(l[10]=e=>_.pwd1=e),placeholder:"请输入新密码",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1}),t(H,null,{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:_.pwd2,"onUpdate:modelValue":l[11]||(l[11]=e=>_.pwd2=e),placeholder:"请再次输入",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["fullscreen","modelValue"]),t(j,{fullscreen:O.value,center:"",title:"绑定手机号",modelValue:F.value,"onUpdate:modelValue":l[17]||(l[17]=e=>F.value=e)},{footer:o(()=>[n("span",$l,[t(u,{onClick:l[16]||(l[16]=e=>F.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(u,{type:"primary",onClick:Ee},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[n("div",xl,[t(ae,{model:d,"label-width":"60px"},{default:o(()=>[t(H,{label:"手机号"},{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:d.phone,"onUpdate:modelValue":l[14]||(l[14]=e=>d.phone=e),placeholder:"请输入手机号",maxlength:"11"},{append:o(()=>[t(u,{disabled:L.value!==0,onClick:ye},{default:o(()=>[s(b(G.value),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue"])]),_:1}),t(H,null,{default:o(()=>[t(g,{"show-word-limit":"",clearable:"",modelValue:d.code,"onUpdate:modelValue":l[15]||(l[15]=e=>d.code=e),placeholder:"请输入验证码",maxlength:"4"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["fullscreen","modelValue"])])}}});const Ol=Ie(El,[["__scopeId","data-v-0b1b911a"]]);export{Ol as default};
|
|
2
|
+
//# sourceMappingURL=index-f3cfa998.js.map
|