<template>
  <!-- 装机计重明细查询 -->
  <div class="loadCapacityDetail">
    <div class="frameCalculation">
      <span>装车开始时间</span>
      <el-date-picker
        v-model="startTime"
        type="datetime"
        placeholder="选择日期"
      >
      </el-date-picker>
      <span>至</span>
      <el-date-picker v-model="endTime" type="datetime" placeholder="选择日期">
      </el-date-picker>
      <el-button type="primary" class="btn" @click="onclickSearch">
        <i class="el-icon-search"></i>查询
      </el-button>
      <el-button type="primary" @click="exportSignleReport"
        ><i class="el-icon-download"></i>导出(Excel)</el-button
      >
      <span style="margin-left: 1rem;">合计净重：</span>
      <el-input
        v-model="totalNumber"
        :disabled="true"
        style="width: 100px;"
      ></el-input>
      <span style="margin-left: 1rem;">合计车数：</span>
      <el-input
        v-model="totalCapacity"
        :disabled="true"
        style="width: 100px;"
      ></el-input>

      <el-input
        placeholder="请输入装机车牌号/可查询当天车辆数据"
        v-model="input"
        style="width: 220px;margin-left: 1rem;"
        clearable
      >
      </el-input>
      <el-button type="primary" class="btn" @click="onclickCapacity">
        <i class="el-icon-search"></i>查询
      </el-button>
    </div>
    <div class="table">
      <mergeRowTable
        ref="excelDom"
        v-bind.sync="option"
        @func="func"
      ></mergeRowTable>
    </div>
  </div>
</template>

