'use strict';

//葡萄城表格样式
var STYLE_OBJECT = {};
var spread;   // spread.js 的全局对象
var tsJyFlag;
var spreadNS;
var sheet;
var SheetArea; // 同上
var data_back; // 用于备份页面初始化参数,用于重置功能
var data_extend_back; // 用于备份页面初始化参数,用于重置功能
var hideIndex = []; //  存放隐藏行列索引
var addIndex = []; // 存放动态行的索引
var IS_DATE_ARR = []; // 日期类型单元格
var fzObj = {}; // 动态行分组用的全局变量
var copy_fzObj; // fzObj的原始值备份 重置报表时用
var doubleClick = []; // 防止两次点击
// 表内公式
var GLOBAL_FORMULA = {
  // 表内公式
  TABLE_FORMULA: {},
  // 表间公式
  SHEETS_FORMULA: {}
};
var leftMenu = []; // 左侧菜单

var GLOBAL_STATIC_INFO;  // 初始化的基本信息

var NB_pzzlDm = ['10414', '10420']; // 年报的pzzldm

var GLOBAL_COPY_DATA; // spread合并后原始样式数据的备份

var GLOBAL_SHEET_ERROR = {}; // 校验不通过信息收集结果

var isInProduction = true;
window.onload = function () {
  getIEVersion();
  var url = window.location.host;
  //把sbjs.tjsat.gov.cn:18080，替换成 sbjs.tjsat.gov.cn:8088
  if("sbjs.tjsat.gov.cn:8088" == url){
      GC.Spread.Sheets.LicenseKey = "sbjs.tjsat.gov.cn,736922629637688#B0LBLdFREewVjRiZFNIdmWjtUWldkRhVWa9oFMLNlTwg4UUVTNjtUW0RXcwR5R6EnTIZTRNpXUBB7L0RWciRmaUlnUwQlTLFlYiNkMSFWaxI7bBBzc0VHOFF5M9pXSoRkQPhmZlRUewMncNBXSXZVTV36dSJVS0tEb5lnWI5mNxNzMwYEU7cnMRRUc6xmYF3GakpWYwckVF3mSsJWYlRlb6U6cZpFTGVzYhN7cjx6LphTQOFVSPxUdZVTU5pEeNhDZutmQPZFT6FEdONmc926YCl4drAlNx3Ud8o5LOhGOjJzaPJ4YUtmbx8maiJiOiMlIsIyMDdTRwYER4IiOigkIsEjN6ETO8EzM0IicfJye35XX3JSSGljQiojIDJCLiITMuYHITpEIkFWZyB7UiojIOJyebpjIkJHUiwiIxQDO4gDMggTMyEDOxAjMiojI4J7QiwiIuNmL636ZuQXYzpGduMnaiNnI0IyctRkIsICnCeOqZa+r+SuI0ISYONkIsICO8YzNzYTOyYjMykjNzcjI0ICZJJCL3V6csFmZ0IiczRmI1pjIs9WQisnOiQkIsISP3cXdOBVZwEVZ9V5V7dnTllFSVpHVYd5UZl6a6tUQ6hUQX36NTFVNKhHNC5USDlVOJBVWlJWRq3ERqJDWth7TyMmVnV7QjZWWzNXcxokewYTeBhXOFZnVBhWStt6SsB7TTJkUV3UTGlHSNRWR";
  }else{
      GC.Spread.Sheets.LicenseKey = "etax.tianjin.chinatax.gov.cn,498254719314719#B0WY39GZUNVZFpUQtZXVxFTRzYkQFtEbvVHRvgDb03yNXljc6R4KqtiTrFUYCF6RhdFTPhTOzpmeCRne7ZXRWVWV9MlUo34NlFDTVp6dyt4TVV7c8pERk94Uml4Y0JDcrsyYyFWbNVzcwsGRslndxw6Yy54SiJDVVZnajZVRXpmTnVVMGJGZ42GRolTSPpkea9mNxITT5YmapRHSN3iZrYWYDhXav3GOnd5LLBXYrd4badlcxwWbElFWzgmZsdWU4JVaYV6bmdWYudDVhR7KhJEOhJnQw4EbKxEdvk4NiZTWmpnN7cVY9tmd9VGZEdzSZZTai9UO8BTYqVkbppWSiojITJCLiYDOEZ4MDJzMiojIIJCL8YzN7MzN8kjM0IicfJye35XX3JSSGljQiojIDJCLiITMuYHITpEIkFWZyB7UiojIOJyebpjIkJHUiwiI5MDM4kDMgMjM7ATOxAjMiojI4J7QiwiIuNmL636ZugXY4Fmbph6Yu8Waq9WYpRnL8FGdlJiOiMXbEJCLig1jlzahlDZmpnInmDoimH9pnnKplnatm19tl1ZpnXKtmnKplLiOiEmTDJCLikTM7QTMzkTM7QTNygTO4IiOiQWSiwSflNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPBJGc9IFVrJFNwQDZ0tWUKpmS9kHUmZmN6YzZwcFeahEaNNWWmRmMTdVRFxWNRZTcwQzSpt4dthTNHhUbxATNj9Gdp3kNs3mcXZUZDFVQTt6aJJUO6diSM9";
  }
  //设置全局变量
  spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
  //将接口返回的数据  解析为全局基础信息
  toBaseInfo(GLOBAL_JSON);
  // 注册全部公式
  registAllFormula();
  // 获取左侧菜单
  getLeftMenu();
  //初始化报表并绘制页面
  initSpread(spread); // *****整体入口*****
  // 处理隐藏行列
  !isInProduction && _hideRowHanler();
  // 处理按钮
  _btnsEventHandler();
  // 处理显示部分列表
  isInProduction && getGlobalBaseInfo();
  !isInProduction && addLeftItem();
  // 阻止双击事件
  isInProduction && unBindDoubleClickEvent();
  // 编辑单元格事件
  isInProduction && bindEditEvent();
  isInProduction && isSqwsb(); // 上期未申报
  bindValueChanged(); // 绑定 ValueChanged 方法
  if(GLOBAL_JSON.pzzlDm == "11302"){
      getZiYuanShui(); // 获取资源税信息
  }
  bindCellClickEvent(); // 点击事件
//  if (data.sheets["table_10102_001"] != undefined) {
//    xwAlert(); // 增值税小规模增加提示
//  }
  setXfsHideData(); // 处理消费税
   assignment();
};

