import {
    message
} from 'antd';
import {
    provinceList,
    patentTypeList,
    patentStateList,
    patentFieldList,
    techFieldList,
    technicalSourceList,
    catagoryList,
    intellectualGetList,
    conversionFormList,
    annualReportStateList,
    cognizanceStateList,
    technologyStateList,
    copyrightStateList
} from './dataDic.js';

module.exports = {
    addressInit: function (_cmbProvince, _cmbCity, _cmbArea, defaultProvince, defaultCity, defaultArea) {
        var cmbProvince = document.getElementById(_cmbProvince);
        var cmbCity = document.getElementById(_cmbCity);
        var cmbArea = document.getElementById(_cmbArea);

        function cmbSelect(cmb, str) {
            for (var i = 0; i < cmb.options.length; i++) {
                if (cmb.options[i].value == str) {
                    cmb.selectedIndex = i;
                    return;
                }
            }
        }

        function cmbAddOption(cmb, str, obj) {
            var option = document.createElement("OPTION");
            cmb.options.add(option);
            option.innerText = str;
            option.value = str;
            option.obj = obj;
        }

        function changeCity() {
            cmbArea.options.length = 0;
            if (cmbCity.selectedIndex == -1) return;
            var item = cmbCity.options[cmbCity.selectedIndex].obj;
            for (var i = 0; i < item.areaList.length; i++) {
                cmbAddOption(cmbArea, item.areaList[i], null);
            }
            cmbSelect(cmbArea, defaultArea);
        }

        function changeProvince() {
            cmbCity.options.length = 0;
            cmbCity.onchange = null;
            if (cmbProvince.selectedIndex == -1) return;
            var item = cmbProvince.options[cmbProvince.selectedIndex].obj;
            for (var i = 0; i < item.cityList.length; i++) {
                cmbAddOption(cmbCity, item.cityList[i].name, item.cityList[i]);
            }
            cmbSelect(cmbCity, defaultCity);
            changeCity();
            cmbCity.onchange = changeCity;
        }

        for (var i = 0; i < provinceList.length; i++) {
            cmbAddOption(cmbProvince, provinceList[i].name, provinceList[i]);
        }
        cmbSelect(cmbProvince, defaultProvince);
        changeProvince();
        cmbProvince.onchange = changeProvince;
    },
    splitUrl: function (string, i, url) {
        let theList = [];
        let theArr = [];
        if (string) {
            theArr = string.split(i);
            theArr.map(function (item, i) {
                theList.push({
                    uid: -i,
                    url: url + item,
                    response: {
                        data: item
                    }
                });
            });
        }
        return theList;
    },
    getBase64: function (img, callback) {
        const reader = new FileReader();
        reader.addEventListener('load', () => callback(reader.result));
        reader.readAsDataURL(img);
    },
    beforeUpload: function (file) {
        // debugger
        // const isJPG = file.type === 'image/jpeg/document';
        // if (!isJPG) {
        //     message.error('You can only upload JPG file!');
        // }
        // const isLt2M = file.size / 1024 / 1024 < 2;
        // if (!isLt2M) {
        //     message.error('Image must smaller than 2MB!');
        // }
        // return isJPG && isLt2M;
    },
    beforeUploadFile: function (file) {
        // debugger
        // const isJPG = file.type === 'image/jpeg/document';
        // if (!isJPG) {
        //     message.error('You can only upload JPG file!');
        // }
        // const isLt2M = file.size / 1024 / 1024 < 2;
        // if (!isLt2M) {
        //     message.error('Image must smaller than 2MB!');
        // }
        // return isJPG && isLt2M;
    },
    getTime: function (e, t) {
        if (e && !t) {
            var d = new Date(e);
            d = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate() + " ";
            // + (d.getHours() < 10 ? "0" + d.getHours() : d.getHours()) + ":" +
            // (d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()) + ":" +
            // (d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds());
            return d;
        } else if (e && t) {
            var d1 = new Date(e);
            var d2 = new Date(e);
            d2 = d2.setMonth(d1.getMonth() + t);
            d2 = new Date(d2)
            d2 = d2.getFullYear() + "-" +
                ((d2.getMonth() + 1) < 9 ? '0' + (d2.getMonth() + 1) : (d2.getMonth() + 1)) + "-" +
                (d2.getDate() < 9 ? '0' + d2.getDate() : d2.getDate()) + " ";
            return d2;
        } else {
            return '';
        }
    },
    getPatentType: function (e) {
        if (e) {
            let theType = '';
            patentTypeList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getPatentState: function (e) {
        if (e) {
            let theState = '';
            patentStateList.map(function (item) {
                if (item.value == e) {
                    theState = item.key;
                };
            });
            return theState;
        }
    },
    getPatentField: function (e) {
        if (e) {
            let theState = '';
            patentFieldList.map(function (item) {
                if (item.value == e) {
                    theState = item.key;
                };
            });
            return theState;
        }
    },
    getTechnicalSource: function (e) {
        if (e) {
            let theSource = '';
            technicalSourceList.map(function (item) {
                if (item.value == e) {
                    theSource = item.key;
                };
            });
            return theSource;
        }
    },
    getTechField: function (field1, field2, field3) {
        let fieldList = [];
        for (let i = 0; i < techFieldList.length; i++) {
            fieldList.push({
                value: techFieldList[i].value,
                label: techFieldList[i].label
            });
            if (techFieldList[i].children) {
                for (let j = 0; j < techFieldList[i].children.length; j++) {
                    fieldList.push({
                        value: techFieldList[i].children[j].value,
                        label: techFieldList[i].children[j].label
                    });
                    if (techFieldList[i].children[j].children) {
                        for (let n = 0; n < techFieldList[i].children[j].children.length; n++) {
                            fieldList.push({
                                value: techFieldList[i].children[j].children[n].value,
                                label: techFieldList[i].children[j].children[n].label
                            });
                        }
                    };
                };
            }
        };
        fieldList.sort(function (a, b) {
            return a.value - b.value
        });
        let fieldKey = "";
        fieldList.map(function (item) {
            if (field1 == item.value) {
                fieldKey = item.label;
            };
            if (field2 == item.value) {
                fieldKey = fieldKey + "/" + item.label;
            };
            if (field3 == item.value) {
                fieldKey = fieldKey + "/" + item.label;
            };
        });
        return fieldKey;
    },
    getCatagory: function (e) {
        if (e) {
            let theType = '';
            catagoryList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getIntellectualObtainWay: function (e) {
        if (e) {
            let theType = '';
            intellectualGetList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getConversionForm: function (e) {
        if (e) {
            let theType = '';
            conversionFormList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getAnnualReportState: function (e) {
        if (e) {
            let theType = '';
            annualReportStateList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getCognizanceState: function (e) {
        if (e) {
            let theType = '';
            cognizanceStateList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getTechnologyState: function (e) {
        if (e) {
            let theType = '';
            technologyStateList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    getCopyrightState: function (e) {
        if (e) {
            let theType = '';
            copyrightStateList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    downloadFile: function (path, fileName) {
        window.open(globalConfig.context + '/open/downloadFile?path=' + path + '&fileName=' + fileName)
    },
    companySearch(input, option) {
        return option.props.children.indexOf(input) >= 0
    },

}