From fe1a7f5e5e96f961c06caf8bcd8e513447468f6b Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 15 May 2026 10:47:10 +0800
Subject: [PATCH] feat:个人资料、修改密码提交优化

---
 src/subPackages/userDetail/password/index.vue |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/subPackages/userDetail/password/index.vue b/src/subPackages/userDetail/password/index.vue
index dd51f58..9de5039 100644
--- a/src/subPackages/userDetail/password/index.vue
+++ b/src/subPackages/userDetail/password/index.vue
@@ -21,7 +21,17 @@
 		</view>
 		<view class="btngroup">
 			<u-button color="#AEAEAE" class="custom-style" shape="circle" @click="reset">重置</u-button>
-			<u-button color="#1D6FE9" class="custom-style" shape="circle" @click="submit">提交</u-button>
+			<u-button
+				:color="submitLoading ? '#AEAEAE' : '#1D6FE9'"
+				class="custom-style"
+				shape="circle"
+				text="提交"
+				:loading="submitLoading"
+				loading-text="提交中"
+				loading-mode="circle"
+				:loading-size="13"
+				@click="submit"
+			/>
 		</view>
 	</view>
 </template>
@@ -46,6 +56,7 @@
 		newPassword: '',
 		newPassword1: '',
 	});
+	const submitLoading = ref(false);
 	// 校验密码不能包含中文
 	const validatePasswordNoChinese = (password) => {
 		const chineseRegex = /[\u4e00-\u9fa5]/;
@@ -84,6 +95,7 @@
 		clearForm();
 	};
 	const submit = () => {
+		if (submitLoading.value) return;
 		// 原始密码校验
 		if (!passwordForm.value.oldPassword) {
 
@@ -119,6 +131,7 @@
 
 		// 复杂度校验
 		if (!validatePasswordStrength(passwordForm.value.newPassword)) return;
+		submitLoading.value = true;
 		updatePassword(md5(passwordForm.value.oldPassword),
 			md5(passwordForm.value.newPassword),
 			md5(passwordForm.value.newPassword1)).then(res => {
@@ -126,14 +139,17 @@
 				uni.showToast({
 					title: '修改信息成功',
 					icon: 'none',
-					duration: 2000
+					duration: 1500
 				});
 				clearForm();
 				userStore.setUserInfo(null)
 				uni.removeStorageSync('rememberedUser');
-				uni.reLaunch({
-					url: '/pages/login/index'
-				})
+				setTimeout(() => {
+					uni.reLaunch({
+						url: '/pages/login/index'
+					})
+				}, 1500);
+				return
 
 			} else {
 				uni.showToast({
@@ -142,7 +158,10 @@
 					duration: 2000
 				});
 			}
+			submitLoading.value = false;
 
+		}).catch(() => {
+			submitLoading.value = false;
 		});
 
 	};

--
Gitblit v1.9.3