let _Http = getApp().globalData.http,
    count = null;

Page({
    data: {
        showAll: false,
        repetitionShow: false,
        repetitionList: [],
        isSubmit: false,
        form: [{
            label: "客户(企业)",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "客户(企业)名称",
            valueName: "enterprisename",
            checking: "base",
            slot: "info",
            required: true
        }, {
            label: "企业简称",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "企业简称",
            valueName: "abbreviation",
            checking: "base",
            required: false
        }, {
            label: "erp编号",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "erp编号",
            valueName: "erpagentnum",
            checking: "base",
            required: false
        }, {
            label: "客户类型",
            error: false,
            errMsg: "",
            type: "option",
            optionNmae: "customertypemx",
            optionType: "radio", //复选   radio 单选
            value: "",
            placeholder: "客户类型",
            valueName: "type",
            checking: "base",
            required: true
        }, {
            label: "企业等级",
            error: false,
            errMsg: "",
            type: "option",
            optionNmae: "agentgrade",
            optionType: "radio", //复选   radio 单选
            value: "",
            placeholder: "企业等级",
            valueName: "grade",
            checking: "base",
            required: false
        }, {
            label: "客户分类",
            error: false,
            errMsg: "",
            type: "option",
            optionNmae: "customergrade",
            optionType: "radio", //复选   radio 单选
            value: "",
            placeholder: "客户分类",
            valueName: "customergrade",
            checking: "base",
            required: false
        }, {
            label: "客户行业",
            error: false,
            errMsg: "",
            type: "option", //自定义选择  配合预定接口
            optionNmae: "industry", //选择类型
            optionType: "checkbox", //复选   radio 单选
            value: "",
            placeholder: "客户所属行业",
            valueName: "industry",
            checking: "base",
            required: false
        }, {
            label: "税号",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "企业税号",
            valueName: "taxno",
            checking: "base",
            required: false
        }, {
            label: "法人",
            error: false,
            errMsg: "",
            type: "text",
            value: "",
            placeholder: "企业法人",
            valueName: "contact",
            checking: "base",
            required: false
        }, {
            label: "电话",
            error: false,
            errMsg: "",
            type: "number",
            value: "",
            placeholder: "联系电话",
            valueName: "telephone",
            checking: "base",
            required: false
        }, {
            label: "省市县",
            error: false,
            errMsg: "",
            type: "region",
            value: [],
            placeholder: "所在地区",
            valueName: "region",
            required: false
        }, {
            label: "详细地址",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "详细地址",
            valueName: "address",
            checking: "base",
            required: false
        }, {
            label: "上级企业",
            error: false,
            errMsg: "",
            type: "route",
            url: "/packageA/select/setclient/select",
            value: "",
            params: {
                id: 20221012164402,
                content: {
                    nocache: true,
                    "type": 1,
                    "isExport": 0,
                    isend: 0,
                    "where": {
                        "condition": "",
                        "status": "", //状态
                        "startdate": "",
                        "enddate": ""
                    },
                    "sort": [{
                        sortname: "默认",
                        sorted: 1,
                        sortid: 67,
                        reversed: 0
                    }]
                },
            },
            query: "&radio=true&idname=sa_customersid",
            placeholder: "选择上级企业",
            valueName: "parentid",
            checking: "base",
            required: false
        }, {
            label: "客户来源",
            error: false,
            errMsg: "",
            type: "textarea",
            value: "",
            placeholder: "客户来源",
            valueName: "source",
            checking: "base",
            required: false
        }, {
            label: "归属经销商",
            error: false,
            errMsg: "",
            type: "route",
            url: "/packageA/select/setclient/select",
            value: "",
            params: {
                "id": 20230214162602,
                "content": {
                    "hrid": wx.getStorageSync('userMsg').hrid,
                    "where": {
                        "condition": ""
                    }
                },
            },
            query: "&radio=true&idname=sa_agentsid",
            placeholder: "归属经销商",
            valueName: "sa_agentsid",
            checking: "base",
            required: false
        }],
        content: {
            "sa_customersid": 0, //新增是传0
            "sys_enterpriseid": 0, //合作企业档案ID，新增是传0，更新
            "sa_customerpoolid": 0, //客户池（公海池）ID,默认或没有的时候传0
            ispublic: 0, //是否为公海客户
        },
        disabled: true,
        countDown: "", //查重倒计时
    },
    queryClient() {
        let data = this.selectComponent("#Form").query();
        if (data.enterprisename == '') {
            wx.showToast({
                title: `您还未填写企业名称`,
                icon: "none"
            });
        } else {
            this.setData({
                form: this.selectComponent("#Form").data.form,
            })
            this.selectComponent("#Info").queryClient(data.enterprisename)
        }
    },
    /* 工商查询 */
    introduce({
        detail
    }) {
        let item = detail;
        let data = {
            enterprisename: item.companyName, //企业名称
            taxno: item.taxNum, //税号
            contact: item.legalPerson, //法人
            region: [item.regProvince, item.regCity, item.regArea], //地区
            address: item.address, //地区
        }
        this.setData({
            form: this.data.form.map(v => {
                if (data[v.valueName]) v.value = data[v.valueName];
                return v
            })
        })
    },
    setOption(item) {
        let i = this.data.form.findIndex(v => v.valueName == item.valueName);
        this.setData({
            [`form[${i}]`]: item
        })
    },
    onLoad(options) {
        if (options.data) {
            let data = JSON.parse(options.data);
            this.setData({
                disabled: false,
                content: {
                    sa_customersid: data.sa_customersid,
                    sys_enterpriseid: data.sys_enterpriseid,
                    sa_customerpoolid: data.sa_customerpoolid,
                },
                form: this.data.form.map(v => {
                    if (v.valueName != 'region') {
                        v.value = data[v.valueName] || "";
                        if (v.valueName == "grade") v.value = data[v.valueName] + "";
                    } else {
                        v.value = data.province ? [data.province, data.city, data.county] : []
                    };
                    if (data.isagent && ['enterprisename', 'region', 'sa_agentsid', 'grade', 'address', 'contact', 'telephone'].includes(v.valueName)) v.disabled = true;
                    return v
                })
            })
        }
    },
    repClose() {
        if (this.data.isSubmit) {
            let that = this;
            wx.showModal({
                title: '提示',
                content: `是否继续创建客户`,
                complete: (res) => {
                    if (res.confirm) that.handleSubmit(true);
                }
            })
        }
        this.setData({
            repetitionShow: false,
            isSubmit: false
        })
    },
    /* 表单必填项是否完成 */
    onConfirm({
        detail
    }) {
        this.setData({
            disabled: detail
        })
    },
    // 是否显示全部
    onChange({
        detail
    }) {
        this.setData({
            showAll: detail
        })
    },
    /* 查询是否重复 */
    async queryRepetition(e) {
        let {
            enterprisename,
            taxno,
            address
        } = this.selectComponent("#Form").query();
        if (enterprisename == '') return wx.showToast({
            title: `您还未填写企业名称`,
            icon: "none"
        });
        let res = await this.handleQueryRepetition({
            sa_customersid: this.data.content.sa_customersid,
            enterprisename,
            taxno,
            address
        });
        console.log("查询重复", res)
        if (res.msg != '成功') return wx.showToast({
            title: res.msg,
            icon: "none"
        });
        this.setData({
            countDown: 6
        });
        count = setInterval(() => {
            let countDown = this.data.countDown;
            if (countDown == 0) {
                clearInterval(count);
                this.setData({
                    countDown: ""
                })
            } else {
                countDown--;
                this.setData({
                    countDown
                })
            }
        }, 1000)
        if (res.total == 0) {
            wx.showToast({
                title: '未查询到疑似重复的客户信息',
                icon: "none"
            })
        } else {
            wx.showToast({
                title: `查询到${res.total}条疑似重复客户信息`,
                icon: "none"
            })
            this.setData({
                repetitionShow: true,
                repetitionList: res.data
            })
        }
    },
    /* 处理查重 */
    handleQueryRepetition(content) {
        return _Http.basic({
            "id": 20221208172002,
            content
        })
    },
    async submit() {
        let data = this.selectComponent("#Form").submit();
        let query = await this.handleQueryRepetition({
            sa_customersid: this.data.content.sa_customersid,
            enterprisename: data.enterprisename,
            taxno: data.taxno,
            address: data.address
        });
        if (query.total != 0) {
            wx.showToast({
                title: `查询到${query.total}条疑似重复客户信息`,
                icon: "none"
            })
            this.setData({
                repetitionShow: true,
                repetitionList: query.data,
                isSubmit: true
            })
        } else {
            this.handleSubmit();
        }
    },
    handleSubmit(tag = false) {
        let data = this.selectComponent("#Form").submit();
        data.province = data.region[0] || "";
        data.city = data.region[1] || "";
        data.county = data.region[2] || "";
        data.parentid = data.parentid[1] ? data.parentid[1][0] : 0;
        data.sa_agentsid = data.sa_agentsid[1] ? data.sa_agentsid[1][0] : 0;
        delete(data.region);
        _Http.basic({
            "id": 20221012163902,
            "content": {
                ...this.data.content,
                ...data,
            }
        }).then(res => {
            console.log("新建客户", res)
            if (res.msg != '成功') return wx.showToast({
                title: res.data,
                icon: "none"
            })
            wx.showToast({
                title: '保存成功',
                icon: "none"
            })
            //绑定疑似重复标签
            if (tag) _Http.basic({
                "id": 20220929090901,
                "content": {
                    "ownertable": "sa_customers",
                    "ownerid": res.data.sa_customersid,
                    "datatag": ["疑似重复"]
                }
            })
            setTimeout(() => {
                getCurrentPages().forEach(v => {
                    switch (v.__route__) {
                        case 'packageA/setclient/index':
                            v.getList(true);
                            break;
                        case 'packageA/setclient/detail':
                            v.getDetail();
                            wx.navigateBack()
                            break;
                    }
                })
                let pages = getCurrentPages();
                if (pages[pages.length - 2].__route__ == 'packageA/setclient/index') wx.redirectTo({
                    url: '/packageA/setclient/detail?id=' + res.data.sa_customersid,
                })
            }, tag ? 500 : 300)
        })
    },
})