fix: reset password
This commit is contained in:
parent
cad2e3c8c5
commit
9d842f40cb
@ -1,7 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
noHistory: 'No History',
|
noHistory: 'No History',
|
||||||
createChat: 'Create New Chat',
|
createChat: 'New Chat',
|
||||||
history: 'History',
|
history: 'Chat History',
|
||||||
only20history: 'Only showing the last 20 chats',
|
only20history: 'Only showing the last 20 chats',
|
||||||
question_count: 'Questions',
|
question_count: 'Questions',
|
||||||
exportRecords: 'Export Chat Records',
|
exportRecords: 'Export Chat Records',
|
||||||
@ -17,11 +17,11 @@ export default {
|
|||||||
operation: {
|
operation: {
|
||||||
play: 'Click to Play',
|
play: 'Click to Play',
|
||||||
pause: 'Stop',
|
pause: 'Stop',
|
||||||
regeneration: 'Regenerate Answer',
|
regeneration: 'Re-answer',
|
||||||
like: 'Like',
|
like: 'Agree',
|
||||||
cancelLike: 'Cancel Like',
|
cancelLike: 'Cancel Agree',
|
||||||
oppose: 'Dislike',
|
oppose: 'Disagree',
|
||||||
cancelOppose: 'Cancel Dislike',
|
cancelOppose: 'Cancel Disagree',
|
||||||
continue: 'Continue',
|
continue: 'Continue',
|
||||||
stopChat: 'Stop Output'
|
stopChat: 'Stop Output'
|
||||||
},
|
},
|
||||||
@ -86,9 +86,9 @@ export default {
|
|||||||
},
|
},
|
||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
title: 'Knowledge Source',
|
title: 'Knowledge Source',
|
||||||
referenceParagraph: 'Referenced Segment',
|
referenceParagraph: 'Quote',
|
||||||
consume: 'Consumption',
|
consume: 'Tokens',
|
||||||
consumeTime: 'Time Consumed'
|
consumeTime: 'Time'
|
||||||
},
|
},
|
||||||
paragraphSource: {
|
paragraphSource: {
|
||||||
title: 'Knowledge Reference',
|
title: 'Knowledge Reference',
|
||||||
|
|||||||
@ -44,7 +44,7 @@ export default {
|
|||||||
},
|
},
|
||||||
LimitDialog: {
|
LimitDialog: {
|
||||||
dialogTitle: 'Access Restrictions',
|
dialogTitle: 'Access Restrictions',
|
||||||
showSourceLabel: 'Show Source',
|
showSourceLabel: 'Show Return Knowledge Reference',
|
||||||
clientQueryLimitLabel: 'Each Client Query Limit',
|
clientQueryLimitLabel: 'Each Client Query Limit',
|
||||||
authentication: 'Authentication',
|
authentication: 'Authentication',
|
||||||
authenticationValue: 'Authentication Password',
|
authenticationValue: 'Authentication Password',
|
||||||
@ -61,7 +61,7 @@ export default {
|
|||||||
SettingDisplayDialog: {
|
SettingDisplayDialog: {
|
||||||
dialogTitle: 'Display Settings',
|
dialogTitle: 'Display Settings',
|
||||||
languageLabel: 'Language',
|
languageLabel: 'Language',
|
||||||
showSourceLabel: 'Show Source',
|
showSourceLabel: 'Show Return Knowledge Reference',
|
||||||
showExecutionDetail: 'Show Execution Detail',
|
showExecutionDetail: 'Show Execution Detail',
|
||||||
restoreDefault: 'Reset to default',
|
restoreDefault: 'Reset to default',
|
||||||
customThemeColor: 'Custom Theme Color',
|
customThemeColor: 'Custom Theme Color',
|
||||||
|
|||||||
@ -14,10 +14,10 @@ export default {
|
|||||||
restoreVersion: 'Restore Version',
|
restoreVersion: 'Restore Version',
|
||||||
restoreCurrentVersion: 'Restore This Version',
|
restoreCurrentVersion: 'Restore This Version',
|
||||||
addComponent: 'Add Component',
|
addComponent: 'Add Component',
|
||||||
public: 'Release',
|
public: 'Publish',
|
||||||
releaseHistory: 'Release History',
|
releaseHistory: 'Publish History',
|
||||||
autoSave: 'Auto Save',
|
autoSave: 'Auto Save',
|
||||||
latestRelease: 'Latest Release',
|
latestRelease: 'Latest Publish',
|
||||||
copyParam: 'Copy Parameter'
|
copyParam: 'Copy Parameter'
|
||||||
},
|
},
|
||||||
tip: {
|
tip: {
|
||||||
|
|||||||
@ -109,7 +109,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
buttons: {
|
buttons: {
|
||||||
publish: 'Save&Release',
|
publish: 'Save&Publish',
|
||||||
addModel: 'Add Model'
|
addModel: 'Add Model'
|
||||||
},
|
},
|
||||||
dialog: {
|
dialog: {
|
||||||
|
|||||||
@ -86,7 +86,7 @@ export default {
|
|||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
title: '知识来源',
|
title: '知识来源',
|
||||||
referenceParagraph: '引用分段',
|
referenceParagraph: '引用分段',
|
||||||
consume: '消耗',
|
consume: '消耗tokens',
|
||||||
consumeTime: '耗时'
|
consumeTime: '耗时'
|
||||||
},
|
},
|
||||||
paragraphSource: {
|
paragraphSource: {
|
||||||
|
|||||||
@ -85,7 +85,7 @@ export default {
|
|||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
title: '知識來源',
|
title: '知識來源',
|
||||||
referenceParagraph: '引用段落',
|
referenceParagraph: '引用段落',
|
||||||
consume: '消耗',
|
consume: '消耗tokens',
|
||||||
consumeTime: '耗時'
|
consumeTime: '耗時'
|
||||||
},
|
},
|
||||||
paragraphSource: {
|
paragraphSource: {
|
||||||
|
|||||||
@ -148,7 +148,7 @@
|
|||||||
{{ $t('views.applicationOverview.monitor.monitoringStatistics') }}
|
{{ $t('views.applicationOverview.monitor.monitoringStatistics') }}
|
||||||
</h4>
|
</h4>
|
||||||
<div class="mb-16">
|
<div class="mb-16">
|
||||||
<el-select v-model="history_day" class="mr-12 w-120" @change="changeDayHandle">
|
<el-select v-model="history_day" class="mr-12" @change="changeDayHandle" style="width:180px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dayOptions"
|
v-for="item in dayOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|||||||
135
ui/src/views/login/reset-password/index.vue
Normal file
135
ui/src/views/login/reset-password/index.vue
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
<template>
|
||||||
|
<login-layout>
|
||||||
|
<LoginContainer :subTitle="$t('views.system.theme.defaultSlogan')">
|
||||||
|
<h2 class="mb-24">{{ $t('views.login.resetPassword') }}</h2>
|
||||||
|
<el-form
|
||||||
|
class="reset-password-form"
|
||||||
|
ref="resetPasswordFormRef"
|
||||||
|
:model="resetPasswordForm"
|
||||||
|
:rules="rules"
|
||||||
|
>
|
||||||
|
<div class="mb-24">
|
||||||
|
<el-form-item prop="password">
|
||||||
|
<el-input
|
||||||
|
type="password"
|
||||||
|
size="large"
|
||||||
|
class="input-item"
|
||||||
|
v-model="resetPasswordForm.password"
|
||||||
|
:placeholder="$t('views.user.userForm.form.password.placeholder')"
|
||||||
|
show-password
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="mb-24">
|
||||||
|
<el-form-item prop="re_password">
|
||||||
|
<el-input
|
||||||
|
type="password"
|
||||||
|
size="large"
|
||||||
|
class="input-item"
|
||||||
|
v-model="resetPasswordForm.re_password"
|
||||||
|
:placeholder="$t('views.user.userForm.form.re_password.placeholder')"
|
||||||
|
show-password
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
<el-button size="large" type="primary" class="w-full" @click="resetPassword">{{
|
||||||
|
$t('common.confirm')
|
||||||
|
}}</el-button>
|
||||||
|
<div class="operate-container mt-12">
|
||||||
|
<el-button
|
||||||
|
size="large"
|
||||||
|
class="register"
|
||||||
|
@click="router.push('/login')"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
icon="ArrowLeft"
|
||||||
|
>
|
||||||
|
{{ $t('views.login.buttons.backLogin') }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</LoginContainer>
|
||||||
|
</login-layout>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
import type { ResetPasswordRequest } from '@/api/type/user'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
import { MsgSuccess } from '@/utils/message'
|
||||||
|
import type { FormInstance, FormRules } from 'element-plus'
|
||||||
|
import UserApi from '@/api/user'
|
||||||
|
import { t } from '@/locales'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
const {
|
||||||
|
params: { code, email }
|
||||||
|
} = route
|
||||||
|
const resetPasswordForm = ref<ResetPasswordRequest>({
|
||||||
|
password: '',
|
||||||
|
re_password: '',
|
||||||
|
email: '',
|
||||||
|
code: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (code && email) {
|
||||||
|
resetPasswordForm.value.code = code as string
|
||||||
|
resetPasswordForm.value.email = email as string
|
||||||
|
} else {
|
||||||
|
router.push('forgot_password')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const rules = ref<FormRules<ResetPasswordRequest>>({
|
||||||
|
password: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: t('views.user.userForm.form.re_password.requiredMessage'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 6,
|
||||||
|
max: 20,
|
||||||
|
message: t('views.user.userForm.form.password.lengthMessage'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
re_password: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: t('views.user.userForm.form.re_password.requiredMessage'),,
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 6,
|
||||||
|
max: 20,
|
||||||
|
message: t('views.user.userForm.form.password.lengthMessage'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (resetPasswordForm.value.password != resetPasswordForm.value.re_password) {
|
||||||
|
callback(new Error(t('views.user.userForm.form.re_password.validatorMessage')))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
const resetPasswordFormRef = ref<FormInstance>()
|
||||||
|
const loading = ref<boolean>(false)
|
||||||
|
const resetPassword = () => {
|
||||||
|
resetPasswordFormRef.value
|
||||||
|
?.validate()
|
||||||
|
.then(() => UserApi.resetPassword(resetPasswordForm.value, loading))
|
||||||
|
.then(() => {
|
||||||
|
MsgSuccess(t('common.modifySuccess'))
|
||||||
|
router.push({ name: 'login' })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scope></style>
|
||||||
Loading…
Reference in New Issue
Block a user