<template>
    <div class="orderList">
        <el-card class="box-card">
            <el-steps :active="actives" align-center>
                <el-step title="选择类型" description=""></el-step>
                <el-step title="申请代理" description=""></el-step>
                <el-step title="等待审核" description=""></el-step>
                <el-step v-if="isfff" title="申请成功" description=""></el-step>
                <el-step v-if="!isfff" title="审核未通过" description=""></el-step>
            </el-steps>
            <div v-show="actives==1" style="padding: 150px;">
                <el-row>
                    <el-col :span="8" v-if="isopen==1">
                        <div :class="[isselst==1?'selet_bdiv':'selet_div']" @click="isselst=1" >
                            <h3>区域代理</h3>
                            <span style="font-size:12px;">
                                依照传统行业渠道代理的区域进行划分，实现线上区域渠道代理的管理，常见的为省→市→区（县）代理构架。成为代理商后，根据系统产生的区域订单，代理可获得该订单相应的分红。
                            </span>
                            <div class="triangle-bottomright" v-show="isselst==1"> <i class="el-icon-check"
                                    style="position:absolute;bottom:-30px;right:0px;color:#fff;"></i> </div>
                        </div>
                    </el-col>
                    <el-col :span="8" v-if="isopen1==1">
                        <div :class="[isselst==2?'selet_bdiv':'selet_div']" @click="isselst=2">
                            <h3>分销代理</h3>
                            <span style="font-size:12px;">
                                获得推广资格后，即可成为分销商代理，所推广的客户完成订单后，代理可获得该订单相应的分红。
                            </span>
                            <div class="triangle-bottomright" v-show="isselst==2"> <i class="el-icon-check"
                                    style="position:absolute;bottom:-30px;right:0px;color:#fff;"></i> </div>
                        </div>
                    </el-col>
                    <el-col :span="8" v-if="isopen2==1">
                        <div :class="[isselst==3?'selet_bdiv':'selet_div']" @click="isselst=3">
                            <h3>招商代理</h3>
                            <span style="font-size:12px;">
                                平台具备供应商入驻的功能，我们采用了招商员的机制。在获得招商代理资格后，推广入驻的供应商产生订单后，代理可获得该订单相应的分红。
                            </span>
                            <div class="triangle-bottomright" v-show="isselst==3"> <i class="el-icon-check"
                                    style="position:absolute;bottom:-30px;right:0px;color:#fff;"></i> </div>
                        </div>
                    </el-col>
                  </el-row>
               
               
                
                <el-button type="primary" @click="upclick()" style="display:block; margin:20px auto;">下一步</el-button>
            </div>
            <div v-show="actives==2">
                <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
                    <el-form-item label="真实姓名：" prop="realname">
                        <el-input size="mini" v-model="ruleForm.realname" style="width:200px;"></el-input>
                    </el-form-item>
                    <el-form-item label="注册手机号：" prop="phone">
                        <el-input size="mini" v-model="ruleForm.phone" style="width:200px;"></el-input>
                    </el-form-item>
                    <el-form-item label="代理等级：" prop="area_type" v-if="isselst==1">
                        <el-select size="mini" v-model="ruleForm.area_type" @change="areaClick" placeholder="请选择活动区域"
                            style="width:200px;">
                            <el-option label="省级代理" :value="1"></el-option>
                            <el-option label="市级代理" :value="2"></el-option>
                            <el-option label="区级代理" :value="3"></el-option>
                            <el-option label="街道代理" :value="4"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="代理区域：" prop="area_Id"  v-if="isselst==1">
                        <el-cascader size="mini" ref="cascader" :key="areakey" v-model="addressId"
                            :props="cascaderProps" placeholder="请选择" style="width:300px;">
                        </el-cascader>
                    </el-form-item>
                    <el-form-item label="代理等级：" prop="level" v-if="isselst==2">
                        <el-select size="mini" v-model="ruleForm.level" @change="areaClick" placeholder="请选择活动区域"
                            style="width:200px;">
                            <el-option v-for="(item,index) in levellist" :key="index" :label="item.name" :value="item.id"></el-option>
                           
                        </el-select>
                    </el-form-item>
                    <el-form-item label="申请等级：" prop="level" v-if="isselst==3">
                        <el-select size="mini" v-model="ruleForm.level" @change="areaClick" placeholder="请选择活动区域"
                            style="width:200px;">
                            <el-option v-for="(item,index) in levellist" :key="index" :label="item.name" :value="item.id"></el-option>
                           
                        </el-select>
                    </el-form-item>
                    <el-form-item>
                        <el-button @click="actives=1">上一步</el-button>
                        <el-button type="primary" @click="creatsForm('ruleForm')">下一步</el-button>

                    </el-form-item>
                </el-form>
            </div>
            <div v-show="actives==3" style="padding-top:150px;text-align:center;">
                <p>你的申请已提交！</p>
                <p>审核约需要1-3个工作日，请等待审核。</p>
                <p>期间服务人员可能会联系您核实身份，请注意电话接听。</p>
            </div>
            <div v-show="actives==4&&!isfff" style="padding-top:150px;text-align:center;">
                <p>很遗憾，您本次提交的申请没有通过！</p>
                <p>可点击下放按钮重新提交审核申请！</p>
                <el-button type="primary" @click="actives=1">重新申请</el-button>
            </div>
            <el-dialog title="申请协议" :visible.sync="dialogVisible" width="40%" :show-close="false"
                :before-close="handleClose" center>
                <div style="height:400px;overflow-y:scroll;" v-html="distext">123132213</div>
                <span slot="footer" class="dialog-footer">

                    <el-button type="primary" @click="dialogVisible = false">我已了解</el-button>
                </span>
            </el-dialog>
        </el-card>
    </div>
