You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
2.4 KiB
2 lines
2.4 KiB
import{D as e,O as t,Z as n,_t as r,in as i,k as a,m as o,q as s,st as c,w as l,x as u}from"./vue.runtime.esm-bundler-6_koQ1g6.js";import{a as d,i as f,l as p,n as m,o as h,s as g,t as _}from"./index-DB_Dff3U.js";import{t as v}from"./_plugin-vue_export-helper-S3RvzygF.js";async function y(e){try{let{data:t}=await f.post(`/auth/login`,e);return b(t)}catch(e){if(d.isAxiosError(e)){let t=e.response?.data,n=t&&typeof t==`object`?t:{},r=(typeof n.message==`string`?n.message:``)||(n.errors&&typeof n.errors==`object`?Object.values(n.errors).flat().join(`
|
|
`):``)||e.message;throw Error(r||`登录失败`)}throw e}}function b(e){if(e&&typeof e==`object`){let t=e,n=t.data,r=(typeof t.token==`string`?t.token:void 0)??(typeof t.access_token==`string`?t.access_token:void 0)??(n&&typeof n.token==`string`?n.token:void 0);if(typeof r==`string`)return{token:r,user:t.user??t.admin??n?.user}}throw Error(`登录响应无效`)}var x={class:`login-wrap`},S=v(a({__name:`AdminLoginView`,setup(a){let d=h(),f=g(),v=_(),b=r(``),S=r(``),C=r(!1);async function w(){if(!b.value.trim()||!S.value.trim()){p.warning(`请输入账号和密码`);return}C.value=!0;try{let e=await y({username:b.value.trim(),password:S.value.trim()});v.setToken(e.token),await m(f);let t=typeof d.query.redirect==`string`?d.query.redirect:``;t&&t.startsWith(`/admin`)?await f.replace(t):await f.replace({name:`admin-competitions-list`}),p.success(`登录成功`)}catch(e){p.error(e instanceof Error?e.message:`登录失败`)}finally{C.value=!1}}return(r,a)=>{let d=n(`el-input`),f=n(`el-form-item`),p=n(`el-button`),m=n(`el-form`),h=n(`el-card`);return s(),l(`div`,x,[t(h,{class:`login-card`,shadow:`hover`},{header:c(()=>[...a[2]||=[u(`div`,{class:`card-title`},`管理员登录`,-1)]]),default:c(()=>[t(m,{"label-position":`top`,onSubmit:o(w,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:b.value,"onUpdate:modelValue":a[0]||=e=>b.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:S.value,"onUpdate:modelValue":a[1]||=e=>S.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:C.value},{default:c(()=>[e(i(C.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-d6f576a0`]]);export{S as default}; |