基本功能都已完成
This commit is contained in:
@@ -1,24 +1,178 @@
|
||||
<template>
|
||||
<view class="padding page">
|
||||
<view class="padding bg-white">
|
||||
<view class="flex justify-between padding-bottom solid-bottom">
|
||||
<view>修改登录密码</view>
|
||||
<view class="lg text-gray cuIcon-right"></view>
|
||||
<view class="page">
|
||||
<view class="padding bg-white margin-top">
|
||||
<!-- 旧密码 -->
|
||||
<view class="form-item solid-bottom">
|
||||
<view class="form-label">旧密码</view>
|
||||
<view class="form-input-wrap">
|
||||
<input
|
||||
class="form-input"
|
||||
v-model="formData.oldPassword"
|
||||
:type="showOldPwd ? 'text' : 'password'"
|
||||
placeholder="请输入旧密码"
|
||||
/>
|
||||
<view class="pwd-toggle" @click="showOldPwd = !showOldPwd">
|
||||
<text :class="showOldPwd ? 'cuIcon-attention' : 'cuIcon-attentionforbid'"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex justify-between padding-top padding-bottom solid-bottom">
|
||||
<view>注销账户</view>
|
||||
<view class="lg text-gray cuIcon-right"></view>
|
||||
|
||||
<!-- 新密码 -->
|
||||
<view class="form-item solid-bottom">
|
||||
<view class="form-label">新密码</view>
|
||||
<view class="form-input-wrap">
|
||||
<input
|
||||
class="form-input"
|
||||
v-model="formData.newPassword"
|
||||
:type="showNewPwd ? 'text' : 'password'"
|
||||
placeholder="请输入新密码"
|
||||
/>
|
||||
<view class="pwd-toggle" @click="showNewPwd = !showNewPwd">
|
||||
<text :class="showNewPwd ? 'cuIcon-attention' : 'cuIcon-attentionforbid'"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 确认密码 -->
|
||||
<view class="form-item">
|
||||
<view class="form-label">确认密码</view>
|
||||
<view class="form-input-wrap">
|
||||
<input
|
||||
class="form-input"
|
||||
v-model="formData.confirmPassword"
|
||||
:type="showConfirmPwd ? 'text' : 'password'"
|
||||
placeholder="请再次输入新密码"
|
||||
/>
|
||||
<view class="pwd-toggle" @click="showConfirmPwd = !showConfirmPwd">
|
||||
<text :class="showConfirmPwd ? 'cuIcon-attention' : 'cuIcon-attentionforbid'"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 提示信息 -->
|
||||
<view class="tips">
|
||||
<text class="text-gray text-sm">密码长度至少6位,建议包含字母和数字</text>
|
||||
</view>
|
||||
|
||||
<!-- 保存按钮 -->
|
||||
<view class="padding">
|
||||
<button class="bg-blue round" @click="handleSave" :loading="saving">保存</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue';
|
||||
import { updatePassword } from '@/request/three_one_api/info.js';
|
||||
|
||||
const saving = ref(false);
|
||||
const showOldPwd = ref(false);
|
||||
const showNewPwd = ref(false);
|
||||
const showConfirmPwd = ref(false);
|
||||
|
||||
const formData = reactive({
|
||||
oldPassword: '',
|
||||
newPassword: '',
|
||||
confirmPassword: ''
|
||||
});
|
||||
|
||||
// 保存
|
||||
const handleSave = async () => {
|
||||
// 表单验证
|
||||
if (!formData.oldPassword) {
|
||||
uni.showToast({ title: '请输入旧密码', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (!formData.newPassword) {
|
||||
uni.showToast({ title: '请输入新密码', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (formData.newPassword.length < 6) {
|
||||
uni.showToast({ title: '新密码长度至少6位', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (!formData.confirmPassword) {
|
||||
uni.showToast({ title: '请确认新密码', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (formData.newPassword !== formData.confirmPassword) {
|
||||
uni.showToast({ title: '两次输入的密码不一致', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (formData.oldPassword === formData.newPassword) {
|
||||
uni.showToast({ title: '新密码不能与旧密码相同', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
|
||||
saving.value = true;
|
||||
try {
|
||||
const params = {
|
||||
oldPassword: formData.oldPassword,
|
||||
newPassword: formData.newPassword,
|
||||
confirmPassword: formData.confirmPassword
|
||||
};
|
||||
|
||||
const res = await updatePassword(params);
|
||||
if (res.code === 0) {
|
||||
uni.showToast({ title: '密码修改成功', icon: 'success' });
|
||||
// 清空表单
|
||||
formData.oldPassword = '';
|
||||
formData.newPassword = '';
|
||||
formData.confirmPassword = '';
|
||||
// 延迟返回
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1500);
|
||||
} else {
|
||||
uni.showToast({ title: res.msg || '修改失败', icon: 'none' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('修改密码失败:', err);
|
||||
uni.showToast({ title: '修改失败', icon: 'none' });
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.page {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
}
|
||||
</style>
|
||||
.page {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
padding: 30rpx 0;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.form-input-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #f5f5f5;
|
||||
border-radius: 12rpx;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
|
||||
.form-input {
|
||||
flex: 1;
|
||||
height: 80rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.pwd-toggle {
|
||||
padding: 10rpx;
|
||||
font-size: 36rpx;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.tips {
|
||||
padding: 20rpx 30rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user