// 手动给单元格赋值
function assignment(flag,isZanCun){
     localStorage.removeItem("isZcfxFlag");
     localStorage.removeItem("10101003Alert");
     localStorage.removeItem("10101003AlertFlag");
     localStorage.removeItem("10101003Alert9");
     localStorage.removeItem("10101003AlertFlag9");
     localStorage.removeItem("10101003Alert10");
     localStorage.removeItem("10101003AlertFlag10");
     localStorage.removeItem("10101017Alert");
     localStorage.removeItem("10101017AlertFlag");
     localStorage.removeItem("length_12501_001");
     localStorage.removeItem("isZcfxFlag");
    localStorage.removeItem('selectName_10426_004');
     localStorage["getStorage_10427_002"] = true;
//     localStorage.clear();
     //清算期间   添加时间
     if(GLOBAL_JSON.pzzlDm == "10410"){

         var kaishi = GLOBAL_JSON.sbqr ? GLOBAL_JSON.sbqr : "";
         var jieshu = GLOBAL_JSON.sbzr ? GLOBAL_JSON.sbzr : "";
         var date = "清算期间：" + kaishi + "至" + jieshu;
         setCellValue(0, 1, 1, date);
     }

     if(GLOBAL_JSON.pzzlDm == "10104"){
           var m = GLOBAL_JSON.jbxx ? GLOBAL_JSON.jbxx : {};
           m = m.nsrlx ? m.nsrlx : 2;
           m = parseInt(m);
           if(1 == m){
               newCellType(0, 10, 5, 'select', ["0.01","0.03"]);
               setCellLoked(0, 10, 5, false);
               setCellValue(0, 10, 5, "0.03");
               setCellValue(0, 3, 6, true);
               setCellValue(0, 3, 5, false);
           }else{
               setCellValue(0, 10, 5, "0.03");
               setCellValue(0, 3, 5, true);
               setCellValue(0, 3, 6, false);
           }
     }
     if(GLOBAL_JSON.pzzlDm == "10304"){
          get10304Info();
     }
     if(GLOBAL_JSON.pzzlDm == "10312"){
           var sheet = spread.sheets[0];
           var cellType = new GC.Spread.Sheets.CellTypes.Text();
           sheet.setCellType(6, 0, cellType, GC.Spread.Sheets.SheetArea.viewport);
           sheet.getCell(6, 0).locked(true);
      }

    if(GLOBAL_JSON.pzzlDm == "11901"){
          get11901Info();
     }

     if(GLOBAL_JSON.pzzlDm == "12402"){
          get12402Info();
     }

     if(GLOBAL_JSON.pzzlDm == "10118"){
         myAlert("提示", "　　贵企业若发生《耕地占用税》申报业务，请您如实填写申报；若不涉及此业务，无需申报。", "确定")
     }

     if(GLOBAL_JSON.pzzlDm == "10119"){
         get10119Info();
     }

     if(GLOBAL_JSON.pzzlDm == "10425"){
          get10425Info();
     }

     if(GLOBAL_JSON.pzzlDm == "10426"){
          get10426Info();
     }

     if(GLOBAL_JSON.pzzlDm == "16501"){
           get16501Info();
     }

     if(GLOBAL_JSON.pzzlDm == "16503"){
           get16503Info();
     }

     if(GLOBAL_JSON.pzzlDm == "10101"){
           get10101_017Info();
           if (!GLOBAL_CACHE_DATA) {
              var L2H25ZB = GLOBAL_JSON.lsxx["10101_001"] ? GLOBAL_JSON.lsxx["10101_001"] : {};
              L2H25ZB = L2H25ZB["L2H25ZB"] ? L2H25ZB["L2H25ZB"].value : 0;
              var L4H25ZB = GLOBAL_JSON.lsxx["10101_001"] ? GLOBAL_JSON.lsxx["10101_001"] : {};
              L4H25ZB = L4H25ZB["L4H25ZB"] ? L4H25ZB["L4H25ZB"].value : 0;
              var L2H36ZB = GLOBAL_JSON.lsxx["10101_001"] ? GLOBAL_JSON.lsxx["10101_001"] : {};
              L2H36ZB = L2H36ZB["L2H36ZB"] ? L2H36ZB["L2H36ZB"].value : 0;

              setCellValue(0, 33, 6, L2H25ZB);
              setCellValue(0, 33, 8, L4H25ZB);
              setCellValue(0, 44, 6, L2H36ZB);
           }
           var SYJJDJBZ = GLOBAL_JSON.param["SYJJDJBZ"];
           if(!SYJJDJBZ){
               SYJJDJBZ = GLOBAL_JSON.wsxx["SYJJDJBZ"] ? GLOBAL_JSON.wsxx["SYJJDJBZ"].value : ""
           }
//           console.log(spread.getSheetIndex("table_10101_017"),SYJJDJBZ)
           if(spread.getSheetIndex("table_10101_017")){
               setCellValue(spread.getSheetIndex("table_10101_017"), 11, 9, SYJJDJBZ);
           }
     }

     if(GLOBAL_JSON.pzzlDm == "12501" || GLOBAL_JSON.pzzlDm == "12502"){
         get12501Info(flag);
         if (!!GLOBAL_CACHE_DATA && !isZanCun ) {
             getStroageData();
         }
     }

     if(GLOBAL_JSON.pzzlDm == "10427"){
//          setInfo_10427();
         if (!!GLOBAL_CACHE_DATA && !isZanCun) {
//             isSglrFalse();
             getStroageData();
             setSblxdmList(0,getCellValue(0, 5, 3),true);
         }
     }

     if("11402" == GLOBAL_JSON.pzzlDm){
         getCZTDSYS_11402_001()
     }

      if("11503" == GLOBAL_JSON.pzzlDm){
            getTDS();
       }

      if("11504" == GLOBAL_JSON.pzzlDm){
           getTDS_4();
      }

     if("11505" == GLOBAL_JSON.pzzlDm){
         getJmxz_5();
     }

      if("11506" == GLOBAL_JSON.pzzlDm){
         getTDS_6();
      }

      if("11507" == GLOBAL_JSON.pzzlDm){
         getTDS_7();
      }

      if("11508" == GLOBAL_JSON.pzzlDm){
         getTDS_8();
      }

      if("11801" == GLOBAL_JSON.pzzlDm){
            getCJR();
      }

      if("11303" == GLOBAL_JSON.pzzlDm){
          get11303Info();
      }

      if("29809" == GLOBAL_JSON.pzzlDm){
         if (!!GLOBAL_CACHE_DATA) {
           getStroageData();
         }else{
           get29809Info();
         }
      }

      if("29808" == GLOBAL_JSON.pzzlDm){
         if (!!GLOBAL_CACHE_DATA) {
           getStroageData();
         }else{
           get29808Info();
         }
      }

      if("29852" == GLOBAL_JSON.pzzlDm){
        if (!!GLOBAL_CACHE_DATA) {
           getStroageData();
         }else{
           get29852Info();
         }
      }

//      if("11304" == GLOBAL_JSON.pzzlDm){
//         get11304Info(flag);
//      }

      if(GLOBAL_JSON.pzzlDm == "12502"){
           alertInfo_12502();
      }

      if("10605" == GLOBAL_JSON.pzzlDm){
          var value = GLOBAL_JSON.param.NSRSBH[1];
          console.log(GLOBAL_JSON.param.NSRSBH)
          var value1 = dateProcessing(3);
          setCellValue(0, 5, 4, String(value) + " ")
          setCellValue(0, 6, 4, value1)
      }
    //写到getGlobalBaseInfo里面了
    // if("10102" == GLOBAL_JSON.pzzlDm){
    //     //走不走缓存，是为了解决后台xml的问题
    //     // if (!!GLOBAL_CACHE_DATA) { // 如果有暂存数据
    //     //     var tableName_10102 = 'table_10102_009';
    //     //     var sheetIndex_10102 = spread.getSheetIndex(tableName_10102);
    //     //     var sheet_10102 = spread.sheets[sheetIndex_10102];
    //     //     resetCurrentData(sheet_10102, sheetIndex_10102);
    //     // }
    //
    //     get10102_009Info();
    //     setCellValue(0, 2, 9, GLOBAL_JSON.jbxx.zzsdqdebz?GLOBAL_JSON.jbxx.zzsdqdebz:"")
    //     var value = GLOBAL_JSON.wsxx.ZZS_QZD_FW.value;
    //     setCellValue(0, 4, 9, value);
    //
    //     if("Y" == GLOBAL_JSON.jbxx.zzsdqdebz){
    //         var HDXSE_HW = 0;
    //         var HDXSE_FW = 0;
    //         if(GLOBAL_JSON.wsxx && GLOBAL_JSON.wsxx.HDXSE_HW){
    //             HDXSE_HW = GLOBAL_JSON.wsxx.HDXSE_HW.value;
    //             setCellValue(0, 22, 5, HDXSE_HW)
    //         }
    //         if(GLOBAL_JSON.wsxx && GLOBAL_JSON.wsxx.HDXSE_FW){
    //             HDXSE_FW = GLOBAL_JSON.wsxx.HDXSE_FW.value;
    //             setCellValue(0, 22, 6, HDXSE_FW)
    //         }
    //         if(!$.isEmptyObject(GLOBAL_JSON.lsxx) && GLOBAL_JSON.lsxx["10102_001"].MSXSEFWLJZB){
    //             var XWQYMSFWLJZB = GLOBAL_JSON.lsxx["10102_001"].MSXSEFWLJZB.value;
    //             var MSXSEHWLJZB = GLOBAL_JSON.lsxx["10102_001"].MSXSEHWLJZB.value;
    //             var XWQYMSFWLJZB_ = parseFloat(XWQYMSFWLJZB) + parseFloat(HDXSE_FW)
    //             var MSXSEHWLJZB_ = parseFloat(MSXSEHWLJZB) + parseFloat(HDXSE_HW)
    //             setCellValue(0, 22, 8, parseFloat(XWQYMSFWLJZB_))
    //             setCellValue(0, 22, 7, parseFloat(MSXSEHWLJZB_))
    //         }
    //     }
    // }
    //放到了上面
    // if(GLOBAL_JSON.pzzlDm == "10102"){
    //     var value = GLOBAL_JSON.wsxx.ZZS_QZD_FW.value;
    //     setCellValue(0, 4, 9, value);
    // }

        if(GLOBAL_JSON.pzzlDm == "10103"){
              var arr = GLOBAL_JSON.options10103 ? GLOBAL_JSON.options10103 : [" "];
              newCellType(0, 11, 7, 'select', [" "].concat(arr))
              setCellLoked(0,11,7,false);
        }
//
//         if("29706" == GLOBAL_JSON.pzzlDm){
//            getFSSRTY();
//         }

         if(GLOBAL_JSON.pzzlDm == '10401'){
            var value = GLOBAL_JSON.param.TSCLYNSBL_JD["1"]
            setCellValue(0, 19, 11, value)
            if(GLOBAL_JSON.wsxx.SWDJ_ZFJGLX_DM){
                setCellValue(0, 7, 11, GLOBAL_JSON.wsxx.SWDJ_ZFJGLX_DM.value)
            }
            //季报A 预缴方式选择
             if (getCellValue(0, 5, 11) == 10) {
                setCellValue(0, 5, 3, true)
             }else if (getCellValue(0, 5, 11) == 20) {
                 setCellValue(0, 5, 5, true)
             }else if (getCellValue(0, 5, 11) == 30) {
                 setCellValue(0, 5, 7, true)
             }
         }

         if(GLOBAL_JSON.pzzlDm == '10402'){
             var value = GLOBAL_JSON.wsxx.YSSDL ? GLOBAL_JSON.wsxx.YSSDL.value : 0;
             var sq = 0;
             GLOBAL_JSON.sbbsx == '08' ? sq = 1 : sq = 0;
             setCellValue(0, 21, 7, value)
             setCellValue(0, 31, 9, sq)
             var JMYJB_SJYJNSDSE = GLOBAL_JSON.wsxx.JMYJB_SJYJNSDSE ? GLOBAL_JSON.wsxx.JMYJB_SJYJNSDSE.value : 0;
             setCellValue(0, 26, 7, JMYJB_SJYJNSDSE);
             getsbzrby10402_001();
          }

    if(GLOBAL_JSON.pzzlDm == "10404"){
        var GJJZHY_ND = GLOBAL_JSON.param.GJJZHY_ND["1"];
        setCellValue(0, 17, 9, GJJZHY_ND);
//        var value = GLOBAL_JSON.param.SDSSSHY[0].split(":")[1];
//        setCellValue(0, 6, 9, value);
        var JMNB_SJYJNSDSE = GLOBAL_JSON.wsxx["JMNB_SJYJNSDSE"] ? GLOBAL_JSON.wsxx["JMNB_SJYJNSDSE"].value : 0;
        setCellValue(0, 26, 7, JMNB_SJYJNSDSE);
        get10404Info();
    }

    //油价
    if(GLOBAL_JSON.pzzlDm == "30224"){
        get30224Info();
    }
}
//所得税居民B季
function getsbzrby10402_001(){
    var value_ = GLOBAL_JSON.sbzr.substring(0,4) + "-" + GLOBAL_JSON.sbzr.substring(4,6) + "-" + GLOBAL_JSON.sbzr.substring(6,8);
    var cyrspjljs =  GLOBAL_JSON.param.CYSRPJSLJS["1"] == "" ? 0 : GLOBAL_JSON.param.CYSRPJSLJS["1"]
    var zczepjsljs = GLOBAL_JSON.param.ZCZEPJSLJS["1"] == "" ? 0 : GLOBAL_JSON.param.ZCZEPJSLJS["1"]
    var yjsbjds = GLOBAL_JSON.param.YSBJDS["1"] == "" ? 0 : GLOBAL_JSON.param.YSBJDS["1"]
    var JMYJB_SJYJNSDSE = GLOBAL_JSON.wsxx["JMYJB_SJYJNSDSE"] ? GLOBAL_JSON.wsxx["JMYJB_SJYJNSDSE"].value : 0;
    setCellValue(0, 26, 7, JMYJB_SJYJNSDSE);
    setCellValue(0, 9, 9, value_);
    setCellValue(0, 18, 9, cyrspjljs);
    setCellValue(0, 19, 9, zczepjsljs);
    setCellValue(0, 20, 9, yjsbjds);
    //所得税居民B季初从业人数和季初资产总额从初始化取值  2020.4.27修改
    if (!GLOBAL_CACHE_DATA) {
        if (GLOBAL_JSON.param.SQQMCYRS) {
            value_ = GLOBAL_JSON.param.SQQMCYRS[1];
            setCellValue(0, 32, 4, value_);
        }
        if (GLOBAL_JSON.param.SQQMZCZE) {
            value_ = GLOBAL_JSON.param.SQQMZCZE[1];
            setCellValue(0, 33, 4, value_);
        }
    }
}

