import {
    provinceList,
    patentTypeList,
    patentStateList
} 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) {
        const isJPG = file.type === 'image/jpeg';
        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) + "/" + 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;
        }
    }
}