<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> 
 | 
                <text class="password_list_item_btn" @click="forgotPassword">忘记密码</text> 
 | 
            </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() { 
 | 
                uni.navigateTo({ 
 | 
                    url: '/pages_adjust/pages/forgotPassword/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-z0-9\.\@\!\#\(/)/$\%\^\&\*\(\)]){6,20}$/i.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_btn { 
 | 
                    text-align: right; 
 | 
                    font-size: 26rpx; 
 | 
                    font-family: PingFangSC-Regular, PingFang SC; 
 | 
                    font-weight: 400; 
 | 
                    color: #4275FC; 
 | 
                } 
 | 
                .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> 
 |