/**
 * 2019年1月30日11:21:36 新增
 * 小微企业添加提示
 */
function xwAlert() {
  myAlert("提示", "　　尊敬的纳税人，您好！为全面贯彻党中央国务院减税降费决策部署，落实好提高增值税小规模纳税人起征点政策，申报系统会帮助您判断是否可以享受免征增值税政策，在您申报的过程中可能会出现一些提示信息，请您认真阅读，并按照相关指引进行操作，非常感谢您的支持配合！", "确定")
}

// 12502弹框
function alertInfo_12502(){
    myAlert("提示", "　　贵企业如果有申报《环境保护税纳税申报表（B类）》申报业务，请您如实填写申报，否则可以不用申报。《环境保护税纳税申报表（B类）》适用于核定征收环境保护税，以及发生排污行为按次申报环境保护税的纳税人，非环境保护税纳税人无需申报此表，系统也不会产生申报记录。", "确定")
}

/**
 * 初始化葡萄城控件
 *
 * @param {*} spread
 */
function initSpread(spread) {
  //备份数据 用于重置等功能
  data_back = copyJSON(data);
  data_extend_back = copyJSON(extend_data);
  var sd = data;
  console.log(sd)
  if (sd) {
    // 样式对象拆出来供后期调用
    styleArraytoObject(sd);
    // 合并导出的样式与配置
    sd = mergeOptions(sd, extend_data);
    console.log(sd)
    // 备份 fzObj 初始值
    copy_fzObj = copyJSON(fzObj);
    // 挂起进程
    spread.suspendPaint();
    // 绘制报表
    spread.fromJSON(sd);
    // 配置页面参数
    spreadConfig(spread);
    spread.resumePaint();
  }
}

/**
 * 配置报表对象
 *
 * @param {*} spread
 */