<script>
import { sjTime } from "@/utils/sharedJsFile";
import { getCookie } from "@/utils/util.js";
export default {
  data() {
    return {
      totalNumber: null,
      totalCapacity: null,
      startTime: null,
      endTime: null,
      input: "",
      tableTitle: "装机计重明细报表",
      option: {
        // 表格请求数据的地址
        requestUrl: "api/v1/tms/getLoaderForResultDetail?apiId=480",
        comparison: "orderNumber",
        columnIndexs: [0, 1, 2, 4, 5, 6]
      },
      inwardArr: [],
      tableTitle: "装机计重明细",
      totalArr: []
    };
  },
  created() {
    if (
      getCookie("orgCode") == "dagangadmin" ||
      getCookie("orgCode") == "zidonghuabu"
    ) {
      this.option.requestUrl =
        "/api/v1/tms/getLoaderForResultDetail?apiId=480&startTime=null&endTime=null&i=" +
        new Date();
    } else if (getCookie("orgCode") == "wuliuchuyunzhongxin") {
      this.option.requestUrl =
        "/api/v1/tms/getLoaderForResultDetail?apiId=480&orderType=13&startTime=null&endTime=null&i=" +
        new Date();
    } else {
      this.option.requestUrl =
        "/api/v1/tms/getLoaderForResultDetail?apiId=480&userId=" +
        getCookie("orgCode") +
        "&startTime=null&endTime=null&i=" +
        new Date();
    }
  },
  methods: {
    exportSignleReport() {
      if (this.startTime && this.endTime) {
        this.openFullScreen1();
      } else {
        this.$confirm(
          "没有输入时间区间，系统将默认导出今天0点到24点的单个报表数据,是否继续?",
          "提示",
          {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          }
        )
          .then(() => {
            this.openFullScreen1();
          })
          .catch(() => {
            this.$message.info("取消导出");
          });
      }
    },
    openFullScreen1() {
      let startTime = null;
      let endTime = null;
      let orgCode = null;
      if (this.startTime && this.endTime) {
        startTime = sjTime(this.startTime);
        endTime = sjTime(this.endTime);
      }
      if (
        getCookie("orgCode") != "dagangadmin" &&
        getCookie("orgCode") != "zidonghuabu" &&
        getCookie("orgCode") != "wuliuchuyunzhongxin"
      ) {
        orgCode = getCookie("orgCode");
      }
      const loading = this.$loading({
        lock: true,
        text: "请等待导出",
        spinner: "el-icon-loading",
        background: "rgba(0, 0, 0, 0.7)"
      });
      this.axios
        .post(
          "/api/v1/tms/getLoaderForResultDetail?apiId=480&isPage=yes&startTime=" +
            startTime +
            "&endTime=" +
            endTime +
            "&orgCode=" +
            orgCode
        )
        .then(res => {
          this.totalArr = [];
          this.inwardArr = [];
          this.tableTitle = "装机计重明细统计";
          this.inwardArr = res.data.data;
          this.totalArr = this.totalArr.concat(this.inwardArr);
          this.exportAllReportToExcel();
          setTimeout(() => {
            loading.close();
          }, 2000);
        });
    },
    exportAllReportToExcel() {
      var title = this.tableTitle;
      let tHeader = [];
      let filterVal = [];
      this.dataColumnData.forEach(e1 => {
        if (tHeader.indexOf(e1.label) === -1) {
          tHeader.push(e1.label);
        }
        if (filterVal.indexOf(e1.prop) === -1) {
          filterVal.push(e1.prop);
        }
      });
      //导出为excel
      this.downloadLoading = true;
      require.ensure([], () => {
        const {
          export_json_to_excel
        } = require("@/assets/excel/Export2Excel.js"); //这里必须使用绝对路径，使用@/+存放export2Excel的路径
        // let list = this.$refs.excelDom.dataTabel;
        let data = this.totalArr.map(v => filterVal.map(j => v[j])); //3.formatJson格式转换
        export_json_to_excel(tHeader, data, title); // (title)导出的表格名称
      });
    },
    func(res) {
      this.dataColumnData = res.columnData;
      console.log(res);
      var resultNetWeightTotal = 0;
      var currentCapacityTotal = 0;
      res.list.forEach(e => {
        currentCapacityTotal++;
        resultNetWeightTotal = resultNetWeightTotal + e.resultNetWeight;
      });
      this.totalNumber = resultNetWeightTotal.toFixed(2) + "t";
      this.totalCapacity = currentCapacityTotal;
    },
    onclickCapacity() {
      this.option.requestUrl =
        "/api/v1/tms/getLoaderForResultDetail?apiId=480&con=" + this.input;
    },
    getRequestUrl() {
      if (
        getCookie("orgCode") == "dagangadmin" ||
        getCookie("orgCode") == "zidonghuabu" ||
        getCookie("orgCode") == "wuliuchuyunzhongxin"
      ) {
        this.option.requestUrl =
          "/api/v1/tms/getLoaderForResultDetail?apiId=480&startTime=null&endTime=null&i=" +
          new Date();
      } else {
        this.option.requestUrl =
          "/api/v1/tms/getLoaderForResultDetail?apiId=480&userId=" +
          getCookie("orgCode") +
          "&startTime=null&endTime=null&i=" +
          new Date();
      }
    },

    // 添加开始结束时间筛选
    onclickSearch() {
      console.log("aaaa");
      let startTime = null;
      let endTime = null;
      if (this.startTime) {
        startTime = sjTime(this.startTime);
        // console.log("startTime", startTime);
      }
      if (this.endTime) {
        endTime = sjTime(this.endTime);
        // console.log("endTime", endTime);
      }
      if (startTime && endTime) {
        if (startTime < endTime) {
          if (
            getCookie("orgCode") == "dagangadmin" ||
            getCookie("orgCode") == "zidonghuabu"
          ) {
            this.option.requestUrl =
              "/api/v1/tms/getLoaderForResultDetail?apiId=480&startTime=" +
              startTime +
              "&endTime=" +
              endTime +
              "&i=" +
              new Date();
          } else if (getCookie("orgCode") == "wuliuchuyunzhongxin") {
            this.option.requestUrl =
              "/api/v1/tms/getLoaderForResultDetail?apiId=480&startTime=" +
              startTime +
              "&endTime=" +
              endTime +
              "&i=" +
              new Date();
          }
        } else {
          this.startTime = null;
          this.endTime = null;
          this.$message.warning("开始时间要比结束时间早");
        }
      } else {
        this.getRequestUrl();
      }
    }
  }
};
</script>
<style lang="scss" scoped>
.purchasFuelNewMonitor {
  .frameCalculation {
    width: 100%;
    height: 100px;
    display: flex;
    align-items: center;
    padding-left: 50px;
    .el-date-editor {
      margin: 20px;
    }
  }
}
</style>
