bug
jiangping
2023-11-07 64b432916af9c9218ab3f3eca614e26c542142ae
minipro_standard/pages/changePassword/changePassword.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
<template>
   <view class="password">
      <view class="password_tip">
         <image src="@/static/password_ic_tip@2x.png" alt="" />
         <text>密码由6-20个英文字母、数字或符号组成</text>
      </view>
      <view class="password_list">
         <view class="password_list_item">
            <text>原密码</text>
            <view class="password_list_item_box">
               <input type="password" v-model="form.originalPassword" maxlength="20" placeholder="请输入原密码">
            </view>
         </view>
         <view class="password_list_item">
            <text>新密码</text>
            <view class="password_list_item_box">
               <input type="password" v-model="form.newPassword" maxlength="20" placeholder="请输入新密码">
            </view>
         </view>
         <view class="password_list_item">
            <text>确认密码</text>
            <view class="password_list_item_box">
               <input type="password" v-model="form.confirmPassword" maxlength="20" placeholder="再次输入新密码">
            </view>
         </view>
      </view>
      <view class="password_footer">
         <button class="password_footer_submit" @click="submit">
            <text>完成</text>
         </button>
      </view>
   </view>
</template>
<script>
   import { updatePwd } from '@/util/api/PersonalAPI'
   export default {
      data() {
         return {
            form: {
               originalPassword: '',
               newPassword: '',
               confirmPassword: ''
            }
         };
      },
      methods: {
         // å¿˜è®°å¯†ç 
         forgotPassword() {
         },
         // æäº¤ä¿®æ”¹
         submit() {
            if (!this.form.originalPassword) {
               uni.showToast({ title: '原密码不能为空', icon: 'none', duration: 2000 });
            } else if (!this.form.newPassword) {
               uni.showToast({ title: '新密码不能为空', icon: 'none', duration: 2000 });
            } else if (!/^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{6,}$/.test(this.form.newPassword)) {
               uni.showToast({ title: '密码格式不正确', icon: 'none', duration: 2000 });
            } else if (!this.form.confirmPassword) {
               uni.showToast({ title: '确认密码不能为空', icon: 'none', duration: 2000 });
            } else if (this.form.newPassword !== this.form.confirmPassword) {
               uni.showToast({ title: '两次输入的密码不一致', icon: 'none', duration: 2000 });
            } else {
               updatePwd({
                  newPwd: this.form.newPassword,
                  oldPwd: this.form.originalPassword
               }).then(res => {
                  if (res.code === 200) {
                     uni.showToast({ title: '修改成功', icon: 'success', duration: 2000, mask: true });
                     setTimeout(() => {
                        uni.navigateBack({ delta: 1 });
                     }, 2000)
                  }
               })
            }
         }
      }
   }
</script>
<style lang="scss" scoped>
   .password {
       position: absolute;
       width: 100%;
       height: 100%;
       background: white;
       .password_tip {
           height: 72rpx;
           display: flex;
           align-items: center;
           background: #F7F7F7;
           padding: 0 30rpx;
           image {
               width: 24rpx;
               height: 24rpx;
               margin-right: 10rpx;
           }
           text {
               font-size: 24rpx;
               font-weight: 400;
               color: #666666;
           }
       }
       .password_list {
           padding: 0 30rpx;
           .password_list_item {
               display: flex;
               align-items: center;
               height: 90rpx;
               border-bottom: 1rpx solid #E5E5E5;
               text {
                   width: 150rpx;
                   flex-shrink: 0;
                   font-size: 30rpx;
                   font-weight: 400;
                   color: #222222;
               }
               .password_list_item_box {
                   display: flex;
                   justify-content: space-between;
                   flex: 1;
                   input {
                       border: none;
                       font-size: 30rpx;
                   }
                   input::-webkit-input-placeholder {
                       font-size: 28rpx;
                       font-weight: 400;
                       color: #B2B2B2;
                   }
                   p {
                       font-size: 26rpx;
                       font-weight: 400;
                       color: #4275FC;
                   }
               }
           }
       }
       .password_footer {
           margin-top: 80rpx;
           padding: 0 30rpx;
           .password_footer_submit {
               width: 100%;
               height: 88rpx;
               border: none;
               background: #4275FC;
               box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
               border-radius: 8rpx;
               display: flex;
               align-items: center;
               justify-content: center;
               text {
                   font-size: 30rpx;
                   font-weight: 500;
                   color: #FFFFFF;
               }
           }
       }
   }
</style>