shuishen
2026-05-15 fe1a7f5e5e96f961c06caf8bcd8e513447468f6b
feat:个人资料、修改密码提交优化
2 files modified
57 ■■■■ changed files
src/subPackages/userDetail/infos/index.vue 28 ●●●● patch | view | raw | blame | history
src/subPackages/userDetail/password/index.vue 29 ●●●● patch | view | raw | blame | history
src/subPackages/userDetail/infos/index.vue
@@ -29,7 +29,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>
@@ -50,6 +60,7 @@
  email: '',
  deptName: '',
});
const submitLoading = ref(false);
// 校验手机号
const validatePhone = () => {
@@ -199,16 +210,23 @@
  // #endif
}
const submit = () => {
  if (submitLoading.value) return
  if (!validatePhone() || !validateEmail()) return
  submitLoading.value = true
  userInfo.value.name = userInfo.value.realName;
  updateInfo(userInfo.value).then(res => {
    if (res.data.code === 200) {
      uni.showToast({
        title: '修改信息成功',
        icon: 'none',
        duration: 2000
        duration: 1500
      });
      getUserInfoData()
      setTimeout(() => {
        uni.switchTab({
          url: '/pages/user/index'
        });
      }, 1500);
      return
    } else {
      uni.showToast({
@@ -218,6 +236,10 @@
      });
      getUserInfoData()
    }
    submitLoading.value = false
  }).catch(() => {
    getUserInfoData()
    submitLoading.value = false
  });
};
onShow(async () => {
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;
        });
    };