function spreadConfig(spread) {
  spread.options.tabStripVisible = false;
  spread.options.newTabVisible = false;
  spread.options.tabNavigationVisible = false; // false: hide, true: show
  spread.options.setTabStripRatio = 0.7;
  spread.options.allowUserDragDrop = false; // 禁止用户拖动
  spread.options.allowUserDragMerge = false; // 禁止拖动合并
  spread.options.allowUserDragFill = false; // 禁止拖动填充
  spread.options.allowCopyPasteExcelStyle = false; // 禁止复制粘贴 Excel
  spread.options.allowUserZoom = false; // 禁止用户缩放表单
  spread.options.allowContextMenu = false;
  spread.options.showDragDropTip = false;
  spread.options.scrollbarShowMax = false;
  spread.options.scrollbarMaxAlign = true;
  spread.options.grayAreaBackColor = "#FFFFFF";
  spread.options.highlightInvalidData = false;
  spreadNS = GC.Spread.Sheets;
  // 遍历sheet
  for (var i = 0; i < spread.sheets.length; i++) {
    sheet = spread.getSheet(i);
    GLOBAL_SHEET_ERROR[sheet.name()] = {}; // 全局错误对象
    SheetArea = spreadNS.SheetArea;
    sheet.options.isProtected = isInProduction;
    sheet.options.protectionOptions.allowSelectLockedCells = false; // 禁止保护单元格被选中
    sheet.options.selectionBorderColor = "#FF0000";
    sheet.clearSelection();
    validationErrorHandler(sheet);
  }
}

/**
 * 判断单元格是否检验通过
 *
 * @param {*} sheet
 * @param {*} row
 * @param {*} col
 * @param {*} value
 */
function getIsValid(sheet, row, col, value) {
  var isValid = sheet.isValid(Number(row), Number(col), value);
  var table_name = sheet.name();
  var pos = row + '-' + col;
  if (isValid) { // 如果通过并且全局对象里有值，则删除
    if (GLOBAL_SHEET_ERROR[table_name][pos]) {
      delete GLOBAL_SHEET_ERROR[table_name][pos]
      var $errorDom = $('[data-table="' + table_name + '"]');
      if (JSON.stringify(GLOBAL_SHEET_ERROR[table_name]) == "{}") {
        if ($errorDom.hasClass('has-error')) {
          $errorDom.removeClass('has-error');
          var text = $errorDom.text();
          $errorDom.text(text.substring(0, text.length - 6));
        }
      }
    }
  } else {
    console.log("GLOBAL_SHEET_ERROR", GLOBAL_SHEET_ERROR);
    GLOBAL_SHEET_ERROR[table_name][pos] = true
  }
}

/**
 *校验失败收集信息
 *
 * @param {*} sheet
 */
function validationErrorHandler(sheet) {
  sheet.bind(GC.Spread.Sheets.Events.ValidationError, function (sender, args) {
    var pos = args.row + '-' + args.col;
    GLOBAL_SHEET_ERROR[args.sheetName][pos] = true
  })
}

/**
 * 获取合并后的单元格配置并重新绘制
 *
 * @param {*} spreadObj  spreadjs对象
 * @param {*} options  表格配置
 */
function mergeOptions(spreadObj, options) {
  var sheetKeys = [];
  $.each(spreadObj.sheets, function (key) {
    sheetKeys.push(key);
  });
  sheetKeys.forEach(function (sheetName, sheetIndex) {
    // 此对象用于收集当前报表单元格校验规则
    var sheetValidateCells = {
      type1: [], // 字符串非空
      type2: [], // 数值 != 0
      type3: [], // 数值 >  0
      type4: [], // 数值 >= 0
    };
    // 生成分组的全局对象
    fzObj[sheetIndex] = {
      isFixedRow: [],
      isAddRow: [],
      isSumRow: []
    };
    var tableSheet = spreadObj.sheets[sheetName];
    if (tableSheet) {
      //获取葡萄城单元格配置
      var dataTable = tableSheet.data.dataTable;
      //获取cell工具导出单元格配置
      var optionDataTable = options && options[sheetName] && options[sheetName].data.datatable;
      if (!optionDataTable) {
        return;
      }
      $.each(dataTable, function (rowIndex, row) {
        $.each(row, function (colIndex, col) {
          if (optionDataTable) {
            if (optionDataTable[rowIndex] && optionDataTable[rowIndex][colIndex]) {
              var tdOption = optionDataTable[rowIndex][colIndex];
              if (tdOption) {
                // 验证数据处理
                _validateControl(tdOption, colIndex, rowIndex, sheetValidateCells);
                //表内公式处理
                _formulaControl(tdOption, rowIndex, col, colIndex, sheetName);
                // 特殊行列标记处理逻辑
                _rankMarkerControl(tdOption, sheetIndex, rowIndex, colIndex, optionDataTable, row);
                //特殊类型数据处理
                _sltDataControl(tdOption, col, sheetName);
                //将其他属性添加到葡萄城单元格的tag属性当中,只有tag属性是可配置属性
                _mergeToTag(tdOption, col);
              }
            }
          }
        });
      });
      // 添加到spread的标准验证规则中
      addToSpreadValidate(sheetValidateCells, tableSheet);
    }
  });
  GLOBAL_COPY_DATA = copyJSON(spreadObj)
  return spreadObj;
}

/**
 * 添加到spread的标准验证规则中
 *
 * @param {*} sheetValidateCells
 * @param {*} tableSheet
 */
function addToSpreadValidate(sheetValidateCells, tableSheet) {
  SHEET_VALIDATE_RULES.validations[0].ranges = sheetValidateCells["type2"].join(',');
  SHEET_VALIDATE_RULES.validations[1].ranges = sheetValidateCells["type3"].join(',');
  SHEET_VALIDATE_RULES.validations[2].ranges = sheetValidateCells["type4"].join(',');
  SHEET_VALIDATE_RULES.validations[3].ranges = sheetValidateCells["type1"].join(',');
  tableSheet.validations = copyJSON(SHEET_VALIDATE_RULES.validations);
}

/**
 * 收集当前sheet中的验证规则
 *
 * @param {*} tdOption
 * @param {*} colIndex
 * @param {*} rowIndex
 * @param {*} sheetValidateCells
 */
function _validateControl(tdOption, colIndex, rowIndex, sheetValidateCells) {
  if (tdOption.require && tdOption.require != "N") {
    // debugger
    var excelPoint = createCellPos(parseInt(colIndex) + 1) + (parseInt(rowIndex) + 1).toString();
    //判断如果存在校验
    var validateType = tdOption.require;
    sheetValidateCells["type" + validateType].push(excelPoint);
  }
}

/**
 * 解析表内和表间公式
 *
 * @param {*} tdOption
 * @param {*} rowIndex
 * @param {*} col
 * @param {*} colIndex
 * @param {*} sheetName
 */
