/*
 * 手太欠
 * 企获客商城
 */

const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        id          : '',        //列表id
        stateType   : '',        //类型  Add为添加地址   compile为编辑地址
        saveArr     : [],        //省级列表
        saveIndex   : 0,         //省级index
        saveId      : 0,        //省级id
        cityArr     : [],        //城市列表
        cityIndex   : 0,         //城市index
        cityId      : 0,         //城市id
        regiArr     : [],        //区域列表
        regiIndex   : 0,         //区域index
        regiId      : 0,         //区域id
        defaultVal  : '',     //是否为默认地址
    }, 

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad (options) {
        this.setData({
            stateType   : options.type,
            id          : options.id
        })

        if (options.type == 'Add') {
            wx.setNavigationBarTitle({
                title: '添加收货地址'
            })
            // 获取省级信息列表
            this.getProvince()
        } else if (options.type == 'Compile') {
            wx.setNavigationBarTitle({
                title: '编辑收货地址'
            })
            // 获取地址编辑信息
            this.getUserAddress(options.id)
        }
    },

    /**
     * 地址编辑信息
     */
    getUserAddress(id){
        wx.$api.address.info(id).then(res=>{
            this.setData({
                name        : res.name,
                mobile      : res.mobile,
                address     : res.address,
                defaultVal  : res.default
            })

            let cityArr = [
                res.province,
                res.city,
                res.district
            ]

            this.getProvince(cityArr)
        })
    },

    /**
     * 省级信息列表
     */
    getProvince(city) {
        wx.$api.address.create().then(res=>{
            let saveArr     =  res,
                saveIndex   =  this.data.saveIndex
            this.setData({
                saveArr  : saveArr,
                saveId   : saveArr[saveIndex].id,
            })

            if(city){
                // 获取市级列表
                this.citylist(city[0].id, city)
                this.setData({
                    saveIndex: res.findIndex(val => val.id == city[0].id),
                    saveId   : city[0].id
                })

            }else{
                // 获取市级列表
                this.citylist(saveArr[saveIndex].id)
            }
        })
    },

    /**
     * 省份选择-筛选
     */
    areasChange(e) {
        let save     = this.data.saveArr,
            index    = e.detail.value,
            atsave   = save[index].id
        if (index != this.data.saveIndex) {
            this.setData({
                saveIndex   : index,
                saveId      : atsave
            })

            // 获取市级列表
            this.citylist(atsave)
        }
    },

    /**
     * 市级列表
     */
    citylist(id, city) {
        wx.$api.address.create({parent_id: id}).then(res=>{
            let cityArr = res
            this.setData({
                cityArr     : cityArr,
                cityId      : cityArr[0].id,
                cityIndex   : 0
            })

            if(city){
                // 获取区域列表
                this.regilist(city[1].id, city)
                this.setData({
                    cityIndex: res.findIndex(val => val.id == city[1].id),
                    cityId   : city[1].id
                })
            }else{
                // 获取区域列表
                this.regilist(cityArr[0].id)
            }
        })
    },

    /**
    * 城市选择-筛选
    */
    city(e) {
        let city     = this.data.cityArr,
            index    = e.detail.value,
            atcity   = city[index].id
        if (index != this.data.saveIndex) {
            this.setData({
                cityIndex: index,
                cityId   : atcity
            })

            // 获取市级列表
            this.regilist(atcity)
        }
    },
    
    /**
     * 区域列表
     */
    regilist(id, city) {
        wx.$api.address.create({parent_id: id}).then(res=>{
            this.setData({
                regiArr     : res,
                regiId      : res[0].id,
                regiIndex   : 0
            })
            if(city){
                this.setData({
                    regiIndex: res.findIndex(val => val.id == city[2].id),
                    regiId   : city[2].id
                })
            }
        })
    },

    /**
    * 区域选择-筛选
    */
    regi(e) {
        let newIndex = e.detail.value
        this.setData({
            regiIndex   : newIndex,
            regiId      : this.data.regiArr[newIndex].id
        })
    },

    /**
     * 保存信息
     */
    siteform(e) {
        if(this.data.stateType == 'Compile') {
            // 编辑地址
            wx.$api.address.revise(this.data.id,{
                name        : e.detail.value.name, 
                mobile      : e.detail.value.mobile, 
                province_id : this.data.saveId, 
                city_id     : this.data.cityId, 
                district_id : this.data.regiId, 
                address     : e.detail.value.address,
                is_default  : this.data.defaultVal
            }).then(res=>{
                wx.navigateBack()
            })
        }else if(this.data.stateType == 'Add') {
            // 创建地址
            wx.$api.address.add({
                name        : e.detail.value.name, 
                mobile      : e.detail.value.mobile, 
                province_id : this.data.saveId, 
                city_id     : this.data.cityId, 
                district_id : this.data.regiId, 
                address     : e.detail.value.address, 
                is_default  : this.data.defaultVal
            }).then(res=>{
                wx.navigateBack()
            })
        }
    },

    /**
     * 设为默认地址
     */
    addressDefault(e) {
        let val = e.detail.value
        this.setData({
            defaultVal: val
        })
    }
})