9 changed files with 168 additions and 22 deletions
@ -1,11 +1,21 @@ |
|||||||
import { post } from './base'; |
import { post, get, setCommit } from './base'; |
||||||
|
|
||||||
let commit; |
export { setCommit }; |
||||||
|
|
||||||
export const setCommit = (data) => { |
export const api_root = '/api'; |
||||||
commit = data; |
const urls = { |
||||||
|
login: api_root + '/public/login', |
||||||
|
archive: api_root + '/archive', |
||||||
}; |
}; |
||||||
|
export const loginOrRegister = (param) => { |
||||||
export const login = (param) => { |
return post(urls.login, param); |
||||||
post('api/public/login', param); |
}; |
||||||
|
export const getUser = () => { |
||||||
|
return get(urls.login); |
||||||
|
}; |
||||||
|
export const uploadArchive = (archive) => { |
||||||
|
return post(urls.archive, archive); |
||||||
|
}; |
||||||
|
export const downArchive = () => { |
||||||
|
return get(urls.archive); |
||||||
}; |
}; |
||||||
|
@ -0,0 +1,64 @@ |
|||||||
|
<template> |
||||||
|
<Dialog :title="t('login.0')" v-model="state.showLogin" :top="state.mobile ? '5rem' : '10rem'" |
||||||
|
:left="state.mobile ? '5rem' : '10rem'" padding="0" :z="50" :obscured="true"> |
||||||
|
<div class="login"> |
||||||
|
<div class="item"> |
||||||
|
<div class="label">{{ t('login.1') }}: </div> |
||||||
|
<input type="text" v-model="user.username"><br> |
||||||
|
</div> |
||||||
|
<div class="item"> |
||||||
|
<div class="label">{{ t('login.2') }}: </div> |
||||||
|
<input type="password" v-model="user.passowrd"><br> |
||||||
|
</div> |
||||||
|
<button class="button" @click="login">{{ t('login.3') }}</button> |
||||||
|
</div> |
||||||
|
</Dialog> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import { useStore } from "vuex"; |
||||||
|
import { reactive, onMounted, ref, computed } from "vue"; |
||||||
|
import { useI18n } from "vue3-i18n"; |
||||||
|
import { Dialog } from "@/components"; |
||||||
|
import { deepCopy, MD5 } from "@/tool"; |
||||||
|
import { loginOrRegister } from "@/api"; |
||||||
|
|
||||||
|
const { t } = useI18n(); |
||||||
|
const { state, commit, dispatch } = useStore(); |
||||||
|
const user = reactive({ |
||||||
|
username: '', |
||||||
|
passowrd: '', |
||||||
|
}) |
||||||
|
|
||||||
|
const login = () => { |
||||||
|
const username = user.username; |
||||||
|
const passowrd = user.passowrd; |
||||||
|
if (!username) { |
||||||
|
commit('set_sys_info', { msg: t('login.4'), type: 'warning' }) |
||||||
|
return; |
||||||
|
} |
||||||
|
if (!passowrd) { |
||||||
|
commit('set_sys_info', { msg: t('login.5'), type: 'warning' }) |
||||||
|
return; |
||||||
|
} |
||||||
|
const param = { username: username, passowrd: MD5(passowrd) }; |
||||||
|
loginOrRegister(param).then(rsp => { |
||||||
|
rsp && (state.showLogin = false); |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
onMounted(() => { }); |
||||||
|
</script> |
||||||
|
<style lang="scss" scoped> |
||||||
|
.login { |
||||||
|
padding: 1rem; |
||||||
|
|
||||||
|
.item { |
||||||
|
padding: 0.5rem 0; |
||||||
|
|
||||||
|
.label { |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue