import {
    ApiModel
} from "../../utils/api";
const _Http = new ApiModel();
import {
    TestVerify
} from "../../utils/verify"
const _Verify = new TestVerify();
const utilMd5 = require('../../utils/md5');
Page({
    /**
     * 页面的初始数据
     */
    data: {
        popups: false, //弹出层控制
        pageType: "login", //页面类型 login 手机登录页面 signin 注册页面 firm 商户认证 changeUser 切换用户
        butText: "", //按钮文本
        attinfos: [], //logo
        /* 登录 */
        fphonenumber: 17757394388, //手机号码
        password: null, //验证码
        /* 个人注册 */
        fname: "", //用户名
        frole: "", //用户身份
        /* 商户注册 */
        fbrand: "", //品牌名
        saleprodclass: [], //经营类目
        showSaleprodclass: "", //表单显示经营类目
        fagentname: "", //公司名称
        fcontact: "", //联系人
        fintroduction: "", //公司介绍
        faddress: "", //公司地址
        fdutyparagraph: "", //统一社会代码
        /* 用户选择 */
        userIndex: 0, //多用户选择下标
        /* 错误提示 */
        errTips: {
            fphonenumber: false, //手机号码
            password: false, //验证码
            fbrand: false, //品牌名
            showSaleprod: false, //经营类目
            tipsShow: false, //经营类目提示框
            fagentname: false, //注册公司名
            fcontact: false, //联系人
            logoTips: false, //未上传图片提示
        }
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        /* 设置按钮文本 */
        this.changeButText()
    },

    /* 选择类目回调 */
    saleprodChange(arr) {
        let {
            detail
        } = arr, showSaleprodclass = "";
        console.log(arr)
        for (let i = 0; i < detail.length; i++) {
            showSaleprodclass += (detail[i] + '，');
        };
        this.setData({
            popups: false,
            saleprodclass: detail,
            showSaleprodclass: showSaleprodclass.slice(0, showSaleprodclass.length - 1)
        })
    },
    /* 缓存登录用户关键数据 */
    retentionOfCriticalData(index) {
        //获取用户选择的信息列表
        const user = getApp().globalData.account_list[index];
        let data = {
            token: user.token,
            fisadministrator: user.fisadministrator,
            tagentsid: user.tagentsid,
            tenterpriseid: user.tenterpriseid,
            userid: user.userid,
            index: index
        };
        /* 储存 */
        wx.setStorageSync('userData', data);
    },
    /* 登录页面提交数据 */
    loginSubmit() {
        //验证手机号码
        if (!_Verify.phoneNumber(this.data.fphonenumber, 1)) return this.setData({
            "errTips.fphonenumber": true
        })
        /* 验证验证码 */
        if (this.data.password.length != 6) {
            this.setData({
                "errTips.password": true
            })
            wx.showToast({
                title: '无效验证码',
                icon: "none"
            })
            return;
        };
        /* 发送请求 */
        _Http.login({
            "phonenumber": this.data.fphonenumber,
            "password": utilMd5.hexMD5(this.data.password)
        }).then(res => {
            console.log(res)
            /* 结果验证 */
            if (res.msg != '成功') {
                this.setData({
                    "errTips.password": true
                })
                wx.showToast({
                    title: '无效验证码',
                    icon: "none"
                })
                return;
            };
            //账号列表保存到全局变量中
            getApp().globalData.account_list = res.account_list;
            console.log(getApp().globalData.account_list)
            /* 判断账号 新 单 多  isnewregister*/
            if (res.account_list.length == 1 && res.account_list[0].isnewregister == 1) {
                //新账号
                console.log('新账号')
                this.retentionOfCriticalData(0)
                //跳转到个人注册
                this.setData({
                    pageType: 'signin'
                })
                //更改按钮内容
                this.changeButText()
            } else if (res.account_list.length == 1 && res.account_list[0].isnewregister == 0) {
                //单账号
                console.log('单账号')
                this.retentionOfCriticalData(0)
                //跳转到首页
                this.jumpOverToIndex()
            } else if (res.account_list.length > 1) {
                //多账号
                console.log('多账号')
                //跳转到账号选择
                this.setData({
                    pageType: 'changeUser'
                })
                //更改按钮内容
                this.changeButText()
            }

        })
    },
    /* 提交数据 */
    submitData(e) {
        const {
            name
        } = e.currentTarget.dataset;
        if (name == "login") {
            //登录页面提交信息
            this.loginSubmit()
        } else if (name == "changeUser") {
            //多账号选择
            this.retentionOfCriticalData(this.data.userIndex)
            //跳转到首页
            this.jumpOverToIndex()
        } else if (name == "signin") {
            //个人注册提交数据后跳转商户认证页面
            this.savePersonalInformation()
            this.setData({
                pageType: "firm"
            })
            //更改按钮内容
            this.changeButText()
        } else if (name == "firm") {
            //商户认证提交
            this.merchantsToSubmit();
        }
    },
    /* 商户提交前验证表单 */
    merchantsToSubmitVerify() {
        let errTips = this.data.errTips,
            verify = true;
        //验证品牌名称
        if (!_Verify.required(this.data.fbrand)) {
            errTips.fbrand = true;
            verify = false;
        };
        // 验证图片是否上传
        if (!this.selectComponent('#UploadFiles').VerifyThere()) {
            errTips.logoTips = true;
            verify = false;
        }
        // 经营类目验证
        if (!_Verify.required(this.data.showSaleprodclass)) {
            errTips.showSaleprod = true;
            verify = false;
        };
        // 注册公司名验证
        if (!_Verify.required(this.data.fagentname)) {
            errTips.fagentname = true;
            verify = false;
        };
        // 联系人验证
        if (!_Verify.required(this.data.fcontact)) {
            errTips.fcontact = true;
            verify = false;
        };
        //验证联系方式
        if (!_Verify.phoneNumber(this.data.fphonenumber)) {
            errTips.fphonenumber = true;
            verify = false;
        }
        this.setData({
            errTips
        })
        return verify;
    },
    /* 添加图片 */
    imageChange(data) {
        this.setData({
            attinfos: data.detail.fileList
        })
    },
    /* 商户认证提交表单 */
    merchantsToSubmit() {
        // 验证
        if (!this.merchantsToSubmitVerify()) return wx.showToast({
            title: '请检查表单内容',
            icon: "none"
        });
        //发送请求
        _Http.basic({
            "accesstoken": wx.getStorageSync('userData').token,
            "classname": "customer.tagents.tagents",
            "method": "modify_enterpriseAgent",
            "content": {
                "ftype": "商户认证",
                "data": [{
                    "fbrand": this.data.fbrand,
                    "fagentname": this.data.fagentname,
                    "fcontact": this.data.fcontact,
                    "fphonenumber": this.data.fphonenumber,
                    "faddress": this.data.faddress,
                    "fdutyparagraph": this.data.fdutyparagraph,
                    "fintroduction": this.data.fintroduction,
                    "saleprodclass": this.data.saleprodclass
                }]
            }
        }).then(res => {
            console.log(res)
        })

    },
    /* 获取焦点 */
    inputFocus(e) {
        const {
            name
        } = e.currentTarget.dataset;
        let errTips = this.data.errTips;
        errTips[name] = false;
        this.setData({
            errTips
        })
    },
    /* 失去焦点 */
    inputBlur(e) {
        const {
            name
        } = e.currentTarget.dataset;
        const {
            value
        } = e.detail;
        if (name == 'fphonenumber') {
            if (!_Verify.phoneNumber(this.data.fphonenumber, 1)) return this.setData({
                "errTips.fphonenumber": true
            })
        };
        if (value.trim() == "") {
            let errTips = this.data.errTips;
            errTips[name] = true;
            this.setData({
                errTips
            })
        }
    },
    /* 个人注册页面保存个人信息 */
    savePersonalInformation() {
        const {
            fphonenumber
        } = this.data
        let tail = fphonenumber.toString().substring(fphonenumber.toString().length - 4);
        let data = {
            fname: tail + "用户",
            frole: "管理员"
        }
        if (this.data.fname != '') {
            data.fname = this.data.fname
        };
        if (this.data.frole != '') {
            data.frole = this.data.frole
        }
        _Http.basic({
            "accesstoken": wx.getStorageSync('userData').token,
            "classname": "customer.usercenter.usermsg.usermsg",
            "method": "update_usermsg",
            "content": data
        }).then(res => {
            console.log(res)
        })
    },
    /* 多用户选择下标传递 */
    userChange(index) {
        this.setData({
            userIndex: index.detail.userIndex
        })
    },
    /* 获取验证码 */
    getVerifyCode() {
        //验证手机号码
        if (!_Verify.phoneNumber(this.data.fphonenumber, 1)) return this.setData({
            "errTips.fphonenumber": true
        })
        _Http.getPassword({
            "phonenumber": this.data.fphonenumber
        }).then(res => {
            console.log(res)
            this.setData({
                password: res.msg.substring(res.msg.length - 6)
            })
            wx.showToast({
                title: res.msg.substring(res.msg.length - 6),
                icon: "none",
                duration: 8000
            })
        })
    },
    /* 跳转首页 */
    jumpOverToIndex() {
        //如果是个人注册页面，保存数据后进入首页
        if (this.data.pageType == 'signin') {
            this.savePersonalInformation()
        }
        /* 跳转到首页 */
        wx.reLaunch({
            url: '/pages/tabbar-pages/home/index'
        })
    },
    /* 修改按钮内容 */
    changeButText() {
        const {
            pageType
        } = this.data
        if (pageType == 'login') {
            this.setData({
                butText: "登 录"
            })
        } else if (pageType == 'signin') {
            this.setData({
                butText: "下一步"
            })
        } else if (pageType == 'firm') {
            this.setData({
                butText: "立即创建"
            })
        } else if (pageType == 'changeUser') {
            this.setData({
                butText: "选择进入"
            })
        }
    },
    /* 弹出层控制 */
    showPop() {
        this.setData({
            popups: !this.data.popups
        })
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})