function _formulaControl(tdOption, rowIndex, col, colIndex, sheetName) {
  // 1.表内公式处理
  if (tdOption.formula_1) {
    var formula = tdOption.formula_1;
    if (formula.substring(0, 6) === 'string' && formula.indexOf(".0f") != -1) {
      formula = formula.slice(7, -10);
    }
    if (formula.indexOf('string') != -1) {
      formula = formula.allReplace('string', '')
    }
    if (formula.indexOf('STRING') != -1) {
      formula = formula.allReplace('STRING', '')
    }
    formula = formula.toUpperCase().replace(/COL\(\)/gi, 'COLUMN()');
    if (formula.indexOf("CF_GET_BBHJ") > -1) {
      formula = formulaToSheetPoint2(formula)
    }
    if (formula.indexOf("CF_GET_BBSJ") > -1) {
      //特殊函数将相关参数转为Excel点坐标
      formula = formulaToSheetPoint(formula);
    }
    if (formula.indexOf("SUM") > -1) {
      var reg = /\((.+?)\)/g;
      if (reg.test(formula)) {
        //如果匹配上直接获取括号里的内容
        var innerFormula = RegExp.$1;
        if (innerFormula.indexOf(':') > -1 && innerFormula.split(':').length == 2) {
          var innerArr = innerFormula.split(':');
          var a0 = splitExcelPoint($.trim(innerArr[0]));
          var a1 = splitExcelPoint($.trim(innerArr[1]));
          if (a0[0] == a1[0]) {
            var prevRowIndex = Number(a1[1]);
            if (Number(rowIndex) == prevRowIndex) {
              formula = formula.substring(0, formula.indexOf('(')) + '(' + a0.join('') + ":" + 'INDIRECT("' + a1[0] + '"&ROW()-1))';
            } else {
              var cha = Number(rowIndex) > prevRowIndex && Number(rowIndex) - prevRowIndex || -1;
              if (cha >= 0) {
                formula = formula.substring(0, formula.indexOf('(')) + '(' + a0.join('') + ":" + 'INDIRECT("' + a1[0] + '"&ROW()-' + (cha + 1) + '))';
              }
            }
          }
        }
      }
    }
    col.formula = formula;
  }

  // 2.表间公式处理
  if (tdOption.tableFormula && tdOption.tableFormula.formula) {
    var item = tdOption.tableFormula;
    var arr = item.formula.split(';');
    var obj = {
      rowIndex: rowIndex,
      colIndex: colIndex,
      formula: {}
    };
    arr.map(function (item) {
      var _name = item.split('=')[0];
      var equalIndex = item.indexOf('=');
      if (equalIndex) {
        var _val = item.slice(equalIndex + 1);
        var fixIndex = _val.indexOf('FORMULA=');
        if (fixIndex != -1) {
          _val = _val.split("FORMULA")[1];
        }
      }
      if (_name === 'ZC' || _name === 'TJ' || _name === 'ES') {
        _val && (obj.formula[_name] = _val);
      }
    });

    //判断是否相同
    if (JSON.stringify(obj.formula) != "{}") {
      //此处针对TJ做特殊处理
      if (obj.formula.TJ) {
        obj.formula.TJ = obj.formula.TJ.replace(new RegExp('\\] \\* 1', 'g'), ']');
        obj.formula.TJ = obj.formula.TJ.replace(new RegExp('\\] \\+ 1', 'g'), ']');
      }
      obj.formula.ZC = obj.formula.ZC.toUpperCase().replace(/COL\(\)/gi, 'COLUMN()');
      //如果表格没有公式 或者公式与当前的条件不同的
      if (!col.formula || obj.formula.ZC != "=" + col.formula) {
        //如果存在条件的
        var tableformula = obj.formula;
        //如果有条件
        var newformula = "";
        if (tableformula.TJ) {
          newformula = setTjFormula(obj, col, sheetName, rowIndex, colIndex);
        } else {
          //没有条件且表间公式和表内公式不相同的情况
          if (obj.formula.ZC != "=" + col.formula) {
            //此处将报表相关的参数转化为一整行和一整列的参数,有点难以描述的逻辑ε=(´ο｀*)))
            newformula = setNormalFormula(obj.formula.ZC, 'ZC', sheetName, rowIndex, colIndex);
          }
        }
        if (newformula.indexOf("CF_GET_BJ_ZC") > -1) {
          if (newformula.indexOf("SUM") > -1) {
            newformula = replaceAll(newformula, "CF_GET_BJ_ZC", "CF_GET_BJ_ZC_SUM");
          }
        }
        newformula = replaceAll(newformula, "'", '"');
        col.formula = newformula;
      }
    }
  }
}

/**
 * 转换表间公式 带条件
 *
 * @param {*} obj
 * @param {*} col
 * @param {*} tableName
 * @param {*} rowIndex
 * @param {*} colIndex
 * @returns
 */
function setTjFormula(obj, col, tableName, rowIndex, colIndex) {
  var ZC = setNormalFormula(obj.formula.ZC, 'TJ', tableName, rowIndex, colIndex);
  var TJ = setNormalFormula(obj.formula.TJ, 'TJ', tableName, rowIndex, colIndex);
  var ES = (obj.formula.ES && setNormalFormula(obj.formula.ES, 'TJ', tableName, rowIndex, colIndex)) || 0;
  return 'if(' + TJ + ',' + ZC + ',' + ES + ')'; // 拼接 IF 公式

}

/**
 * 转换表间公式  不带条件的
 *
 * @param {*} formula
 * @param {*} type
 * @param {*} tableName
 * @param {*} rowIndex
 * @param {*} colIndex
 * @returns
 */
function setNormalFormula(formula, type, tableName, rowIndex, colIndex) {
  if (type === 'ZC') {
    var formulaName = 'CF_GET_BJ_ZC';
  } else {
    var formulaName = 'SELF_TJ_FORMULA';
  }
  var arr = [];
  for (var i = 0; i < formula.length; i++) {
    var obj = {};
    var indexStr = formula.substring(i, i + 1);
    if (indexStr === '[' || indexStr === ']') {
      arr.push(i);
    }
  }
  var newFormulaStr = formula;
  for (var j = 0; j < arr.length; j++) {
    // 根据奇偶来组合成一对
    if (j % 2 == 0) {
      // 偶数
      var old = formula.substring(arr[j], arr[j + 1] + 1); // 匹配出带‘[]’的内容 用来最后替换
      var item = formula.substring(arr[j] + 1, arr[j + 1]); // 匹配出[]里的内容 用来分隔出参数
      var arr2 = item.split(',');
      var arg1 = arr2[0]; //报表代码加版本号
      var arg2 = arr2[1];
      var arg3 = arr2[2];
      var arg4 = arr2[3];
      if (type === 'TJ') {
        if (splitExcelPoint(arg2).length == 2) {
          var tableId = arg1.substring(0, 9);
          if ($.inArray(tableId, leftMenu) > -1) {
            arg1 = 'table_' + arg1.substring(0, 9) + '!' + arg2;
            var newformula = formulaName + '(' + arg1 + ',"' + arg3 + '","' + arg4 + '")'; // 拼接新的公式
          } else {
            //进入极端情况判断 返回4个参数的新公式
            var newformula = formulaName + '(0,"' + arg2 + '","' + arg3 + '","' + arg4 + '")';
          }
        } else {
          //带条件的有五个参数
          var newformula = formulaName + '(' + 'table_' + arg1.substring(0, 9) + '!A1:Z100' + ',"table_' + arg1.substring(0, 9) + '","' + arg2 + '","' + arg3 + '","' + arg4 + '")'; // 拼接新的公式
        }
      } else {
        var tableId = arg1.substring(0, 9);
        if (splitExcelPoint(arg2).length == 2) {
          //证明第二个参数是坐标,那么可以直接根据报表name!point形式当做参数传入其中
          if (tableName == "table_" + tableId) {
            var newformula = formulaName + '(table_' + tableId + '!' + arg2 + ',"' + arg3 + '","' + arg4 + '")';
          } else {
            if ($.inArray(tableId, leftMenu) > -1) {
              //五个参数
              var newformula = formulaName + '_DIFF' + '(table_' + tableId + '!' + arg2 + ',"' + arg3 + '","' + arg4 + '")';
            } else {
              //进入极端情况判断
              var newformula = formulaName + '_DIFF' + '(0,"' + arg2 + '","' + arg3 + '","' + arg4 + '")';
            }
          }
        } else {
          //证明不是坐标 而是参数NodeName的情况
          if (tableName == "table_" + tableId) {
            //获取到报表代码
            var excelCol = convertNum2Eng(Number(colIndex) + 1) + ":" + convertNum2Eng(Number(colIndex) + 1);
            var excelRow = "" + (Number(rowIndex) + 1).toString() + ":" + (Number(rowIndex) + 1).toString();
            //此处将当前单元格所在行和列当做条件塞进函数 到时候计算
            var newformula = formulaName + '(' + excelCol + ',' + excelRow + ',"' + arg2 + '","' + arg3 + '","' + arg4 + '")';
          } else {
            if ($.inArray(tableId, leftMenu) > -1) {
              var newformula = formulaName + "_DIFF" + '(table_' + tableId + '!A1:Z100,"table_' + tableId + '","' + arg2 + '","' + arg3 + '","' + arg4 + '")';
            } else {
              var newformula = formulaName + "_DIFF" + '(0,"table_' + tableId + '","' + arg2 + '","' + arg3 + '","' + arg4 + '")';
            }
          }
        }
      }
      newFormulaStr = newFormulaStr.replace(old, newformula);
    }
  }
  return newFormulaStr;
}


/**
 * 将相关公式CF_GET_BBHJ正则替换参数
 *
 * @param {*} base
 * @returns
 */