</template>
<script>
    import { upaddress,checkisopen, addretail,addretailfx,addinvite, checkagent, getagreement,getaglevel } from '@/api/plug/plugindex'
    import { parseTime } from '@/utils'
    export default {
        name: "channelindex",
        data() {
            let authBusValidator = (rule, value, callback) => {
                if (this.addressId.length > 0) {
                    callback();
                } else if (this.addressId.length === 0) {
                    callback(new Error("请选择代理区域"));
                }
            };
            return {
                isopen:1,
                isopen1:1,
                isopen2:1,
                levellist:[],
                distext: '',
                dialogVisible: false,
                isfff: true,
                areakey: 1,
                isselst: 1,
                actives: 1,
                ruleForm: {
                    area_Id: '',
                    area_type: 1,
                    phone: '',
                    realname: '',
                    level:''
                },
                cascaderProps: {
                    checkStrictly: false,
                    expandTrigger: "click",
                    emitPath: true,
                    lazy: true,
                    lazyLoad: this.lazyLoad,
                    value: "area_id",
                    label: "name",
                    leaf: "leaf",
                },
                addressId: [],
                rules: {
                    realname: [
                        { required: true, message: '请输入真实姓名', trigger: 'blur' }
                    ],
                    phone: [
                        { required: true, message: '请输入手机号', trigger: 'blur' }
                    ],
                    level: [
                        { required: true, message: '请选择等级', trigger: 'change' }
                    ],
                    area_type: [
                        { required: true, message: '请选择代理等级', trigger: 'change' }
                    ],
                    area_Id: [
                        { required: true, validator: authBusValidator, message: '请选择代理区域' }
                    ],

                }
            };
        },
        components: {

        }, 
        created() {
            this.checkagents()
            this.getisopen()
        },
        watch: {

        },
        methods: {
            getisopen(){
                checkisopen().then(res=>{
                    if(res.code==1){
                        if(res.data.area==1){
                            this.isopen=1
                        }else{
                            this.isopen=0
                        }
                        if(res.data.retail==1){
                            this.isopen1=1
                        }else{
                            this.isopen1=0
                        }
                        if(res.data.invite==1){
                            this.isopen2=1
                        }else{
                            this.isopen2=0
                        }
                    }
                })
            },
            getaglevellist(val){
                let data={
                    agent_type:val
                }
                getaglevel(data).then(res=>{
                    if(res.code==1){
                        this.levellist = res.data
                    }
                })
            },
            handleClose() {

            },
            upclick(){
                let data = {
                    agent_type: this.isselst
                }
                getagreement(data).then(res => {
                    if (res.code == 1) {
                        this.distext = res.data.agreement
                        if (res.data.is_agreement == 1) {
                            this.dialogVisible = true
                        }
                        this.actives=2
                        this.getaglevellist(this.isselst)
                    }
                })
            },
            checkagents() {
               
                checkagent().then(res => {
                    if (res.code == 1) {
                        if (res.data.is_agent == 1) {
                            if (res.data.status === 0) {
                                this.actives = 3
                            } else if (res.data.status === 1) {
                                this.actives = 5
                                this.isfff = true
                                if (localStorage.getItem('agentURL')) {
                                    let url = localStorage.getItem('agentURL')
                                    window.open(url)
                                } else {
                                    var ht = document.location.protocol 
                                    window.open(ht+'//'+'agent.jxhh.com')
                                }
                                this.$store.dispatch('tagsView/delView', this.$route)
                                this.$router.push({ path: '/' })
                            } else if (res.data.status === 2) {
                                this.actives = 4
                                this.isfff = false
                            }
                        } else {
                            this.actives = 1
                        }

                    }
                })
            },
            creatsForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        if(this.isselst==1){
                            let data = {
                            agent_type:1,
                            real_name: this.ruleForm.realname,
                            contact_mobile: this.ruleForm.phone,
                            area_type: this.ruleForm.area_type,
                            area_Id: this.addressId[this.addressId.length - 1]
                        }
                        addretail(data).then(res => {
                            if (res.code == 1) {
                                this.actives = 3
                            } else {
                                // this.$message({
                                //     message: res.message,
                                //     type: 'warning'
                                // });
                            }

                        })
                        }
                        if(this.isselst==2){
                            let data = {
                            agent_type:2,
                            real_name: this.ruleForm.realname,
                            contact_mobile: this.ruleForm.phone,
                            level:this.ruleForm.level
                        }
                        addretailfx(data).then(res => {
                            if (res.code == 1) {
                                this.actives = 3
                            } else {
                                // this.$message({
                                //     message: res.message,
                                //     type: 'warning'
                                // });
                            }

                        })
                        }
                        if(this.isselst==3){
                            let data = {
                            agent_type:3,
                            real_name: this.ruleForm.realname,
                            contact_mobile: this.ruleForm.phone,
                            level:this.ruleForm.level
                        }
                        addinvite(data).then(res => {
                            if (res.code == 1) {
                                this.actives = 3
                            } else {
                                // this.$message({
                                //     message: res.message,
                                //     type: 'warning'
                                // });
                            }

                        })
                        }

                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
            areaClick() {
                this.areakey++
            },
            lazyLoad(node, resolve) {
                this.getcustomerGetArea(node, resolve);
            },
            // 获取省市区地址
            getcustomerGetArea(node, resolve) {
                const level = node.level;
                var params;
                if (level === 0) {
                    params = {
                        pid: 0,
                    };
                } else {
                    params = {
                        pid: node.value,
                    };
                }
                upaddress(params).then((res) => {
                    if (res.code == 1) {
                        var result;
                        if (level === 0) {
                            result = res.data;
                            result.forEach((item) => {
                                item.value = item.id;
                                item.label = item.name;
                                item.leaf = level;
                                item.children = [];
                                if (this.ruleForm.area_type == 1) {
                                    item.leaf = level >= 0;
                                }
                            });
                        } else {
                            result = res.data;
                            result.forEach((item) => {
                                item.value = item.id;
                                item.label = item.name;
                                //这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
                                if (this.ruleForm.area_type == 2) {
                                    item.leaf = level >= 1;
                                }
                                if (this.ruleForm.area_type == 3) {
                                    item.leaf = level >= 2;
                                }
                                if (this.ruleForm.area_type == 4) {
                                    item.leaf = level >= 3;
                                }
                            });
                        }
                        resolve(result);
                    }
                });
            },
            /** 图片转换为base64位 */
            getBase64(file) {
                return new Promise(function (resolve, reject) {
                    let reader = new FileReader();
                    let imgResult = "";
                    reader.readAsDataURL(file);
                    reader.onload = function () {
                        imgResult = reader.result;
                    };
                    reader.onerror = function (error) {
                        reject(error);
                    };
                    reader.onloadend = function () {
                        resolve(imgResult);
                    };
                });
            },
            formatime(cellValue) {
                console.log(cellValue)
                return parseTime(cellValue, '{y}-{m}-{d}')
            },
            formatters(row, column, cellValue, index) {
                console.log(cellValue)
                return parseTime(cellValue, '{y}-{m}-{d}')
            }
        }
    };
