<template>
  <div class="app-container">
    <el-tabs v-model="activeName" @tab-click="handleTabClick">
      <el-tab-pane label="汇总统计" name="first">
        <div class="search">
          <el-date-picker v-model="tab.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions" />
          <span style="margin-left: 10px;">统计类型：</span>
          <el-radio v-model="tab.radio" label="1" @change="changeRadio">配方名称</el-radio>
          <el-radio v-model="tab.radio" label="2" @change="changeRadio">栏舍名称</el-radio>
          <el-radio v-model="tab.radio" label="3" @change="changeRadio">牲畜类别</el-radio>
          <el-radio v-model="tab.radio" label="4" @change="changeRadio">车次</el-radio>
          <el-checkbox v-model="tab.checked" style="margin-right: 10px;" @change="changeChecked">按日期统计</el-checkbox>
          <el-input v-if="tab.isFormulaName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="配方名称" />
          <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="栏舍名称" />
          <el-input v-if="tab.isLivestockType" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="牲畜名称" />
          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.sort" class="filter-item" style="width: 150px;" placeholder="车次" />
          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.times" class="filter-item" style="width: 150px;" placeholder="班次" />
          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 150px;" placeholder="TMR名称" />
          <el-button class="successBorder" @click="form_search">查询</el-button>
          <el-button class="export" @click="handleDownload">导出</el-button>
          <svg-icon icon-class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
        </div>
        <div class="table">
          <h4>混料</h4>
          <el-table :key="tab.table.tableKey" v-loading="tab.table.listLoading" element-loading-text="给我一点时间" :data="tab.table.list" border fit highlight-current-row style="width: 100%;" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">

            <el-table-column v-if="tab.checked" label="日期" min-width="110px" align="center" prop="日期" />
            <el-table-column v-if="tab.isFormulaName" label="配方名称" min-width="110px" align="center" prop="配方名称" />
            <el-table-column v-if="tab.isHouseName" label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
            <el-table-column v-if="tab.isLivestockType" label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
            <el-table-column v-if="tab.isTrainNumber" label="车次" min-width="110px" align="center" prop="车次" />
            <el-table-column v-if="tab.isTrainNumber" label="班次" min-width="110px" align="center" prop="班次" />
            <el-table-column v-if="tab.isTrainNumber" label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
            <el-table-column v-if="tab.isTrainNumber" label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
            <el-table-column label="理论重量" min-width="110px" align="center" prop="理论重量" />
            <el-table-column label="实际重量" min-width="110px" align="center" prop="实际重量" />
            <el-table-column label="计划混料操作数" min-width="110px" align="center" prop="计划混料操作数" />
            <el-table-column label="已混料操作数" min-width="110px" align="center" prop="已混料操作数" />
            <el-table-column label="混料操作率" min-width="110px" align="center" prop="混料操作率" />
            <el-table-column label="混料误差值" min-width="110px" align="center" prop="混料误差值" />
            <el-table-column label="混料准确率" min-width="110px" align="center" prop="混料准确率" />
            <el-table-column label="混料自动跳转次数" min-width="110px" align="center" prop="混料自动跳转次数" />
            <el-table-column label="混料手动跳转次数" min-width="110px" align="center" prop="混料手动跳转次数" />
            <el-table-column label="取消次数" min-width="110px" align="center" prop="取消次数" />
            <el-table-column label="方差" min-width="110px" align="center" prop="方差" />
          </el-table>
          <!-- <pagination v-show="tab.table.total>=0" :total="tab.table.total" :page.sync="tab.table.getdataListParm.offset" :limit.sync="tab.table.getdataListParm.pagecount" @pagination="getTabList" /> -->
          <h4>撒料</h4>
          <el-table :key="tab.table2.tableKey" v-loading="tab.table2.listLoading" element-loading-text="给我一点时间" :data="tab.table2.list" border fit highlight-current-row style="width: 100%;" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
            <el-table-column v-if="tab.checked" label="日期" min-width="110px" align="center" prop="日期" />
            <el-table-column v-if="tab.isFormulaName" label="配方名称" min-width="110px" align="center" prop="配方名称" />
            <el-table-column v-if="tab.isHouseName" label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
            <el-table-column v-if="tab.isLivestockType" label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
            <el-table-column v-if="tab.isTrainNumber" label="车次" min-width="110px" align="center" prop="车次" />
            <el-table-column v-if="tab.isTrainNumber" label="班次" min-width="110px" align="center" prop="班次" />
            <el-table-column v-if="tab.isTrainNumber" label="TMR名称" min-width="110px" align="center" prop="TMR" />
            <el-table-column v-if="tab.isTrainNumber" label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
            <el-table-column label="理论重量" min-width="110px" align="center" prop="理论重量" />
            <el-table-column label="实际重量" min-width="110px" align="center" prop="实际重量" />
            <el-table-column label="计划撒料操作数" min-width="110px" align="center" prop="计划撒料操作数" />
            <el-table-column label="已撒料操作数" min-width="110px" align="center" prop="已撒料操作数" />
            <el-table-column label="撒料操作率" min-width="110px" align="center" prop="撒料操作率" />
            <el-table-column label="撒料误差值" min-width="110px" align="center" prop="撒料误差值" />
            <el-table-column label="撒料准确率" min-width="110px" align="center" prop="撒料准确率" />
            <el-table-column label="撒料自动跳转次数" min-width="110px" align="center" prop="撒料自动跳转次数" />
            <el-table-column label="撒料手动跳转次数" min-width="110px" align="center" prop="撒料手动跳转次数" />
          </el-table>
          <!-- <pagination v-show="tab.table2.total>=0" :total="tab.table2.total" :page.sync="tab.table2.getdataListParm.offset" :limit.sync="tab.table2.getdataListParm.pagecount" @pagination="getTabList2" /> -->
        </div>
        <div id="chartDate" style="height: 90px;" />
        <div class="AnalysisChart">
          <el-row :gutter="10">
            <el-col :span="2">
              <h4>图表查询时间:</h4>
            </el-col>
            <el-col :span="22" style="margin-bottom: 40px;">
              <el-date-picker v-model="tab.chartDate" :clearable="false" style="width: 250px;margin-right: 10px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
              <el-button class="successBorder" @click="handleChartDate">确认</el-button>
              <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
            </el-col>
          </el-row>
          <el-row :gutter="10">
            <!-- 计划统计 -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">计划统计</h4>
              <div>
                <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" @change="changeChartDate('chart2')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart2')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart2')">切换表格</el-button>
              </div>
              <div id="chartLine2" style="width:100%;height:400px;" />
              <div v-if="tab.chart2.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart2')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart2')">切换图表</el-button>
                <el-table :key="tab.chart2.table.tableKey" v-loading="tab.chart2.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart2.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
                  <el-table-column label="计划执行重量（kg）" sortable min-width="110px" align="center" prop="实际量" />
                  <el-table-column label="配方理论重量（kg）" sortable min-width="110px" align="center" prop="理论量" />
                  <el-table-column label="计划准确率" sortable min-width="110px" align="center" prop="field1" />
                  <el-table-column label="计划取消重量（kg）" sortable min-width="110px" align="center" prop="计划取消重量" />
                  <el-table-column label="计划准确率（去除取消重量）" sortable min-width="110px" align="center" prop="field3" />
                  <el-table-column label="计划正确数" sortable min-width="110px" align="center" prop="正确数" />
                  <el-table-column label="计划数" sortable min-width="110px" align="center" prop="计划数" />
                  <el-table-column label="计划正确率" sortable min-width="110px" align="center" prop="field2" />
                </el-table>
              </div>
            </el-col>
            <!-- 配方准确率 -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">配方准确率</h4>
              <div>
                <el-select v-model="tab.chart1.getdataListParm.parammaps.statisticsList" style="width: 200px;margin-right: 5px;" multiple collapse-tags placeholder="请选择统计参数" @visible-change="changeStatisticChart1()">
                  <el-option v-for="(item,index) in tab.chart1.statisticsList" :key="item.name" :label="item.name" :value="item.name" />
                </el-select>
                <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.inputDatetime" style="width: 250px;" class="inputDatetime filter-item" :clearable="false" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart1')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart1')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart1')">切换表格</el-button>
              </div>
              <div id="chartLine1" style="width:100%;height:400px;" />
              <div v-if="tab.chart1.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart1')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart1')">切换图表</el-button>
                <el-table :key="tab.chart1.table.tableKey" v-loading="tab.chart1.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart1.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
                  <el-table-column label="配方名称" sortable min-width="90px" align="center" prop="名称" />
                  <el-table-column label="计划重量（kg）" sortable min-width="100px" align="center" prop="理论量" />
                  <el-table-column label="实际重量（kg）" sortable min-width="100px" align="center" prop="实际量" />
                  <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
                </el-table>
              </div>
            </el-col>
          </el-row>
          <el-row :gutter="10">
            <!-- 牛群准确率 -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">牛群准确率</h4>
              <div>
                <el-select v-model="tab.chart3.getdataListParm.parammaps.statisticsList" style="width: 200px;margin-right: 5px;" multiple collapse-tags placeholder="请选择统计参数" @visible-change="changeStatisticChart3()">
                  <el-option v-for="(item,index) in tab.chart3.statisticsList" :key="item.name" :label="item.name" :value="item.name" />
                </el-select>
                <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.inputDatetime" style="width: 250px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart3')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart3')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart3')">切换表格</el-button>
              </div>
              <div id="chartLine3" style="width:100%;height:400px;" />
              <div v-if="tab.chart3.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart3')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart3')">切换图表</el-button>
                <el-table :key="tab.chart3.table.tableKey" v-loading="tab.chart3.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart3.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
                  <el-table-column label="牲畜类别" sortable min-width="90px" align="center" prop="名称" />
                  <el-table-column label="计划重量（kg）" sortable min-width="100px" align="center" prop="理论量" />
                  <el-table-column label="实际重量（kg）" sortable min-width="100px" align="center" prop="实际量" />
                  <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
                </el-table>
              </div>
            </el-col>
            <!-- 车辆准确率（重量） -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">车辆准确率（重量）</h4>
              <div>
                <el-select v-model="tab.chart4.getdataListParm.parammaps.statisticsList" style="width: 200px;margin-right: 5px;" multiple collapse-tags placeholder="请选择统计参数" @visible-change="changeStatisticChart4()">
                  <el-option v-for="(item,index) in tab.chart4.statisticsList" :key="item.name" :label="item.name" :value="item.name" />
                </el-select>
                <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart4')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart4')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart4')">切换表格</el-button>
              </div>
              <div id="chartLine4" style="width:100%;height:400px;" />
              <div v-if="tab.chart4.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart4')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart4')">切换图表</el-button>
                <el-table :key="tab.chart4.table.tableKey" v-loading="tab.chart4.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart4.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
                  <el-table-column label="车次" sortable min-width="90px" align="center" prop="名称" />
                  <el-table-column label="计划重量（kg）" sortable min-width="100px" align="center" prop="理论量" />
                  <el-table-column label="实际重量（kg）" sortable min-width="100px" align="center" prop="实际量" />
                  <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
                </el-table>
              </div>
            </el-col>
          </el-row>

          <el-row :gutter="10">
            <!-- 混料统计 -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">混料统计</h4>
              <div>
                <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart5')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart5')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart5')">切换表格</el-button>
              </div>
              <div id="chartLine5" style="width:100%;height:400px;" />
              <div v-if="tab.chart5.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart5')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart5')">切换图表</el-button>
                <el-table :key="tab.chart5.table.tableKey" v-loading="tab.chart5.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart5.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="100px" align="center" prop="日期" />
                  <el-table-column label="自动跳转次数" sortable min-width="130px" align="center" prop="field1" />
                  <el-table-column label="手动跳转次数" sortable min-width="130px" align="center" prop="field2" />
                  <el-table-column label="自动跳转理论重量" sortable min-width="110px" align="center" prop="理论自动" />
                  <el-table-column label="自动跳转实际重量" sortable min-width="110px" align="center" prop="实际自动" />
                  <el-table-column label="自动跳转准确率" sortable min-width="110px" align="center" prop="field3" />
                  <el-table-column label="手动跳转理论重量" sortable min-width="110px" align="center" prop="理论手动" />
                  <el-table-column label="手动跳转实际重量" sortable min-width="110px" align="center" prop="实际手动" />
                  <el-table-column label="手动跳转准确率" sortable min-width="110px" align="center" prop="field4" />
                </el-table>
              </div>
            </el-col>
            <!-- 混料计划取消次数 -->
            <el-col :span="12" style="position: relative;">
              <h4 style="text-align:center;">混料计划取消次数</h4>
              <div>
                <el-date-picker v-model="tab.chart6.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart6')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart6')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart6')">切换表格</el-button>
              </div>
              <div id="chartLine6" style="width:100%;height:400px;" />
              <div v-if="tab.chart6.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart6')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart6')">切换图表</el-button>
                <el-table :key="tab.chart6.table.tableKey" v-loading="tab.chart6.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart6.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
                  <el-table-column label="混料计划取消次数" sortable min-width="110px" align="center" prop="field1" />
                </el-table>
              </div>
            </el-col>
          </el-row>

          <el-row :gutter="10">
            <!-- 栏舍撒料时间统计 -->
            <el-col :span="24" style="position: relative;">
              <h4 style="text-align:center;">栏舍撒料时间统计</h4>
              <div>
                <el-select v-model="tab.chart7.getdataListParm.parammaps.statisticsList" style="width: 200px;margin-right: 5px;" multiple collapse-tags placeholder="请选择统计参数" @visible-change="changeStatisticChart7()">
                  <el-option v-for="(item,index) in tab.chart7.statisticsList" :key="item.name" :label="item.name" :value="item.name" />
                </el-select>
                <el-date-picker v-model="tab.chart7.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart7')" />
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart7')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleTable('chart7')">切换表格</el-button>
              </div>
              <div id="chartLine7" style="width:100%;height:400px;" />
              <div v-if="tab.chart7.isTable" class="table" style="width: 100%;z-index: 1;position: absolute;top:19px;right: 0;">
                <el-button type="text" style="float: right;margin-right: 5px;" @click="form_export('chart7')">导出</el-button>
                <el-button type="text" style="float: right;margin-right: 5px;" @click="handleChart('chart7')">切换图表</el-button>
                <el-table :key="tab.chart7.table.tableKey" v-loading="tab.chart7.table.listLoading" element-loading-text="给我一点时间" :data="tab.chart7.table.list" border fit highlight-current-row style="width: 100%;" height="430" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
                  <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
                  <el-table-column label="栏舍" sortable min-width="110px" align="center" prop="fname" />
                  <el-table-column label="撒料时间" sortable min-width="110px" align="center" prop="撒料时间" />
                </el-table>
              </div>
            </el-col>
          </el-row>
        </div>
      </el-tab-pane>
      <el-tab-pane label="混料统计" name="second">
        <div class="search">
          <el-date-picker v-model="tab2.table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="float: left;margin-right: 10px;margin-bottom:10px;width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
          <el-input v-model="tab2.table.getdataListParm.parammaps.tmrtname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 130px;" placeholder="TMR名称" class="filter-item" clearable />
          <el-input v-model="tab2.table.getdataListParm.parammaps.projname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 130px;" placeholder="车次" class="filter-item" clearable />
          <el-select v-model="tab2.table.getdataListParm.parammaps.times" style="float: left;margin-right: 10px;margin-bottom:10px;width: 150px;" filterable placeholder="班次" class="filter-item" clearable>
            <el-option v-for="(item,index) in tab2.frequencyList" :key="index" :label="item.name" :value="item.id" />
          </el-select>
          <el-input v-model="tab2.table.getdataListParm.parammaps.templetname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 130px;" placeholder="配方名称" class="filter-item" clearable />
          <el-select v-model="tab2.table.getdataListParm.parammaps.buttontype" style="float: left;margin-right: 10px;margin-bottom:10px;" filterable placeholder="跳转方式" class="filter-item" clearable>
            <el-option v-for="(item,index) in tab2.jumpModeList" :key="index" :label="item.name" :value="item.id" />
          </el-select>
          <el-button class="successBorder" style="float: left;margin-right: 10px;margin-bottom:10px;" @click="form_search2">查询</el-button>
          <el-button class="successBorder" style="float: left;margin-right: 10px;margin-bottom:10px;" @click="form_clear2">重置</el-button>
          <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="form_export2">导出</el-button>
        </div>

        <div class="table">
          <el-table :key="tab2.table.tableKey" v-loading="tab2.table.listLoading" element-loading-text="给我一点时间" :data="tab2.table.list" border fit highlight-current-row style="width: 100%;" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
            <el-table-column label="日期" min-width="110px" align="center" prop="日期" />
            <el-table-column label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
            <el-table-column label="车次" min-width="110px" align="center" prop="车次" />
            <el-table-column label="班次" min-width="110px" align="center" prop="班次" />
            <el-table-column label="配方名称" min-width="110px" align="center" prop="配方名称" />
            <el-table-column label="饲料" min-width="110px" align="center" prop="饲料" />
            <el-table-column label="理论重量" min-width="110px" align="center" prop="理论重量" />
            <el-table-column label="实际重量" min-width="110px" align="center" prop="实际重量" />
            <el-table-column label="误差值" min-width="110px" align="center" prop="误差值" />
            <el-table-column label="准确率" min-width="110px" align="center" prop="准确率" />
            <el-table-column label="计划时间" min-width="110px" align="center" prop="计划时间" />
            <el-table-column label="开始时间" min-width="110px" align="center" prop="开始时间" />
            <el-table-column label="结束时间" min-width="110px" align="center" prop="结束时间" />
            <el-table-column label="跳转方式" min-width="110px" align="center" prop="跳转方式" />
            <el-table-column label="开始重量" min-width="110px" align="center" prop="开始重量" />
            <el-table-column label="结束重量" min-width="110px" align="center" prop="结束重量" />
          </el-table>
          <!-- <pagination v-show="tab2.table.total>=0" :total="tab2.table.total" :page.sync="tab2.table.getdataListParm.offset" :limit.sync="tab2.table.getdataListParm.pagecount" @pagination="getTab2List" /> -->
        </div>
      </el-tab-pane>
      <el-tab-pane label="撒料统计" name="third">
        <div class="search">
          <el-date-picker v-model="tab3.table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="float: left;margin-right: 10px;margin-bottom:10px;width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
          <el-input v-model="tab3.table.getdataListParm.parammaps.tmrtname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 110px;" placeholder="TMR名称" class="filter-item" clearable />
          <el-input v-model="tab3.table.getdataListParm.parammaps.projname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 110px;" placeholder="车次" class="filter-item" clearable />
          <el-select v-model="tab3.table.getdataListParm.parammaps.times" style="float: left;margin-right: 10px;margin-bottom:10px;width: 100px;" filterable placeholder="班次" class="filter-item" clearable>
            <el-option v-for="(item,index) in tab3.frequencyList" :key="index" :label="item.name" :value="item.id" />
          </el-select>
          <el-input v-model="tab3.table.getdataListParm.parammaps.templetname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 110px;" placeholder="配方名称" class="filter-item" clearable />
          <el-input v-model="tab3.table.getdataListParm.parammaps.fname" style="float: left;margin-right: 10px;margin-bottom:10px;width: 110px;" placeholder="栏舍名称" class="filter-item" clearable />
          <el-select v-model="tab3.table.getdataListParm.parammaps.buttontype" style="float: left;margin-right: 10px;margin-bottom:10px;width: 110px;" filterable placeholder="跳转方式" class="filter-item" clearable>
            <el-option v-for="(item,index) in tab3.jumpModeList" :key="index" :label="item.name" :value="item.id" />
          </el-select>
          <el-button class="successBorder" style="float: left;margin-right: 10px;margin-bottom:10px;" @click="form_search3">查询</el-button>
          <el-button class="successBorder" style="float: left;margin-right: 10px;margin-bottom:10px;" @click="form_clear3">重置</el-button>
          <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="form_export3">导出</el-button>
        </div>
        <div class="table">
          <el-table :key="tab3.table.tableKey" v-loading="tab3.table.listLoading" element-loading-text="给我一点时间" :data="tab3.table.list" border fit highlight-current-row style="width: 100%;" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed">
            <el-table-column label="日期" min-width="110px" align="center" prop="日期" />
            <el-table-column label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
            <el-table-column label="车次" min-width="110px" align="center" prop="车次" />
            <el-table-column label="班次" min-width="110px" align="center" prop="班次" />
            <el-table-column label="配方名称" min-width="110px" align="center" prop="配方名称" />
            <el-table-column label="栏舍" min-width="110px" align="center" prop="栏舍" />
            <el-table-column label="理论重量" min-width="110px" align="center" prop="理论重量" />
            <el-table-column label="实际重量" min-width="110px" align="center" prop="实际重量" />
            <el-table-column label="误差值" min-width="110px" align="center" prop="误差值" />
            <el-table-column label="准确率" min-width="110px" align="center" prop="准确率" />
            <el-table-column label="开始时间" min-width="110px" align="center" prop="开始时间" />
            <el-table-column label="结束时间" min-width="110px" align="center" prop="结束时间" />
            <el-table-column label="跳转方式" min-width="110px" align="center" prop="跳转方式" />
            <el-table-column label="开始重量" min-width="110px" align="center" prop="开始重量" />
            <el-table-column label="结束重量" min-width="110px" align="center" prop="结束重量" />
          </el-table>
          <!-- <pagination v-show="tab3.table.total>=0" :total="tab3.table.total" :page.sync="tab3.table.getdataListParm.offset" :limit.sync="tab3.table.getdataListParm.pagecount" @pagination="getTab3List" /> -->
        </div>
      </el-tab-pane>
    </el-tabs>
  </div>

