import Vue from 'vue'
import {Toast} from 'vant';
import Util from "../../../util";
import {services as Services} from '../../../api/index'

var qs = require('qs');

Vue.use(Toast);

const state = {
    loginUrl:'/v3/login?referer='+encodeURIComponent(window.location.href),//登录地址
    userInfo:"",
    loading:false,
    getUserCurrentPoint:0,//积分
    isSignInToday:false,//是否签到
    isSignInTodayStateGo:false,//签到后是否执行获取积分动作
    checkInfoState:false,//资料是否完善
    navlist:[],//奖品分类列表名称
    listdata:[]//所有奖品数据
}

const mutations = {
    getPointPrize(state, payload){
        var list_=payload.data||[];

        if(list_.length>0){
            //重新排列数据
            var data_={},prise_type=[],prise_type_text=[],prise_type_list=[],prize_sort_arr=[];
            for(var p=0;p<list_.length;p++){
                prise_type.push(list_[p]['prize_type'])
                prize_sort_arr.push(list_[p]['prize_sort'])
                prise_type_text.push((list_[p]['prize_type_text']).replace(/\s/g,""))
            }
            prise_type=Util.distinct(prise_type);
            prise_type_text=Util.distinct(prise_type_text);
            prize_sort_arr=Util.distinct(prize_sort_arr);
            for(var a=0;a<prise_type.length;a++){
                prise_type_list.push({
                    prise_type:prise_type[a],
                    prise_type_text:prise_type_text[a],
                    prize_sort:prize_sort_arr[a]
                })
            }
            prise_type_list=prise_type_list.sort(Util.compare('prise_type',1))
            state.navlist=prise_type_list;
            state.listdata=list_
        }
    }

}

const actions = {
    getPointPrize({commit},payload){
        state.loading=true;
        var params = {
            limit: 1000
        }
        Services.getPointPrize(qs.stringify(params)).then((res) => {
            state.loading=false;
            let data = res.data;
            if (data.errcode == 0) {
                commit({
                    type: 'getPointPrize',
                    data: data.data.data
                });
            }
        }).catch(function (err) {
            state.loading = false;
        });
    },
    loginCheckp({commit}, payload) {
        Services.loginCheck().then((res) => {
            let data = res.data;
            if (data.err_code == 0||data.err_code==11030) {
                state.userInfo=data.data;

            }
        })
    },
    getUserCurrentPoint({commit}, payload) {
        var params = {
            user_id: Util.getCookie("Yo4teW_uid")
        }
        Services.getUserCurrentPoint(qs.stringify(params)).then((res) => {
            let data = res.data;
            if (data.errcode == 0) {
                state.getUserCurrentPoint=data.data;
            }
        })
    },
    isSignInToday({commit}, payload) {
        Services.isSignInToday().then((res) => {
            let data = res.data;
            if (data.err_code == 0) {
                state.isSignInToday=data.data;
            }
        })
    },
    signIn({commit}, payload) {
        state.loading=true;
        Services.signIn().then((res) => {
            state.loading=false;
            let data = res.data;
            if (data.err_code == 0) {
                state.isSignInToday=true;
                state.isSignInTodayStateGo=true;
                Toast({
                    message: '签到完成,恭喜您获得100个积分!',
                    duration: 3000
                });

            }
        }).catch(function (err) {
            state.loading = false;
        });
    },
    checkMktScore({commit}, payload) {
        state.loading=true;
        Services.checkMktScore().then((res) => {
            state.loading=false;
            let data = res.data;
            if (data.err_code == 0) {

               if(data.data==1){
                   state.checkInfoState=true;
               }else{
                   state.checkInfoState=false;
               }


            }
        }).catch(function (err) {
            state.loading = false;
        });
    },
    exchangePrize({commit}, payload) {
        state.loading=true;
        var params = {
            user_id: Util.getCookie("Yo4teW_uid"),
            point_prize_id:payload.point_prize_id
        }
        Services.exchangePrize(qs.stringify(params)).then((res) => {
            state.loading=false;
            let data = res.data;
            if (data.errcode == 0) {
                var point_exchange_id_=data.data.point_exchange_id;
                window.location.href='/h5/view/#/pointchange?point_exchange_id='+point_exchange_id_+'&prize_type='+data.data.prize_type
            }else{
                Toast({
                    message: data.errmsg,
                    duration: 2500
                });
            }
        }).catch(function (err) {
            state.loading = false;
        });
    },
}

const getters = {}

export default {
    state,
    mutations,
    actions,
    getters
}