</script>


<style scoped>
    .orderList {
        height: 100%;
    }

    .box-card {
        margin: 20px;
        height: calc(100% - 40px);
    }

    .form_item {
        margin-right: 20px;
    }

    .card-tip {
        margin: 0 10px 10px 0;
    }

    .box-card /deep/ .el-card__body {
        height: calc(100% - 45px);
        overflow-y: scroll;
    }

    .card-tip dl {
        margin: 21px;
    }

    .card-tip dl dt {
        width: 64px;
        height: 64px;
        background: red;
        float: left;
    }

    .card-tip dl dd {
        width: calc(100% - 74px);
        float: left;
        margin-left: 10px;
    }

    .minibtn {
        padding: 3px !important;
    }

    .text_tip {
        width: 100%;
        height: 38px;
    }

    .text_tip_m {
        height: 30px;
        line-height: 30px;
        font-size: 16px;
        color: #F24141;
    }

    .text_tip p {
        width: calc(100% - 90px);
        margin: 10px 0 0;
        word-break: break-all;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        /* 这里是超出几行省略 */
        overflow: hidden;
        font-size: 12px;
    }

    .selet_div,
    .selet_bdiv:hover {
        cursor: pointer;
    }

    .selet_div {
        width: 310px;
        height: 180px;
        padding: 10px;
        border: 1px solid rgba(215, 215, 215, 1);
        border-radius: 5px;
        position: relative;
    }

    .selet_bdiv {
        color: #409eff;
        border: 1px solid #409eff;
        width: 310px;
        height: 180px;
        padding: 10px;
        border-radius: 5px;
        position: relative;
    }

    .triangle-bottomright {
        width: 0;
        height: 0;
        border-bottom: 30px solid #409eff;
        border-left: 30px solid transparent;
        position: absolute;
        right: 0;
        bottom: 0;
    }

    .demo-ruleForm {
        width: 600px;
        margin: 100px auto 0;
    }
</style>