binxie
2023-06-20 39644c307e98c90e45aea98292c86d70740989e3
force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
@@ -553,6 +553,7 @@
          }
          if (reportDate != null) {
            console.log("reportDate = " + reportDate);
            component.set("v.data.Report_Date__c", reportDate);
          }
@@ -1201,6 +1202,7 @@
    component.find("select_Product1").set("v.value", "");
    component.find("select_Product2").set("v.value", "");
    component.find("select_Product3").set("v.value", "");
    console.log("reportDate = 空");
    component.set("v.data.Report_Date__c", "");
    component.set("v.oppdata.Close_Forecasted_Date__c", "");
    component.set("v.oppdata.Amount__c", "");
@@ -2325,12 +2327,14 @@
  },
  saveRecords: function (component, event, helper) {
    debugger;
    component.set("v.login", true);
    //fy 导入 20220424 start
    var action1 = component.get("c.processDataAWSId");
    action1.setParams({
      fileData: component.get("v.fileContentData")
    });
    debugger;
    action1.setCallback(this, function (response) {
      console.log("response = " + JSON.stringify(response));
      var state = response.getState();
@@ -2351,10 +2355,11 @@
                dataMap.set(item.AWS_Data_Id__c, item.AWS_Data_Id__c); //zhj 新方案改造 2022-12-21
              }
            });
            debugger;
            let obj = Object.create(null);
            obj["dataIds"] = dataArr;
            var payload = JSON.stringify(obj);
            console.log("payload zhj = " + JSON.stringify(payload));
            this.search_contact_url(
              component,
              "Agency_Contact__c",
@@ -2383,7 +2388,7 @@
                          helper
                        );
                      } else {
                        this.error("AWS search status5 ");
                        this.error("AWS 查询数据为空 ");
                        component.set("v.login", false);
                      }
                    } else {
@@ -2463,7 +2468,11 @@
    // });
    // $A.enqueueAction(action);
  },
  isNumber: function (str) {
    return /^\d+$/.test(str);
  },
  ImportMethod: function (component, fileStr) {
    debugger;
    var actionss = component.get("c.processData");
    var selectDate = component.find("select_date").get("v.value");
    var fieldsList = ["Name", "Phone", "AccountNumber"]; //Please write your code dynamic
@@ -2486,10 +2495,75 @@
        if (res != "success") {
          var ress = res.split("=");
          console.log(ress);
          let errorDatas = [];
          let errorDataRow = [];
          debugger;
          for (var i = 0; i < ress.length; i++) {
            res1 += ress[i].substr(7) + "\n";
            if (ress[i] != "") {
              let errorData = {};
              if (!this.isNumber(ress[i].substr(7).substring(1, 2))) {
                continue;
              }
              let index = errorDataRow.indexOf(
                ress[i].substr(7).substring(1, 2)
              );
              if (index == -1) {
                errorData.errorRow = ress[i].substr(7).substring(1, 2);
                errorDataRow.push(errorData.errorRow);
                errorData.errorInfo = ress[i]
                  .substr(7)
                  .substring(5)
                  .replace("=", "");
                errorDatas.push(errorData);
              } else {
                errorDatas[index].errorInfo +=
                  "; " + ress[i].substr(7).substring(5);
              }
            }
          }
          // $('.forceToastManager').css('white-space', 'pre-wrap');
          var fileContentData = component.get("v.fileContentData").split("\n");
          let errorColumns = [
            {
              label: "错误行",
              fieldName: "errorRow",
              type: "text",
              hideDefaultActions: true,
              initialWidth: 100
            },
            {
              label: "错误信息",
              fieldName: "errorInfo",
              type: "text",
              hideDefaultActions: true,
              initialWidth: 300,
              wrapText: true
            }
          ];
          for (var i = 0; i < fileContentData[0].split(",").length; i++) {
            errorColumns.push({
              label: fileContentData[0].split(",")[i],
              fieldName: "field" + i,
              type: "text",
              hideDefaultActions: true,
              wrapText: true,
              initialWidth: 120
            });
          }
          for (var i = 0; i < errorDatas.length; i++) {
            let data = fileContentData[errorDatas[i].errorRow];
            console.log("data = " + JSON.stringify(data));
            if (data) {
              for (var j = 0; j < data.split(",").length; j++) {
                let label = "field" + j;
                errorDatas[i][label] = data.split(",")[j];
              }
            }
          }
          component.set("v.errorColumns", errorColumns);
          component.set("v.errorData", errorDatas);
          component.set("v.showErrorInfo", true);
          console.log("==" + res1);
          this.error(res1 + "请修改后重新上传");
          component.set("v.login", false);
@@ -2552,6 +2626,81 @@
    }
    if (error != "") {
      console.log("zhj error = " + error);
      let errorArray = error.split("error1");
      let errorDatas = [];
      let errorDataRow = [];
      debugger;
      console.log("errorArray = " + JSON.stringify(errorArray));
      for (var i in errorArray) {
        if (errorArray[i] != "") {
          let errorData = {};
          if (!this.isNumber(errorArray[i].trim().substring(1, 2))) {
            continue;
          }
          let index = errorDataRow.indexOf(
            errorArray[i].trim().substring(1, 2)
          );
          if (index == -1) {
            errorData.errorRow = errorArray[i].trim().substring(1, 2);
            errorDataRow.push(errorData.errorRow);
            errorData.errorInfo = errorArray[i]
              .trim()
              .substring(5, errorArray[i].trim().length)
              .replace("=", "");
            errorDatas.push(errorData);
          } else {
            errorDatas[index].errorInfo +=
              "; " +
              errorArray[i].trim().substring(5, errorArray[i].trim().length);
          }
        }
      }
      var fileContentData = component.get("v.fileContentData").split("\n");
      let errorColumns = [
        {
          label: "错误行",
          fieldName: "errorRow",
          type: "text",
          hideDefaultActions: true,
          initialWidth: 100
        },
        {
          label: "错误信息",
          fieldName: "errorInfo",
          type: "text",
          hideDefaultActions: true,
          initialWidth: 300,
          wrapText: true
        }
      ];
      for (var i = 0; i < fileContentData[0].split(",").length; i++) {
        errorColumns.push({
          label: fileContentData[0].split(",")[i],
          fieldName: "field" + i,
          type: "text",
          hideDefaultActions: true,
          wrapText: true,
          initialWidth: 120
        });
      }
      for (var i = 0; i < errorDatas.length; i++) {
        let data = fileContentData[errorDatas[i].errorRow];
        console.log("data = " + JSON.stringify(data));
        for (var j = 0; j < data.split(",").length; j++) {
          let label = "field" + j;
          errorDatas[i][label] = data.split(",")[j];
        }
      }
      console.log("errorDatas =" + JSON.stringify(errorDatas));
      component.set("v.errorColumns", errorColumns);
      component.set("v.errorData", errorDatas);
      component.set("v.showErrorInfo", true);
      console.log("error = " + error);
      component.set("v.errorMessage", error);
      this.error(error);
      console.log("error=" + error);
      component.set("v.login", false);
@@ -2861,9 +3010,78 @@
    }
    $A.enqueueAction(action);
  }
  },
  //zhj MEBG新方案改造 2022-11-29 end
  //zhj 导出错误信息 2023-05-16 start
  exportErrorInfoHelper: function (component) {
    var errorData = component.get("v.errorData");
    var errorColumns = component.get("v.errorColumns");
    var datas = [];
    let errorColumnsArray = [];
    for (var i in errorColumns) {
      errorColumnsArray.push(errorColumns[i].label);
    }
    datas.push(errorColumnsArray);
    //datas.push(errorColumns);
    for (var i in errorData) {
      let data = [];
      data.push(errorData[i].errorRow);
      data.push(errorData[i].errorInfo);
      for (var j = 0; j < Object.keys(errorData[i]).length - 2; j++) {
        data.push(errorData[i]["field" + j]);
      }
      datas.push(data);
    }
    console.log("datas = " + JSON.stringify(datas));
    var csv = this.convertToCSV(component, datas);
    console.log("csv = " + JSON.stringify(csv));
    this.downloadCSV(component, csv);
  },
  convertToCSV: function (component, data) {
    console.log("enter convertToCSV");
    console.log("data = " + data);
    var csv = "";
    for (var i = 0; i < data.length; i++) {
      var row = data[i];
      console.log("row = " + JSON.stringify(row));
      for (var j = 0; j < row.length; j++) {
        var val = "";
        val = row[j] === null ? "" : row[j].toString();
        console.log("val = " + val);
        if (
          val.indexOf(",") !== -1 ||
          val.indexOf('"') !== -1 ||
          val.indexOf("\n") !== -1
        ) {
          //val = '"' + val.replace(/"/g,'""') + '"';
        }
        if (j > 0) {
          csv += ",";
        }
        csv += val;
      }
      csv += "\n";
    }
    return csv;
  },
  downloadCSV: function (component, csv) {
    var link = document.createElement("a");
    // 设置字符集和文件头
    var bom = "\uFEFF";
    link.href = "data:text/csv;charset=utf-8," + encodeURIComponent(bom + csv);
    link.download = "data.csv";
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  }
  //zhj 导出错误信息 2023-05-16 end
  // searchAgencyContact : function(res) {
  //     var agencyContacts = [];
  //     for (let idx = 0; idx < res.length; idx++) {