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>
@ -96,7 +97,8 @@
</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>
@ -185,24 +193,28 @@ const rules = ref({
new_password: [
{required: true, message: '请输入新密码'},
{min: 6, max: 30, message: '密码长度在6-30位之间'},
{validator: (rule, value, callback) => {
{
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) => {
{
validator: (rule, value, callback) => {
if (value !== form2.value.new_password) {
callback(new Error('两次输入密码不一致'));
} else {
callback();
}
}}
}
}
]
})
@ -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)
}