This commit is contained in:
Zy
2026-05-28 11:55:33 +08:00
8 changed files with 233 additions and 154 deletions

View File

@@ -150,14 +150,15 @@ const uploadImages = async () => {
continue
}
try {
const res = await uploadFile(path)
// 根据后端实际返回结构调整字段名
uploadedUrls.push(res.url || '')
// 从路径中提取文件名
const fileName = path.substring(path.lastIndexOf('/') + 1)
const res = await uploadFile(path, fileName)
uploadedUrls.push(res?.url || '')
} catch (err) {
uni.showToast({
title:err.msg || '图片上传失败',
icon:'error'
})
uni.showToast({
title: err.msg || '图片上传失败',
icon: 'error'
})
}
}
return uploadedUrls

View File

@@ -29,6 +29,15 @@
</view>
<!-- 记住密码 -->
<view class="remember-wrap">
<view class="remember-item" @click="toggleRemember">
<uni-icons type="checkbox-filled" size="18" color="#4D5DFA" v-if="rememberPwd"></uni-icons>
<uni-icons type="checkbox" size="18" color="#999" v-else></uni-icons>
<text class="remember-text">记住密码</text>
</view>
</view>
<!-- 协议勾选 + 忘记密码 -->
<view class="agreement-wrap">
<view class="agreement-item">
@@ -72,6 +81,7 @@
const phoneNumber = ref('');
const password = ref('');
const agreeAgreement = ref(false); // 默认勾选
const rememberPwd = ref(false);
const placeholderStyle = ref('font-size:24rpx')
// 控制点击变色
// const isClicked = ref(false)
@@ -87,6 +97,10 @@
const toggleAgreement = () => {
agreeAgreement.value = !agreeAgreement.value;
};
// 切换记住密码
const toggleRemember = () => {
rememberPwd.value = !rememberPwd.value;
};
// 跳转隐私协议
const goToPrivacy = () => {
@@ -100,7 +114,14 @@
const checkForm = () => {};
onLoad(() => {});
onLoad(() => {
const savedPhone = uni.getStorageSync('rememberPhone');
const savedPwd = uni.getStorageSync('rememberPassword');
const savedRemember = uni.getStorageSync('rememberPwd');
if (savedPhone) phoneNumber.value = savedPhone;
if (savedPwd) password.value = savedPwd;
if (savedRemember) rememberPwd.value = savedRemember;
});
// 登录逻辑
const handleLogin = () => {
@@ -138,12 +159,21 @@
if(res.code === 200){
uni.setStorageSync('token', res.data.token);
// 存用户ID
if(res.data) {
// 存当前绑定的小区ID,0 表示未绑定
// const currentVillageId = res.data.currentVillageId || 0;
// uni.setStorageSync('currentVillageId', currentVillageId);
}
// if(res.data) {
// // 存当前绑定的小区ID,0 表示未绑定
// // const currentVillageId = res.data.currentVillageId || 0;
// // uni.setStorageSync('currentVillageId', currentVillageId);
// }
uni.hideLoading();
if (rememberPwd.value) {
uni.setStorageSync('rememberPhone', phoneNumber.value);
uni.setStorageSync('rememberPassword', password.value);
uni.setStorageSync('rememberPwd', true);
} else {
uni.removeStorageSync('rememberPhone');
uni.removeStorageSync('rememberPassword');
uni.removeStorageSync('rememberPwd');
}
uni.showToast({ title: '登录成功', icon: 'success' });
setTimeout(() =>{
uni.switchTab({
@@ -228,11 +258,29 @@
font-size: 28rpx;
}
.remember-wrap {
display: flex;
align-items: center;
margin: 20rpx 0 0 0;
padding: 0 10rpx;
}
.remember-item {
display: flex;
align-items: center;
}
.remember-text {
font-size: 24rpx;
color: #666;
margin-left: 10rpx;
}
.agreement-wrap {
display: flex;
justify-content: space-between;
align-items: center;
margin: 70rpx 0 28rpx 0;
margin: 40rpx 0 28rpx 0;
padding: 0 10rpx;
}

View File

@@ -301,13 +301,10 @@ onReady(() => {
.type-tabs {
display: flex;
/* background-color: #fff; */
padding: 20rpx 0rpx;
padding: 20rpx 40rpx;
margin-top: 10rpx;
justify-content: flex-start;
margin: 0rpx 40rpx;
}
.type-tabs > .type-tab-item:not(:last-child) {
margin-right: 20rpx;
/* gap: 20rpx; */
}
.type-tab-item {
@@ -316,6 +313,7 @@ onReady(() => {
color: #999;
border: 2rpx solid #999;
border-radius: 198rpx;
margin: 0 16rpx 0 0;
}
.type-tab-item.active {

View File

@@ -192,7 +192,9 @@ const handleConfirm = () => {
flex: 1;
font-size: 32rpx;
color: #333;
height: 100%;
/* height: 100%; */
display: flex;
align-items: center;
}
/* 密码规则提示 */

View File

@@ -210,7 +210,8 @@ const handleConfirm = () => {
flex: 1;
font-size: 32rpx;
color: #333;
height: 100%;
display: flex;
align-items: center;
}
.verify-input {
padding-right: 20rpx;