This commit is contained in:
zhang zhuo 2025-12-20 17:52:13 +08:00
parent b7e3835023
commit df77d132d1
1 changed files with 44 additions and 29 deletions

View File

@ -13,21 +13,21 @@
<div class="item">
<!--邮箱-->
<el-icon size="16">
<component :is="'pi-icon-birthday'"/>
<el-icon-message/>
</el-icon>
<el-text>{{ userInfo.email || "保密" }}</el-text>
</div>
<div class="item">
<!--电话-->
<el-icon size="16">
<component :is="'pi-icon-birthday'"/>
<el-icon-iphone/>
</el-icon>
<el-text>{{ userInfo.phone || "保密" }}</el-text>
</div>
<div class="item">
<!--岗位-->
<el-icon size="15">
<component :is="'pi-icon-post'"/>
<pi-icon-post/>
</el-icon>
<el-text>{{ userInfo.posts.map(item => item.post_name)?.join(" && ") }}</el-text>
</div>
@ -77,7 +77,8 @@
<el-tab-pane label="基本信息" name="0">
<el-form ref="infoRef" :model="form" style="max-width: 500px;" label-width="120px">
<el-form-item label="头像" prop="avatar">
<pi-upload v-model="form.avatar" title="头像" :cropper="true" :compress="1" :aspectRatio="1/1"></pi-upload>
<pi-upload v-model="form.avatar" title="头像" :cropper="true" :compress="1"
:aspectRatio="1/1"></pi-upload>
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model="form.nickname"></el-input>
@ -91,12 +92,13 @@
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex">
<el-option label="保密" :value="0" disabled/>
<el-option label="男" :value="1" />
<el-option label="女" :value="2" />
<el-option label="男" :value="1"/>
<el-option label="女" :value="2"/>
</el-select>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker v-model="form.birthday" type="date" style="width: 100%;" value-format="YYYY-MM-DD"/>
<el-date-picker v-model="form.birthday" type="date" style="width: 100%;"
value-format="YYYY-MM-DD"/>
</el-form-item>
<el-form-item label="介绍" prop="bio">
<el-input v-model="form.bio" type="textarea"></el-input>
@ -107,22 +109,28 @@
</el-form>
</el-tab-pane>
<el-tab-pane label="修改密码" name="1">
<el-alert title="密码更新成功后,您将被重定向到登录页面,您可以使用新密码重新登录。" type="info" show-icon style="margin-bottom: 15px;"/>
<el-form ref="passRef" :model="form2" :rules="rules" label-width="120px" style="max-width: 500px;">
<el-alert title="密码更新成功后,您将被重定向到登录页面,您可以使用新密码重新登录。"
type="info" show-icon style="margin-bottom: 15px;"/>
<el-form ref="passRef" :model="form2" :rules="rules" label-width="120px"
style="max-width: 500px;">
<el-form-item label="当前密码" prop="old_password">
<el-input v-model="form2.old_password" type="password" show-password placeholder="请输入当前密码"></el-input>
<el-input v-model="form2.old_password" type="password" show-password
placeholder="请输入当前密码"></el-input>
<div class="el-form-item-msg">必须提供当前登录用户密码才能进行更改</div>
</el-form-item>
<el-form-item label="新密码" prop="new_password">
<el-input v-model="form2.new_password" type="password" show-password placeholder="请输入新密码"></el-input>
<el-input v-model="form2.new_password" type="password" show-password
placeholder="请输入新密码"></el-input>
<pi-password-strength v-model="form2.new_password"></pi-password-strength>
<div class="el-form-item-msg">请输入包含英文数字的6位以上密码</div>
</el-form-item>
<el-form-item label="确认新密码" prop="confirm_password">
<el-input v-model="form2.confirm_password" type="password" show-password placeholder="请再次输入新密码"></el-input>
<el-input v-model="form2.confirm_password" type="password" show-password
placeholder="请再次输入新密码"></el-input>
</el-form-item>
<el-form-item>
<el-button :loading="isSaveing" type="primary" @click="savePass">保存密码</el-button>
<el-button :loading="isSaveing" type="primary" @click="savePass">保存密码
</el-button>
</el-form-item>
</el-form>
</el-tab-pane>
@ -132,13 +140,13 @@
<el-table-column label="操作" prop="title"></el-table-column>
<el-table-column label="状态" prop="code">
<template #default="scope">
{{scope.row.code == 0 ? '成功' : '失败'}}
{{ scope.row.code == 0 ? '成功' : '失败' }}
</template>
</el-table-column>
<el-table-column label="IP" prop="ip"></el-table-column>
<el-table-column label="UA" prop="ua">
<template #default="scope">
{{tools.getBrowser(scope.row.ua)}}
{{ tools.getBrowser(scope.row.ua) }}
</template>
</el-table-column>
<el-table-column label="时间" prop="create_time"></el-table-column>
@ -180,29 +188,33 @@ const form2 = ref({
})
const rules = ref({
old_password: [
{ required: true, message: '请输入当前密码'}
{required: true, message: '请输入当前密码'}
],
new_password: [
{ required: true, message: '请输入新密码'},
{ min: 6, max: 30, message: '密码长度在6-30位之间' },
{validator: (rule, value, callback) => {
if(value === form2.value.old_password) {
{required: true, message: '请输入新密码'},
{min: 6, max: 30, message: '密码长度在6-30位之间'},
{
validator: (rule, value, callback) => {
if (value === form2.value.old_password) {
callback(new Error('新旧密码不能一致'));
} else {
callback();
}
}}
}
}
],
confirm_password: [
{ required: true, message: '请再次输入新密码'},
{ min: 6, max: 30, message: '密码长度在6-30位之间' },
{validator: (rule, value, callback) => {
{required: true, message: '请再次输入新密码'},
{min: 6, max: 30, message: '密码长度在6-30位之间'},
{
validator: (rule, value, callback) => {
if (value !== form2.value.new_password) {
callback(new Error('两次输入密码不一致'));
} else {
callback();
}
}}
}
}
]
})
@ -213,9 +225,9 @@ onMounted(() => {
const sex = computed(() => {
if (userInfo.value.sex == 1) {
return '男'
}else if (userInfo.value.sex == 2) {
} else if (userInfo.value.sex == 2) {
return '女'
}else {
} else {
return '保密'
}
})
@ -263,8 +275,11 @@ async function saveInfo() {
}
async function savePass() {
const validate = await passRef.value.validate().catch(() => {});
if(!validate){ return false }
const validate = await passRef.value.validate().catch(() => {
});
if (!validate) {
return false
}
const res = await api.auth.savePass(form2.value)
proxy.$message.success(res.msg)
}