Files
NyaHome/webui/src/components/admin/UserPasswordModal.vue
T

58 lines
1.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<script setup lang="ts">
import { ref } from 'vue'
import { api } from '@/tools/web.ts'
import { useNowUser } from '@/stores/now-user.ts'
import { useMessage } from 'naive-ui'
import { useRouter } from 'vue-router'
const ROUTER = useRouter()
const MESSAGE = useMessage()
const NOWUSER = useNowUser()
const showModal = defineModel('showModal', { required: true })
const changeForm = ref({
old_password: '',
new_password: '',
})
function change() {
api
.post('/admin/me/password/', JSON.stringify(changeForm.value))
.then(() => {
MESSAGE.success('密码修改成功,请重新登录。')
NOWUSER.isLogin = false
localStorage.removeItem('user-id')
localStorage.removeItem('access-token')
ROUTER.push('/')
})
.catch((err) => {
MESSAGE.error(`密码修改失败:${err}`)
MESSAGE.warning('如果您忘记了原密码,请选择「忘记密码」。')
})
}
</script>
<template>
<n-modal style="width: 600px" v-model:show="showModal" title="修改密码" preset="card">
<n-form label-align="right" label-placement="left" label-width="auto" :model="changeForm">
<n-form-item label="原密码" path="old_password">
<n-input v-model:value="changeForm.old_password" />
</n-form-item>
<n-form-item label="新密码" path="new_password">
<n-input v-model:value="changeForm.new_password" type="password" show-password-toggle />
</n-form-item>
<n-form-item label="确认修改">
<n-flex>
<n-button type="error" @click="change()">确认修改</n-button>
<n-tag type="warning" size="large"
>修改密码会注销所有已登录状态您将需要重新登录</n-tag
>
</n-flex>
</n-form-item>
</n-form>
</n-modal>
</template>
<style scoped></style>