基本功能都已完成

This commit is contained in:
王利强
2026-02-08 09:30:43 +08:00
parent 1ad538f351
commit 721ef0ad54
494 changed files with 6837 additions and 42302 deletions

View File

@@ -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>