function formulaToSheetPoint2(base) {
  var reg = /"\w{9}"/gi;
  return base.replace(reg, function () {
    var r = arguments[0];
    return "table_" + r.replace(/"/gi, "") + "!A1:Z100," + r;
  });
}

/**
 * 将自定义公式参数转为Excel表参数
 */
function formulaToSheetPoint(base) {
  var reg = /"\w{9}",\s?\d{1,10},\s?\d{1,10}/gi;
  base = base.replace(reg, function () {
    var r = arguments[0].split(",");
    var tableId = r[0].replace(/"/gi, '');
    if ($.inArray(tableId, leftMenu) > -1) {
      return 'table_' + r[0].replace(/"/gi, '') + "!" + createCellPos(parseInt(r[1], 10)) + (parseInt(r[2], 10));
    } else {
      return r;
    }
  });
  return base;
}

/**
 * 输入数字 转化为对应的字母
 *
 * @param {*} n
 * @returns
 */
function createCellPos(n) {
  n = n - 1;
  var ordA = 'A'.charCodeAt(0);
  var ordZ = 'Z'.charCodeAt(0);
  var len = ordZ - ordA + 1;
  var s = "";
  while (n >= 0) {
    s = String.fromCharCode(n % len + ordA) + s;
    n = Math.floor(n / len) - 1;
  }
  return s;
}

/**
 * 收集公式
 *
 * @param {*} tdOption
 * @param {*} tableFormula
 * @param {*} rowIndex
 * @param {*} colIndex
 * @param {*} sheetsFormula
 */
function _collectFormula(tdOption, tableFormula, rowIndex, colIndex, sheetsFormula) {
  if (tdOption.formula_1) {
    tableFormula.push({
      rowIndex: rowIndex,
      colIndex: colIndex,
      colName: '' + convertNum2Eng(Number(colIndex) + 1) + (Number(rowIndex) + 1),
      formula: tdOption.formula_1
    });
  }
  if (tdOption.tableFormula) {
    sheetsFormula.push({
      rowIndex: rowIndex,
      colIndex: colIndex,
      colName: '' + convertNum2Eng(Number(colIndex) + 1) + (Number(rowIndex) + 1),
      table: tdOption.tableFormula.name,
      formula: tdOption.tableFormula.formula
    });
  }
}

/**
 * 特殊行列标记-处理逻辑
 *
 * @param {*} tdOption
 * @param {*} sheetIndex
 * @param {*} rowIndex
 * @param {*} colIndex
 * @param {*} optionDataTable
 * @param {*} row
 */
function _rankMarkerControl(tdOption, sheetIndex, rowIndex, colIndex, optionDataTable, row) {
  // 隐藏行列属性-处理逻辑
  var index = _rankMarker_hideControl(tdOption, sheetIndex, rowIndex, colIndex, row);
  // 动态行和合计行-处理逻辑
  var index = _rankMarker_multiAndSumControl(tdOption, optionDataTable, rowIndex, index, sheetIndex, row);
}

/**
 * 下拉菜单或选择框处理逻辑
 *
 * @param {*} tdOption
 * @param {*} col
 */
function _sltDataControl(tdOption, col, sheetName) {
  if ((tdOption.dataSltType && tdOption.dataSltType != '') || (tdOption.specialType && (tdOption.specialType == 7 || tdOption.specialType == 8))) {
    var type = tdOption.dataSltType;
    var cellType = {};

    if (type == "checkbox") {
      //checkBox情况
      cellType.typeName = "5";
      cellType.textAlign = 3;
      cellType.textTrue = cellType.textFalse = tdOption.options && tdOption.options.length > 0 && tdOption.options[0].name || "";
    } else if (type == "select" || type == "radio") {
      if (type == "radio" && col.value != undefined) {
        var temp = tdOption.options.filter(function (item) {
          return item.value == col.value;
        });
        if (temp.length > 0) {
          col.value = temp[0].name;
        } else {
          col.value = "";
        }
      }
      cellType.typeName = "7";
      if (tdOption.options && tdOption.options.length > 0) {
        if (type == "radio") {
          cellType.items = tdOption.options.reduce(function (a, b) {
            return a.concat({
              text: $.trim(b.name),
              value: b.value
            });
          }, []);
        } else {
          cellType.items = tdOption.options.reduce(function (a, b) {
            if ((GLOBAL_JSON.pzzlDm === '10101' && sheetName === 'table_10101_025')) {
              var text = b.value + ' ' + b.name
            } else {
              var text = b.name
            }
            return a.concat({
              text: text,
              value: b.value
            });
          }, []);
        }
      }
      cellType.maxDropDownItems = 5;
    }
    // 特殊类型处理
    specialSelectCell(sheetName, tdOption, cellType);

    if (typeof col.style === "string") {
      col.style = copyJSON(STYLE_OBJECT[col.style]);
    }
    col.style.cellType = copyJSON(cellType);
    delete tdOption.options;
  }


}

/**
 * 将其他属性添加到葡萄城单元格的tag属性当中, 只有tag属性是可配置属性
 *
 * @param {*} tdOption
 * @param {*} col
 */
function _mergeToTag(tdOption, col) {
  if (tdOption.style && tdOption.style.locked === false) {
    if (typeof col.style === "string") {
      col.style = copyJSON(STYLE_OBJECT[col.style]);
      col.style.locked = false;
    } else {
      col.style.locked = false;
    }
    //locked属性  添加到葡萄城单元格属性后就 没用了
    delete tdOption.style;
  }
  col.tag = JSON.parse(JSON.stringify(tdOption));
}

/**
 * 处理动态行和合计行
 *
 * @param {*} tdOption
 * @param {*} optionDataTable
 * @param {*} rowIndex
 * @param {*} index
 * @param {*} sheetIndex
 * @param {*} row
 * @returns
 */

function _rankMarker_multiAndSumControl(tdOption, optionDataTable, rowIndex, index, sheetIndex, row) {
  // 是否合计行
  if (tdOption.isSum) {
    tdOption.isSum = true;
    tdOption.isMulti = true;
    if (!optionDataTable[rowIndex].isSum) {
      optionDataTable[rowIndex].isSum = true;
      optionDataTable[rowIndex].isMulti = true;
    }

    //将当前行第一列的合并属性设置为true
    if (!optionDataTable[rowIndex][0].isSum) {
      optionDataTable[rowIndex][0].isSum = true;
      optionDataTable[rowIndex][0].isMulti = true;
    }

    fzObj[sheetIndex].isSumRow.push(Number(rowIndex));
    fzObj[sheetIndex].isSumRow = uniqueArr(fzObj[sheetIndex].isSumRow);
  } else {
    // 是否多行 并且确实是多行(isReallyNotDynamicRow: false或undefined的情况)
    if (tdOption.dynamicRow && !optionDataTable[rowIndex].isReallyNotDynamicRow) {
      tdOption.isMulti = true;
      if (!optionDataTable[rowIndex].isMulti) {
        optionDataTable[rowIndex].isMulti = true;
      }
      //将当前行第一列的多行属性设置为true
      if (!optionDataTable[rowIndex][0].isMulti) {
        optionDataTable[rowIndex][0].isMulti = true;
      }

      var index = sheetIndex + '-' + rowIndex;
      addIndex.push(index);
      addIndex = uniqueArr(addIndex);
      fzObj[sheetIndex].isFixedRow.push(Number(rowIndex));
      fzObj[sheetIndex].isFixedRow = uniqueArr(fzObj[sheetIndex].isFixedRow);
    }
  }
  return index;
}

/**
 * 处理隐藏行列
 *
 * @param {*} tdOption
 * @param {*} sheetIndex
 * @param {*} rowIndex
 * @param {*} colIndex
 * @returns
 */
function _rankMarker_hideControl(tdOption, sheetIndex, rowIndex, colIndex) {
  if (tdOption.isHide === 'Y') {
    var index = sheetIndex + '-' + rowIndex + '-' + colIndex;
    hideIndex.push(index);
  } else {}
  return index;
}

/**
 * 配置由数组转为对象
 *
 */
function styleArraytoObject(spreadObj) {
  var styleArr = spreadObj.namedStyles;
  styleArr.forEach(function (x, index) {
    STYLE_OBJECT[x.name] = x;
  });
}



/**
 * 隐藏行列处理
 *
 */
function _hideRowHanler() {
  hideIndex.map(function (item) {
    if (item.split('-')[2] == 0) {
      hideRowCol(item.split('-')[0], 'row', item.split('-')[1], false);
    } else {
      hideRowCol(item.split('-')[0], 'col', item.split('-')[2], false);
    }
  });
  if (GLOBAL_JSON.pzzlDm === '10420') {
    // console.log('关联表');
    for (var i = 5; i < 14; i++) {
      hideRowCol(1, 'row', i, false);
    }
  }
}

/**
 * 按钮事件处理
 *
 */
function _btnsEventHandler() {
  if (addIndex.length !== 0) {
    addIndex.map(function (item) {
      newAddBtn(item.split('-')[0], item.split('-')[1]);
    });
  }
  var objectKeysArr = [];
  $.each(fzObj, function (key) {
    objectKeysArr.push(key);
  });
  objectKeysArr.forEach(function (key, sheetIndex) {
    if (fzObj[sheetIndex].isFixedRow.length !== 0) {
      bindBtnEvent(sheetIndex);
    }
  });
}

/**
 * 将接口返回的数据  解析为全局基础信息
 *
 * @param {*} info
 */
function toBaseInfo(info) {
  GLOBAL_STATIC_INFO = copyJSON(info.param);
}

/**
 *提示上期未申报
 *
 */
function isSqwsb() {
       if(GLOBAL_JSON.pzzlDm == '10401'){
          if (GLOBAL_JSON.isSqwsb == "Y") {
              myAlert("提示", "该申报种类上期未申报！", "确定", function () {});
          }else{
              init10401();
          }
       }else if(GLOBAL_JSON.pzzlDm == '10101'){
           var djxh = "";
           var sssqQ = "";
           var sssqZ = "";
           if(GLOBAL_JSON.djxh){
               djxh = GLOBAL_JSON.djxh;
           }

           if(GLOBAL_JSON.djxh){
               sssqQ = GLOBAL_JSON.jbxx.sssqQ;
           }

           if(GLOBAL_JSON.djxh){
               sssqZ = GLOBAL_JSON.jbxx.sssqZ;
           }

          $.ajax({
              type : "post",
              url : URL +"/online_report/declare/getZzsZt",
              dataType : "json",
              data:{
                  "djxh": djxh,
                  "sssqQ": sssqQ,
                  "sssqZ": sssqZ
              },
              success: function (data) {
                if(data && data.responseBean){
                    var info = JSON.parse(data.responseBean)
                         if (GLOBAL_JSON.isSqwsb == "Y") {
                              /* myAlert("提示", "该申报种类上期未申报！", "确定", function () {});*/
                         }else{
                            if("Y" == info.sfgx || "Y" == info.sfsb10 || "Y" == info.sfsb15){
                            }else{
                                 if("Y" === info.sfsb10shfw){
                                      init10101(true);
                                  }else{
                                      init10101();
                                  }
                            }
                         }

                }
              },
              error:function (data) {
                console.log(data);
              }
          });
       }else{

          if(GLOBAL_JSON.pzzlDm == '10102'){
                var sbqr = GLOBAL_JSON.sbqr ? GLOBAL_JSON.sbqr : 202000;
                var sbzr = GLOBAL_JSON.sbzr ? GLOBAL_JSON.sbzr : 202000;
                var nssbq = GLOBAL_JSON.nssbq ? GLOBAL_JSON.nssbq : "2020-00";
                nssbq = parseInt(nssbq.substring(5,7));
                var d = sbzr.substring(4,6) - sbqr.substring(4,6);
//                console.log("=================dddddd=========",d,nssbq);
                if (GLOBAL_JSON.isSqwsb && GLOBAL_JSON.isSqwsb == "Y") {
                    var value = "";
                    if(d>1){
                        if(nssbq==4 || nssbq==7){
                            value += "为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。";
                            value += "<br>您可以参考<a href='https://sbjs.tjsat.gov.cn/sbjsweb/xgmsbyd.html'>相关案例</a>进行填报，也可以拨打12366或向主管税务机关进行咨询。";
                            value += "<br><input type='checkbox' checked='true' onclick='return false;'/>我已阅读并了解上述申报表填写要求。<br>";
                        }
                    }else{
                         if(nssbq==4 || nssbq==5 || nssbq==6){
                            value += "为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。";
                            value += "<br>您可以参考<a href='https://sbjs.tjsat.gov.cn/sbjsweb/xgmsbyd.html'>相关案例</a>进行填报，也可以拨打12366或向主管税务机关进行咨询。";
                            value += "<br><input type='checkbox' checked='true' onclick='return false;'/>我已阅读并了解上述申报表填写要求。<br>";
                         }
                    }
                    value += "该申报种类上期未申报！<br> 尊敬的纳税人，您好！为全面贯彻党中央国务院减税降费决策部署，落实好提高增值税小规模纳税人起征点政策，申报系统会帮助您判断是否可以享受免征增值税政策，在您申报的过程中可能会出现一些提示信息，请您认真阅读，并按照相关指引进行操作，非常感谢您的支持配合！！";
                    myAlert("提示", value, "确定", function () {});
                }else{
                    var value = "";
                   if(d>1){
                        if(nssbq==4 || nssbq==7){
                            value += "为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。";
                            value += "<br>您可以参考<a href='https://sbjs.tjsat.gov.cn/sbjsweb/xgmsbyd.html'>相关案例</a>进行填报，也可以拨打12366或向主管税务机关进行咨询。";
                            value += "<br><input type='checkbox' checked='true' onclick='return false;'/>我已阅读并了解上述申报表填写要求。";
                        }
                   }else{
                         if(nssbq==4 || nssbq==5 || nssbq==6){
                            value += "为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。为支持企业复工复业，自2020年3月1日至5月31日，对除湖北省外，其他省、自治区、直辖市的增值税小规模纳税人，适用3%征收率的应税销售收入，减按1%征收率征收增值税。";
                            value += "您当期减按1%征收率征收增值税的销售额应当填写在《增值税纳税申报表（小规模纳税人适用）》“应征增值税不含税销售额（3%征收率）”相应栏次，对应减征的增值税应纳税额按销售额的2%计算填写在《增值税纳税申报表（小规模纳税人适用）》“本期应纳税额减征额”及《增值税减免税申报明细表》减税项目相应栏次。";
                            value += "<br>您可以参考<a href='https://sbjs.tjsat.gov.cn/sbjsweb/xgmsbyd.html'>相关案例</a>进行填报，也可以拨打12366或向主管税务机关进行咨询。";
                            value += "<br><input type='checkbox' checked='true' onclick='return false;'/>我已阅读并了解上述申报表填写要求。";
                         }
                    }

                    value += "<br>尊敬的纳税人，您好！为全面贯彻党中央国务院减税降费决策部署，落实好提高增值税小规模纳税人起征点政策，申报系统会帮助您判断是否可以享受免征增值税政策，在您申报的过程中可能会出现一些提示信息，请您认真阅读，并按照相关指引进行操作，非常感谢您的支持配合！！";
                    myAlert("提示", value, "确定", function () {});
                }
          }
       }
}

// 点击10101不再提示逻辑
function dj(msg){
    var ispoint = $(msg)[0].checked;
    var sssqQ = "";
    var sssqZ = "";
    var djxh = "";
    if(GLOBAL_JSON.djxh){
        djxh = GLOBAL_JSON.djxh;
    }

    if(GLOBAL_JSON.jbxx.sssqQ){
         sssqQ = GLOBAL_JSON.jbxx.sssqQ;
     }

     if(GLOBAL_JSON.jbxx.sssqZ){
         sssqZ = GLOBAL_JSON.jbxx.sssqZ;
     }
     ispoint == true ? ispoint = 'Y' : ispoint = 'N'

      $.ajax({
            type : "post",
            url : URL +"/online_report/declare/sendZzsZt",
            dataType : "json",
            data:{
                "sfgx": ispoint,
                "djxh": djxh,
                "sssqQ": sssqQ,
                "sssqZ": sssqZ
            },
            success: function (data) {
              console.log(data);
            },
            error:function (data) {
                console.log(data);
            }
        });
}

// 10101_001点击填写10%声明
function statement10101_001_10(){
       var djxh = "";
       var sssqQ = "";
       var sssqZ = "";
       if(GLOBAL_JSON.djxh){
           djxh = GLOBAL_JSON.djxh;
       }

       if(GLOBAL_JSON.jbxx.sssqQ){
           sssqQ = GLOBAL_JSON.jbxx.sssqQ;
       }

       if(GLOBAL_JSON.jbxx.sssqZ){
           sssqZ = GLOBAL_JSON.jbxx.sssqZ;
       }

        $.ajax({
            type : "post",
            url : URL +"/online_report/declare/getGovernmentWebsite",
            dataType : "json",
            data:{
                "djxh": djxh,
                "operationType": 10
            },
            success: function (data) {
              console.log(data);
              if(data && data.ifSuccess){
                  if(data.ifSuccess){
                      window.open(data.uRL,"_blank");
                  }else{
                      myAlert("提示", data.uRL, "确定")
                  }
              }else{
                 alert(data.uRL)
              }
            },
            error:function (data) {
                console.log(data);
            }
        });
}

// 10101_001点击填写15%声明
function statement10101_001_15(){
       var djxh = "";
       var sssqQ = "";
       var sssqZ = "";
       if(GLOBAL_JSON.djxh){
           djxh = GLOBAL_JSON.djxh;
       }

       if(GLOBAL_JSON.jbxx.sssqQ){
           sssqQ = GLOBAL_JSON.jbxx.sssqQ;
       }

       if(GLOBAL_JSON.jbxx.sssqZ){
           sssqZ = GLOBAL_JSON.jbxx.sssqZ;
       }

        $.ajax({
            type : "post",
            url : URL +"/online_report/declare/getGovernmentWebsite",
            dataType : "json",
            data:{
                "djxh": djxh,
                "operationType": 15
            },
            success: function (data) {
              console.log(data);
              if(data && data.ifSuccess){
                  if(data.ifSuccess){
                      window.open(data.uRL,"_blank");
                  }else{
                      myAlert("提示", data.uRL, "确定")
                  }
              }else{
                 alert(data.uRL)
              }
            },
            error:function (data) {
                console.log(data);
            }
        });
}

/**
 *10101和10102表如果上期已申报的提示
 *
 */
function init10101(flag){
    var info = "";
    if(GLOBAL_JSON.isSqwsb == "Y"){
        info = "该申报种类上期未申报！<br> 按照政策规定，自2019年4月1日至2021年12月31日，对生产、生活性服务业纳税人，可以适用加计抵减政策。生产、生活性服务业纳税人，是指提供邮政服务、电信服务、现代服务、生活服务（以下称四项服务）取得的销售额占全部销售额的比重超过50%的纳税人。四项服务的具体范围按照《销售服务、无形资产、不动产注释》（财税〔2016〕36号印发）执行。如果您符合上述政策规定，可以通过填写《适用加计抵减政策的声明》，来确认适用加计抵减政策。";
    }else{
        info = "按照政策规定，自2019年4月1日至2021年12月31日，对生产、生活性服务业纳税人，可以适用加计抵减政策。生产、生活性服务业纳税人，是指提供邮政服务、电信服务、现代服务、生活服务（以下称四项服务）取得的销售额占全部销售额的比重超过50%的纳税人。四项服务的具体范围按照《销售服务、无形资产、不动产注释》（财税〔2016〕36号印发）执行。如果您符合上述政策规定，可以通过填写《适用加计抵减政策的声明》，来确认适用加计抵减政策。";
    }
    if(flag){
        info = "111";
    }
    var kyslrq;
    if(GLOBAL_JSON.jbxx.kyslrq){
        kyslrq =parseInt(GLOBAL_JSON.jbxx.kyslrq);
        if(kyslrq < 20190930){
            info += "<br>①自2019年4月1日至2021年12月31日，对生产、生活性服务业纳税人，可以适用10%加计抵减政策。生产、生活性服务业纳税人，是指提供邮政服务、电信服务、现代服务、生活服务（以下称四项服务）取得的销售额占全部销售额的比重超过50%的纳税人。生产、生活性服务业纳税人可以通过填写《适用加计抵减政策的声明》，来确认适用10%加计抵减政策。";
            info += "②自2019年10月1日至2021年12月31日，对生活性服务业纳税人，可以适用15%加计抵减政策。生活性服务业纳税人，是指提供生活服务取得的销售额占全部销售额的比重超过50%的纳税人。生活性服务业纳税人可以通过填写《适用15%加计抵减政策的声明》，来确认适用15%加计抵减政策。上述四项服务、生活服务的具体范围按照《销售服务、无形资产、不动产注释》（财税〔2016〕36号印发）执行。";
            info += "③如果您已经提交《适用加计抵减政策的声明》（适用政策年度为2019年），但适用15%加计抵减政策，则需要重新提交《适用15%加计抵减政策的声明》（适用政策年度为2019年）。";
            info += "④如果您在2019年度同时符合适用10%加计抵减政策和15%加计抵减政策条件，请先提交《适用加计抵减政策的声明》（适用政策年度为2019年），再提交2019年度《适用15%加计抵减政策的声明》（适用政策年度为2019年）。";
        }else{
            info += "<br>①自2019年4月1日至2021年12月31日，对生产、生活性服务业纳税人，可以适用10%加计抵减政策。生产、生活性服务业纳税人，是指提供邮政服务、电信服务、现代服务、生活服务（以下称四项服务）取得的销售额占全部销售额的比重超过50%的纳税人。生产、生活性服务业纳税人可以通过填写《适用加计抵减政策的声明》，来确认适用10%加计抵减政策。";
            info += "②自2019年10月1日至2021年12月31日，对生活性服务业纳税人，可以适用15%加计抵减政策。生活性服务业纳税人，是指提供生活服务取得的销售额占全部销售额的比重超过50%的纳税人。生活性服务业纳税人可以通过填写《适用15%加计抵减政策的声明》，来确认适用15%加计抵减政策。上述四项服务、生活服务的具体范围按照《销售服务、无形资产、不动产注释》（财税〔2016〕36号印发）执行。";
        }
    }
    info += "<br><input type='checkbox' id='ispoint' onclick='dj(this)'/> 不再提示";

    myConfirm("提示", info, "填写声明", "关闭", function () {
//         console.log($("#ispoint").attr())
       var alertInfo = "<span onclick='statement10101_001_10()' style='color:#fff;background-color:#53acf3;padding:5px;40px;margin:0 30px;border-radius:5px;'>填写10%声明</span>";
       alertInfo += "<span onclick='statement10101_001_15()' style='color:#fff;background-color:#53acf3;padding:5px;40px;margin:0 30px;border-radius:5px;'>填写15%声明</span>";
       myAlert("选择", alertInfo, "取消")

    },function(){
    })
}

/**
 *10401表如果上期已申报的提示
 *
 */
function init10401(){
 myAlert("提示","    自2019年1月1日起,符合条件的小型微利企业年应纳税所得额在100万元以下的部分，按5%实际税率计算缴纳企业所得税，100-300万元部分，按10%实际税率计算缴纳企业所得税。 您通过填报”按季度填报信息”区域内相关信息,系统将自动判断您是否为小型微利企业,并为符合条件的企业自动计算减免税额。 ","确定", function () { })
}