import { message,Timeline,Select  } from 'antd';
import React from 'react';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import {
    patentTypeList,
    patentStateList,
    patentFieldList,
    technicalSourceList,
    catagoryList,
    intellectualGetList,
    conversionFormList,
    annualReportStateList,
    cognizanceStateList,
    technologyStateList,
    copyrightStateList,
    auditStatusList,
    vocations,
    scaleList,
    companyType,
    industryList,
    contractTypeList,
    contractStateList,
    demandTypeList,
    achievementCategoryList
} from './dataDic.js';
import { provinceList } from './DicProvinceList.js';
import { techFieldList } from './DicTechFieldList.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;
    },
    //地址选择 
    provinceSelect() {
        let option = [];
        provinceList.map(function (item, i) {
            if ( item.cityList.length ) {
                let cityArr = [];
                item.cityList.map(function(city,n){
                    if ( city.areaList.length ) {
                        let areaArr = [];
                        city.areaList.map(function(area,j){
                            areaArr.push({
                                value:area,
                                label:area
                            });
                        });
                        cityArr.push({
                            value:city.name,
                            label:city.name,
                            children:areaArr
                        });
                    } else {
                        cityArr.push({
                            value:city.name,
                            label:city.name
                        });
                    };
                });
                option.push({
                    value:item.name,
                    label:item.name,
                    children:cityArr
                });
            } else {
                option.push({
                    value:item.name,
                    label:item.name
                });
            };
        });
        return option;
    },
    splitUrl: function (string, i, url) {
        let theList = [];
        let theArr = [];
        if (string && string.length) {
            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) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1)) + "-" +
                (d.getDate() < 10 ? '0' + d.getDate() : 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) < 10 ? '0' + (d2.getMonth() + 1) : (d2.getMonth() + 1)) + "-" +
                (d2.getDate() < 10 ? '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;
        }
    },
    //显示用户认证状态
    getAuditState: function (e) {
        if (e) {
            let theType = '';
            auditStatusList.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)
    },
    techDownloadFile: function (url, id) {
        window.open(globalConfig.context + url + '?id=' + id)
    },
    copyrightDownloadFile: function (id, sign, url) {
        window.open(globalConfig.context + url + '?id=' + id + '&sign=' + sign)
    },
    newDownloadFile: function (id, sign, url,type) {
        if (!type ) {
            window.open(globalConfig.context + url + '?id=' + id + '&sign=' + sign);
        };
        if ( type ) {
            window.open(globalConfig.context + url + '?id=' + id + '&sign=' + sign + '&type=' + type);
        };
    },
    companySearch(input, option) {
        return option.props.children.indexOf(input) >= 0
    },
    getInUrgentTime(date, inUrgent) {
        let now = new Date(date);
        for (var i = 1; i <= inUrgent;) {
            now.setDate(now.getDate() + 1);
            if (!vocations[getKey(now)]) {
                i++;
            };
        };
        return now;

        function getKey(date) {
            var year = date.getFullYear(),
                month = date.getMonth() + 1,
                day = date.getDate();
            year = "" + year;
            month = (month > 9 ? "" : "0") + month;
            day = (day > 9 ? "" : "0") + day;
            return year + month + day;
        }
    },
    getStepList(pid,url) {
        let stepList = [];
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            cache: false,
            url: globalConfig.context + url + "?pid=" + pid,
            success: function (data) {
                if (!data.data) {
                    if (data.error && data.error.length ) {
                        return;
                    };
                };
                for (var item in data.data) {
                    stepList.push(
                        <Timeline.Item key={item}> 
                            <span>{module.exports.getPatentState(data.data[item].state)}</span> 
                            {module.exports.getTime(data.data[item].recordTime)} 
                        </Timeline.Item>
                    )
                };
            }.bind(this),
        });
        return stepList;
    },


    //各种通过接口获取下拉列表

    setPatentStateOption(permission) {
        let theArr = [];
        patentStateList.map(function (item) {
            for (let i = 0; i < permission.length; i++) {
                if (item.value == permission[i]) {
                    theArr.push(item);
                };
            };
        });
        return theArr;
    },
    
    setUserContactsList(){
        let theOption = [];
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/user/getContacts',
            success: function (data) {
                if (!data.data) {
                    if ( data.error && data.error.length ) {
                        message.warning(data.error[0].message);
                    };
                    return;
                };
                for (let item in data.data) {
                    let theData = data.data[item];
                    theOption.push(
                        <Select.Option value={item} key={theData}>{theData}</Select.Option>
                    );
                };
            }
        });
        return theOption;
    },
    setAdminContactsList(uid){
        let theOption = [];
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/admin/getContacts',
            data:{ "uid": uid },
            success: function (data) {
                if (!data.data) {
                    if ( data.error && data.error.length ) {
                        message.warning(data.error[0].message);
                    };
                    return;
                };
                for (let item in data.data) {
                    let theData = data.data[item];
                    theOption.push(
                        <Select.Option value={item} key={theData}>{theData}</Select.Option>
                    );
                };
            }
        });
        return theOption;
    },
    //高企培育资料完成情况(比重)
    getProportion(uid,callback){
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/admin/proportion',
            data:{ "uid": uid },
            success: function (data) {
                if (!data.data) {
                    if ( data.error && data.error.length ) {
                        message.warning(data.error[0].message);
                    };
                    data.data = {}
                    callback(data.data);
                };
                callback(data.data);
            }
        });
    },
    //保存高企培育资料完成情况
    saveProportion(id,uid,sign,status){
        $.ajax({
            method: "post",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/admin/confirmProportion',
            data:{ 
                "id": id,
                "uid":uid,
                "sign":sign,
                "status":status
            },
            success: function (data) {
                if (!data.data) {
                    if ( data.error && data.error.length ) {
                        message.warning(data.error[0].message);
                    };
                    return;
                };
            }
        });
    },
    //获取window.location.search传的值
    getSearchUrl(e){
        let searchURL = e;
        let theObj = {};
        searchURL = searchURL.substring(1, searchURL.length);
        theObj[searchURL.split("&")[0].split("=")[0]] = searchURL.split("&")[0].split("=")[1];        
        if ( searchURL.split("&")[1] ) {
            theObj[searchURL.split("&")[1].split("=")[0]] = searchURL.split("&")[1].split("=")[1];
            if ( searchURL.split("&")[2] ) {
                theObj[searchURL.split("&")[2].split("=")[0]] = searchURL.split("&")[2].split("=")[1];
            };
        };
        return theObj;
    },
    //预览接口
    getPreview(id,url,sign,callback){
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/preview/" + url,
            data:{
                "id": id,
                "sign": sign
                },
            success: function (data) {
                if (!data.data) {
                    if ( data.error && data.error.length ) {
                        message.warning(data.error[0].message);
                    };
                };
                callback('https://view.officeapps.live.com/op/view.aspx?src=' + encodeURIComponent(location.origin + globalConfig.context + "/open/preview?" + data.data));
            }
        });
    },
    //获取企业规模
    getScaleState(e) {
        if (e) {
            let theType = '';
            scaleList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    //获取企业类型
    getCompanyType(type1, type2) {
        let companyTypeList = [];
        for (let i = 0; i < companyType.length; i++) {
            companyTypeList.push({
                value: companyType[i].value,
                label: companyType[i].label
            });
            if (companyType[i].children) {
                for (let j = 0; j < companyType[i].children.length; j++) {
                    companyTypeList.push({
                        value: companyType[i].children[j].value,
                        label: companyType[i].children[j].label
                    });
                };
            }
        };
        companyTypeList.sort(function (a, b) {
            return a.value - b.value
        });
        let typeKey = "";
        companyTypeList.map(function (item) {
            if (type1 == item.value) {
                typeKey = item.label;
            };
            if (type2 == item.value) {
                typeKey = typeKey + "/" + item.label;
            };
        });
        return typeKey;
    },
    //获取企业行业
    getIndustryType(e) {
        if (e) {
            let theType = '';
            companyType.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    //获取合同状态
    getContractType: function (e) {
        if (e) {
            let theType = '';
            contractTypeList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    //获取合同类型
    getContractState: function (e) {
        if (e) {
            let theType = '';
            contractStateList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    //获取需求类型
    getDemandType: function (e) {
        if (e) {
            let theType = '';
            demandTypeList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
    //获取成果类型
    getAchievementCategory: function (e) {
        if (e) {
            let theType = '';
            achievementCategoryList.map(function (item) {
                if (item.value == e) {
                    theType = item.key;
                };
            });
            return theType;
        }
    },
}