From c8c6b7f922bf6ebba079408e50b719dfac20b63f Mon Sep 17 00:00:00 2001 From: zhouyanli <593579392@qq.com> Date: Thu, 28 May 2026 10:31:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=BC=A0=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=8E=A5=E5=8F=A3=EF=BC=8C=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E5=8A=A0=E8=AE=B0=E4=BD=8F=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wuye-manager-uniapp/api/api.js | 6 +- wuye-manager-uniapp/api/request.js | 9 +-- .../fault-reporting/fault-reporting.vue | 15 ++--- .../pageSubPack/loginSub/pwd-login.vue | 62 ++++++++++++++++--- .../report-record/report-record.vue | 6 +- 5 files changed, 74 insertions(+), 24 deletions(-) diff --git a/wuye-manager-uniapp/api/api.js b/wuye-manager-uniapp/api/api.js index 553e6ea..8c78c1a 100644 --- a/wuye-manager-uniapp/api/api.js +++ b/wuye-manager-uniapp/api/api.js @@ -1,4 +1,4 @@ -import request,{get,post} from "./request.js" +import request,{get,post,upload} from "./request.js" // =======账号密码登录======== @@ -65,8 +65,8 @@ export const addRepairList = (data) =>{ return post('/manage/repair/order',data) } // 上传图片 -export const uploadFile = (filePath) => { - return upload(filePath,'/resource/oss/upload'); +export const uploadFile = (filePath, fileName) => { + return upload(filePath, '/api/butler/file/uploadImage', fileName); } // 查询一键开门 diff --git a/wuye-manager-uniapp/api/request.js b/wuye-manager-uniapp/api/request.js index 40906da..1706abb 100644 --- a/wuye-manager-uniapp/api/request.js +++ b/wuye-manager-uniapp/api/request.js @@ -81,20 +81,21 @@ export const put = (url, data) => request(url, data, 'PUT') // export const putMethod = (url, data) => request(url, data, 'PUT'); // 上传 -export const upload = (filePath, url) => { +export const upload = (filePath, url, fileName) => { return new Promise((resolve, reject) => { - uni.uploadFile({ + const uploadTask = uni.uploadFile({ url: baseUrl + url, filePath: filePath, name: 'file', + fileName: fileName, header: { Authorization: 'Bearer ' + (uni.getStorageSync('token') || ''), - clientid: 'resident' + clientid: 'butler' }, success: res => { try { const data = JSON.parse(res.data) - resolve(data.data || '') // 直接返回图片地址 + resolve(data.data || '') } catch (e) { resolve('') } diff --git a/wuye-manager-uniapp/pageSubPack/fault-reporting/fault-reporting.vue b/wuye-manager-uniapp/pageSubPack/fault-reporting/fault-reporting.vue index fb2e47c..a76d443 100644 --- a/wuye-manager-uniapp/pageSubPack/fault-reporting/fault-reporting.vue +++ b/wuye-manager-uniapp/pageSubPack/fault-reporting/fault-reporting.vue @@ -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 diff --git a/wuye-manager-uniapp/pageSubPack/loginSub/pwd-login.vue b/wuye-manager-uniapp/pageSubPack/loginSub/pwd-login.vue index 3ee8be0..00eb8c2 100644 --- a/wuye-manager-uniapp/pageSubPack/loginSub/pwd-login.vue +++ b/wuye-manager-uniapp/pageSubPack/loginSub/pwd-login.vue @@ -29,6 +29,15 @@ + + + + + + 记住密码 + + + @@ -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; } diff --git a/wuye-manager-uniapp/pageSubPack/report-record/report-record.vue b/wuye-manager-uniapp/pageSubPack/report-record/report-record.vue index 16e8cf2..60d2718 100644 --- a/wuye-manager-uniapp/pageSubPack/report-record/report-record.vue +++ b/wuye-manager-uniapp/pageSubPack/report-record/report-record.vue @@ -301,11 +301,10 @@ onReady(() => { .type-tabs { display: flex; /* background-color: #fff; */ - padding: 20rpx 0rpx; + padding: 20rpx 40rpx; margin-top: 10rpx; justify-content: flex-start; - gap: 30rpx; - margin: 0rpx 40rpx; + /* gap: 20rpx; */ } .type-tab-item { @@ -314,6 +313,7 @@ onReady(() => { color: #999; border: 2rpx solid #999; border-radius: 198rpx; + margin: 0 16rpx 0 0 } .type-tab-item.active {