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.5 KiB
2 lines
2.5 KiB
|
4 months ago
|
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}from"./index-Cc0thpjm.js";import{t as _}from"./_plugin-vue_export-helper-S3RvzygF.js";async function v(e){try{let{data:t}=await f.post(`/auth/login`,e);return y(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(`
|
||
|
4 months ago
|
`):``)||e.message;throw Error(r||`登录失败`)}throw e}}function y(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 b={class:`login-wrap`},x=_(a({__name:`AdminLoginView`,setup(a){let d=h(),f=g(),_=m(),y=r(``),x=r(``),S=r(!1);function C(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`登录失败`}function w(){let e=typeof d.query.redirect==`string`?d.query.redirect:``;return e&&e.startsWith(`/admin`)&&!e.includes(`/login`)?e:`/admin`}async function T(){if(!y.value.trim()||!x.value.trim()){p.warning(`请输入账号和密码`);return}S.value=!0;try{let e=await v({username:y.value.trim(),password:x.value.trim()});_.setToken(e.token),await f.replace(w()),p.success(`登录成功`)}catch(e){p.error(C(e))}finally{S.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`,b,[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(T,[`prevent`])},{default:c(()=>[t(f,{label:`账号`},{default:c(()=>[t(d,{modelValue:y.value,"onUpdate:modelValue":a[0]||=e=>y.value=e,modelModifiers:{trim:!0},autocomplete:`username`,clearable:``},null,8,[`modelValue`])]),_:1}),t(f,{label:`密码`},{default:c(()=>[t(d,{modelValue:x.value,"onUpdate:modelValue":a[1]||=e=>x.value=e,type:`password`,autocomplete:`current-password`,"show-password":``},null,8,[`modelValue`])]),_:1}),t(p,{type:`danger`,class:`w-100`,"native-type":`submit`,loading:S.value},{default:c(()=>[e(i(S.value?`登录中…`:`登录`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-205d2561`]]);export{x as default};
|