9 changed files with 168 additions and 22 deletions
@ -1,11 +1,21 @@
@@ -1,11 +1,21 @@
|
||||
import { post } from './base'; |
||||
import { post, get, setCommit } from './base'; |
||||
|
||||
let commit; |
||||
export { setCommit }; |
||||
|
||||
export const setCommit = (data) => { |
||||
commit = data; |
||||
export const api_root = '/api'; |
||||
const urls = { |
||||
login: api_root + '/public/login', |
||||
archive: api_root + '/archive', |
||||
}; |
||||
|
||||
export const login = (param) => { |
||||
post('api/public/login', param); |
||||
export const loginOrRegister = (param) => { |
||||
return post(urls.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 @@
@@ -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