<template>
    <Cn-page :loading="loading">
        <view slot="body">
            <view class="index">
                <template v-if="step == 1">
                    <uni-forms ref="form" :rules="rules" :modelValue="formData">
                        <uni-forms-item name="phone">
                            <uni-easyinput disabled type="text" v-model="formData.phoneShow" placeholder="请输入手机号" />
                        </uni-forms-item>
                        <uni-forms-item name="code">
                            <view class="login-box-input">
                                <uni-easyinput type="number" v-model="formData.code" placeholder="请输入验证码" />
                                <view class="ml40"
                                    style="margin-left:40rpx;font-size: 28rpx; color: #666; width: 200rpx; text-align: center"
                                    v-if="waitTime > 0">{{ waitTime + 's后重新获取' }}</view>
                                <button class="login-box-input-btn" v-else @click="getCode(5)" size="mini">获取验证码</button>
                            </view>
                        </uni-forms-item>
                    </uni-forms>
                    <button type="default" class="submit-btn" @click="firstSubmit">下一步</button>
                </template>
                <template v-else>
                    <uni-forms ref="form" :rules="rules" :modelValue="formData">
                        <uni-forms-item name="phone">
                            <uni-easyinput type="number" v-model="formData.phone2" placeholder="请输入新手机号" />
                        </uni-forms-item>
                        <uni-forms-item name="code">
                            <view class="login-box-input">
                                <uni-easyinput type="number" v-model="formData.code2" placeholder="请输入验证码" />
                                <view class="ml40"
                                    style="margin-left:40rpx;font-size: 28rpx; color: #666; width: 200rpx; text-align: center"
                                    v-if="waitTime > 0">{{ waitTime + 's后重新获取' }}</view>
                                <button class="login-box-input-btn" v-else @click="getCode(4)" size="mini">获取验证码</button>
                            </view>
                        </uni-forms-item>
                    </uni-forms>
                    <button type="default" class="submit-btn" @click="secondSubmit">提交</button>
                </template>
            </view>
        </view>
    </Cn-page>
</template>
<script>
import { apiGetYms, apiComfirmCode, apiRebindPhone } from '@/common/api/user'
export default {
    name: "jiaban",
    data () {
        return {
            step: 1,
            loading: false,
            waitTime: 0,
            // 表单数据
            formData: {
                phone: '',
                phoneShow: '',
                code: '',
                phone2: '',
                code2: '',
            },
            rules: {
                phone: {
                    rules: [
                        {
                            required: true,
                            errorMessage: "请填写手机号"
                        }
                    ]
                },
                code: {
                    rules: [
                        {
                            required: true,
                            errorMessage: "请填写验证码"
                        }
                    ]
                },
                phone2: {
                    rules: [
                        {
                            required: true,
                            errorMessage: "请填写新手机号"
                        }
                    ]
                },
                code2: {
                    rules: [
                        {
                            required: true,
                            errorMessage: "请填写验证码"
                        }
                    ]
                }
            }
        };
    },
    onLoad () {
        this.init()
    },
    methods: {
        getCode (type) {
            if (!this.formData.phone) {
                return this.$util.toast('请输入手机号！')
            }
            uni.showLoading({
                title: '请稍等'
            })
            apiGetYms({
                phone: type == 5 ? this.formData.phone : this.formData.phone2,
                type,
            }).then(res => {
                uni.hideLoading()
                console.log(res);
                this.waitTime = 60
                this.inter = setInterval(() => {
                    if (this.waitTime == 0) {
                        clearInterval(this.inter)
                    } else {
                        this.waitTime--
                    }
                }, 1000)
            }).catch(err => {
                uni.hideLoading()
                console.log(err);
            })
        },
        init () {
            this.formData.phone = uni.getStorageSync('userInfo').phone
            // 150****0083
            this.formData.phoneShow = this.formData.phone.substr(0, 3) + '****' + this.formData.phone.substr(7)
        },
        firstSubmit () {
            apiComfirmCode({
                phone: this.formData.phone,
                code: this.formData.code,
            }).then(res => {
                this.step = 2
                clearInterval(this.inter)
                this.waitTime = 0
            }).catch(err => {
                console.log(err);
            })
        },
        secondSubmit () {
            apiRebindPhone({
                phone: this.formData.phone2,
                code: this.formData.code2,
            }).then(res => {
                this.$util.toast('绑定成功')
                uni.clearStorageSync();
                setTimeout(() => {
                    uni.redirectTo({
                        url: '/pages/user/login'
                    })
                }, 1500);
            }).catch(err => {
                console.log(err);
            })
        }
    }
};
</script>
<style lang="scss">
.index {
    padding: 20rpx;

    .submit-btn {
        background: $uni-theme-blue;
        color: #fff;
    }

    .login-box-tips {
        margin-top: 60rpx;
        display: flex;
        justify-content: center;
        font-size: 20rpx;
    }

    .login-box-input {
        display: flex;
        align-items: center;
        border-bottom: 1rpx solid #f0f0f0;

        .login-box-input-icon {
            width: 40rpx;
            margin-right: 40rpx;
        }

        .login-box-input-main {
            font-size: 28rpx;
            flex: 1;
            height: 100rpx;
            line-height: 100rpx;
        }

        .login-box-input-btn {
            width: 200rpx;
            margin-left: 40rpx;
            background: $uni-theme-blue;
            color: #fff;
        }

        .login-box-input-img {
            margin-left: 40rpx;
            background: skyblue;
            height: 80rpx;
            width: 200rpx;
        }
    }
}
</style>