</template>

<script>
import echarts from 'echarts'

require('echarts/theme/macarons')
import { GetDataByName, GetReportform } from '@/api/common'
import Cookies from 'js-cookie'
import { parseTime } from '@/utils/index.js'
import Pagination from '@/components/Pagination'
import { json2excel } from '@/utils/index.js'
import { MessageBox } from 'element-ui'
export default {
  name: 'ErrorAnalysis',
  components: { Pagination },
  data() {
    return {
      pickerMinDate: '',
      pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
          this.pickerMinDate = minDate.getTime()
          if (maxDate) {
            this.pickerMinDate = ''
          }
        },
        // 限制不能选择今天之后的日期
        disabledDate: (time) => {
          if (this.pickerMinDate !== '') {
            const one = 31 * 24 * 3600 * 1000
            const minTime = this.pickerMinDate - one
            let maxTime = this.pickerMinDate + one
            if (maxTime > new Date()) {
              maxTime = new Date()
            }
            return time.getTime() < minTime || time.getTime() > maxTime
          }
          return time.getTime() > Date.now()
        }
      },
      // 班次
      maxTime: {
        getMaxTimesParm: {
          name: 'getSysoptEnable',
          page: 1,
          offset: 1,
          pagecount: 1,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'times'
          }
        }
      },
      activeName: 'first',
      tab: {
        radio: '1',
        isFormulaName: true, // 配方名称
        isHouseName: false, // 栏舍名称
        isLivestockType: false, // 牲畜类别
        isTrainNumber: false, // 车次
        checked: false, // 按日期统计
        table: {
          getdataListParm: {
            name: 'getAccuracyHFT',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()],
              fname: '',
              sort: '',
              times: ''
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          temp: {}
        },

        table2: {
          getdataListParm: {
            name: 'getAccuracySFT',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()],
              fname: '',
              sort: '',
              times: ''
            }
          },
          tableKey: 2,
          list: [],
          total: 0,
          listLoading: true,
          temp: {}
        },
        chartDate: [],
        // 配方准确率
        chart1: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllFT',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          statisticsList: [],
          chart1Data3: [],
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },

        // 计划统计
        chart2: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllJH',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },
        // 牛群准确率
        chart3: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllNQ',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          statisticsList: [],
          chart1Data3: [],
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },
        // 车辆准确率（重量）
        chart4: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllCC',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          statisticsList: [],
          chart4Data3: [],
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },
        // 混料统计
        chart5: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllHL',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },
        // 混料计划取消次数
        chart6: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllQX',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        },
        // 栏舍撒料时间统计
        chart7: {
          chartLine: null,
          chartLine_data: {},
          getdataListParm: {
            name: 'getAccuracyAllLS',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()]
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          statisticsList: [],
          chart7Data3: [],
          isChart: true,
          isTable: false,
          table: {
            tableKey: 1,
            list: [],
            total: 0,
            listLoading: false
          }
        }

      },

      tab2: {
        table: {
          getdataListParm: {
            name: 'getStatisticsHL',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()],
              tmrtname: '',
              projname: '',
              times: '',
              buttontype: '',
              templetname: ''
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          temp: {}
        },
        frequencyList: [],
        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }]
      },
      tab3: {
        table: {
          getdataListParm: {
            name: 'getStatisticsSL',
            page: 1,
            offset: 1,
            pagecount: '',
            returntype: 'Map',
            parammaps: {
              pastureid: Cookies.get('pastureid'),
              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
              inputDatetime: [new Date(), new Date()],
              tmrtname: '',
              projname: '',
              times: '',
              templetname: '',
              fname: '',
              buttontype: ''
            }
          },
          tableKey: 1,
          list: [],
          total: 0,
          listLoading: true,
          temp: {}
        },
        frequencyList: [],
        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }]
      },
      rowStyle: { maxHeight: 50 + 'px', height: 45 + 'px' },
      cellStyle: { padding: 0 + 'px' }
    }
  },

  created() {
    this.getTimeFn()
    this.getIsDisplay()
    this.getTabList()
    this.getTabList2()
    this.getChart1()
    this.getChart2()
    this.getChart3()
    this.getChart4()
    this.getChart5()
    this.getChart6()
    this.getChart7()
  },
  mounted() {

  },
  methods: {
    getTimeFn() {
      const that = this
      const start = new Date()
      const end = new Date()
      const start2 = new Date()
      const end2 = new Date()
      start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
      end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
      that.tab.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
      that.tab.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
      that.tab.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
      that.tab.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')

      that.tab2.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
      that.tab2.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
      that.tab2.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
      that.tab2.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')

      that.tab3.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
      that.tab3.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
      that.tab3.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
      that.tab3.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')

      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
      that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')

      that.tab.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')

      that.tab.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')

      that.tab.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')

      that.tab.chart6.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart6.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart6.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart6.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')

      that.tab.chart7.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart7.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
      that.tab.chart7.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
      that.tab.chart7.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
    },
    getIsDisplay() {
      GetDataByName(this.maxTime.getMaxTimesParm).then(response => {
        if (response.data.list[0].inforvalue == 1) {
          this.tab2.frequencyList = [{ id: '1', name: '第一班' }]
          this.tab3.frequencyList = [{ id: '1', name: '第一班' }]
        } else if (response.data.list[0].inforvalue == 2) {
          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
        } else if (response.data.list[0].inforvalue == 3) {
          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
        } else if (response.data.list[0].inforvalue == 4) {
          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
        }
      })
    },
    // 导出
    handleDownload() {
      if (this.tab.radio == '1') {
        var excelDatas = [
          {
            tHeader: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            filterVal: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            tableDatas: this.tab.table.list,
            sheetName: '混料'
          },
          {
            tHeader: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            filterVal: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            tableDatas: this.tab.table2.list,
            sheetName: '撒料'
          }
        ]
        json2excel(excelDatas, '汇总统计-配方名称', true, 'xlsx')
      } else if (this.tab.radio == '2') {
        var excelDatas2 = [
          {
            tHeader: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            filterVal: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            tableDatas: this.tab.table.list,
            sheetName: '混料'
          },
          {
            tHeader: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            filterVal: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            tableDatas: this.tab.table2.list,
            sheetName: '撒料'
          }
        ]
        json2excel(excelDatas2, '汇总统计-栏舍名称', true, 'xlsx')
      } else if (this.tab.radio == '3') {
        var excelDatas3 = [
          {
            tHeader: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            filterVal: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            tableDatas: this.tab.table.list,
            sheetName: '混料'
          },
          {
            tHeader: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            filterVal: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            tableDatas: this.tab.table2.list,
            sheetName: '撒料'
          }
        ]
        json2excel(excelDatas3, '汇总统计-牲畜类别', true, 'xlsx')
      } else if (this.tab.radio == '4') {
        var excelDatas4 = [
          {
            tHeader: ['车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            filterVal: ['车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
            tableDatas: this.tab.table.list,
            sheetName: '混料'
          },
          {
            tHeader: ['车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            filterVal: ['车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数'],
            tableDatas: this.tab.table2.list,
            sheetName: '撒料'
          }
        ]
        json2excel(excelDatas4, '汇总统计-车次', true, 'xlsx')
      }
    },
    // 切换Tab
    handleTabClick() {
      if (this.activeName == 'first') {
        const start2 = new Date()
        const end2 = new Date()
        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
        end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
        this.tab.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
        this.tab.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
        this.tab.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
        this.tab.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
        this.tab.table.getdataListParm.parammaps.fname = ''
        this.tab.table.getdataListParm.parammaps.sort = ''
        this.tab.table.getdataListParm.parammaps.times = ''

        this.tab.table2.getdataListParm.parammaps.inputDatetime = [new Date(), new Date()]
        this.tab.table2.getdataListParm.parammaps.startTime = parseTime(new Date(), '{y}-{m}-{d}')
        this.tab.table2.getdataListParm.parammaps.stopTime = parseTime(new Date(), '{y}-{m}-{d}'),
          this.tab.table2.getdataListParm.parammaps.fname = ''
        this.tab.table2.getdataListParm.parammaps.sort = ''
        this.tab.table2.getdataListParm.parammaps.times = ''
        this.getTabList()
        this.getTabList2()
        this.getChart1()
        this.getChart2()
        this.getChart3()
        this.getChart4()
        this.getChart5()
        this.getChart6()
        this.getChart7()
      } else if (this.activeName == 'second') {
        const start2 = new Date()
        const end2 = new Date()
        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
        end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
        this.tab2.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
        this.tab2.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
        this.tab2.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
        this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
        this.tab2.table.getdataListParm.parammaps.tmrtname = ''
        this.tab2.table.getdataListParm.parammaps.projname = ''
        this.tab2.table.getdataListParm.parammaps.times = ''
        this.tab2.table.getdataListParm.parammaps.buttontype = ''
        this.tab2.table.getdataListParm.parammaps.templetname = ''
        this.getTab2List()
      } else if (this.activeName == 'third') {
        const start2 = new Date()
        const end2 = new Date()
        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
        end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
        this.tab3.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
        this.tab3.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
        this.tab3.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
        this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')

        this.tab3.table.getdataListParm.parammaps.tmrtname = ''
        this.tab3.table.getdataListParm.parammaps.projname = ''
        this.tab3.table.getdataListParm.parammaps.times = ''
        this.tab3.table.getdataListParm.parammaps.templetname = ''
        this.tab3.table.getdataListParm.parammaps.buttontype = ''
        this.getTab3List()
      }
    },
    // 切换统计类型
    changeRadio() {
      console.log(this.tab.radio)
      this.tab.table.getdataListParm.parammaps.sort = ''
      this.tab.table.getdataListParm.parammaps.times = ''
      this.tab.table.getdataListParm.parammaps.fname = ''
      if (this.tab.radio == '1') {
        console.log('配方名称')
        this.tab.isFormulaName = true
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHFT'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySFT'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.getTabList2()
      } else if (this.tab.radio == '2') {
        console.log('栏舍名称')
        this.tab.isFormulaName = false
        this.tab.isHouseName = true
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHNS'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySNS'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.getTabList2()
      } else if (this.tab.radio == '3') {
        console.log(' 牲畜类别')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = true
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHSC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySSC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      } else if (this.tab.radio == '4') {
        console.log('车次')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = true
        this.tab.table.getdataListParm.name = 'getAccuracyHCC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySCC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      }
    },
    // 按日期统计
    changeChecked() {
      // console.log(this.tab.checked)
      if (this.tab.radio == '1') {
        console.log('配方名称')
        this.tab.isFormulaName = true
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHFT'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySFT'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.getTabList2()
      } else if (this.tab.radio == '2') {
        console.log('栏舍名称')
        this.tab.isFormulaName = false
        this.tab.isHouseName = true
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHNS'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySNS'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.getTabList2()
      } else if (this.tab.radio == '3') {
        console.log(' 牲畜类别')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = true
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHSC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySSC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      } else if (this.tab.radio == '4') {
        console.log('车次')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = true
        this.tab.table.getdataListParm.name = 'getAccuracyHCC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySCC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      }
    },
    // 汇总统计/混料
    getTabList() {
      this.tab.table.listLoading = true
      GetDataByName(this.tab.table.getdataListParm).then(response => {
        console.log('汇总统计/混料table数据', response.data.list)
        if (response.data.list !== null) {
          this.tab.table.list = response.data.list
          // this.tab.table.total = response.data.total
        } else {
          this.tab.table.list = []
        }
        setTimeout(() => {
          this.tab.table.listLoading = false
        }, 100)
      })
    },
    // 汇总统计/撒料
    getTabList2() {
      this.tab.table2.listLoading = true
      GetDataByName(this.tab.table2.getdataListParm).then(response => {
        console.log('汇总统计/撒料table数据', response.data.list)
        if (response.data.list !== null) {
          this.tab.table2.list = response.data.list
          // this.tab.table2.total = response.data.total
        } else {
          this.tab.table2.list = []
        }
        setTimeout(() => {
          this.tab.table2.listLoading = false
        }, 100)
      })
    },
    // 查询
    form_search() {
      if (this.tab.radio == '1') {
        console.log('配方名称/查询')
        this.tab.isFormulaName = true
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHFT'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySFT'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      } else if (this.tab.radio == '2') {
        console.log('栏舍名称/查询')
        this.tab.isFormulaName = false
        this.tab.isHouseName = true
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHNS'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySNS'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      } else if (this.tab.radio == '3') {
        console.log(' 牲畜类别/查询')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = true
        this.tab.isTrainNumber = false
        this.tab.table.getdataListParm.name = 'getAccuracyHSC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySSC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      } else if (this.tab.radio == '4') {
        console.log('车次/查询')
        this.tab.isFormulaName = false
        this.tab.isHouseName = false
        this.tab.isLivestockType = false
        this.tab.isTrainNumber = true
        this.tab.table.getdataListParm.name = 'getAccuracyHCC'
        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
        } else {
          this.tab.table.getdataListParm.parammaps.inputDatetime = ''
          this.tab.table.getdataListParm.parammaps.startTime = ''
          this.tab.table.getdataListParm.parammaps.stopTime = ''
        }
        this.tab.table.getdataListParm.offset = 1
        this.getTabList()
        this.tab.table2.getdataListParm.name = 'getAccuracySCC'
        this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
        this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
        this.tab.table2.getdataListParm.offset = 1
        this.getTabList2()
      }
    },
    // 快速跳转到图表
    handleQuickJumpChart() {
      console.log(document.querySelector('#chartDate'))
      document.querySelector('#chartDate').scrollIntoView()
    },
    // 快速回到顶部
    handleQuickJumpTop() {
      window.scrollTo(0, 0)
    },
    // 图表总查询
    handleChartDate() {
      console.log('点击了确认时间')
      MessageBox.confirm('是否调整以下所有图表查询时间?', {
        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
      }).then(() => {
        var that = this
        var startTime = parseTime(this.tab.chartDate[0], '{y}-{m}-{d}')
        var stopTime = parseTime(this.tab.chartDate[1], '{y}-{m}-{d}')
        that.tab.chart1.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart1.getdataListParm.parammaps.startTime = startTime
        that.tab.chart1.getdataListParm.parammaps.stopTime = stopTime
        that.getChart1()
        that.tab.chart2.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart2.getdataListParm.parammaps.startTime = startTime
        that.tab.chart2.getdataListParm.parammaps.stopTime = stopTime
        that.getChart2()
        that.tab.chart3.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart3.getdataListParm.parammaps.startTime = startTime
        that.tab.chart3.getdataListParm.parammaps.stopTime = stopTime
        that.getChart3()
        that.tab.chart4.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart4.getdataListParm.parammaps.startTime = startTime
        that.tab.chart4.getdataListParm.parammaps.stopTime = stopTime
        that.getChart4()
        that.tab.chart5.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart5.getdataListParm.parammaps.startTime = startTime
        that.tab.chart5.getdataListParm.parammaps.stopTime = stopTime
        that.getChart5()
        that.tab.chart6.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart6.getdataListParm.parammaps.startTime = startTime
        that.tab.chart6.getdataListParm.parammaps.stopTime = stopTime
        that.getChart6()
        that.tab.chart7.getdataListParm.parammaps.inputDatetime = this.tab.chartDate
        that.tab.chart7.getdataListParm.parammaps.startTime = startTime
        that.tab.chart7.getdataListParm.parammaps.stopTime = stopTime
        that.getChart7()
      })
    },

    // 配方准确率
    changeStatisticChart1() {
      var arrData3 = []
      for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
        const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
        for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
          if (j == myId) {
            arrData3.push(this.tab.chart1.chart1Data3[j])
          }
        }
      }
      this.tab.chart1.chartLine_data.data3 = arrData3
      this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
      this.roadChartLine1(this.tab.chart1.chartLine_data)
    },
    getChart1() {
      this.tab.chart1.listLoading = true
      GetReportform(this.tab.chart1.getdataListParm).then(response => {
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.data.length; i++) {
            response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
          }
          this.tab.chart1.table.list = response.data.data
          this.tab.chart1.chartLine_data = response.data.list
          this.tab.chart1.statisticsList = []
          this.tab.chart1.getdataListParm.parammaps.statisticsList = []
          for (let i = 0; i < response.data.list.data1.length; i++) {
            if (i < 10) {
              this.tab.chart1.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
            }
            var obj = {}
            obj.id = i
            obj.name = response.data.list.data1[i]
            this.tab.chart1.statisticsList.push(obj)
          }
          this.tab.chart1.chart1Data3 = response.data.list.data3
          this.tab.chart1.total = response.data.total
          console.log('配方准确率表数据', this.tab.chart1.table.list)
          console.log('配方准确率图数据', this.tab.chart1.chartLine_data)
          var arrData3 = []
          for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
            const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
            for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
              if (j == myId) {
                arrData3.push(this.tab.chart1.chart1Data3[j])
              }
            }
          }
          this.tab.chart1.chartLine_data.data3 = arrData3
          this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
          this.roadChartLine1(this.tab.chart1.chartLine_data)
        } else {
          this.tab.chart1.list = []
        }
        setTimeout(() => {
          this.tab.chart1.listLoading = false
        }, 100)
      })
    },
    roadChartLine1(chartLine_data) {
      if (this.tab.chart1.chartLine != null) {
        this.tab.chart1.chartLine.dispose()
      }
      this.tab.chart1.chartLine = echarts.init(document.getElementById('chartLine1'))
      var option = {
        title: {
          text: ''
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: chartLine_data.data1,
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        toolbox: {
          show: true,
          right: '2%',
          feature: {}
        },
        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
        yAxis: {
          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
        },
        series: (function () {
          var serie = []
          for (var i = 0; i < chartLine_data.data3.length; i++) {
            var item = {
              name: chartLine_data.data1[i],
              type: 'line',
              data: chartLine_data.data3[i].data
            }
            serie.push(item)
          }
          return serie
        }())
      }
      this.tab.chart1.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart1.chartLine.resize()
      }
    },

    // 计划统计
    getChart2() {
      this.tab.chart2.listLoading = true
      GetReportform(this.tab.chart2.getdataListParm).then(response => {
        if (response.data.list !== null) {
          this.tab.chart2.table.list = response.data.data
          this.tab.chart2.chartLine_data = response.data.list
          this.tab.chart2.total = response.data.total
          console.log('计划统计图数据', this.tab.chart2.chartLine_data)
          console.log('计划统计表数据', this.tab.chart2.table.list)
          this.roadChartLine2(this.tab.chart2.chartLine_data)
        } else {
          this.tab.chart2.list = []
        }
        setTimeout(() => {
          this.tab.chart2.listLoading = false
        }, 100)
      })
    },
    roadChartLine2(chartLine_data) {
      if (this.tab.chart2.chartLine != null) {
        this.tab.chart2.chartLine.dispose()
      }
      this.tab.chart2.chartLine = echarts.init(document.getElementById('chartLine2'))
      var option = {
        title: {
          text: ''
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: ['计划准确率', '计划正确率', '计划准确率（去除取消重量）'],
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        toolbox: {
          show: true,
          right: '2%',
          feature: {}
        },
        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data1, name: '日期' },
        yAxis: {
          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
        },
        series: [
          { name: '计划准确率', type: 'line', data: chartLine_data.data2 },
          { name: '计划正确率', type: 'line', data: chartLine_data.data3 },
          { name: '计划准确率（去除取消重量）', type: 'line', data: chartLine_data.data4 }
        ]
      }
      this.tab.chart2.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart2.chartLine.resize()
      }
    },

    // 牛群准确率
    changeStatisticChart3() {
      var arrData3 = []
      for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
        const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
        for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
          if (j == myId) {
            arrData3.push(this.tab.chart3.chart3Data3[j])
          }
        }
      }
      this.tab.chart3.chartLine_data.data3 = arrData3
      this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
      this.roadChartLine3(this.tab.chart3.chartLine_data)
    },
    getChart3() {
      this.tab.chart3.listLoading = true
      GetReportform(this.tab.chart3.getdataListParm).then(response => {
        if (response.data.data !== null) {
          for (let i = 0; i < response.data.data.length; i++) {
            response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
          }
          this.tab.chart3.table.list = response.data.data
          this.tab.chart3.chartLine_data = response.data.list
          this.tab.chart3.total = response.data.total
          this.tab.chart3.statisticsList = []
          this.tab.chart3.getdataListParm.parammaps.statisticsList = []
          for (let i = 0; i < response.data.list.data1.length; i++) {
            if (i < 10) {
              this.tab.chart3.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
            }
            var obj = {}
            obj.id = i
            obj.name = response.data.list.data1[i]
            this.tab.chart3.statisticsList.push(obj)
          }
          this.tab.chart3.chart3Data3 = response.data.list.data3
          this.tab.chart3.total = response.data.total
          console.log('牛群准确率图数据', this.tab.chart3.chartLine_data)
          console.log('牛群准确率表数据', this.tab.chart3.table.list)
          var arrData3 = []
          for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
            const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
            for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
              if (j == myId) {
                arrData3.push(this.tab.chart3.chart3Data3[j])
              }
            }
          }
          this.tab.chart3.chartLine_data.data3 = arrData3
          this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
          this.roadChartLine3(this.tab.chart3.chartLine_data)
        } else {
          this.tab.chart3.list = []
        }
        setTimeout(() => {
          this.tab.chart3.listLoading = false
        }, 100)
      })
    },
    roadChartLine3(chartLine_data) {
      if (this.tab.chart3.chartLine != null) {
        this.tab.chart3.chartLine.dispose()
      }
      this.tab.chart3.chartLine = echarts.init(document.getElementById('chartLine3'))
      var option = {
        title: {
          text: ''
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: chartLine_data.data1,
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        toolbox: {
          show: true,
          right: '2%',
          feature: {}
        },
        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
        yAxis: {
          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
        },
        series: (function () {
          var serie = []
          for (var i = 0; i < chartLine_data.data3.length; i++) {
            var item = {
              name: chartLine_data.data1[i],
              type: 'line',
              data: chartLine_data.data3[i].data
            }
            serie.push(item)
          }
          return serie
        }())
      }
      this.tab.chart3.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart3.chartLine.resize()
      }
    },

    // 车辆准确率（重量）
    changeStatisticChart4() {
      var arrData3 = []
      for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
        const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
        for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
          if (j == myId) {
            arrData3.push(this.tab.chart4.chart4Data3[j])
          }
        }
      }
      this.tab.chart4.chartLine_data.data3 = arrData3
      this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
      this.roadChartLine4(this.tab.chart4.chartLine_data)
    },
    getChart4() {
      this.tab.chart4.listLoading = true
      GetReportform(this.tab.chart4.getdataListParm).then(response => {
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.data.length; i++) {
            response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
          }
          this.tab.chart4.table.list = response.data.data
          this.tab.chart4.chartLine_data = response.data.list
          this.tab.chart4.total = response.data.total
          this.tab.chart4.statisticsList = []
          this.tab.chart4.getdataListParm.parammaps.statisticsList = []
          for (let i = 0; i < response.data.list.data1.length; i++) {
            if (i < 10) {
              this.tab.chart4.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
            }
            var obj = {}
            obj.id = i
            obj.name = response.data.list.data1[i]
            this.tab.chart4.statisticsList.push(obj)
          }
          this.tab.chart4.chart4Data3 = response.data.list.data3
          this.tab.chart4.total = response.data.total
          console.log('车辆准确率（重量）图', this.tab.chart4.chartLine_data)
          console.log('车辆准确率（重量）表', this.tab.chart4.table.list)
          var arrData3 = []
          for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
            const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
            for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
              if (j == myId) {
                arrData3.push(this.tab.chart4.chart4Data3[j])
              }
            }
          }
          this.tab.chart4.chartLine_data.data3 = arrData3
          this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
          this.roadChartLine4(this.tab.chart4.chartLine_data)
        } else {
          this.tab.chart4.list = []
        }
        setTimeout(() => {
          this.tab.chart4.listLoading = false
        }, 100)
      })
    },
    roadChartLine4(chartLine_data) {
      if (this.tab.chart4.chartLine != null) {
        this.tab.chart4.chartLine.dispose()
      }
      this.tab.chart4.chartLine = echarts.init(document.getElementById('chartLine4'))
      var option = {
        title: {
          text: ''
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: chartLine_data.data1,
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        toolbox: {
          show: true,
          right: '2%',
          feature: {}
        },
        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
        yAxis: {
          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
        },
        series: (function () {
          var serie = []
          for (var i = 0; i < chartLine_data.data3.length; i++) {
            var item = {
              name: chartLine_data.data1[i],
              type: 'line',
              data: chartLine_data.data3[i].data
            }
            serie.push(item)
          }
          return serie
        }())
      }
      this.tab.chart4.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart4.chartLine.resize()
      }
    },

    // 混料统计
    getChart5() {
      this.tab.chart5.listLoading = true
      GetReportform(this.tab.chart5.getdataListParm).then(response => {
        if (response.data.list !== null) {
          this.tab.chart5.table.list = response.data.data
          this.tab.chart5.chartLine_data = response.data.list
          this.tab.chart5.total = response.data.total
          console.log('混料统计图', this.tab.chart5.chartLine_data)
          console.log('混料统计表', this.tab.chart5.table.list)
          this.roadChartLine5(this.tab.chart5.chartLine_data)
        } else {
          this.tab.chart5.list = []
        }
        setTimeout(() => {
          this.tab.chart5.listLoading = false
        }, 100)
      })
    },
    roadChartLine5(chartLine_data) {
      if (this.tab.chart5.chartLine != null) {
        this.tab.chart5.chartLine.dispose()
      }
      this.tab.chart5.chartLine = echarts.init(document.getElementById('chartLine5'))
      var option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            crossStyle: {
              color: '#999'
            }
          }
        },
        toolbox: {
          feature: {}
        },
        legend: {
          data: ['自动跳转次数', '手动跳转次数', '自动跳转准确率', '手动跳转准确率']
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        xAxis: [
          {
            type: 'category',
            data: chartLine_data.data1,
            axisPointer: {
              type: 'shadow'
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            name: '跳转次数',
            axisLabel: {
              formatter: '{value}'
            }
          },
          {
            type: 'value',
            name: '混料准确率',
            min: 0,
            max: 100,
            interval: 10,
            axisLabel: {
              formatter: '{value} %'
            }
          }
        ],
        series: [
          {
            name: '自动跳转次数',
            type: 'bar',
            data: chartLine_data.data2
          },
          {
            name: '手动跳转次数',
            type: 'bar',
            data: chartLine_data.data3
          },
          {
            name: '自动跳转准确率',
            type: 'line',
            yAxisIndex: 1,
            data: chartLine_data.data4
          },
          {
            name: '手动跳转准确率',
            type: 'line',
            yAxisIndex: 1,
            data: chartLine_data.data5
          }
        ]
      }
      this.tab.chart5.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart5.chartLine.resize()
      }
    },

    // 混料计划取消次数
    getChart6() {
      this.tab.chart6.listLoading = true
      GetReportform(this.tab.chart6.getdataListParm).then(response => {
        if (response.data.list !== null) {
          this.tab.chart6.table.list = response.data.data
          this.tab.chart6.chartLine_data = response.data.list
          this.tab.chart6.total = response.data.total
          console.log('混料计划取消次数图', this.tab.chart6.chartLine_data)
          console.log('混料计划取消次数表', this.tab.chart6.table.list)
          this.roadChartLine6(this.tab.chart6.chartLine_data)
        } else {
          this.tab.chart6.list = []
        }
        setTimeout(() => {
          this.tab.chart6.listLoading = false
        }, 100)
      })
    },
    roadChartLine6(chartLine_data) {
      if (this.tab.chart6.chartLine != null) {
        this.tab.chart6.chartLine.dispose()
      }
      this.tab.chart6.chartLine = echarts.init(document.getElementById('chartLine6'))
      var option = {
        color: ['#3398DB'],
        tooltip: {
          trigger: 'axis',
          axisPointer: { // 坐标轴指示器，坐标轴触发有效
            type: 'shadow' // 默认为直线，可选为：'line' | 'shadow'
          }
        },
        legend: {
          data: ['取消次数'],
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        xAxis: [
          {
            name: '日期',
            type: 'category',
            data: chartLine_data.data1,
            axisTick: {
              alignWithLabel: true
            }
          }
        ],
        yAxis: [
          {
            name: '次数',
            interval: 1, // 会出现负数刻度
            min: 0,
            type: 'value'
          }
        ],
        series: [
          {
            name: '取消次数',
            type: 'bar',
            barWidth: '60%',
            data: chartLine_data.data2
          }
        ]
      }
      this.tab.chart6.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart6.chartLine.resize()
      }
    },

    // 栏舍撒料时间统计
    changeStatisticChart7() {
      var arrData3 = []
      for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
        const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
        for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
          if (j == myId) {
            arrData3.push(this.tab.chart7.chart7Data3[j])
          }
        }
      }
      this.tab.chart7.chartLine_data.data3 = arrData3
      this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
      this.roadChartLine7(this.tab.chart7.chartLine_data)
    },
    getChart7() {
      this.tab.chart7.listLoading = true
      GetReportform(this.tab.chart7.getdataListParm).then(response => {
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.data.length; i++) {
            // 撒料时间
            var b = []
            for (let j = 0; j <= response.data.data[i].准确率.length; j++) {
              // console.log(response.data.data[i].准确率)
              if (response.data.data[i].准确率.charAt(j) == '.') {
                b[j] = response.data.data[i].准确率.replace('.', ':')
              }
            }
            response.data.data[i].准确率 = b[b.length - 1]
            response.data.data[i].撒料时间 = response.data.data[i].准确率
          }
          this.tab.chart7.table.list = response.data.data
          this.tab.chart7.chartLine_data = response.data.list
          this.tab.chart7.statisticsList = []
          this.tab.chart7.getdataListParm.parammaps.statisticsList = []
          for (let i = 0; i < response.data.list.data1.length; i++) {
            if (i < 10) {
              this.tab.chart7.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
            }
            var obj = {}
            obj.id = i
            obj.name = response.data.list.data1[i]
            this.tab.chart7.statisticsList.push(obj)
          }
          this.tab.chart7.chart7Data3 = response.data.list.data3
          this.tab.chart7.total = response.data.total
          console.log('栏舍撒料时间统计图', this.tab.chart7.chartLine_data)
          console.log('栏舍撒料时间统计表', this.tab.chart7.table.list)
          var arrData3 = []
          for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
            const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
            for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
              if (j == myId) {
                arrData3.push(this.tab.chart7.chart7Data3[j])
              }
            }
          }
          this.tab.chart7.chartLine_data.data3 = arrData3
          this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
          this.roadChartLine7(this.tab.chart7.chartLine_data)
        } else {
          this.tab.chart7.list = []
        }
        setTimeout(() => {
          this.tab.chart7.listLoading = false
        }, 100)
      })
    },
    roadChartLine7(chartLine_data) {
      if (this.tab.chart7.chartLine != null) {
        this.tab.chart7.chartLine.dispose()
      }
      this.tab.chart7.chartLine = echarts.init(document.getElementById('chartLine7'))
      var option = {
        title: {
          text: ''
        },
        tooltip: {
          trigger: 'axis',
          formatter: function (params) {
            // console.log(params)
            var tip = params[0].name
            for (let i = 0; i < params.length; i++) {
              var b = []
              // var str = params[i].value
              for (let j = 0; j <= params[i].value.length; j++) {
                if (params[i].value !== '') {
                  if (params[i].value.charAt(j) == '.') {
                    b[j] = params[i].value.replace('.', ':')
                  }
                } else {
                  b[j] = ''
                }
              }
              tip += '<br>' + params[i].seriesName + ': ' + b[b.length - 1]
            }
            return tip
          }
        },
        legend: {
          data: chartLine_data.data1,
          right: 10
        },
        grid: {
          top: '20%',
          left: '5%',
          right: '8%',
          containLabel: true
        },
        toolbox: {
          show: true,
          right: '2%',
          feature: {}
        },
        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
        yAxis: [{
          type: '',
          name: '时间',
          mix: 0,
          max: 24,
          interval: 2,
          axisLabel: {
            formatter: function (value) {
              var texts = []
              if (value < 10) {
                texts.push('0' + value + ':00')
              } else {
                texts.push(value + ':00')
              }
              return texts
            }
          }
        }],
        series: (function () {
          var serie = []
          for (var i = 0; i < chartLine_data.data3.length; i++) {
            var item = {
              name: chartLine_data.data1[i],
              type: 'line',
              data: chartLine_data.data3[i].data
            }
            serie.push(item)
          }
          return serie
        }())
      }
      this.tab.chart7.chartLine.setOption(option)
      window.onresize = function () {
        this.tab.chart7.chartLine.resize()
      }
    },
    // 时间
    changeChartDate(item) {
      console.log(item)
      if (item == 'chart1') {
        if (this.tab.chart1.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart1.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart1.getdataListParm.parammaps.startTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart1()
        } else {
          this.tab.chart1.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart1.getdataListParm.parammaps.startTime = ''
          this.tab.chart1.getdataListParm.parammaps.stopTime = ''
          this.getChart1()
        }
      } else if (item == 'chart2') {
        if (this.tab.chart2.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart2.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart2.getdataListParm.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart2()
        } else {
          this.tab.chart2.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart2.getdataListParm.parammaps.startTime = ''
          this.tab.chart2.getdataListParm.parammaps.stopTime = ''
          this.getChart2()
        }
      } else if (item == 'chart3') {
        if (this.tab.chart3.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart3.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart3.getdataListParm.parammaps.startTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart3()
        } else {
          this.tab.chart3.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart3.getdataListParm.parammaps.startTime = ''
          this.tab.chart3.getdataListParm.parammaps.stopTime = ''
          this.getChart3()
        }
      } else if (item == 'chart4') {
        if (this.tab.chart4.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart4.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart4.getdataListParm.parammaps.startTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart4()
        } else {
          this.tab.chart4.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart4.getdataListParm.parammaps.startTime = ''
          this.tab.chart4.getdataListParm.parammaps.stopTime = ''
          this.getChart4()
        }
      } else if (item == 'chart5') {
        if (this.tab.chart5.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart5.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart5.getdataListParm.parammaps.startTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart5()
        } else {
          this.tab.chart5.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart5.getdataListParm.parammaps.startTime = ''
          this.tab.chart5.getdataListParm.parammaps.stopTime = ''
          this.getChart5()
        }
      } else if (item == 'chart6') {
        if (this.tab.chart6.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart6.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart6.getdataListParm.parammaps.startTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart6.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart6()
        } else {
          this.tab.chart6.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart6.getdataListParm.parammaps.startTime = ''
          this.tab.chart6.getdataListParm.parammaps.stopTime = ''
          this.getChart6()
        }
      } else if (item == 'chart7') {
        if (this.tab.chart6.getdataListParm.parammaps.inputDatetime !== '' && this.tab.chart7.getdataListParm.parammaps.inputDatetime !== null) {
          this.tab.chart7.getdataListParm.parammaps.startTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
          this.tab.chart7.getdataListParm.parammaps.stopTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
          this.getChart7()
        } else {
          this.tab.chart7.getdataListParm.parammaps.inputDatetime = ''
          this.tab.chart7.getdataListParm.parammaps.startTime = ''
          this.tab.chart7.getdataListParm.parammaps.stopTime = ''
          this.getChart7()
        }
      }
    },
    // 导出
    form_export(item) {
      if (item == 'chart1') {
        console.log('配方准确率导出')
        var excelDatasTabChart1 = [
          {
            tHeader: ['日期', '配方名称', '计划重量（kg）', '实际重量（kg）', '准确率'],
            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
            tableDatas: this.tab.chart1.table.list,
            sheetName: '配方准确率'
          }
        ]
        json2excel(excelDatasTabChart1, '配方准确率', true, 'xlsx')
      } else if (item == 'chart2') {
        console.log('计划统计导出')
        var excelDatasTabChart2 = [
          {
            tHeader: ['日期', '计划执行重量（kg）', '配方理论重量（kg）', '计划准确率', '计划取消重量（kg）', '计划准确率（去除取消重量）', '计划正确数', '计划数', '计划正确率'],
            filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
            tableDatas: this.tab.chart2.table.list,
            sheetName: '计划统计'
          }
        ]
        json2excel(excelDatasTabChart2, '计划统计', true, 'xlsx')
      } else if (item == 'chart3') {
        console.log('牛群准确率导出')
        var excelDatasTabChart3 = [
          {
            tHeader: ['日期', '牲畜类别', '计划重量（kg）', '实际重量（kg）', '准确率'],
            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
            tableDatas: this.tab.chart3.table.list,
            sheetName: '牛群准确率'
          }
        ]
        json2excel(excelDatasTabChart3, '牛群准确率', true, 'xlsx')
      } else if (item == 'chart4') {
        console.log('车辆准确率（重量）导出')
        var excelDatasTabChart4 = [
          {
            tHeader: ['日期', '车次', '计划重量（kg）', '实际重量（kg）', '准确率'],
            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
            tableDatas: this.tab.chart4.table.list,
            sheetName: '车辆准确率（重量）'
          }
        ]
        json2excel(excelDatasTabChart4, '车辆准确率（重量）', true, 'xlsx')
      } else if (item == 'chart5') {
        console.log('混料统计导出')
        var excelDatasTabChart5 = [
          {
            tHeader: ['日期', '自动跳转次数', '手动跳转次数', '自动跳转理论重量', '自动跳转实际重量', '自动跳转准确率', '手动跳转理论重量', '手动跳转实际重量', '手动跳转准确率'],
            filterVal: ['日期', 'field1', 'field2', '理论自动', '实际自动', 'field3', '理论手动', '实际手动', 'field4'],
            tableDatas: this.tab.chart5.table.list,
            sheetName: '混料统计'
          }
        ]
        json2excel(excelDatasTabChart5, '混料统计', true, 'xlsx')
      } else if (item == 'chart6') {
        console.log('混料计划取消次数导出')
        var excelDatasTabChart6 = [
          {
            tHeader: ['日期', '混料计划取消次数'],
            filterVal: ['日期', 'field1'],
            tableDatas: this.tab.chart6.table.list,
            sheetName: '混料计划取消次数'
          }
        ]
        json2excel(excelDatasTabChart6, '混料计划取消次数', true, 'xlsx')
      } else if (item == 'chart7') {
        console.log('栏舍撒料时间统计导出')
        var excelDatasTabChart7 = [
          {
            tHeader: ['日期', '栏舍', '撒料时间'],
            filterVal: ['日期', 'fname', '准确率'],
            tableDatas: this.tab.chart7.table.list,
            sheetName: '栏舍撒料时间统计'
          }
        ]
        json2excel(excelDatasTabChart7, '栏舍撒料时间统计', true, 'xlsx')
      }
    },
    // 切换表格
    handleTable(item) {
      // 显示切换表格
      if (item == 'chart1') {
        console.log('配方准确率表格')
        this.tab.chart1.isTable = true
        this.tab.chart1.isChart = false
      } else if (item == 'chart2') {
        console.log('计划统计表格')
        this.tab.chart2.isTable = true
        this.tab.chart2.isChart = false
      } else if (item == 'chart3') {
        console.log('牛群准确率表格')
        this.tab.chart3.isTable = true
        this.tab.chart3.isChart = false
      } else if (item == 'chart4') {
        console.log('车辆准确率（重量）表格')
        this.tab.chart4.isTable = true
        this.tab.chart4.isChart = false
      } else if (item == 'chart5') {
        console.log('混料统计表格')
        this.tab.chart5.isTable = true
        this.tab.chart5.isChart = false
      } else if (item == 'chart6') {
        console.log('混料计划取消次数表格')
        this.tab.chart6.isTable = true
        this.tab.chart6.isChart = false
      } else if (item == 'chart7') {
        console.log('栏舍撒料时间统计表格')
        this.tab.chart7.isTable = true
        this.tab.chart7.isChart = false
      }
    },
    // 切换图表
    handleChart(item) {
      // 显示切换图表
      if (item == 'chart1') {
        console.log('配方准确率图表')
        this.tab.chart1.isTable = false
        this.tab.chart1.isChart = true
      } else if (item == 'chart2') {
        console.log('计划统计图表')
        this.tab.chart2.isTable = false
        this.tab.chart2.isChart = true
      } else if (item == 'chart3') {
        console.log('牛群准确率图表')
        this.tab.chart3.isTable = false
        this.tab.chart3.isChart = true
      } else if (item == 'chart4') {
        console.log('车辆准确率（重量）图表')
        this.tab.chart4.isTable = false
        this.tab.chart4.isChart = true
      } else if (item == 'chart5') {
        console.log('混料统计图表')
        this.tab.chart5.isTable = false
        this.tab.chart5.isChart = true
      } else if (item == 'chart6') {
        console.log('混料计划取消次数图表')
        this.tab.chart6.isTable = false
        this.tab.chart6.isChart = true
      } else if (item == 'chart7') {
        console.log('栏舍撒料时间统计图表')
        this.tab.chart7.isTable = false
        this.tab.chart7.isChart = true
      }
    },

    // 混料统计
    getTab2List() {
      this.tab2.table.listLoading = true
      GetDataByName(this.tab2.table.getdataListParm).then(response => {
        console.log('混料统计table数据', response.data.list)
        if (response.data.list !== null) {
          this.tab2.table.list = response.data.list
          this.tab2.table.total = response.data.total
        } else {
          this.tab2.table.list = []
        }
        setTimeout(() => {
          this.tab2.table.listLoading = false
        }, 100)
      })
    },
    form_search2() {
      this.tab2.table.getdataListParm.name = 'getStatisticsHL'
      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
        console.log(this.tab2.table.getdataListParm.parammaps.inputDatetime)
        this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
        this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
      } else {
        this.tab2.table.getdataListParm.parammaps.inputDatetime = ''
        this.tab2.table.getdataListParm.parammaps.startTime = ''
        this.tab2.table.getdataListParm.parammaps.stopTime = ''
      }
      this.tab2.table.getdataListParm.offset = 1
      this.getTab2List()
    },
    form_clear2() {
      this.tab2.table.getdataListParm.parammaps.tmrtname = ''
      this.tab2.table.getdataListParm.parammaps.projname = ''
      this.tab2.table.getdataListParm.parammaps.times = ''
      this.tab2.table.getdataListParm.parammaps.templetname = ''
      this.tab2.table.getdataListParm.parammaps.buttontype = ''
      this.getTab2List()
    },
    form_export2() {
      var excelDatasTab2 = [
        {
          tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', ' 跳转方式', '开始重量', '结束重量'],
          filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量'],
          tableDatas: this.tab2.table.list,
          sheetName: '混料统计'
        }
      ]
      json2excel(excelDatasTab2, '混料统计', true, 'xlsx')
    },
    // 撒料统计
    getTab3List() {
      this.tab3.table.listLoading = true
      GetDataByName(this.tab3.table.getdataListParm).then(response => {
        console.log('撒料统计table数据', response.data.list)
        if (response.data.list !== null) {
          this.tab3.table.list = response.data.list
          this.tab3.table.total = response.data.total
        } else {
          this.tab3.table.list = []
        }
        setTimeout(() => {
          this.tab3.table.listLoading = false
        }, 100)
      })
    },
    form_search3() {
      this.tab3.table.getdataListParm.name = 'getStatisticsSL'
      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
        this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
        this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
      } else {
        this.tab3.table.getdataListParm.parammaps.inputDatetime = ''
        this.tab3.table.getdataListParm.parammaps.startTime = ''
        this.tab3.table.getdataListParm.parammaps.stopTime = ''
      }
      this.tab3.table.getdataListParm.offset = 1
      this.getTab3List()
    },
    form_clear3() {
      this.tab3.table.getdataListParm.parammaps.tmrtname = ''
      this.tab3.table.getdataListParm.parammaps.projname = ''
      this.tab3.table.getdataListParm.parammaps.times = ''
      this.tab3.table.getdataListParm.parammaps.templetname = ''
      this.tab3.table.getdataListParm.parammaps.buttontype = ''
      this.tab3.table.getdataListParm.parammaps.fname = ''
      this.getTab3List()
    },
    form_export3() {
      var excelDatasTab3 = [
        {
          tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量'],
          filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量'],
          tableDatas: this.tab3.table.list,
          sheetName: '撒料统计'
        }
      ]
      json2excel(excelDatasTab3, '撒料统计', true, 'xlsx')
    }

  }
}
</script>
<style lang="scss" scoped>
.search {
  margin-bottom: 10px;
}
</style>
