<template>
  <div class="app-container">
    <div class="operation">
      <!-- 临时隐藏 -->
      <!-- <el-button v-if="isRoleEdit" class="successBorder" style="float: left;" @click="handleNutritional">营养评估</el-button> -->
      <!-- 临时隐藏 -->
      <div class="search">
        <el-select
          v-model="table.getdataListParm.parammaps.barid"
          clearable
          filterable
          :placeholder="$t('formulationEvaluation.xzls')"
          style="width: 180px"
          class="filter-item"
        >
          <el-option
            v-for="item in barList"
            :key="item.id"
            :label="item.bname"
            :value="item.id"
          />
        </el-select>
        <el-select
          v-model="table.getdataListParm.parammaps.tname"
          clearable
          filterable
          :placeholder="$t('formulationEvaluation.qsrpfmc')"
          style="width: 180px"
          class="filter-item"
        >
          <el-option
            v-for="(item, index) in tnameList"
            :key="index"
            :label="item.tname"
            :value="item.tname"
          />
        </el-select>
        <!-- <el-input v-model="table.getdataListParm.parammaps.tname" :placeholder="$t('formulationEvaluation.qsrpfmc')" style="width: 180px;" class="filter-item" /> -->
        <el-button class="successBorder" @click="form_search">{{
          $t('common.query')
        }}</el-button>
        <el-button
          v-if="isRoleEdit"
          class="successBorder"
          @click="handleDryMatterRegulation"
          >{{ $t('dhedFormula.gwztj') }}</el-button
        >
        <el-button
          v-if="isRoleEdit && isSynchronous"
          class="successBorder"
          @click="handleSynchronous"
          >{{ $t('dhedFormula.rjntstb') }}</el-button
        >
        <el-button
          v-if="isRoleEdit && !isproportion"
          class="successBorder"
          @click="handle_batchEdit"
          >{{ $t('dhedFormula.plbj') }}</el-button
        >
        <el-button
          v-if="isRoleEdit && isproportion"
          icon="el-icon-folder-checked"
          class="success"
          @click="handle_batchEdit_save"
          >{{ $t('formulationEvaluation.save') }}</el-button
        >
        <el-button
          v-if="isRoleEdit && isproportion"
          icon="el-icon-close"
          class="sortCancel"
          @click="cancelChangeEdit"
          >{{ $t('formulationEvaluation.cancel') }}</el-button
        >
        <el-upload
          style="float: right"
          :headers="headers"
          :data="uploadData"
          :action="uploadExcelUrl"
          :show-file-list="false"
          :before-upload="beforeImport"
          :on-success="handleImportSuccess"
        >
          <el-button
            v-if="isRoleEdit"
            class="import"
            icon="el-icon-download"
            style="float: right"
            >{{ $t('formulationEvaluation.enter') }}</el-button
          >
        </el-upload>
        <el-dropdown style="float: right; margin-right: 10px">
          <el-button class="export" icon="el-icon-upload2">{{
            $t('formulationEvaluation.out')
          }}</el-button>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item @click.native="handleExport(1)">{{
              $t('formulationEvaluation.outmb')
            }}</el-dropdown-item>
            <el-dropdown-item @click.native="handleExport(2)">{{
              $t('formulationEvaluation.outsj')
            }}</el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
        <el-button
          class="export"
          style="margin-top: 10px"
          @click="handleHistoryRecords"
          >{{ $t('dhedFormula.lsjl') }}</el-button
        >
      </div>
    </div>
    <div class="search" />
    <div class="table">
      <el-table
        :key="table.tableKey"
        ref="table"
        v-loading="table.listLoading"
        :element-loading-text="$t('common.tableMsg')"
        :data="table.list"
        border
        fit
        highlight-current-row
        style="width: 100%"
        :row-style="rowStyle"
        :cell-style="cellStyle"
        class="elTable table-fixed"
        :max-height="myHeight"
        @header-click="headerClick"
        @selection-change="handleSelect"
        @cell-dblclick="celldblclick"
      >
        <el-table-column type="selection" width="40" />
        <el-table-column
          :key="1"
          :label="$t('formulationEvaluation.xh')"
          align="center"
          type="index"
          width="50px"
          class-name="small-padding fixed-width"
          fixed="left"
        />
        <el-table-column
          :label="$t('errorAnalysis.isHouseName')"
          min-width="60px"
          align="center"
          class-name="small-padding fixed-width"
          fixed="left"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.barname }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="2"
          :label="$t('dhedFormula.rjnts')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.softccount }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="3"
          :label="$t('feedingEfficiency.sjnts')"
          min-width="80px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.ccount
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.ccount"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurCcount(scope.row)"
              :placeholder="scope.row.placeholder_ccount"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          :key="4"
          :label="$t('dhedFormula.xs')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.ratio }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.ratio"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurRatio(scope.row)"
              :placeholder="scope.row.placeholder_ratio"
            />
          </template>
        </el-table-column>
        <el-table-column
          :key="5"
          :label="$t('dhedFormula.xsts')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.ccountratio }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.ccountratio"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurCcountratio(scope.row)"
              :placeholder="scope.row.placeholder_ccountratio"
            />
          </template>
        </el-table-column>
        <el-table-column
          :key="6"
          :label="$t('feedingEfficiency.pfmb')"
          min-width="100px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.ftname }}</span>
            <el-select
              v-if="scope.row.Edit"
              v-model="scope.row.ftid"
              filterable
              :placeholder="$t('feedingEfficiency.pfmb')"
              class="filter-item"
              style="width: 99%"
              @change="
                (value) => {
                  changeRecipeTemplate(value, scope.row)
                }
              "
            >
              <el-option
                v-for="item in recipeTemplateList"
                :key="item.id"
                :label="item.tname"
                :value="item.id"
              />
            </el-select>
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isPtsfname"
          :key="7"
          :label="$t('dhedFormula.blpf')"
          min-width="100px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.ptsfname }}</span>
            <el-select
              v-if="scope.row.Edit"
              v-model="scope.row.ptsfid"
              clearable
              filterable
              :placeholder="$t('dhedFormula.blpf')"
              class="filter-item"
              style="width: 100%; padding: 10px 0"
              @change="
                (value) => {
                  changeFeedingFormula(value, scope.row)
                }
              "
            >
              <el-option
                v-for="item in feedingFormulaList"
                :key="item.id"
                :label="item.tname"
                :value="item.id"
              />
            </el-select>
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW1"
          :key="8"
          :label="$t('dhedFormula.dybbl1')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r1
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r1"
              :disabled="scope.row.isOneWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 1)"
              :placeholder="scope.row.placeholder_r1"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW1"
          :key="9"
          :label="$t('dhedFormula.dybzl1')"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w1 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w1"
              :disabled="scope.row.isOneWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurWeight(scope.row, 1)"
              :placeholder="scope.row.placeholder_w1"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW1 && table.isPtsfname"
          :key="10"
          label="第一班补料重量"
          min-width="100px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.bw1
            }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw1"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw1"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW2"
          :key="11"
          :label="$t('dhedFormula.dybbl2')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r2
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r2"
              step="0.01"
              type="number"
              :disabled="scope.row.isTwoWeight"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 2)"
              :placeholder="scope.row.placeholder_r2"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW2"
          :key="12"
          :label="$t('dhedFormula.dybzl2')"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w2 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w2"
              :disabled="scope.row.isTwoWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurWeight(scope.row, 2)"
              :placeholder="scope.row.placeholder_w2"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW2 && table.isPtsfname"
          :key="13"
          label="第二班补料重量"
          min-width="100px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.bw2 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw2"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw2"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW3"
          :key="14"
          :label="$t('dhedFormula.dybbl3')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r3
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r3"
              step="0.01"
              type="number"
              :disabled="scope.row.isThreeWeight"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 3)"
              :placeholder="scope.row.placeholder_r3"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW3"
          :key="15"
          :label="$t('dhedFormula.dybzl3')"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w3 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w3"
              :disabled="scope.row.isThreeWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurWeight(scope.row, 3)"
              :placeholder="scope.row.placeholder_w3"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW3 && table.isPtsfname"
          :key="16"
          label="第三班补料重量"
          min-width="100px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.bw3 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw3"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw3"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW4"
          :key="17"
          :label="$t('dhedFormula.dybbl4')"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r4
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r4"
              step="0.01"
              type="number"
              :disabled="scope.row.isFourWeight"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 4)"
              :placeholder="scope.row.placeholder_r4"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW4"
          :key="18"
          :label="$t('dhedFormula.dybzl4')"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w4 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w4"
              :disabled="scope.row.isFourWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0; padding: 10px 0"
              @blur="blurWeight(scope.row, 4)"
              :placeholder="scope.row.placeholder_w4"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW4 && table.isPtsfname"
          :key="19"
          label="第四班补料重量"
          min-width="90px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.bw4 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw4"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw4"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW5"
          :key="20"
          label="第五班比例(%)"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r5
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r5"
              step="0.01"
              type="number"
              :disabled="scope.row.isFiveWeight"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 5)"
              :placeholder="scope.row.placeholder_r5"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW5"
          :key="21"
          label="第五班重量"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w5 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w5"
              :disabled="scope.row.isFiveWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0; padding: 10px 0"
              @blur="blurWeight(scope.row, 5)"
              :placeholder="scope.row.placeholder_w5"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW5 && table.isPtsfname"
          :key="22"
          label="第五班补料重量"
          min-width="90px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.bw5 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw5"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw5"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW6"
          :key="23"
          label="第六班比例(%)"
          min-width="85px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit && !isproportion">{{
              scope.row.r6
            }}</span>
            <el-input
              v-if="scope.row.Edit || isproportion"
              v-model="scope.row.r6"
              step="0.01"
              type="number"
              :disabled="scope.row.isSixWeight"
              style="width: 100%; padding: 10px 0"
              @blur="blurR(scope.row, 6)"
              :placeholder="scope.row.placeholder_r6"
              @focus="focusData(scope.row)"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW6"
          :key="24"
          label="第六班重量"
          min-width="100px"
          align="center"
          :render-header="renderHeader"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.w6 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.w6"
              :disabled="scope.row.isSixWeight"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0; padding: 10px 0"
              @blur="blurWeight(scope.row, 6)"
              :placeholder="scope.row.placeholder_w6"
            />
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isRW6 && table.isPtsfname"
          :key="25"
          label="第六班补料重量"
          min-width="90px"
          align="center"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.NoEdit">{{ scope.row.bw6 }}</span>
            <el-input
              v-if="scope.row.Edit"
              v-model="scope.row.bw6"
              :disabled="scope.row.ptsfid == '-1' || scope.row.ptsfid == ''"
              step="0.01"
              type="number"
              style="width: 100%; padding: 10px 0"
              @blur="blurBw(scope.row)"
              :placeholder="scope.row.placeholder_bw6"
            />
          </template>
        </el-table-column>
        <el-table-column
          :key="26"
          :label="$t('dhedFormula.swzbl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.sumr }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="27"
          :label="$t('dhedFormula.swtwl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.todayweight }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="28"
          :label="$t('dhedFormula.swpfzl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.ftweight }}</span>
          </template>
        </el-table-column>
        <el-table-column
          v-if="table.isPtsfname"
          :key="29"
          :label="$t('dhedFormula.blpfzl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.supplyweight }}</span>
          </template>
        </el-table-column>
        <!-- <el-table-column :key="22" label="投喂量" min-width="80px" align="center">
          <template slot-scope="scope">
            <span>{{ scope.row.feedweight }}</span>
          </template>
        </el-table-column> -->
        <el-table-column
          v-if="table.isPtsfname"
          :key="30"
          :label="$t('dhedFormula.bltwl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.todaysupplement }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="31"
          :label="$t('dhedFormula.rtwl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.todayfeed }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :key="32"
          :label="$t('dhedFormula.pfgwzzl')"
          min-width="60px"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.dryweight }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :label="$t('errorAnalysis.cz')"
          align="center"
          width="80"
          class-name="small-padding fixed-width"
          fixed="right"
        >
          <template slot-scope="{ row }">
            <el-button
              v-if="row.isUpdate && isRoleEdit"
              :disabled="isproportion"
              class="miniSuccess"
              icon="el-icon-edit-outline"
              @click="handleUpdate(row)"
            />
            <el-button
              v-if="row.isUpdateSave && isRoleEdit"
              :disabled="isokDisable"
              icon="el-icon-folder-checked"
              class="miniSuccess"
              @click="updateData(row)"
            />
            <span v-if="row.isUpdateSave && isRoleEdit" class="centerSpan"
              >|</span
            >
            <el-button
              v-if="row.isUpdateSave && isRoleEdit"
              class="minCancel"
              icon="el-icon-close"
              @click="updateCancel(row)"
            />
          </template>
        </el-table-column>
      </el-table>
      <!-- <pagination v-show="table.total>=0" :total="table.total" :page.sync="table.getdataListParm.offset" :limit.sync="table.getdataListParm.pagecount" @pagination="getList" /> -->
    </div>
    <!-- 历史记录 -->
    <el-dialog
      :fullscreen="dialogFull"
      :destroy-on-close="true"
      :visible.sync="history.dialogFormVisible"
      :close-on-click-modal="false"
      width="90%"
    >
      <template slot="title">
        <div class="avue-crud__dialog__header">
          <span class="el-dialog__title">
            <span
              style="
                display: inline-block;
                width: 3px;
                height: 20px;
                margin-right: 5px;
                float: left;
                margin-top: 2px;
              "
            />
            {{ textMap[history.dialogStatus] }}
          </span>
          <div
            class="avue-crud__dialog__menu"
            @click="dialogFull ? (dialogFull = false) : (dialogFull = true)"
          >
            <svg-icon v-if="dialogFull" icon-class="exit-fullscreen" />
            <svg-icon v-else icon-class="fullscreen" />
          </div>
        </div>
      </template>
      <div class="app-history">
        <div class="search">
          <el-date-picker
            v-model="history.getdataListParm.parammaps.date"
            type="date"
            :placeholder="$t('formulationEvaluation.lssjjl')"
            :clearable="false"
            style="width: 180px"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            @change="changeDate"
          />
          <!-- <el-select v-model="history.getdataListParm.parammaps.barid" clearable filterable :placeholder="$t('formulationEvaluation.xzls')" style="width: 180px;" class="filter-item">
            <el-option v-for="item in barList" :key="item.id" :label="item.bname" :value="item.id" />
          </el-select>
          <el-input v-model="history.getdataListParm.parammaps.tname" :placeholder="$t('formulationEvaluation.qsrpfmc')" style="width: 180px;" class="filter-item" />
          <el-button class="successBorder" @click="handleHistorySearch">{{$t('common.query')}}</el-button> -->
          <!-- <el-button class="successBorder" @click="handleApplication">应用</el-button> -->
        </div>
        <div class="table">
          <u-table
            :key="history.tableKey"
            v-loading="history.listLoading"
            :element-loading-text="$t('common.tableMsg')"
            :data="history.list"
            border
            fit
            highlight-current-row
            style="width: 100%"
            :row-style="rowStyle"
            :cell-style="cellStyle"
            class="elTable table-fixed"
            :span-method="objectSpanMethod"
            :max-height="500"
          >
            <u-table-column>
              <template slot="empty">
                <span style="color: #969799">No Data</span>
              </template>
            </u-table-column>
            <u-table-column
              :key="1"
              :label="$t('formulationEvaluation.xh')"
              align="center"
              type="index"
              width="50px"
              class-name="small-padding fixed-width"
              fixed="left"
            />
            <!-- <u-table-column :key="1" :label="$t('formulationEvaluation.xh')" align="center" type="index" width="50px" class-name="small-padding fixed-width" fixed="left">
              <template slot-scope="scope">
                <span>{{ scope.$index + (history.pageNum-1) * history.pageSize + 1 }}</span>
              </template>
            </u-table-column> -->
            <u-table-column
              :key="2"
              :label="$t('errorAnalysis.isHouseName')"
              prop="barname"
              min-width="90px"
              align="center"
              class-name="small-padding fixed-width"
              fixed="left"
            />
            <u-table-column
              :key="3"
              :label="$t('errorAnalysis.isTrainNumber')"
              prop="times"
              min-width="90px"
              align="center"
              class-name="small-padding fixed-width"
              fixed="left"
            />
            <u-table-column
              :key="4"
              :label="$t('dhedFormula.rjnts')"
              prop="softccount"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="5"
              :label="$t('feedingEfficiency.sjnts')"
              prop="ccount"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="6"
              :label="$t('dhedFormula.xs')"
              prop="ratio"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="7"
              :label="$t('dhedFormula.xsts')"
              prop="ccountratio"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="8"
              :label="$t('feedingEfficiency.pfmb')"
              prop="ptname"
              min-width="70px"
              align="center"
            />
            <u-table-column
              v-if="table.isPtsfname"
              :key="9"
              :label="$t('dhedFormula.blpf')"
              prop="ptsname"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="10"
              :label="$t('dhedFormula.bcbl')"
              prop="tratio"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="11"
              :label="$t('dhedFormula.bczl')"
              prop="weight"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="12"
              :label="$t('dhedFormula.pfzl')"
              prop="pweight"
              min-width="70px"
              align="center"
            />
            <u-table-column
              v-if="table.isPtsfname"
              :key="13"
              :label="$t('dhedFormula.blzl')"
              prop="ptweight"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="14"
              :label="$t('dhedFormula.pfgwzzl')"
              prop="dryweight"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="15"
              :label="$t('dhedFormula.swgwzl')"
              prop="swdryw"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="16"
              :label="$t('dhedFormula.cygwzl')"
              prop="cydryw"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="17"
              :label="$t('dhedFormula.rtwl')"
              prop="sumweight"
              min-width="70px"
              align="center"
            />
            <u-table-column
              :key="18"
              :label="$t('errorAnalysis.cz')"
              prop="sumweight"
              align="center"
              width="80"
              class-name="small-padding fixed-width"
              fixed="right"
            >
              <template slot-scope="scope">
                <span style="color: blue" @click="handleRestore(scope.row)"
                  >{{ $t('message.msg334') }}</span
                >
              </template>
            </u-table-column>
          </u-table>
          <!-- <pagination2 v-show="history.total>0" :total="history.total" :page.sync="history.getdataListParm.offset" :limit.sync="history.getdataListParm.pagecount" @pagination="getHistoryList" /> -->
        </div>
      </div>
      <div slot="footer" class="dialog-footer" style="bottom: 10px">
        <el-button
          class="cancelClose cancelClose1"
          @click="
            history.dialogFormVisible = false
            getList()
          "
          >{{ $t('common.closed') }}</el-button
        >
      </div>
    </el-dialog>

    <!-- 营养评估 -->
    <el-dialog
      :fullscreen="dialogFull"
      :visible.sync="nutritional.dialogFormVisible"
      :close-on-click-modal="false"
      width="90%"
    >
      <template slot="title">
        <div class="avue-crud__dialog__header">
          <span class="el-dialog__title">
            <span
              style="
                display: inline-block;
                width: 3px;
                height: 20px;
                margin-right: 5px;
                float: left;
                margin-top: 2px;
              "
            />
            {{ textMap[nutritional.dialogStatus] }}
          </span>
          <div
            class="avue-crud__dialog__menu"
            @click="dialogFull ? (dialogFull = false) : (dialogFull = true)"
          >
            <svg-icon v-if="dialogFull" icon-class="exit-fullscreen" />
            <svg-icon v-else icon-class="fullscreen" />
          </div>
        </div>
      </template>
      <div class="app-nutritional">
        <h4
          style="
            position: absolute;
            top: -5px;
            left: 140px;
            font: 16px/30px '';
            color: #303133;
          "
        >
          栏舍：{{ nutritional.tab1.temp.barname }}
        </h4>
        <el-tabs
          v-model="nutritional.activeName"
          @tab-click="handleNutritionalTab"
        >
          <el-tab-pane :label="$t('dhedFormula.yypg')" name="first">
            <el-form
              ref="temp"
              :rules="rules"
              :model="nutritional.tab1.temp"
              label-position="right"
              label-width="95px"
              style="width: 100%; margin-bottom: 30px"
            >
              <el-row>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.lb')" prop="cowclassid">
                    <el-select
                      v-model="nutritional.tab1.temp.cowclassid"
                      :disabled="nutritional.tab1.disabledCowclass"
                      filterable
                      placeholder=""
                      class="filter-item"
                      style="width: 100%"
                    >
                      <el-option
                        v-for="item in livestockTypeList"
                        :key="item.id"
                        :label="item.mixname"
                        :value="item.id"
                      />
                    </el-select>
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item
                    :label="$t('dhedFormula.yl')"
                    prop="avgmonthage"
                  >
                    <el-input
                      ref="avgmonthage"
                      v-model="nutritional.tab1.temp.avgmonthage"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.tz')" prop="bw">
                    <el-input
                      ref="bw"
                      v-model="nutritional.tab1.temp.bw"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.rzz')" prop="dayw">
                    <el-input
                      ref="dayw"
                      v-model="nutritional.tab1.temp.dayw"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.tcc')" prop="fetal">
                    <el-input
                      ref="fetal"
                      v-model="nutritional.tab1.temp.fetal"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.mrtst')" prop="avgdim">
                    <el-input
                      ref="avgdim"
                      v-model="nutritional.tab1.temp.avgdim"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
              </el-row>
              <el-row>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.hytst')" prop="dayspre">
                    <el-input
                      ref="dayspre"
                      v-model="nutritional.tab1.temp.dayspre"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item label="产奶量(kg)" prop="product">
                    <el-input
                      ref="product"
                      v-model="nutritional.tab1.temp.product"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.rzl')" prop="fat">
                    <el-input
                      ref="fat"
                      v-model="nutritional.tab1.temp.fat"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.rzdbl')" prop="pro">
                    <el-input
                      ref="pro"
                      v-model="nutritional.tab1.temp.pro"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.rtl')" prop="lactose">
                    <el-input
                      ref="lactose"
                      v-model="nutritional.tab1.temp.lactose"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item :label="$t('dhedFormula.wd')" prop="tem">
                    <el-input
                      ref="tem"
                      v-model="nutritional.tab1.temp.tem"
                      class="filter-item"
                      placeholder=""
                      style="width: 100%"
                    />
                  </el-form-item>
                </el-col>
              </el-row>
            </el-form>
            <div style="height: 50px">
              <el-date-picker
                v-model="nutritional.tab1.inputDatetime"
                :picker-options="pickerOptions"
                class="inputDatetime filter-item"
                :clearable="false"
                type="daterange"
                :range-separator="$t('common.to')"
                :start-placeholder="$t('common.startTime')"
                :end-placeholder="$t('common.endTime')"
                style="width: 250px; margin-right: 10px"
              />
              <el-button
                class="el-icon-arrow-left elIconArrowLeft"
                @click="handleBefore"
              />
              <el-button
                class="el-icon-arrow-right elIconArrowRight"
                @click="handleNext"
              />
              <el-button
                class="successBorder"
                :disabled="isokDisable"
                @click="assessmentData()"
                >{{ $t('dhedFormula.pg') }}</el-button
              >
            </div>
            <div class="table">
              <el-table
                :key="nutritional.tab1.tableKey"
                v-loading="nutritional.tab1.listLoading"
                :element-loading-text="$t('common.tableMsg')"
                :data="nutritional.tab1.list"
                border
                fit
                highlight-current-row
                style="width: 100%; margin-bottom: 60px"
                :row-style="rowStyle"
                :cell-style="cellStyle"
                class="elTable table-fixed"
                :row-class-name="tableRowClassName"
              >
                <el-table-column
                  :label="$t('formulationEvaluation.xh')"
                  align="center"
                  type="index"
                  width="50px"
                />
                <el-table-column label="指标" min-width="130px" align="center">
                  <template slot-scope="scope">
                    <span>{{ scope.row.standard }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  :label="$t('formulationEvaluation.nnxq')"
                  min-width="130px"
                  align="center"
                >
                  <template slot-scope="scope">
                    <span>{{ scope.row.cowneed }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  :label="$t('formulationEvaluation.pfl')"
                  min-width="130px"
                  align="center"
                >
                  <template slot-scope="scope">
                    <span>{{ scope.row.ftpro }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  :label="$t('formulationEvaluation.tmrl')"
                  min-width="130px"
                  align="center"
                >
                  <template slot-scope="scope">
                    <span>{{ scope.row.hprov }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  :label="$t('formulationEvaluation.csl')"
                  min-width="130px"
                  align="center"
                >
                  <template slot-scope="scope">
                    <span>{{ scope.row.sprov }}</span>
                  </template>
                </el-table-column>
              </el-table>
            </div>
          </el-tab-pane>
          <el-tab-pane :label="$t('feedingEfficiency.nxpg')" name="second">
            <el-date-picker
              v-model="nutritional.tab2.inputDatetime"
              :picker-options="pickerOptions"
              :clearable="false"
              class="inputDatetime filter-item"
              type="daterange"
              :range-separator="$t('common.to')"
              :start-placeholder="$t('common.startTime')"
              :end-placeholder="$t('common.endTime')"
              style="width: 250px; margin-right: 10px"
              @change="changeTab2Date"
            />
            <el-button
              class="el-icon-arrow-left elIconArrowLeft"
              @click="handleBefore"
            />
            <el-button
              class="el-icon-arrow-right elIconArrowRight"
              @click="handleNext"
            />
            <el-row>
              <el-col :span="24">
                <h3 style="text-align: center">
                  {{ $t('dhedFormula.bzsfx') }}
                </h3>
                <div class="table">
                  <el-table
                    :key="nutritional.tab2.tableKey1"
                    v-loading="nutritional.tab2.listLoading1"
                    :element-loading-text="$t('common.tableMsg')"
                    :data="nutritional.tab2.list1"
                    border
                    fit
                    highlight-current-row
                    style="width: 100%; margin-bottom: 60px"
                    :row-style="rowStyle"
                    :cell-style="cellStyle"
                    class="elTable table-fixed"
                  >
                    <el-table-column
                      :label="$t('errorAnalysis.date')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.operatetime }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl1')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.oneweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb1')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.onerate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl2')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.twoweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb2')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.tworate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl3')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.threeweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb3')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.threerate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl4')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.fourweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb4')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.fourrate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.ckbz')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.standard }}</span>
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <h3 style="text-align: center">
                  {{ $t('feedingEfficiency.fbsfx') }}
                </h3>
                <div class="table">
                  <el-table
                    :key="nutritional.tab2.tableKey2"
                    v-loading="nutritional.tab2.listLoading2"
                    :element-loading-text="$t('common.tableMsg')"
                    :data="nutritional.tab2.list2"
                    border
                    fit
                    highlight-current-row
                    style="width: 100%; margin-bottom: 60px"
                    :row-style="rowStyle"
                    :cell-style="cellStyle"
                    class="elTable table-fixed"
                  >
                    <el-table-column
                      :label="$t('errorAnalysis.date')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.operatetime }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl1')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.oneweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb1')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.onerate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl2')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.twoweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb2')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.tworate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('dhedFormula.dyczl3')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.threeweight }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.dcbfb3')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.threerate }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.ckbz')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.standard }}</span>
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <h3 style="text-align: center">BCS评分</h3>
                <div class="table">
                  <el-table
                    :key="nutritional.tab2.tableKey3"
                    v-loading="nutritional.tab2.listLoading3"
                    :element-loading-text="$t('common.tableMsg')"
                    :data="nutritional.tab2.list3"
                    border
                    fit
                    highlight-current-row
                    style="width: 100%; margin-bottom: 60px"
                    :row-style="rowStyle"
                    :cell-style="cellStyle"
                    class="elTable table-fixed"
                  >
                    <el-table-column
                      :label="$t('errorAnalysis.date')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.operatetime }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.czybs')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.sumcowcount }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg75')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.product }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg76')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.cowneed }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.mrts')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.avgdim }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.bzfs')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.standardscore }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg77')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score25 }}({{
                            scope.row.score25rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg78')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score275 }}({{
                            scope.row.score275rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg79')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score3 }}({{
                            scope.row.score3rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg80')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score325 }}({{
                            scope.row.score325rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg81')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score35 }}({{
                            scope.row.score35rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg82')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score375 }}({{
                            scope.row.score375rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg83')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score4 }}({{
                            scope.row.score4rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <h3 style="text-align: center">
                  {{ $t('feedingEfficiency.fbpf') }}
                </h3>
                <div class="table">
                  <el-table
                    :key="nutritional.tab2.tableKey4"
                    v-loading="nutritional.tab2.listLoading4"
                    :element-loading-text="$t('common.tableMsg')"
                    :data="nutritional.tab2.list4"
                    border
                    fit
                    highlight-current-row
                    style="width: 100%; margin-bottom: 60px"
                    :row-style="rowStyle"
                    :cell-style="cellStyle"
                    class="elTable table-fixed"
                  >
                    <el-table-column
                      :label="$t('errorAnalysis.date')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.operatetime }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.czybs')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.sumcowcount }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg75')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.product }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg76')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.cowneed }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.mrts')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.avgdim }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('feedingEfficiency.bzfs')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span>{{ scope.row.cowneed }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg84')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score1 }}({{
                            scope.row.score1rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg85')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score2 }}({{
                            scope.row.score2rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg79')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score3 }}({{
                            scope.row.score3rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg86')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score4 }}({{
                            scope.row.score4rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      :label="$t('message.msg87')"
                      min-width="130px"
                      align="center"
                    >
                      <template slot-scope="scope">
                        <span
                          >{{ scope.row.score5 }}({{
                            scope.row.score5rate
                          }}%)</span
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </el-col>
            </el-row>
          </el-tab-pane>
        </el-tabs>
        <div slot="footer" class="dialog-footer">
          <el-button
            class="cancelClose cancelClose1"
            @click="nutritional.dialogFormVisible = false"
            >{{ $t('common.closed') }}</el-button
          >
        </div>
      </div>
    </el-dialog>

    <!-- 干物质调节 -->
    <DryMatterRegulation
      ref="mychild"
      :show.sync="isShowDialog"
      @getIsDisplay="getIsDisplay"
    />
  </div>
</template>

<script>
import {
  GetDataByName,
  postJson,
  GetDataByNames,
  compareSort,
  ExecDataByConfig,
  failproccess,
  PostDataByName,
  formatNum,
  checkButtons
} from '@/api/common'
import Pagination from '@/components/Pagination'
import Pagination2 from '@/components/Pagination2'
import {
  parseTime,
  json2excel,
  handleTableSpan,
  handleObjectSpanMethod
} from '@/utils/index.js'
import { MessageBox } from 'element-ui'
import Cookies from 'js-cookie'
import axios from 'axios'
import { getToken } from '@/utils/auth'
import DryMatterRegulation from './dryMatterRegulation.vue'
export default {
  inject: ['reload'],
  name: 'DhedFormula',
  components: { Pagination, Pagination2, DryMatterRegulation },
  data() {
    return {
      isproportion: false,
      dialogFull: false,
      isRoleEdit: [],
      isSynchronous: [],
      headerList: [],
      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 - 8.64e7 ||
              time.getTime() > maxTime - 8.64e7
            )
          }
          return time.getTime() > Date.now() - 8.64e7
        }
      },
      requestParams: [
        {
          name: 'getFTSWLSList',
          offset: 0,
          pagecount: 0,
          parammaps: { pastureid: Cookies.get('pastureid') }
        },
        {
          name: 'getFTBLList',
          offset: 0,
          pagecount: 0,
          parammaps: { pastureid: Cookies.get('pastureid') }
        },
        {
          name: 'getCowclassListEnable',
          offset: 0,
          pagecount: 0,
          parammaps: { pastureid: Cookies.get('pastureid') }
        },
        {
          name: 'getBarListEnable',
          offset: 0,
          pagecount: 0,
          parammaps: { pastureid: Cookies.get('pastureid') }
        },
        {
          name: 'getSysoptEnable',
          offset: 0,
          pagecount: 0,
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'udFeedpSync'
          }
        }
      ],
      getFeedTempletNameListParm: {
        name: 'getFeedTempletName',
        page: 1,
        offset: 1,
        // pagecount: parseInt(Cookies.get('pageCount')),
        pagecount: '',
        returntype: 'Map',
        parammaps: {
          pastureid: Cookies.get('pastureid')
        }
      },
      tnameList: [], // 配方名 称
      recipeTemplateList: [], // 配方模板
      feedingFormulaList: [], // 补料配方
      livestockTypeList: [], // 类别
      barList: [],
      rules: {
        cowclassid: [
          {
            type: 'string',
            required: true,
            message: this.$t('hardwareTest.bt'),
            trigger: 'blur'
          }
        ]
      },
      table: {
        getdataListParm: {
          name: 'getFPList',
          page: 1,
          offset: 1,
          // pagecount: parseInt(Cookies.get('pageCount')),
          pagecount: '',
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            enable: '',
            barid: '',
            tname: ''
          }
        },
        tableKey: 0,
        list: [],
        total: 0,
        listLoading: true,
        temp: {},
        rwList: [],
        isPtsfname: false, // 补料配方/补料重量
        getdataListParm2: {
          name: 'getSysoptEnable',
          page: 1,
          offset: 1,
          pagecount: 1,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'isEnableSupplyFeed'
          }
        },
        isRW1: false, // 第一班
        isRW2: false, // 第二班
        isRW3: false, // 第三班
        isRW4: false, // 第四班
        isRW5: false, // 第五班
        isRW6: false, // 第六班
        getdataListParm3: {
          name: 'getSysoptEnable1',
          page: 1,
          offset: 1,
          pagecount: 1,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'times'
          }
        },
        RWLength: '' // 班次长度
      },
      selectList: [],
      // 营养评估
      nutritional: {
        dialogFormVisible: false,
        dialogStatus: '',
        activeName: 'first ',
        tab1: {
          // inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1), new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1)],
          inputDatetime: [new Date(), new Date()],
          listLoading1: true,
          getdataListParm1: {
            name: 'getnurj',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              barid: ''
            }
          },
          disabledCowclass: false,
          temp: {},
          tableKey: 0,
          list: [],
          total: 0,
          listLoading2: true,
          getdataListParm2: {
            name: 'GETNurJudge',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              cowclassid: ''
            }
          }
        },
        tab2: {
          // inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1), new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 1)],
          inputDatetime: [new Date(), new Date()],
          listLoading1: true,
          tableKey1: 0,
          list1: [],
          total1: 0,
          getdataListParm1: {
            name: 'getPennsieveList',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              barid: '',
              startTime: '',
              stopTime: '',
              inputDatetime: ''
            }
          },
          listLoading2: true,
          tableKey2: 0,
          list2: [],
          total2: 0,
          getdataListParm2: {
            name: 'getDungsieveList',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              barid: '',
              startTime: '',
              stopTime: '',
              inputDatetime: ''
            }
          },
          listLoading3: true,
          tableKey3: 0,
          list3: [],
          total3: 0,
          getdataListParm3: {
            name: 'getBodyscoreList',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              barid: '',
              startTime: '',
              stopTime: '',
              inputDatetime: ''
            }
          },
          listLoading4: true,
          tableKey4: 0,
          list4: [],
          total4: 0,
          getdataListParm4: {
            name: 'getDungscoreList',
            page: 1,
            offset: 1,
            pagecount: 10,
            returntype: 'Map',
            parammaps: {
              pastureid: '',
              barid: '',
              startTime: '',
              stopTime: '',
              inputDatetime: ''
            }
          }
        }
      },
      history: {
        dialogFormVisible: false,
        dialogStatus: '',
        temp: {},
        rules: {},
        tableKey: 0,
        list: [],
        total: 0,
        listLoading: true,
        getdataListParm: {
          name: 'getPlanModifyFPlist',
          page: 1,
          offset: 1,
          // pagecount: 12,
          pagecount: '',
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            date: '',
            barid: '',
            tname: ''
          }
        },
        isPtsfname: false, // 补料配方/补料重量
        getdataListParm2: {
          name: 'getSysoptEnable',
          page: 1,
          offset: 1,
          pagecount: 1,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'isEnableSupplyFeed'
          }
        },
        isRW1: false, // 第一班
        isRW2: false, // 第二班
        isRW3: false, // 第三班
        isRW4: false, // 第四班
        isRW5: false, // 第五班
        isRW6: false, // 第六班
        getdataListParm3: {
          name: 'getSysoptEnable1',
          page: 1,
          offset: 1,
          pagecount: 1,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            inforname: 'times'
          }
        },
        getdataDateParm: {
          name: 'getFPMaxDate',
          page: 1,
          offset: 1,
          pagecount: 10,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid')
          }
        }
      },
      textMap: {
        Nutritional: '营养评估',
        history: this.$t('message.msg34')
      },

      requestParam: {},
      download: {
        getdataListParm: {
          name: 'getFPList',
          page: 1,
          offset: 1,
          pagecount: 0,
          returntype: 'Map',
          parammaps: {
            pastureid: Cookies.get('pastureid'),
            enable: ''
          }
        },
        list: []
      },
      spanObj: {},
      mergekeys: ['barname', 'sumweight'],
      isShowDialog: false,
      isokDisable: false,
      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
      cellStyle: { padding: 0 + 'px' },
      myHeight: document.documentElement.clientHeight - 85 - 140,
      oldRowList: {},
      oldList: [],
      decimal: parseInt(Cookies.get('decimal')),
      decimalr: parseInt(Cookies.get('decimalr'))
    }
  },
  computed: {
    // 设置请求头
    headers() {
      return {
        token: getToken()
      }
    },
    uploadData() {
      return {
        name: 'checkbarname,checkftsw,checkftbl',
        importParams:this.$t('message.dhedform.importParams'),
        sheetname: 'Sheet1',
        // 登录牧场
        pastureid: Cookies.get('pastureid'),
        // 日期参数
        dateParams: '',
        // 必填参数
        requiredParams: this.$t('message.dhedform.requiredParams'),
        // 为数值的参数
        numParams:this.$t('message.dhedform.numParams')
      }
    },
    // 设置上传地址
    uploadExcelUrl() {
      return Cookies.get('url') + 'authdata/fpdimportexcel'
    }
  },
  created() {
    this.getButtons()
    this.getDownList()
    this.getFeedTempletNameList()
  },

  methods: {
    getButtons() {
      const Edit = 'DhedFormula'
      const isRoleEdit = checkButtons(
        JSON.parse(sessionStorage.getItem('buttons')),
        Edit
      )
      this.isRoleEdit = isRoleEdit
    },
    getDownList() {
      GetDataByNames(this.requestParams).then((response) => {
        if (response.data.getSysoptEnable.list[0].inforvalue == 1) {
          this.isSynchronous = true
        } else {
          this.isSynchronous = false
        }
        this.recipeTemplateList = response.data.getFTSWLSList.list
        this.feedingFormulaList = response.data.getFTBLList.list
        this.livestockTypeList = response.data.getCowclassListEnable.list
        this.barList = response.data.getBarListEnable.list
        this.getIsDisplay()
      })
    },
    getFeedTempletNameList() {
      GetDataByName(this.getFeedTempletNameListParm).then((response) => {
        if (response.data.list !== null) {
          this.tnameList = response.data.list
        } else {
          this.tnameList = []
        }
      })
    },
    getIsDisplay() {
      GetDataByName(this.table.getdataListParm2).then((response) => {
        console.log(response.data.list[0].inforvalue)
        if (response.data.list !== null) {
          if (response.data.list[0].inforvalue == 0) {
            this.table.isPtsfname = false
          } else {
            this.table.isPtsfname = true
          }
        }
      })
      GetDataByName(this.table.getdataListParm3).then((response) => {
        console.log(response.data.list[0].inforvalue)
        if (response.data.list !== null) {
          this.table.RWLength = response.data.list[0].inforvalue
          if (response.data.list[0].inforvalue == 1) {
            this.table.isRW1 = true
            this.table.isRW2 = false
            this.table.isRW3 = false
            this.table.isRW4 = false
            this.table.isRW5 = false
            this.table.isRW6 = false
          } else if (response.data.list[0].inforvalue == 2) {
            this.table.isRW1 = true
            this.table.isRW2 = true
            this.table.isRW3 = false
            this.table.isRW4 = false
            this.table.isRW5 = false
            this.table.isRW6 = false
          } else if (response.data.list[0].inforvalue == 3) {
            this.table.isRW1 = true
            this.table.isRW2 = true
            this.table.isRW3 = true
            this.table.isRW4 = false
            this.table.isRW5 = false
            this.table.isRW6 = false
          } else if (response.data.list[0].inforvalue == 4) {
            this.table.isRW1 = true
            this.table.isRW2 = true
            this.table.isRW3 = true
            this.table.isRW4 = true
            this.table.isRW5 = false
            this.table.isRW6 = false
          } else if (response.data.list[0].inforvalue == 5) {
            this.table.isRW1 = true
            this.table.isRW2 = true
            this.table.isRW3 = true
            this.table.isRW4 = true
            this.table.isRW5 = true
            this.table.isRW6 = false
          } else if (response.data.list[0].inforvalue == 6) {
            this.table.isRW1 = true
            this.table.isRW2 = true
            this.table.isRW3 = true
            this.table.isRW4 = true
            this.table.isRW5 = true
            this.table.isRW6 = true
          }
        } else {
          this.table.isRW1 = false
          this.table.isRW2 = false
          this.table.isRW3 = false
          this.table.isRW4 = false
          this.table.isRW5 = false
          this.table.isRW6 = false
        }
      })
      this.getList()
    },
    getList() {
      this.table.listLoading = true
      GetDataByName(this.table.getdataListParm).then((response) => {
        console.log('table数据', response.data.list)
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.list.length; i++) {
            this.$set(response.data.list[i], 'Edit', false) // 编辑
            this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入
            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
            // if (response.data.list[i].ftid !== undefined && response.data.list[i].ftid !== '') {
            //   if (this.recipeTemplateList.find(obj => obj.id == response.data.list[i].ftid) !== undefined) {
            //     this.$set(response.data.list[i], 'dryweight', this.recipeTemplateList.find(obj => obj.id == response.data.list[i].ftid).dryweight) // 编辑保存
            //   } else {
            //     this.$set(response.data.list[i], 'dryweight', '')
            //   }
            // }
            if (
              response.data.list[i].ftid == undefined ||
              response.data.list[i].ftname == ''
            ) {
              this.$set(response.data.list[i], 'ftid', '')
              this.$set(response.data.list[i], 'ftname', '')
            }
            if (
              response.data.list[i].ptsfid == undefined ||
              response.data.list[i].ptsfname == ''
            ) {
              this.$set(response.data.list[i], 'ptsfid', '')
              this.$set(response.data.list[i], 'ptsfname', '')
            }
            if (response.data.list[i].ccount == undefined) {
              this.$set(response.data.list[i], 'ccount', '')
            }
            if (response.data.list[i].softccount == undefined) {
              this.$set(response.data.list[i], 'softccount', '')
            }
            if (response.data.list[i].ratio == undefined) {
              this.$set(response.data.list[i], 'ratio', 100)
            }
            if (response.data.list[i].ccountratio == undefined) {
              this.$set(response.data.list[i], 'ccountratio', '')
            }
            if (response.data.list[i].r1 == undefined) {
              this.$set(response.data.list[i], 'r1', '')
            }
            if (response.data.list[i].r2 == undefined) {
              this.$set(response.data.list[i], 'r2', '')
            }
            if (response.data.list[i].r3 == undefined) {
              this.$set(response.data.list[i], 'r3', '')
            }
            if (response.data.list[i].r4 == undefined) {
              this.$set(response.data.list[i], 'r4', '')
            }
            if (response.data.list[i].r5 == undefined) {
              this.$set(response.data.list[i], 'r5', '')
            }
            if (response.data.list[i].r6 == undefined) {
              this.$set(response.data.list[i], 'r6', '')
            }
            if (response.data.list[i].w1 == undefined) {
              this.$set(response.data.list[i], 'w1', '')
            }
            if (response.data.list[i].w2 == undefined) {
              this.$set(response.data.list[i], 'w2', '')
            }
            if (response.data.list[i].w3 == undefined) {
              this.$set(response.data.list[i], 'w3', '')
            }
            if (response.data.list[i].w4 == undefined) {
              this.$set(response.data.list[i], 'w4', '')
            }
            if (response.data.list[i].w5 == undefined) {
              this.$set(response.data.list[i], 'w5', '')
            }
            if (response.data.list[i].w6 == undefined) {
              this.$set(response.data.list[i], 'w6', '')
            }
            if (response.data.list[i].supplyweight == undefined) {
              this.$set(response.data.list[i], 'supplyweight', '')
            }
            if (
              response.data.list[i].feedweight == undefined ||
              parseFloat(response.data.list[i].feedweight) == 0
            ) {
              this.$set(response.data.list[i], 'feedweight', '')
            }
            this.$set(response.data.list[i], 'dailyWeight', '')
            if (response.data.list[i].Bfweight == undefined) {
              this.$set(response.data.list[i], 'Bfweight', '')
            }
            if (response.data.list[i].Sfweight == undefined) {
              this.$set(response.data.list[i], 'Sfweight', '')
            }
            if (response.data.list[i].isOneWeight == undefined) {
              this.$set(response.data.list[i], 'isOneWeight', false)
            }
            if (response.data.list[i].isTwoWeight == undefined) {
              this.$set(response.data.list[i], 'isTwoWeight', false)
            }
            if (response.data.list[i].isThreeWeight == undefined) {
              this.$set(response.data.list[i], 'isThreeWeight', false)
            }
            if (response.data.list[i].isFourWeight == undefined) {
              this.$set(response.data.list[i], 'isFourWeight', false)
            }
            if (response.data.list[i].isFiveWeight == undefined) {
              this.$set(response.data.list[i], 'isFiveWeight', false)
            }
            if (response.data.list[i].isSixWeight == undefined) {
              this.$set(response.data.list[i], 'isSixWeight', false)
            }
            if (response.data.list[i].timesopt !== undefined) {
              var timesoptArr = response.data.list[i].timesopt.split(',')
              for (let j = 0; j < timesoptArr.length; j++) {
                response.data.list[i]['r' + timesoptArr[j].split(':')[0]] =
                  timesoptArr[j].split(':')[1]
                response.data.list[i]['w' + timesoptArr[j].split(':')[0]] =
                  timesoptArr[j].split(':')[2]
              }
            }
            if (response.data.list[i].bw1 == undefined) {
              this.$set(response.data.list[i], 'bw1', '')
            }
            if (response.data.list[i].bw2 == undefined) {
              this.$set(response.data.list[i], 'bw2', '')
            }
            if (response.data.list[i].bw3 == undefined) {
              this.$set(response.data.list[i], 'bw3', '')
            }
            if (response.data.list[i].bw4 == undefined) {
              this.$set(response.data.list[i], 'bw4', '')
            }
            if (response.data.list[i].bw5 == undefined) {
              this.$set(response.data.list[i], 'bw5', '')
            }
            if (response.data.list[i].bw6 == undefined) {
              this.$set(response.data.list[i], 'bw6', '')
            }
            if (response.data.list[i].supplement !== undefined) {
              var supplementArr = response.data.list[i].supplement.split(',')
              for (let j = 0; j < supplementArr.length; j++) {
                response.data.list[i]['bw' + supplementArr[j].split(':')[0]] =
                  supplementArr[j].split(':')[2]
              }
            }
          }
          // console.log(response.data.list, sumr)
          for (let i = 0; i < response.data.list.length; i++) {
            if (response.data.list[i].r1 == '') {
              response.data.list[i].r1 = 0
              response.data.list[i].w1 = 0
            }
            if (response.data.list[i].r2 == '') {
              response.data.list[i].r2 = 0
              response.data.list[i].w2 = 0
            }
            if (response.data.list[i].r3 == '') {
              response.data.list[i].r3 = 0
              response.data.list[i].w3 = 0
            }
            if (response.data.list[i].r4 == '') {
              response.data.list[i].r4 = 0
              response.data.list[i].w4 = 0
            }
            if (response.data.list[i].r5 == '') {
              response.data.list[i].r5 = 0
              response.data.list[i].w5 = 0
            }
            if (response.data.list[i].r6 == '') {
              response.data.list[i].r6 = 0
              response.data.list[i].w6 = 0
            }
            // this.$set(response.data.list[i], 'sumr', parseFloat(response.data.list[i].r1) + parseFloat(response.data.list[i].r2) + parseFloat(response.data.list[i].r3) + parseFloat(response.data.list[i].r4))
            // response.data.list[i].sumr = formatNum(response.data.list[i].sumr, parseInt(Cookies.get('decimalr')))
            var sumr = 0
            if (response.data.list[i].r1 && !isNaN(response.data.list[i].r1)) {
              sumr += parseFloat(response.data.list[i].r1)
            }
            if (response.data.list[i].r2 && !isNaN(response.data.list[i].r2)) {
              sumr += parseFloat(response.data.list[i].r2)
            }
            if (response.data.list[i].r3 && !isNaN(response.data.list[i].r3)) {
              sumr += parseFloat(response.data.list[i].r3)
            }
            if (response.data.list[i].r4 && !isNaN(response.data.list[i].r4)) {
              sumr += parseFloat(response.data.list[i].r4)
            }
            if (response.data.list[i].r5 && !isNaN(response.data.list[i].r5)) {
              sumr += parseFloat(response.data.list[i].r5)
            }
            if (response.data.list[i].r6 && !isNaN(response.data.list[i].r6)) {
              sumr += parseFloat(response.data.list[i].r6)
            }
            console.log(sumr, 'sumr')
            response.data.list[i].sumr = formatNum(
              sumr,
              parseInt(Cookies.get('decimalr'))
            )
            // this.$set(response.data.list[i],'feedweight',formatNum(parseFloat(response.data.list[i].feedweight) * parseFloat(response.data.list[i].sumr)/100,2))
            this.$set(
              response.data.list[i],
              'dailyWeight',
              parseFloat(response.data.list[i].w1) +
                parseFloat(response.data.list[i].w2) +
                parseFloat(response.data.list[i].w3) +
                parseFloat(response.data.list[i].w4)
            )
            response.data.list[i].dailyWeight = formatNum(
              response.data.list[i].dailyWeight,
              parseInt(Cookies.get('decimal'))
            )
          }
          this.table.list = response.data.list
          console.log(this.table.list, 'this.table.list')
          this.table.pageNum = response.data.pageNum
          this.table.pageSize = response.data.pageSize
          this.table.total = response.data.total
        } else {
          this.table.list = []
        }
        setTimeout(() => {
          this.table.listLoading = false
        }, 100)
      })
    },
    form_search() {
      this.getList()
    },
    renderHeader(h, { column, $index }) {
      // h即为cerateElement的简写，具体可看vue官方文档
      return h('div', [
        h('span', column.label),
        h('i', {
          class: 'el-icon-unlock',
          ref: 'el-icon-unlock',
          style: 'margin-left:5px;'
        })
      ])
    },

    headerClick(column, event) {
      console.log(column, event)
      this.headerList.push(event)
      if (column.label == '第一班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isOneWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isOneWeight', false) // 解锁可编辑
            }
          }
        }
      } else if (column.label == '第二班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isTwoWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isTwoWeight', false) // 解锁可编辑
            }
          }
        }
      } else if (column.label == '第三班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isThreeWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isThreeWeight', false) // 解锁可编辑
            }
          }
        }
      } else if (column.label == '第四班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isFourWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isFourWeight', false) // 解锁可编辑
            }
          }
        }
      } else if (column.label == '第五班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isFiveWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isFiveWeight', false) // 解锁可编辑
            }
          }
        }
      } else if (column.label == '第六班重量') {
        for (let i = 0; i < this.table.list.length; i++) {
          if (this.table.list[i].Edit == true) {
            if (
              event.target.outerHTML ==
              '<i class="el-icon-unlock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-lock'
              this.$set(this.table.list[i], 'isSixWeight', true) // 锁住不可编辑
            } else if (
              event.target.outerHTML ==
              '<i class="el-icon-lock" style="margin-left: 5px;"></i>'
            ) {
              event.target.className = 'el-icon-unlock'
              this.$set(this.table.list[i], 'isSixWeight', false) // 解锁可编辑
            }
          }
        }
      }
    },
    // 配方模板
    changeRecipeTemplate(item, row) {
      row.myccname = this.recipeTemplateList.find(
        (obj) => obj.id == item
      ).ccname
      if (row.bigcowclass !== row.myccname) {
        this.$message({
          type: 'warning',
          message: this.$t('message.msg116'),
          duration: 2000
        })
      }
      console.log(row.supplyweight, 'row.supplyweight')
      row.ftname = this.recipeTemplateList.find((obj) => obj.id == item).tname
      row.Sfweight = this.recipeTemplateList.find(
        (obj) => obj.id == item
      ).Sfweight // Sfweight
      row.SfweightLock = this.recipeTemplateList.find(
        (obj) => obj.id == item
      ).SfweightLock // SfweightLock
      row.dryweight = this.recipeTemplateList.find(
        (obj) => obj.id == item
      ).dryweight // SfweightLock
      // 补料重量supplyweight
      // 配方重量ftweight
      // 系数头数ccountratio
      // 投喂量feedweight
      // 实际牛头数ccount
      // 投喂量 = 配方重量 + 补料重量
      // 配方重量 = Sfweight * 系数头数 + SfweightLock * 实际牛头数ccount
      console.log(row.Sfweight, 'row.Sfweight')
      console.log(row.ccountratio, '系数头数')
      console.log(row.SfweightLock, 'SfweightLock')
      console.log(row.ccount, '实际牛头数')
      if (row.Sfweight !== '' && row.ccount !== '') {
        this.$set(
          row,
          'ftweight',
          formatNum(
            parseFloat(row.Sfweight) * parseFloat(row.ccountratio) +
              parseFloat(row.SfweightLock) * parseFloat(row.ccount),
            parseInt(Cookies.get('decimal'))
          )
        )
      } else {
        row.ftweight = ''
      }
      // console.log(row.ftweight, 'row.ftweight')
      // console.log(row.supplyweight, 'row.supplyweight')
      // console.log(this.table.isPtsfname, 'isPtsfname')
      if (this.table.isPtsfname == false) {
        row.feedweight = formatNum(
          parseFloat(row.ftweight),
          parseInt(Cookies.get('decimal'))
        )
      } else {
        if (row.supplyweight == 'NaN') {
          row.supplyweight = 0
        }
        console.log(row.supplyweight)
        if (row.supplyweight !== '' && row.ftweight !== '') {
          row.feedweight = formatNum(
            parseFloat(row.supplyweight) + parseFloat(row.ftweight),
            parseInt(Cookies.get('decimal'))
          )
        } else if (row.supplyweight == '' && row.ftweight !== '') {
          row.feedweight = formatNum(
            parseFloat(row.ftweight),
            parseInt(Cookies.get('decimal'))
          )
        } else if (row.supplyweight !== '' && row.ftweight !== '') {
          row.feedweight = formatNum(
            parseFloat(row.supplyweight),
            parseInt(Cookies.get('decimal'))
          )
        }

        if (row.ccountratio !== '' && row.ftweight !== '') {
          row.ftweight = formatNum(
            parseFloat(row.Sfweight) * parseFloat(row.ccountratio) +
              parseFloat(row.SfweightLock) * parseFloat(row.ccount),
            parseInt(Cookies.get('decimal'))
          )
        }
        if (row.Sfweight !== '' && row.ccount !== '') {
          this.$set(
            row,
            'ftweight',
            formatNum(
              parseFloat(row.Sfweight) * parseFloat(row.ccountratio) +
                parseFloat(row.SfweightLock) * parseFloat(row.ccount),
              parseInt(Cookies.get('decimal'))
            )
          )
        } else {
          row.ftweight = ''
        }
      }
      console.log(row.supplyweight)
      if (row.supplyweight == 'NaN') {
        row.supplyweight = 0
      }
      if (row.r1 !== '') {
        this.$set(
          row,
          'w1',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r1) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r2 !== '') {
        this.$set(
          row,
          'w2',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r2) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r3 !== '') {
        this.$set(
          row,
          'w3',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r3) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r4 !== '') {
        this.$set(
          row,
          'w4',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r4) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r5 !== '') {
        this.$set(
          row,
          'w5',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r5) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r6 !== '') {
        this.$set(
          row,
          'w6',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r6) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.w1 == '') {
        row.w1 = 0
      }
      if (row.w2 == '') {
        row.w2 = 0
      }
      if (row.w3 == '') {
        row.w3 = 0
      }
      if (row.w4 == '') {
        row.w4 = 0
      }
      if (row.w5 == '') {
        row.w5 = 0
      }
      if (row.w6 == '') {
        row.w6 = 0
      }
      this.$set(
        row,
        'dailyWeight',
        parseFloat(row.w1) +
          parseFloat(row.w2) +
          parseFloat(row.w3) +
          parseFloat(row.w4) +
          parseFloat(row.w5) +
          parseFloat(row.w6)
      )
      row.dailyWeight = formatNum(
        row.dailyWeight,
        parseInt(Cookies.get('decimal'))
      )
    },
    // 补料配方
    changeFeedingFormula(item, row) {
      console.log(item, '=========')
      if (item == '') {
        row.bw1 = 0
        row.bw2 = 0
        row.bw3 = 0
        row.bw4 = 0
        row.bw5 = 0
        row.bw6 = 0
      }
      // 补料重量supplyweight
      // 配方重量ftweight
      // 系数头数ccountratio
      // 投喂量feedweight
      // 实际牛头数ccount
      // 投喂量 = 配方重量 + 补料重量
      row.myccname = this.feedingFormulaList.find(
        (obj) => obj.id == item
      ).ccname
      if (row.bigcowclass !== row.myccname) {
        this.$message({
          type: 'warning',
          message: this.$t('message.msg117'),
          duration: 2000
        })
      }
      if (item !== '') {
        console.log(456)
        row.ptsfname = this.feedingFormulaList.find(
          (obj) => obj.id == item
        ).tname
        row.BLweight = this.feedingFormulaList.find(
          (obj) => obj.id == item
        ).Sfweight
        row.BLSfweightLock = this.feedingFormulaList.find(
          (obj) => obj.id == item
        ).SfweightLock
      } else {
        row.ptsfname = ''
        row.BLweight = 0
        row.BLSfweightLock = 0
      }
      // 配方重量 = 系数头数 * Sfweight
      // if (row.ccountratio !== '' && row.ftweight !== '') {
      //   row.ftweight = parseFloat(row.Sfweight) * parseFloat(row.ccountratio)
      // }

      // 补料重量 = 系数头数 * BLweight
      // console.log(row.ccountratio)
      // console.log(row.ccount)
      // console.log(row.BLweight)
      // console.log(row.BLSfweightLock)
      if (
        row.ccountratio !== '' &&
        row.ccount !== '' &&
        row.ccount.BLweight !== '' &&
        row.BLSfweightLock !== ''
      ) {
        this.$set(
          row,
          'supplyweight',
          formatNum(
            parseFloat(row.BLweight) * parseFloat(row.ccountratio) +
              parseFloat(row.BLSfweightLock) * parseFloat(row.ccount),
            parseInt(Cookies.get('decimal'))
          )
        )
      } else {
        row.supplyweight = ''
      }

      if (this.table.isPtsfname == false) {
        row.feedweight = parseFloat(row.ftweight)
      } else {
        if (row.supplyweight !== '' && row.ftweight !== '') {
          row.feedweight = formatNum(
            parseFloat(row.supplyweight) + parseFloat(row.ftweight),
            parseInt(Cookies.get('decimal'))
          )
        } else if (row.supplyweight == '' && row.ftweight !== '') {
          row.feedweight = formatNum(
            parseFloat(row.ftweight),
            parseInt(Cookies.get('decimal'))
          )
        } else if (row.supplyweight !== '' && row.ftweight == '') {
          row.feedweight = formatNum(
            parseFloat(row.supplyweight),
            parseInt(Cookies.get('decimal'))
          )
        }
      }
      if (row.r1 !== '') {
        this.$set(
          row,
          'w1',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r1) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r2 !== '') {
        this.$set(
          row,
          'w2',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r2) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r3 !== '') {
        this.$set(
          row,
          'w3',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r3) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r4 !== '') {
        this.$set(
          row,
          'w4',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r4) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r5 !== '') {
        this.$set(
          row,
          'w5',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r5) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.r6 !== '') {
        this.$set(
          row,
          'w6',
          formatNum(
            parseFloat(row.feedweight) * (parseFloat(row.r6) / 100),
            parseInt(Cookies.get('decimal'))
          )
        )
      }
      if (row.w1 == '') {
        row.w1 = 0
      }
      if (row.w2 == '') {
        row.w2 = 0
      }
      if (row.w3 == '') {
        row.w3 = 0
      }
      if (row.w4 == '') {
        row.w4 = 0
      }
      if (row.w5 == '') {
        row.w5 = 0
      }
      if (row.w6 == '') {
        row.w6 = 0
      }
      this.$set(
        row,
        'dailyWeight',
        parseFloat(row.w1) +
          parseFloat(row.w2) +
          parseFloat(row.w3) +
          parseFloat(row.w4) +
          parseFloat(row.w5) +
          parseFloat(row.w6)
      )
      row.dailyWeight = formatNum(
        row.dailyWeight,
        parseInt(Cookies.get('decimal'))
      )
    },
    // 实际牛头数失去焦点计算
    // ccount实际牛头数
    // ratio系数
    // ccountratio系数牛头数
    blurCcount(row) {
      // 实际牛头数
      if (row.ftid !== '-1' && row.ftid !== '') {
        row.Sfweight = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).Sfweight
        row.SfweightLock = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).SfweightLock
      }
      if (row.w1 == '' || row.w1 == undefined || isNaN(row.w1)) {
        row.w1 = 0
      }
      if (row.w2 == '' || row.w2 == undefined || isNaN(row.w2)) {
        row.w2 = 0
      }
      if (row.w3 == '' || row.w3 == undefined || isNaN(row.w3)) {
        row.w3 = 0
      }
      if (row.w4 == '' || row.w4 == undefined || isNaN(row.w4)) {
        row.w4 = 0
      }
      if (row.w5 == '' || row.w5 == undefined || isNaN(row.w5)) {
        row.w5 = 0
      }
      if (row.w6 == '' || row.w6 == undefined || isNaN(row.w6)) {
        row.w6 = 0
      }

      // 系数不变
      // 系数头数=实际牛头数*系数
      row.ccountratio = (row.ccount * row.ratio) / 100
      // 配方重量=实际牛头数*系数*配方模板取Sfweight
      row.ftweight = (((row.ccount * row.ratio) / 100) * row.Sfweight).toFixed(
        this.decimal
      )
      this.public(row)
      this.placeholder(row)
    },
    blurRatio(row) {
      if (row.ftid !== '-1' && row.ftid !== '') {
        row.Sfweight = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).Sfweight
        row.SfweightLock = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).SfweightLock
      }
      if (row.w1 == '' || row.w1 == undefined || isNaN(row.w1)) {
        row.w1 = 0
      }
      if (row.w2 == '' || row.w2 == undefined || isNaN(row.w2)) {
        row.w2 = 0
      }
      if (row.w3 == '' || row.w3 == undefined || isNaN(row.w3)) {
        row.w3 = 0
      }
      if (row.w4 == '' || row.w4 == undefined || isNaN(row.w4)) {
        row.w4 = 0
      }
      if (row.w5 == '' || row.w5 == undefined || isNaN(row.w5)) {
        row.w5 = 0
      }
      if (row.w6 == '' || row.w6 == undefined || isNaN(row.w6)) {
        row.w6 = 0
      }
      // 配方重量=实际牛头数*系数*配方模板取Sfweight
      row.ftweight = (((row.ccount * row.ratio) / 100) * row.Sfweight).toFixed(
        this.decimal
      )
      // 实际牛头数不变
      // 系数头数=实际牛头数*系数
      row.ccountratio = (
        parseFloat(row.ccount) *
        (parseFloat(row.ratio) / 100)
      ).toFixed(this.decimal)
      this.public(row)
      this.placeholder(row)
    },
    blurCcountratio(row) {
      if (row.ftid !== '-1' && row.ftid !== '') {
        row.Sfweight = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).Sfweight
        row.SfweightLock = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).SfweightLock
      }
      if (row.w1 == '' || row.w1 == undefined || isNaN(row.w1)) {
        row.w1 = 0
      }
      if (row.w2 == '' || row.w2 == undefined || isNaN(row.w2)) {
        row.w2 = 0
      }
      if (row.w3 == '' || row.w3 == undefined || isNaN(row.w3)) {
        row.w3 = 0
      }
      if (row.w4 == '' || row.w4 == undefined || isNaN(row.w4)) {
        row.w4 = 0
      }
      if (row.w5 == '' || row.w5 == undefined || isNaN(row.w5)) {
        row.w5 = 0
      }
      if (row.w6 == '' || row.w6 == undefined || isNaN(row.w6)) {
        row.w6 = 0
      }
      // 实际牛头数不变
      // 系数=系数头数/实际牛头数*100
      row.ratio = (
        (parseFloat(row.ccountratio) / parseFloat(row.ccount)) *
        100
      ).toFixed(this.decimal)
      // 配方重量=实际牛头数*系数*配方模板取Sfweight
      row.ftweight = (((row.ccount * row.ratio) / 100) * row.Sfweight).toFixed(
        this.decimal
      )
      this.public(row)
      this.placeholder(row)
    },
    public(row) {
      console.log(row, 'row')
      // 未锁定时:各班次比例不变，各班次重量=配方重量*各班次比例
      // 锁定时:未锁定班次比例不变，锁定班次比例=班次重量/配方重量x100%
      if (row.isOneWeight == true) {
        if (
          row.w1 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w1)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r1 = (
            (parseFloat(row.w1) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r1 = 0
        }
      } else {
        if (
          row.r1 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r1)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w1 = (
            (parseFloat(row.ftweight) * parseFloat(row.r1)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w1 = 0
        }
      }
      if (row.isTwoWeight == true) {
        if (
          row.w2 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w2)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r2 = (
            (parseFloat(row.w2) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r2 = 0
        }
      } else {
        if (
          row.r2 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r2)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w2 = (
            (parseFloat(row.ftweight) * parseFloat(row.r2)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w2 = 0
        }
      }
      if (row.isThreeWeight == true) {
        if (
          row.w3 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w3)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r3 = (
            (parseFloat(row.w3) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r3 = 0
        }
      } else {
        if (
          row.r3 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r3)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w3 = (
            (parseFloat(row.ftweight) * parseFloat(row.r3)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w3 = 0
        }
      }
      if (row.isFourWeight == true) {
        if (
          row.w4 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w4)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r4 = (
            (parseFloat(row.w4) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r4 = 0
        }
      } else {
        if (
          row.r4 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r4)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w4 = (
            (parseFloat(row.ftweight) * parseFloat(row.r4)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w4 = 0
        }
      }
      if (row.isFiveWeight == true) {
        if (
          row.w5 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w5)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r5 = (
            (parseFloat(row.w5) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r5 = 0
        }
      } else {
        if (
          row.r5 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r5)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w5 = (
            (parseFloat(row.ftweight) * parseFloat(row.r5)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w5 = 0
        }
      }
      if (row.isSixWeight == true) {
        if (
          row.w6 &&
          row.ftweight &&
          !isNaN(parseFloat(row.w6)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.r6 = (
            (parseFloat(row.w6) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r5 = 0
        }
      } else {
        if (
          row.r6 &&
          row.ftweight &&
          !isNaN(parseFloat(row.r6)) &&
          !isNaN(parseFloat(row.ftweight))
        ) {
          row.w6 = (
            (parseFloat(row.ftweight) * parseFloat(row.r6)) /
            100
          ).toFixed(this.decimal)
        } else {
          row.w6 = 0
        }
      }
      console.log(row, 'row2')

      if (
        row.isOneWeight ||
        row.isTWoWeight ||
        row.isThreeWeight ||
        row.isFourWeight ||
        row.isFiveWeight ||
        row.isSixWeight
      ) {
        var sumr = 0
        if (row.r1 && !isNaN(row.r1)) {
          sumr += parseFloat(row.r1)
        }
        if (row.r2 && !isNaN(row.r2)) {
          sumr += parseFloat(row.r2)
        }
        if (row.r3 && !isNaN(row.r3)) {
          sumr += parseFloat(row.r3)
        }
        if (row.r4 && !isNaN(row.r4)) {
          sumr += parseFloat(row.r4)
        }
        if (row.r5 && !isNaN(row.r5)) {
          sumr += parseFloat(row.r5)
        }
        if (row.r6 && !isNaN(row.r6)) {
          sumr += parseFloat(row.r6)
        }
        this.$set(row, 'sumr', sumr.toFixed(this.decimalr))
      } else {
        // 总比例不变
        var sumr = 0
        if (row.r1 && !isNaN(row.r1)) {
          sumr += parseFloat(row.r1)
        }
        if (row.r2 && !isNaN(row.r2)) {
          sumr += parseFloat(row.r2)
        }
        if (row.r3 && !isNaN(row.r3)) {
          sumr += parseFloat(row.r3)
        }
        if (row.r4 && !isNaN(row.r4)) {
          sumr += parseFloat(row.r4)
        }
        if (row.r5 && !isNaN(row.r5)) {
          sumr += parseFloat(row.r5)
        }
        if (row.r6 && !isNaN(row.r6)) {
          sumr += parseFloat(row.r6)
        }
        this.$set(row, 'sumr', sumr.toFixed(this.decimalr))
      }
      // 饲喂投喂量 = 所有班次重量之和
      var sumw = 0
      if (row.w1 && !isNaN(row.w1)) {
        sumw += parseFloat(row.w1)
      }
      if (row.w2 && !isNaN(row.w2)) {
        sumw += parseFloat(row.w2)
      }
      if (row.w3 && !isNaN(row.w3)) {
        sumw += parseFloat(row.w3)
      }
      if (row.w4 && !isNaN(row.w4)) {
        sumw += parseFloat(row.w4)
      }
      if (row.w5 && !isNaN(row.w5)) {
        sumw += parseFloat(row.w5)
      }
      if (row.w6 && !isNaN(row.w6)) {
        sumw += parseFloat(row.w6)
      }
      this.$set(row, 'sumw', sumw.toFixed(this.decimal))
      // 日投喂量 = 饲喂投喂量+补料
      if (isNaN(row.bw1) || row.bw1 == '') {
        this.$set(row, 'bw1', 0)
      }
      if (isNaN(row.bw2) || row.bw2 == '') {
        this.$set(row, 'bw2', 0)
      }
      if (isNaN(row.bw3) || row.bw3 == '') {
        this.$set(row, 'bw3', 0)
      }
      if (isNaN(row.bw4) || row.bw4 == '') {
        this.$set(row, 'bw4', 0)
      }
      if (isNaN(row.bw5) || row.bw5 == '') {
        this.$set(row, 'bw5', 0)
      }
      if (isNaN(row.bw6) || row.bw6 == '') {
        this.$set(row, 'bw6', 0)
      }
      // var sumbw = (parseFloat(row.bw1) + parseFloat(row.bw2) + parseFloat(row.bw3) + parseFloat(row.bw4) + parseFloat(row.bw5) + parseFloat(row.bw6)).toFixed(this.decimal)
      var sumbw = 0
      if (row.bw1 && !isNaN(row.bw1)) {
        sumbw += parseFloat(row.bw1)
      }
      if (row.bw2 && !isNaN(row.bw2)) {
        sumbw += parseFloat(row.bw2)
      }
      if (row.bw3 && !isNaN(row.bw3)) {
        sumbw += parseFloat(row.bw3)
      }
      if (row.bw4 && !isNaN(row.bw4)) {
        sumbw += parseFloat(row.bw4)
      }
      if (row.bw5 && !isNaN(row.bw5)) {
        sumbw += parseFloat(row.bw5)
      }
      if (row.bw6 && !isNaN(row.bw6)) {
        sumbw += parseFloat(row.bw6)
      }
      this.$set(row, 'sumbw', sumbw.toFixed(this.decimal))
      var todayfeed = parseFloat(sumw) + parseFloat(sumbw)
      this.$set(row, 'todayfeed', todayfeed)
    },

    blurR(row, item) {
      if (row.ftid !== '-1' && row.ftid !== '') {
        row.Sfweight = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).Sfweight
      }
      // 配方重量=实际牛头数*系数*配方模板取Sfweight
      row.ftweight = (
        ((parseFloat(row.ccount) * parseFloat(row.ratio)) / 100) *
        parseFloat(row.Sfweight)
      ).toFixed(this.decimal)
      console.log(parseFloat(row.ccount), '======ccount')
      console.log(parseFloat(row.ftweight), '======ftweight')
      if (item == 1) {
        // 一班比例
        if (
          !isNaN(parseFloat(row.r1)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r1 &&
          row.ftweight
        ) {
          row.w1 = (
            (parseFloat(row.r1) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w1 = 0
        }
      } else if (item == 2) {
        // 二班比例
        if (
          !isNaN(parseFloat(row.r2)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r2 &&
          row.ftweight
        ) {
          row.w2 = (
            (parseFloat(row.r2) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w2 = 0
        }
      } else if (item == 3) {
        // 三班比例
        if (
          !isNaN(parseFloat(row.r3)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r3 &&
          row.ftweight
        ) {
          row.w3 = (
            (parseFloat(row.r3) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w3 = 0
        }
      } else if (item == 4) {
        // 四班比例
        if (
          !isNaN(parseFloat(row.r4)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r4 &&
          row.ftweight
        ) {
          row.w4 = (
            (parseFloat(row.r4) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w4 = 0
        }
      } else if (item == 5) {
        // 五班比例
        if (
          !isNaN(parseFloat(row.r5)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r5 &&
          row.ftweight
        ) {
          row.w5 = (
            (parseFloat(row.r5) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w5 = 0
        }
      } else if (item == 6) {
        // 六班比例
        if (
          !isNaN(parseFloat(row.r6)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.r6 &&
          row.ftweight
        ) {
          row.w6 = (
            (parseFloat(row.r6) / 100) *
            parseFloat(row.ftweight)
          ).toFixed(this.decimal)
        } else {
          row.w6 = 0
        }
      }
      // 总比例=所有比例之和
      // 饲喂投喂量 = 所有班次重量之和
      var sumr = 0
      if (row.r1 && !isNaN(row.r1)) {
        sumr += parseFloat(row.r1)
      }
      if (row.r2 && !isNaN(row.r2)) {
        sumr += parseFloat(row.r2)
      }
      if (row.r3 && !isNaN(row.r3)) {
        sumr += parseFloat(row.r3)
      }
      if (row.r4 && !isNaN(row.r4)) {
        sumr += parseFloat(row.r4)
      }
      if (row.r5 && !isNaN(row.r5)) {
        sumr += parseFloat(row.r5)
      }
      if (row.r6 && !isNaN(row.r6)) {
        sumr += parseFloat(row.r6)
      }
      this.$set(row, 'sumr', sumr.toFixed(this.decimalr))
      var sumw = 0
      if (row.w1 && !isNaN(row.w1)) {
        sumw += parseFloat(row.w1)
      }
      if (row.w2 && !isNaN(row.w2)) {
        sumw += parseFloat(row.w2)
      }
      if (row.w3 && !isNaN(row.w3)) {
        sumw += parseFloat(row.w3)
      }
      if (row.w4 && !isNaN(row.w4)) {
        sumw += parseFloat(row.w4)
      }
      if (row.w5 && !isNaN(row.w5)) {
        sumw += parseFloat(row.w5)
      }
      if (row.w6 && !isNaN(row.w6)) {
        sumw += parseFloat(row.w6)
      }
      this.$set(row, 'sumw', sumw.toFixed(this.decimal))
      // 日投喂量 = 饲喂投喂量+补料
      if (isNaN(row.bw1) || row.bw1 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw1', 0)
      }
      if (isNaN(row.bw2) || row.bw2 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw2', 0)
      }
      if (isNaN(row.bw3) || row.bw3 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw3', 0)
      }
      if (isNaN(row.bw4) || row.bw4 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw4', 0)
      }
      if (isNaN(row.bw5) || row.bw5 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw5', 0)
      }
      if (isNaN(row.bw6) || row.bw6 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw6', 0)
      }
      var sumbw = 0
      if (row.bw1 && !isNaN(row.bw1)) {
        sumbw += parseFloat(row.bw1)
      }
      if (row.bw2 && !isNaN(row.bw2)) {
        sumbw += parseFloat(row.bw2)
      }
      if (row.bw3 && !isNaN(row.bw3)) {
        sumbw += parseFloat(row.bw3)
      }
      if (row.bw4 && !isNaN(row.bw4)) {
        sumbw += parseFloat(row.bw4)
      }
      if (row.bw5 && !isNaN(row.bw5)) {
        sumbw += parseFloat(row.bw5)
      }
      if (row.bw6 && !isNaN(row.bw6)) {
        sumbw += parseFloat(row.bw6)
      }
      this.$set(row, 'sumbw', sumbw.toFixed(this.decimal))
      // var sumbw = (parseFloat(row.bw1) + parseFloat(row.bw2) + parseFloat(row.bw3) + parseFloat(row.bw4) + parseFloat(row.bw5) + parseFloat(row.bw6)).toFixed(this.decimal)
      var todayfeed = parseFloat(sumw) + parseFloat(sumbw)
      console.log(todayfeed, 'sumw==')
      this.$set(row, 'todayfeed', todayfeed)
      this.placeholder(row)
    },
    placeholder(row) {
      this.$set(row, 'placeholder_r1', this.oldRowList.r1)
      this.$set(row, 'placeholder_r2', this.oldRowList.r2)
      this.$set(row, 'placeholder_r3', this.oldRowList.r3)
      this.$set(row, 'placeholder_r4', this.oldRowList.r4)
      this.$set(row, 'placeholder_r5', this.oldRowList.r5)
      this.$set(row, 'placeholder_r6', this.oldRowList.r6)
      this.$set(row, 'placeholder_w1', this.oldRowList.w1)
      this.$set(row, 'placeholder_w2', this.oldRowList.w2)
      this.$set(row, 'placeholder_w3', this.oldRowList.w3)
      this.$set(row, 'placeholder_w4', this.oldRowList.w4)
      this.$set(row, 'placeholder_w5', this.oldRowList.w5)
      this.$set(row, 'placeholder_w6', this.oldRowList.w6)
      this.$set(row, 'placeholder_bw1', this.oldRowList.bw1)
      this.$set(row, 'placeholder_bw2', this.oldRowList.bw2)
      this.$set(row, 'placeholder_bw3', this.oldRowList.bw3)
      this.$set(row, 'placeholder_bw4', this.oldRowList.bw4)
      this.$set(row, 'placeholder_bw5', this.oldRowList.bw5)
      this.$set(row, 'placeholder_bw6', this.oldRowList.bw6)
      this.$set(row, 'placeholder_ccount', this.oldRowList.ccount)
      this.$set(row, 'placeholder_ratio', this.oldRowList.ratio)
      this.$set(row, 'placeholder_ccountratio', this.oldRowList.ccountratio)
    },
    blurWeight(row, item) {
      // 配方重量=实际牛头数*系数*配方模板取Sfweight
      if (row.ftid !== '-1' && row.ftid !== '') {
        row.Sfweight = this.recipeTemplateList.find(
          (obj) => obj.id == row.ftid
        ).Sfweight
      }
      if (item == 1) {
        // 一班重量
        if (
          !isNaN(parseFloat(row.w1)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w1 &&
          row.ftweight
        ) {
          row.r1 = (
            (parseFloat(row.w1) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r1 = 0
        }
      } else if (item == 2) {
        // 二班重量
        if (
          !isNaN(parseFloat(row.w2)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w2 &&
          row.ftweight
        ) {
          row.r2 = (
            (parseFloat(row.w2) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r2 = 0
        }
      } else if (item == 3) {
        // 三班重量
        if (
          !isNaN(parseFloat(row.w3)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w3 &&
          row.ftweight
        ) {
          row.r3 = (
            (parseFloat(row.w3) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r3 = 0
        }
      } else if (item == 4) {
        // 四班重量
        if (
          !isNaN(parseFloat(row.w4)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w4 &&
          row.ftweight
        ) {
          row.r4 = (
            (parseFloat(row.w4) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r4 = 0
        }
      } else if (item == 5) {
        // 五班重量
        if (
          !isNaN(parseFloat(row.w5)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w5 &&
          row.ftweight
        ) {
          row.r5 = (
            (parseFloat(row.w5) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r5 = 0
        }
      } else if (item == 6) {
        // 六班重量
        if (
          !isNaN(parseFloat(row.w6)) &&
          !isNaN(parseFloat(row.ftweight)) &&
          row.w6 &&
          row.ftweight
        ) {
          row.r6 = (
            (parseFloat(row.w6) / parseFloat(row.ftweight)) *
            100
          ).toFixed(this.decimalr)
        } else {
          row.r6 = 0
        }
      }
      // 总比例=所有比例之和
      // 饲喂投喂量 = 所有班次重量之和
      var sumr = 0
      if (row.r1 && !isNaN(row.r1)) {
        sumr += parseFloat(row.r1)
      }
      if (row.r2 && !isNaN(row.r2)) {
        sumr += parseFloat(row.r2)
      }
      if (row.r3 && !isNaN(row.r3)) {
        sumr += parseFloat(row.r3)
      }
      if (row.r4 && !isNaN(row.r4)) {
        sumr += parseFloat(row.r4)
      }
      if (row.r5 && !isNaN(row.r5)) {
        sumr += parseFloat(row.r5)
      }
      if (row.r6 && !isNaN(row.r6)) {
        sumr += parseFloat(row.r6)
      }
      this.$set(row, 'sumr', sumr.toFixed(this.decimalr))
      var sumw = 0
      if (row.w1 && !isNaN(row.w1)) {
        sumw += parseFloat(row.w1)
      }
      if (row.w2 && !isNaN(row.w2)) {
        sumw += parseFloat(row.w2)
      }
      if (row.w3 && !isNaN(row.w3)) {
        sumw += parseFloat(row.w3)
      }
      if (row.w4 && !isNaN(row.w4)) {
        sumw += parseFloat(row.w4)
      }
      if (row.w5 && !isNaN(row.w5)) {
        sumw += parseFloat(row.w5)
      }
      if (row.w6 && !isNaN(row.w6)) {
        sumw += parseFloat(row.w6)
      }
      this.$set(row, 'sumw', sumw.toFixed(this.decimal))
      // 日投喂量 = 饲喂投喂量+补料
      if (isNaN(row.bw1) || row.bw1 == '' || row.bw1 == undefined) {
        this.$set(row, 'bw1', 0)
      }
      if (isNaN(row.bw2) || row.bw2 == '' || row.bw2 == undefined) {
        this.$set(row, 'bw2', 0)
      }
      if (isNaN(row.bw3) || row.bw3 == '' || row.bw3 == undefined) {
        this.$set(row, 'bw3', 0)
      }
      if (isNaN(row.bw4) || row.bw4 == '' || row.bw4 == undefined) {
        this.$set(row, 'bw4', 0)
      }
      if (isNaN(row.bw5) || row.bw5 == '' || row.bw5 == undefined) {
        this.$set(row, 'bw5', 0)
      }
      if (isNaN(row.bw6) || row.bw6 == '' || row.bw6 == undefined) {
        this.$set(row, 'bw6', 0)
      }
      var sumbw = 0
      if (row.bw1 && !isNaN(row.bw1)) {
        sumbw += parseFloat(row.bw1)
      }
      if (row.bw2 && !isNaN(row.bw2)) {
        sumbw += parseFloat(row.bw2)
      }
      if (row.bw3 && !isNaN(row.bw3)) {
        sumbw += parseFloat(row.bw3)
      }
      if (row.bw4 && !isNaN(row.bw4)) {
        sumbw += parseFloat(row.bw4)
      }
      if (row.bw5 && !isNaN(row.bw5)) {
        sumbw += parseFloat(row.bw5)
      }
      if (row.bw6 && !isNaN(row.bw6)) {
        sumbw += parseFloat(row.bw6)
      }
      this.$set(row, 'sumbw', sumbw.toFixed(this.decimal))
      // var sumbw = (parseFloat(row.bw1) + parseFloat(row.bw2) + parseFloat(row.bw3) + parseFloat(row.bw4) + parseFloat(row.bw5) + parseFloat(row.bw6)).toFixed(this.decimal)
      var todayfeed = parseFloat(sumw) + parseFloat(sumbw)
      this.$set(row, 'todayfeed', todayfeed)
      this.placeholder(row)
    },
    blurBw(row) {
      this.placeholder(row)
    },
    celldblclick(row, column, cell, event) {
      console.log(row, '=====')
      if (!this.isproportion) {
        this.handleUpdate(row)
      }
    },
    // 编辑
    handleUpdate(row) {
      console.log(row)
      this.oldRowList = { ...row }
      for (let i = 0; i < this.table.list.length; i++) {
        if (this.table.list[i].Edit == true) {
          this.$message({
            type: 'error',
            message: this.$t('driver.messageNote'),
            duration: 2000
          })
          return false
        }
      }
      // 编辑true,不可编辑false
      row.Edit = true
      row.NoEdit = false
      // 编辑false,编辑保存true
      row.isUpdate = false
      row.isUpdateSave = true
      row.ftid = String(row.ftid)
      if (row.ptsfid == '-1') {
        row.ptsfid = ''
      }
      row.ptsfid = String(row.ptsfid)
      // dryweight
      this.table.temp.ftid = row.ftid
      this.table.temp.ftname = row.ftname
      this.table.temp.ptsfid = row.ptsfid
      this.table.temp.ptsfname = row.ptsfname
    },
    updateData(row) {
      if (isNaN(row.r1)) {
        this.$set(row, 'r1', 0)
      }
      if (isNaN(row.r2)) {
        this.$set(row, 'r2', 0)
      }
      if (isNaN(row.r3)) {
        this.$set(row, 'r3', 0)
      }
      if (isNaN(row.r4)) {
        this.$set(row, 'r4', 0)
      }
      if (isNaN(row.r5)) {
        this.$set(row, 'r5', 0)
      }
      if (isNaN(row.r6)) {
        this.$set(row, 'r6', 0)
      }
      if (isNaN(row.w1)) {
        this.$set(row, 'w1', 0)
      }
      if (isNaN(row.w2)) {
        this.$set(row, 'w2', 0)
      }
      if (isNaN(row.w3)) {
        this.$set(row, 'w3', 0)
      }
      if (isNaN(row.w4)) {
        this.$set(row, 'w4', 0)
      }
      if (isNaN(row.w5)) {
        this.$set(row, 'w5', 0)
      }
      if (isNaN(row.w6)) {
        this.$set(row, 'w6', 0)
      }
      if (isNaN(row.bw1)) {
        this.$set(row, 'bw1', 0)
      }
      if (isNaN(row.bw2)) {
        this.$set(row, 'bw2', 0)
      }
      if (isNaN(row.bw3)) {
        this.$set(row, 'bw3', 0)
      }
      if (isNaN(row.bw4)) {
        this.$set(row, 'bw4', 0)
      }
      if (isNaN(row.bw5)) {
        this.$set(row, 'bw5', 0)
      }
      if (isNaN(row.bw6)) {
        this.$set(row, 'bw6', 0)
      }
      var arr = []
      for (let i = 1; i <= this.table.RWLength; i++) {
        var obj = {}
        obj['times'] = i
        obj['pastureid'] = row.pastureid
        obj['barid'] = row.barid
        obj['cowcount'] = row.ccount
        obj['ccountradio'] = row.ccountradio
        obj['ptid'] = row.ftid
        if (row.ptsfid !== '') {
          obj['ptsid'] = row.ptsfid
        } else {
          obj['ptsid'] = '-1'
        }
        obj['weight'] = row['w' + i]
        if (row['bw' + i] == '') {
          obj['supplement'] = 0
        } else {
          obj['supplement'] = row['bw' + i]
        }
        obj['tratio'] = parseFloat(row['r' + i]).toFixed(
          parseInt(Cookies.get('decimalr'))
        )
        obj['todaysupplement'] = row.todaysupplement
        obj['todayweight'] = row.todayweight
        arr.push(obj)
      }
      arr.forEach((item) => {
        if (isNaN(item.tratio)) {
          item.tratio = 0
        }
      })
      if (this.table.isPtsfname == 0) {
        row.ptsfid = '-1'
        row.ptsfname = ''
      } else {
        if (row.ptsfid == '') {
          row.ptsfid = '-1'
          row.ptsfname = ''
        }
      }
      if (row.supplyweight == '') {
        row.supplyweight = '0'
      }
      if (this.table.isPtsfname == false) {
        row.supplyweight = '0'
      }
      this.$set(row, 'ratio', Math.floor(parseFloat(row.ratio) * 100) / 100)
      this.$set(
        row,
        'ccountratio',
        Math.floor(parseFloat(row.ccountratio) * 100) / 100
      )
      row.ccountratio = String(row.ccountratio)
      row.sumr = Math.round(row.sumr)

      // for(let i=0;i<arr.length;i++){
      //   if(arr[i].tratio == undefined ||arr[i].tratio =='' || arr[i].tratio == null){
      //     arr[i].tratio = 0
      //   }
      // }
      this.table.rwList = arr
      console.log('点击了编辑保存', row)
      if (row.feedweight == '') {
        row.feedweight = row.todayweight
      }
      this.table.temp.pastureid = row.pastureid
      this.table.temp.id = row.id
      this.table.temp.barname = row.barname
      this.table.temp.barid = row.barid
      this.table.temp.ccount = row.ccount
      this.table.temp.ratio = row.ratio
      this.table.temp.ccountratio = row.ccountratio
      this.table.temp.ftid = row.ftid
      this.table.temp.ftname = row.ftname
      this.table.temp.ptsfid = row.ptsfid
      this.table.temp.ptsfname = row.ptsfname
      this.table.temp.ftweight = row.ftweight
      this.table.temp.supplyweight = row.supplyweight
      this.table.temp.feedweight = row.feedweight
      this.table.temp.owner = row.owner
      this.table.temp.sumr = row.sumr
      if (row.softccount == '') {
        row.softccount = 0
      }
      if (row.r1 == '' || isNaN(row.r1)) {
        row.r1 = 0
      }
      if (row.r2 == '' || isNaN(row.r2)) {
        row.r2 = 0
      }
      if (row.r3 == '' || isNaN(row.r3)) {
        row.r3 = 0
      }
      if (row.r4 == '' || isNaN(row.r4)) {
        row.r4 = 0
      }
      if (row.r5 == '' || isNaN(row.r5)) {
        row.r5 = 0
      }
      if (row.r6 == '' || isNaN(row.r6)) {
        row.r6 = 0
      }
      if (row.w1 == '' || isNaN(row.w1)) {
        row.w1 = 0
      }
      if (row.w2 == '' || isNaN(row.w2)) {
        row.w2 = 0
      }
      if (row.w3 == '' || isNaN(row.w3)) {
        row.w3 = 0
      }
      if (row.w4 == '' || isNaN(row.w4)) {
        row.w4 = 0
      }
      if (row.w5 == '' || isNaN(row.w5)) {
        row.w5 = 0
      }
      if (row.w6 == '' || isNaN(row.w6)) {
        row.w6 = 0
      }
      console.log(row, '===========')
      this.table.temp.softccount = row.softccount
      this.table.temp.r1 = Math.round(row.r1)
      this.table.temp.r2 = Math.round(row.r2)
      this.table.temp.r3 = Math.round(row.r3)
      this.table.temp.r4 = Math.round(row.r4)
      this.table.temp.r5 = Math.round(row.r5)
      this.table.temp.r6 = Math.round(row.r6)
      this.table.temp.w1 = row.w1
      this.table.temp.w2 = row.w2
      this.table.temp.w3 = row.w3
      this.table.temp.w4 = row.w4
      this.table.temp.w5 = row.w5
      this.table.temp.w6 = row.w6

      var obj = {}
      obj.userId = Cookies.get('employeid')
      obj.pastureid = row.pastureid
      obj.id = row.id
      obj.data = []
      if (this.oldRowList.w1 !== row.w1) {
        obj.data.push({
          old: this.oldRowList.w1,
          new: row.w1,
          times: 1,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.w2 !== row.w2) {
        obj.data.push({
          old: this.oldRowList.w2,
          new: row.w2,
          times: 2,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.w3 !== row.w3) {
        obj.data.push({
          old: this.oldRowList.w3,
          new: row.w3,
          times: 3,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.w4 !== row.w4) {
        obj.data.push({
          old: this.oldRowList.w4,
          new: row.w4,
          times: 4,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.w5 !== row.w5) {
        obj.data.push({
          old: this.oldRowList.w5,
          new: row.w5,
          times: 5,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.w6 !== row.w6) {
        obj.data.push({
          old: this.oldRowList.w6,
          new: row.w6,
          times: 6,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw1 !== row.bw1) {
        obj.data.push({
          old: this.oldRowList.bw1,
          new: row.bw1,
          times: 1,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw2 !== row.bw2) {
        obj.data.push({
          old: this.oldRowList.bw2,
          new: row.bw2,
          times: 2,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw3 !== row.bw3) {
        obj.data.push({
          old: this.oldRowList.bw3,
          new: row.bw3,
          times: 3,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw4 !== row.bw4) {
        obj.data.push({
          old: this.oldRowList.bw4,
          new: row.bw4,
          times: 4,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw5 !== row.bw5) {
        obj.data.push({
          old: this.oldRowList.bw5,
          new: row.bw5,
          times: 5,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (this.oldRowList.bw6 !== row.bw6) {
        obj.data.push({
          old: this.oldRowList.bw6,
          new: row.bw6,
          times: 6,
          ptid: row.ftid,
          ptsid: row.ptsfid
        })
      }
      if (
        this.table.temp.ccount == '' &&
        this.table.temp.ratio == '' &&
        this.table.temp.ccountratio == '' &&
        this.table.temp.ftid == ''
      ) {
        this.$message({
          type: 'error',
          message: this.$t('message.msg118'),
          duration: 2000
        })
        return false
      }
      if (
        this.table.temp.ratio == '' &&
        this.table.temp.ccountratio == '' &&
        this.table.temp.ftid == ''
      ) {
        this.$message({
          type: 'error',
          message: this.$t('message.msg119'),
          duration: 2000
        })
        return false
      }
      if (this.table.temp.ccountratio == '' && this.table.temp.ftid == '') {
        this.$message({
          type: 'error',
          message: this.$t('message.msg120'),
          duration: 2000
        })
        return false
      }
      console.log(this.table.temp.ccount, '实际牛头数不能为空')
      if (this.table.temp.ccount === '') {
        this.$message({
          type: 'error',
          message: this.$t('message.msg121'),
          duration: 2000
        })
        return false
      }
      if (this.table.temp.ratio === '') {
        this.$message({
          type: 'error',
          message: this.$t('message.msg122'),
          duration: 2000
        })
        return false
      }
      if (this.table.temp.ccountratio === '') {
        this.$message({
          type: 'error',
          message: this.$t('message.msg123'),
          duration: 2000
        })
        return false
      }
      if (this.table.temp.ftid == '') {
        this.$message({
          type: 'error',
          message: this.$t('message.msg124'),
          duration: 2000
        })
        return false
      }
      const positiveInteger = /^[0-9]\d*$/
      if (!positiveInteger.test(parseFloat(this.table.temp.ccount))) {
        this.$message({
          type: 'error',
          message: this.$t('message.msg125'),
          duration: 2000
        })
        return false
      }
      this.isokDisable = true
      setTimeout(() => {
        this.isokDisable = false
      }, 1000)
      let createdate = parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
      // this.requestParam.parammaps = this.table.temp
      this.requestParam.common = {
        returnmap: '0'
      }
      this.requestParam.data = []
      this.requestParam.data[0] = {
        name: 'updateBigFP',
        type: 'e',
        parammaps: {
          pastureid: row.pastureid,
          id: row.id,
          barname: row.barname,
          barid: row.barid,
          softccount: row.softccount,
          ccount: row.ccount,
          ratio: row.ratio,
          ccountratio: row.ccountratio,
          ftid: row.ftid,
          ftname: row.ftname,
          ptsfid: row.ptsfid,
          ptsfname: row.ptsfname,
          ftweight: row.ftweight,
          supplyweight: row.supplyweight,
          feedweight: row.feedweight,
          owner: row.owner,
          sumr: row.sumr
        }
      }
      this.requestParam.data[1] = {
        name: 'insertSpotList',
        resultmaps: { list: this.table.rwList }
      }
      this.requestParam.data[1].children = []
      this.requestParam.data[1].children[0] = {
        name: 'updateBigFPDetail',
        type: 'e',
        parammaps: {
          pastureid: '@insertSpotList.pastureid',
          barname: row.barname,
          barid: '@insertSpotList.barid',
          times: '@insertSpotList.times',
          tratio: '@insertSpotList.tratio',
          weight: '@insertSpotList.weight',
          cowcount: '@insertSpotList.cowcount',
          ccountradio: row.ccountratio,
          ptid: '@insertSpotList.ptid',
          ptsid: '@insertSpotList.ptsid',
          supplement: '@insertSpotList.supplement',
          feedweight: row.feedweight,
          supplyweight: row.supplyweight,
          ratio: row.ratio
        }
      }
      // this.requestParam.data[2] = { 'name': 'updateLPPbyFPChange', 'type': 'e', 'parammaps': {
      //   pastureid: row.pastureid,
      //   fpid: row.id
      // }}
      this.requestParam.data[2] = {
        name: 'insertFeedphistory',
        type: 'e',
        parammaps: {
          createdate: createdate,
          pastureid: row.pastureid,
          barname: row.barname,
          barid: row.barid,
          softccount: row.softccount,
          ccount: row.ccount,
          ratio: row.ratio,
          ccountratio: row.ccountratio,
          ftid: row.ftid,
          ftname: row.ftname,
          ptsfid: row.ptsfid,
          ptsfname: row.ptsfname,
          feedweight: row.feedweight,
          ftweight: row.ftweight,
          supplyweight: row.supplyweight
        }
      }
      this.requestParam.data[3] = {
        name: 'insertSpotList2',
        resultmaps: { list: this.table.rwList }
      }
      this.requestParam.data[3].children = []
      this.requestParam.data[3].children[0] = {
        name: 'insertFpdetailhistory',
        type: 'e',
        parammaps: {
          createdate: createdate,
          pastureid: '@insertSpotList2.pastureid',
          barname: row.barname,
          barid: '@insertSpotList2.barid',
          times: '@insertSpotList2.times',
          tratio: '@insertSpotList2.tratio',
          weight: '@insertSpotList2.weight',
          cowcount: '@insertSpotList2.cowcount',
          ccountradio: row.ccountratio,
          ptid: '@insertSpotList2.ptid',
          ptsid: '@insertSpotList2.ptsid',
          supplement: '@insertSpotList2.supplement',
          feedweight: row.feedweight,
          supplyweight: row.supplyweight,
          ratio: row.ratio,
          userId: Cookies.get('employeid')
        }
      }
      ExecDataByConfig(this.requestParam).then((response) => {
        console.log('编辑保存发送参数', this.requestParam)
        if (response.msg === 'fail') {
          this.$notify({
            title: this.$t('driver.saveFail'),
            message: response.data,
            type: 'warning',
            duration: 2000
          })
        } else {
          if (obj.data.length > 0) {
            const url = 'authdata/fpdetail/edit'
            const data = obj
            postJson(url, data).then((response) => {
              if (response.msg !== 'fail') {
                this.$notify({
                  title: this.$t('common.succes'),
                  message: this.$t('driver.saveSuccess'),
                  type: 'success',
                  duration: 2000
                })
              }
            })
          } else {
            this.$notify({
              title: this.$t('common.succes'),
              message: this.$t('driver.saveSuccess'),
              type: 'success',
              duration: 2000
            })
          }
          this.getList()
          for (let i = 0; i < this.headerList.length; i++) {
            if (this.headerList[i].target.className == 'el-icon-lock') {
              this.headerList[i].target.className = 'el-icon-unlock'
              this.$set(
                this.headerList[i].target,
                'className',
                'el-icon-unlock'
              )
            }
          }
        }
      })
    },
    updateCancel(row) {
      console.log('点击了编辑取消')
      // 编辑false,不可编辑true
      row.Edit = false
      row.NoEdit = true
      // 编辑true,编辑保存false
      row.isUpdate = true
      row.isUpdateSave = false
      // this.reload()
      for (let i = 0; i < this.headerList.length; i++) {
        if (this.headerList[i].target.className == 'el-icon-lock') {
          this.headerList[i].target.className = 'el-icon-unlock'
          this.$set(this.headerList[i].target, 'className', 'el-icon-unlock')
        }
      }
      console.log(this.table.getdataListParm.offset)
      this.table.getdataListParm.offset = this.table.getdataListParm.offset
      this.getList()
      // this.$router.push('/formulationPlan/dhedFormula')
    },
    handleSelect(val) {
      console.log('勾选数据', val)
      this.selectList = val
    },
    // 营养评估
    handleNutritional() {
      console.log('点击了营养评估')
      this.dialogFull = false
      if (this.selectList.length !== 1) {
        this.$message({
          type: 'error',
          message: this.$t('message.msg126'),
          duration: 2000
        })
        return false
      } else {
        console.log(this.nutritional.temp)
        this.nutritional.dialogStatus = 'Nutritional'
        this.nutritional.activeName = 'first'
        this.nutritional.dialogFormVisible = true
        this.nutritional.tab1.getdataListParm1.parammaps.pastureid =
          this.selectList[0].pastureid
        this.nutritional.tab1.getdataListParm1.parammaps.barid =
          this.selectList[0].barid
        this.getNutritionalList()
        this.nutritional.tab1.list = []
      }
    },
    tableRowClassName({ row }) {
      // console.log(row)
      if (row.isColor == '0') {
        return 'red-row'
      } else {
        return ''
      }
    },
    handleNutritionalTab(item) {
      if (item == 'first ') {
        this.nutritional.tab1.getdataListParm1.parammaps.pastureid =
          this.selectList[0].pastureid
        this.nutritional.tab1.getdataListParm1.parammaps.barid =
          this.selectList[0].barid
        this.getNutritionalList()
        this.nutritional.tab1.list = []
      } else {
        console.log('牛群评估')
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid =
          this.selectList[0].pastureid
        this.nutritional.tab2.getdataListParm1.parammaps.barid =
          this.selectList[0].barid
        this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.nutritional.tab2.getdataListParm2.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm2.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm2.parammaps.startTime =
          this.nutritional.tab2.getdataListParm1.parammaps.startTime
        this.nutritional.tab2.getdataListParm2.parammaps.stopTime =
          this.nutritional.tab2.getdataListParm1.parammaps.stopTime

        this.nutritional.tab2.getdataListParm3.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm3.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm3.parammaps.startTime =
          this.nutritional.tab2.getdataListParm1.parammaps.startTime
        this.nutritional.tab2.getdataListParm3.parammaps.stopTime =
          this.nutritional.tab2.getdataListParm1.parammaps.stopTime

        this.nutritional.tab2.getdataListParm4.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm4.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm4.parammaps.startTime =
          this.nutritional.tab2.getdataListParm1.parammaps.startTime
        this.nutritional.tab2.getdataListParm4.parammaps.stopTime =
          this.nutritional.tab2.getdataListParm1.parammaps.stopTime

        this.getTab2NutritionalList1()
        this.getTab2NutritionalList2()
        this.getTab2NutritionalList3()
        this.getTab2NutritionalList4()
      }
    },
    changeTab2Date() {
      this.nutritional.tab2.getdataListParm1.parammaps.pastureid =
        this.selectList[0].pastureid
      this.nutritional.tab2.getdataListParm1.parammaps.barid =
        this.selectList[0].barid
      this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(
        this.nutritional.tab2.inputDatetime[0],
        '{y}-{m}-{d}'
      )
      this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(
        this.nutritional.tab2.inputDatetime[1],
        '{y}-{m}-{d}'
      )

      this.nutritional.tab2.getdataListParm2.parammaps.pastureid =
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid
      this.nutritional.tab2.getdataListParm2.parammaps.barid =
        this.nutritional.tab2.getdataListParm1.parammaps.barid
      this.nutritional.tab2.getdataListParm2.parammaps.startTime =
        this.nutritional.tab2.getdataListParm1.parammaps.startTime
      this.nutritional.tab2.getdataListParm2.parammaps.stopTime =
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime

      this.nutritional.tab2.getdataListParm3.parammaps.pastureid =
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid
      this.nutritional.tab2.getdataListParm3.parammaps.barid =
        this.nutritional.tab2.getdataListParm1.parammaps.barid
      this.nutritional.tab2.getdataListParm3.parammaps.startTime =
        this.nutritional.tab2.getdataListParm1.parammaps.startTime
      this.nutritional.tab2.getdataListParm3.parammaps.stopTime =
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime

      this.nutritional.tab2.getdataListParm4.parammaps.pastureid =
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid
      this.nutritional.tab2.getdataListParm4.parammaps.barid =
        this.nutritional.tab2.getdataListParm1.parammaps.barid
      this.nutritional.tab2.getdataListParm4.parammaps.startTime =
        this.nutritional.tab2.getdataListParm1.parammaps.startTime
      this.nutritional.tab2.getdataListParm4.parammaps.stopTime =
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime

      this.getTab2NutritionalList1()
      this.getTab2NutritionalList2()
      this.getTab2NutritionalList3()
      this.getTab2NutritionalList4()
    },
    handleBefore() {
      if (this.nutritional.activeName == 'first') {
        if (
          this.nutritional.tab1.inputDatetime !== '' &&
          this.nutritional.tab1.inputDatetime !== null
        ) {
          var start = new Date(
            this.nutritional.tab1.inputDatetime[0].setDate(
              this.nutritional.tab1.inputDatetime[0].getDate() - 1
            )
          )
          var stop = new Date(
            this.nutritional.tab1.inputDatetime[1].setDate(
              this.nutritional.tab1.inputDatetime[1].getDate() - 1
            )
          )
          this.nutritional.tab1.inputDatetime.length = 0
          this.nutritional.tab1.inputDatetime.push(start, stop)
          this.$forceUpdate()
        }
      } else {
        var start2 = new Date(
          this.nutritional.tab2.inputDatetime[0].setDate(
            this.nutritional.tab2.inputDatetime[0].getDate() - 1
          )
        )
        var stop2 = new Date(
          this.nutritional.tab2.inputDatetime[1].setDate(
            this.nutritional.tab2.inputDatetime[1].getDate() - 1
          )
        )
        this.nutritional.tab2.inputDatetime.length = 0
        this.nutritional.tab2.inputDatetime.push(start2, stop2)
        this.$forceUpdate()
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid =
          this.selectList[0].pastureid
        this.nutritional.tab2.getdataListParm1.parammaps.barid =
          this.selectList[0].barid
        this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm2.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm2.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm2.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm2.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.nutritional.tab2.getdataListParm3.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm3.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm3.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm3.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.nutritional.tab2.getdataListParm4.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm4.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm4.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm4.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.getTab2NutritionalList1()
        this.getTab2NutritionalList2()
        this.getTab2NutritionalList3()
        this.getTab2NutritionalList4()
      }
    },
    handleNext() {
      if (this.nutritional.activeName == 'first') {
        if (
          this.nutritional.tab1.inputDatetime !== '' &&
          this.nutritional.tab1.inputDatetime !== null
        ) {
          console.log(this.nutritional.tab1.inputDatetime)
          var start3 = new Date(
            this.nutritional.tab1.inputDatetime[0].setDate(
              this.nutritional.tab1.inputDatetime[0].getDate() + 1
            )
          )
          var stop3 = new Date(
            this.nutritional.tab1.inputDatetime[1].setDate(
              this.nutritional.tab1.inputDatetime[1].getDate() + 1
            )
          )
          this.nutritional.tab1.inputDatetime.length = 0
          this.nutritional.tab1.inputDatetime.push(start3, stop3)
          this.$forceUpdate()
        }
      } else {
        var start4 = new Date(
          this.nutritional.tab2.inputDatetime[0].setDate(
            this.nutritional.tab2.inputDatetime[0].getDate() + 1
          )
        )
        var stop4 = new Date(
          this.nutritional.tab2.inputDatetime[1].setDate(
            this.nutritional.tab2.inputDatetime[1].getDate() + 1
          )
        )
        this.nutritional.tab2.inputDatetime.length = 0
        this.nutritional.tab2.inputDatetime.push(start4, stop4)
        this.$forceUpdate()
        this.nutritional.tab2.getdataListParm1.parammaps.pastureid =
          this.selectList[0].pastureid
        this.nutritional.tab2.getdataListParm1.parammaps.barid =
          this.selectList[0].barid
        this.nutritional.tab2.getdataListParm1.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm1.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm2.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm2.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm2.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm2.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.nutritional.tab2.getdataListParm3.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm3.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm3.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm3.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.nutritional.tab2.getdataListParm4.parammaps.pastureid =
          this.nutritional.tab2.getdataListParm1.parammaps.pastureid
        this.nutritional.tab2.getdataListParm4.parammaps.barid =
          this.nutritional.tab2.getdataListParm1.parammaps.barid
        this.nutritional.tab2.getdataListParm4.parammaps.startTime = parseTime(
          this.nutritional.tab2.inputDatetime[0],
          '{y}-{m}-{d}'
        )
        this.nutritional.tab2.getdataListParm4.parammaps.stopTime = parseTime(
          this.nutritional.tab2.inputDatetime[1],
          '{y}-{m}-{d}'
        )

        this.getTab2NutritionalList1()
        this.getTab2NutritionalList2()
        this.getTab2NutritionalList3()
        this.getTab2NutritionalList4()
      }
    },
    getNutritionalList() {
      this.nutritional.tab1.listLoading1 = true
      GetDataByName(this.nutritional.tab1.getdataListParm1).then((response) => {
        console.log('评估上方数据', response.data.list)
        if (response.data.list !== null) {
          response.data.list[0].cowclassid = String(
            response.data.list[0].cowclassid
          )
          this.nutritional.tab1.temp = response.data.list[0]
          this.nutritional.tab1.disabledCowclass = true
          this.nutritional.tab1.getdataListParm2.parammaps.name = 'judgenurFT'
          this.nutritional.tab1.getdataListParm2.parammaps.name1 =
            'judgenurBarHSL'
          this.nutritional.tab1.getdataListParm2.parammaps.startTime =
            parseTime(this.nutritional.tab1.inputDatetime[0], '{y}-{m}-{d}')
          this.nutritional.tab1.getdataListParm2.parammaps.stopTime = parseTime(
            this.nutritional.tab1.inputDatetime[1],
            '{y}-{m}-{d}'
          )
          this.nutritional.tab1.getdataListParm2.parammaps.bw = parseFloat(
            this.nutritional.tab1.temp.bw
          )
          this.nutritional.tab1.getdataListParm2.parammaps.dayw = parseFloat(
            this.nutritional.tab1.temp.dayw
          )
          this.nutritional.tab1.getdataListParm2.parammaps.fetal = parseFloat(
            this.nutritional.tab1.temp.fetal
          )
          this.nutritional.tab1.getdataListParm2.parammaps.avgdim = parseFloat(
            this.nutritional.tab1.temp.avgdim
          )
          this.nutritional.tab1.getdataListParm2.parammaps.dayspre = parseFloat(
            this.nutritional.tab1.temp.dayspre
          )
          this.nutritional.tab1.getdataListParm2.parammaps.product = parseFloat(
            this.nutritional.tab1.temp.product
          )
          this.nutritional.tab1.getdataListParm2.parammaps.fat = parseFloat(
            this.nutritional.tab1.temp.fat
          )
          this.nutritional.tab1.getdataListParm2.parammaps.pro = parseFloat(
            this.nutritional.tab1.temp.pro
          )
          this.nutritional.tab1.getdataListParm2.parammaps.lactose = parseFloat(
            this.nutritional.tab1.temp.lactose
          )
          this.nutritional.tab1.getdataListParm2.parammaps.source = parseFloat(
            this.nutritional.tab1.temp.source
          )
          this.nutritional.tab1.getdataListParm2.parammaps.tem = parseFloat(
            this.nutritional.tab1.temp.tem
          )
          this.nutritional.tab1.getdataListParm2.parammaps.cowsum = parseFloat(
            this.nutritional.tab1.temp.cowsum
          )
          this.nutritional.tab1.getdataListParm2.parammaps.cowclass =
            this.nutritional.tab1.temp.cowclass
          this.nutritional.tab1.getdataListParm2.parammaps.cowclassid =
            this.nutritional.tab1.temp.cowclassid
          this.nutritional.tab1.getdataListParm2.parammaps.bigcowclass =
            this.nutritional.tab1.temp.bigcowclass
          this.nutritional.tab1.getdataListParm2.parammaps.pastureid =
            this.selectList[0].pastureid
          this.nutritional.tab1.getdataListParm2.parammaps.barid =
            this.nutritional.tab1.temp.barid
          this.nutritional.tab1.getdataListParm2.parammaps.date =
            this.nutritional.tab1.temp.date
          this.getNutritionalList2()
        } else {
          this.nutritional.tab1.temp = []
          this.nutritional.tab1.disabledCowclass = false
        }
        setTimeout(() => {
          this.nutritional.tab1.listLoading = false
        }, 100)
      })
    },
    assessmentData() {
      console.log('评估保存')
      this.$refs['temp'].validate((valid) => {
        if (valid) {
          if (
            this.nutritional.tab1.inputDatetime == '' ||
            this.nutritional.tab1.inputDatetime == null
          ) {
            this.$message({
              type: 'error',
              message: this.$t('message.msg127'),
              duration: 2000
            })
            return false
          } else {
            // 牛头数
            const positiveInteger = /^[1-9]\d*$/
            if (this.nutritional.tab1.temp.cowsum !== '') {
              if (
                !positiveInteger.test(
                  parseFloat(this.nutritional.tab1.temp.cowsum)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg128'),
                  duration: 2000
                })
                return false
              }
            }
            const twoDecimalPlaces = /^\d+(\.\d{1,2})?$/
            // 温度环境
            if (this.nutritional.tab1.temp.tem !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.tem)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg129'),
                  duration: 2000
                })
                return false
              }
            }
            // 平均月龄
            if (this.nutritional.tab1.temp.avgmonthage !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.avgmonthage)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg130'),
                  duration: 2000
                })
                return false
              }
            }
            // 体重
            if (this.nutritional.tab1.temp.bw !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.bw)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg131'),
                  duration: 2000
                })
                return false
              }
            }
            // 日增重
            if (this.nutritional.tab1.temp.dayw !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.dayw)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg132'),
                  duration: 2000
                })
                return false
              }
            }
            const dayspre = /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-7]\d|7[0-9]))))$/
            // 怀孕天数
            if (this.nutritional.tab1.temp.dayspre !== '') {
              if (
                !dayspre.test(parseFloat(this.nutritional.tab1.temp.dayspre))
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg133'),
                  duration: 2000
                })
                return false
              }
            }
            const fetal = /^(?:[1-9]|1[0-9])$/
            // 胎次
            if (this.nutritional.tab1.temp.fetal !== '') {
              if (!fetal.test(parseFloat(this.nutritional.tab1.temp.fetal))) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg134'),
                  duration: 2000
                })
                return false
              }
            }
            // 平均泌乳
            if (this.nutritional.tab1.temp.avgdim !== '') {
              if (
                !positiveInteger.test(
                  parseFloat(this.nutritional.tab1.temp.avgdim)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg135'),
                  duration: 2000
                })
                return false
              }
            }
            // 产奶量
            if (this.nutritional.tab1.temp.product !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.product)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg136'),
                  duration: 2000
                })
                return false
              }
            }
            // 乳脂率
            if (this.nutritional.tab1.temp.fat !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.fat)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg137'),
                  duration: 2000
                })
                return false
              }
            }
            // 乳蛋白率
            if (this.nutritional.tab1.temp.pro !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.pro)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg138'),
                  duration: 2000
                })
                return false
              }
            }
            // 乳糖率
            if (this.nutritional.tab1.temp.lactose !== '') {
              if (
                !twoDecimalPlaces.test(
                  parseFloat(this.nutritional.tab1.temp.lactose)
                )
              ) {
                this.$message({
                  type: 'error',
                  message: this.$t('message.msg139'),
                  duration: 2000
                })
                return false
              }
            }
            this.nutritional.tab1.getdataListParm2.parammaps.name = 'judgenurFT'
            this.nutritional.tab1.getdataListParm2.parammaps.name1 =
              'judgenurBarHSL'
            this.nutritional.tab1.getdataListParm2.parammaps.startTime =
              parseTime(this.nutritional.tab1.inputDatetime[0], '{y}-{m}-{d}')
            this.nutritional.tab1.getdataListParm2.parammaps.stopTime =
              parseTime(this.nutritional.tab1.inputDatetime[1], '{y}-{m}-{d}')
            this.nutritional.tab1.getdataListParm2.parammaps.bw = parseFloat(
              this.nutritional.tab1.temp.bw
            )
            this.nutritional.tab1.getdataListParm2.parammaps.dayw = parseFloat(
              this.nutritional.tab1.temp.dayw
            )
            this.nutritional.tab1.getdataListParm2.parammaps.fetal = parseFloat(
              this.nutritional.tab1.temp.fetal
            )
            this.nutritional.tab1.getdataListParm2.parammaps.avgdim =
              parseFloat(this.nutritional.tab1.temp.avgdim)
            this.nutritional.tab1.getdataListParm2.parammaps.dayspre =
              parseFloat(this.nutritional.tab1.temp.dayspre)
            this.nutritional.tab1.getdataListParm2.parammaps.product =
              parseFloat(this.nutritional.tab1.temp.product)
            this.nutritional.tab1.getdataListParm2.parammaps.fat = parseFloat(
              this.nutritional.tab1.temp.fat
            )
            this.nutritional.tab1.getdataListParm2.parammaps.pro = parseFloat(
              this.nutritional.tab1.temp.pro
            )
            this.nutritional.tab1.getdataListParm2.parammaps.lactose =
              parseFloat(this.nutritional.tab1.temp.lactose)
            this.nutritional.tab1.getdataListParm2.parammaps.source =
              parseFloat(this.nutritional.tab1.temp.source)
            this.nutritional.tab1.getdataListParm2.parammaps.tem = parseFloat(
              this.nutritional.tab1.temp.tem
            )
            this.nutritional.tab1.getdataListParm2.parammaps.cowsum =
              parseFloat(this.nutritional.tab1.temp.cowsum)
            this.nutritional.tab1.getdataListParm2.parammaps.cowclass =
              this.nutritional.tab1.temp.cowclass
            this.nutritional.tab1.getdataListParm2.parammaps.cowclassid =
              this.nutritional.tab1.temp.cowclassid
            this.nutritional.tab1.getdataListParm2.parammaps.bigcowclass =
              this.nutritional.tab1.temp.bigcowclass
            this.nutritional.tab1.getdataListParm2.parammaps.pastureid =
              this.selectList[0].pastureid
            this.nutritional.tab1.getdataListParm2.parammaps.barid =
              this.nutritional.tab1.temp.barid
            this.nutritional.tab1.getdataListParm2.parammaps.date =
              this.nutritional.tab1.temp.date
            this.getNutritionalList2()
          }
        }
      })
    },
    getNutritionalList2() {
      this.nutritional.tab1.listLoading2 = true
      const url = 'authdata/GETNurJudge'
      const data = this.nutritional.tab1.getdataListParm2
      postJson(url, data).then((response) => {
        if (response.msg !== 'fail') {
          if (response.data.list !== null) {
            for (let i = 0; i < response.data.length; i++) {
              if (response.data[i].cowneed == null) {
                response.data[i].cowneed = ''
              }
              var reg = RegExp(/>/)
              var reg2 = RegExp(/</)
              var reg3 = RegExp(/-/)
              if (reg.test(response.data[i].cowneed) == true) {
                const cowneed = response.data[i].cowneed.split('>')[1]
                if (
                  parseFloat(response.data[i].ftpro) < parseFloat(cowneed) ||
                  parseFloat(response.data[i].hprov) < parseFloat(cowneed) ||
                  parseFloat(response.data[i].sprov) < parseFloat(cowneed)
                ) {
                  this.$set(response.data[i], 'isColor', '0')
                } else {
                  this.$set(response.data[i], 'isColor', '')
                }
              } else if (reg2.test(response.data[i].cowneed) == true) {
                const cowneed2 = response.data[i].cowneed.split('<')[1]
                if (
                  parseFloat(response.data[i].ftpro) > parseFloat(cowneed2) ||
                  parseFloat(response.data[i].hprov) > parseFloat(cowneed2) ||
                  parseFloat(response.data[i].sprov) > parseFloat(cowneed2)
                ) {
                  this.$set(response.data[i], 'isColor', '0')
                } else {
                  this.$set(response.data[i], 'isColor', '')
                }
              } else if (reg3.test(response.data[i].cowneed) == true) {
                response.data[i].cowneed = String(response.data[i].cowneed)
                if (response.data[i].cowneed.length == 1) {
                  const cowneed3 = response.data[i].cowneed.split('-')
                  console.log(cowneed3, 'cowneed3')
                  if (
                    parseFloat(response.data[i].ftpro) >
                      parseFloat(cowneed3[0]) &&
                    parseFloat(response.data[i].ftpro) < parseFloat(cowneed3[1])
                  ) {
                    this.$set(response.data[i], 'isColor', '')
                  } else if (
                    parseFloat(response.data[i].hprov) >
                      parseFloat(cowneed3[0]) &&
                    parseFloat(response.data[i].hprov) < parseFloat(cowneed3[1])
                  ) {
                    this.$set(response.data[i], 'isColor', '')
                  } else if (
                    parseFloat(response.data[i].sprov) >
                      parseFloat(cowneed3[0]) &&
                    parseFloat(response.data[i].sprov) < parseFloat(cowneed3[1])
                  ) {
                    this.$set(response.data[i], 'isColor', '')
                  } else if (cowneed3[0] == '' && cowneed3[0] == '') {
                    this.$set(response.data[i], 'isColor', '')
                  } else {
                    this.$set(response.data[i], 'isColor', '0')
                  }
                } else {
                  if (
                    parseFloat(response.data[i].ftpro) <
                      parseFloat(response.data[i].cowneed) ||
                    parseFloat(response.data[i].hprov) <
                      parseFloat(response.data[i].cowneed) ||
                    parseFloat(response.data[i].sprov) <
                      parseFloat(response.data[i].cowneed)
                  ) {
                    this.$set(response.data[i], 'isColor', '0')
                  } else {
                    this.$set(response.data[i], 'isColor', '')
                  }
                }
              } else {
                response.data[i].cowneed = String(response.data[i].cowneed)
                if (response.data[i].cowneed[0] !== '-') {
                  if (
                    parseFloat(response.data[i].ftpro) <
                      parseFloat(response.data[i].cowneed) ||
                    parseFloat(response.data[i].hprov) <
                      parseFloat(response.data[i].cowneed) ||
                    parseFloat(response.data[i].sprov) <
                      parseFloat(response.data[i].cowneed)
                  ) {
                    this.$set(response.data[i], 'isColor', '0')
                  } else {
                    this.$set(response.data[i], 'isColor', '')
                  }
                } else {
                  this.$set(response.data[i], 'isColor', '')
                }
              }
            }
            console.log(response.data)
            console.log('评估下方数据', response.data)
            this.nutritional.tab1.list = response.data
            this.nutritional.tab1.total = response.data.total
          } else {
            this.nutritional.tab1.list = []
          }
        } else {
          this.$notify({
            title: this.$t('message.msg37'),
            message: response.data,
            type: 'warning',
            duration: 2000
          })
        }

        setTimeout(() => {
          this.nutritional.tab1.listLoading2 = false
        }, 100)
      })
    },
    // 牛群评估
    getTab2NutritionalList1() {
      this.nutritional.tab2.listLoading1 = true
      GetDataByName(this.nutritional.tab2.getdataListParm1).then((response) => {
        console.log('宾州筛分析', response.data.list)
        if (response.data.list !== null) {
          this.nutritional.tab2.list1 = response.data.list
          this.nutritional.tab2.pageNum1 = response.data.pageNum
          this.nutritional.tab2.pageSize1 = response.data.pageSize
          this.nutritional.tab2.total1 = response.data.total
        } else {
          this.nutritional.tab2.list1 = []
        }
        setTimeout(() => {
          this.nutritional.tab2.listLoading1 = false
        }, 100)
      })
    },
    getTab2NutritionalList2() {
      this.nutritional.tab2.listLoading2 = true
      GetDataByName(this.nutritional.tab2.getdataListParm2).then((response) => {
        console.log('粪便筛分析', response.data.list)
        if (response.data.list !== null) {
          this.nutritional.tab2.list2 = response.data.list
          this.nutritional.tab2.pageNum2 = response.data.pageNum
          this.nutritional.tab2.pageSize2 = response.data.pageSize
          this.nutritional.tab2.total2 = response.data.total
        } else {
          this.nutritional.tab2.list2 = []
        }
        setTimeout(() => {
          this.nutritional.tab2.listLoading2 = false
        }, 100)
      })
    },
    getTab2NutritionalList3() {
      this.nutritional.tab2.listLoading3 = true
      GetDataByName(this.nutritional.tab2.getdataListParm3).then((response) => {
        console.log('BCS评分', response.data.list)
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.list.length; i++) {
            this.$set(
              response.data.list[i],
              'score25rate',
              (
                (parseFloat(response.data.list[i].score25) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score275rate',
              (
                (parseFloat(response.data.list[i].score275) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score3rate',
              (
                (parseFloat(response.data.list[i].score3) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score325rate',
              (
                (parseFloat(response.data.list[i].score325) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score35rate',
              (
                (parseFloat(response.data.list[i].score35) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score375rate',
              (
                (parseFloat(response.data.list[i].score375) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score4rate',
              (
                100 -
                response.data.list[i].score25rate -
                response.data.list[i].score275rate -
                response.data.list[i].score3rate -
                response.data.list[i].score325rate -
                response.data.list[i].score35rate -
                response.data.list[i].score375rate
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
          }
          this.nutritional.tab2.list3 = response.data.list
          this.nutritional.tab2.pageNum3 = response.data.pageNum
          this.nutritional.tab2.pageSize3 = response.data.pageSize
          this.nutritional.tab2.total3 = response.data.total
        } else {
          this.nutritional.tab2.list3 = []
        }
        setTimeout(() => {
          this.nutritional.tab2.listLoading3 = false
        }, 100)
      })
    },
    getTab2NutritionalList4() {
      this.nutritional.tab2.listLoading4 = true
      GetDataByName(this.nutritional.tab2.getdataListParm4).then((response) => {
        console.log('粪便评分', response.data.list)
        if (response.data.list !== null) {
          for (let i = 0; i < response.data.list.length; i++) {
            this.$set(
              response.data.list[i],
              'score1rate',
              (
                (parseFloat(response.data.list[i].score1) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score2rate',
              (
                (parseFloat(response.data.list[i].score2) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score3rate',
              (
                (parseFloat(response.data.list[i].score3) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score4rate',
              (
                (parseFloat(response.data.list[i].score4) /
                  parseFloat(response.data.list[i].cowsum)) *
                100
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
            this.$set(
              response.data.list[i],
              'score5rate',
              (
                100 -
                response.data.list[i].score1rate -
                response.data.list[i].score2rate -
                response.data.list[i].score3rate -
                response.data.list[i].score4rate
              ).toFixed(parseInt(Cookies.get('decimal')))
            )
          }
          this.nutritional.tab2.list4 = response.data.list
          this.nutritional.tab2.pageNum4 = response.data.pageNum
          this.nutritional.tab2.pageSize4 = response.data.pageSize
          this.nutritional.tab2.total4 = response.data.total
        } else {
          this.nutritional.tab2.list4 = []
        }
        setTimeout(() => {
          this.nutritional.tab2.listLoading4 = false
        }, 100)
      })
    },
    // 历史记录
    handleHistoryRecords() {
      console.log('点击了历史记录')
      this.dialogFull = false
      this.history.dialogStatus = 'history'
      this.history.dialogFormVisible = true
      this.getDateList()
    },
    // 历史时间
    getDateList() {
      GetDataByName(this.history.getdataDateParm).then((response) => {
        console.log('table数据', response.data.list)
        if (response.data.list !== null) {
          this.history.getdataListParm.parammaps.date =
            response.data.list[0].maxdate
          this.getHistoryIsDisplay()
        } else {
          this.history.getdataListParm.parammaps.date = ''
        }
      })
    },
    getHistoryIsDisplay() {
      GetDataByName(this.table.getdataListParm2).then((response) => {
        console.log(response.data.list[0].inforvalue)
        if (response.data.list !== null) {
          if (response.data.list[0].inforvalue == 0) {
            this.table.isPtsfname = false
          } else {
            this.table.isPtsfname = true
          }
        }
      })
      GetDataByName(this.table.getdataListParm3).then((response) => {
        if (response.data.list !== null) {
          if (response.data.list[0].inforvalue == 1) {
            this.history.isRW1 = true
            this.history.isRW2 = false
            this.history.isRW3 = false
            this.history.isRW4 = false
            this.history.isRW5 = false
            this.history.isRW6 = false
          } else if (response.data.list[0].inforvalue == 2) {
            this.history.isRW1 = true
            this.history.isRW2 = true
            this.history.isRW3 = false
            this.history.isRW4 = false
            this.history.isRW5 = false
            this.history.isRW6 = false
          } else if (response.data.list[0].inforvalue == 3) {
            this.history.isRW1 = true
            this.history.isRW2 = true
            this.history.isRW3 = true
            this.history.isRW4 = false
            this.history.isRW5 = false
            this.history.isRW6 = false
          } else if (response.data.list[0].inforvalue == 4) {
            this.history.isRW1 = true
            this.history.isRW2 = true
            this.history.isRW3 = true
            this.history.isRW4 = true
            this.history.isRW5 = false
            this.history.isRW6 = false
          } else if (response.data.list[0].inforvalue == 5) {
            this.history.isRW1 = true
            this.history.isRW2 = true
            this.history.isRW3 = true
            this.history.isRW4 = true
            this.history.isRW5 = true
            this.history.isRW6 = false
          } else if (response.data.list[0].inforvalue == 6) {
            this.history.isRW1 = true
            this.history.isRW2 = true
            this.history.isRW3 = true
            this.history.isRW4 = true
            this.history.isRW5 = true
            this.history.isRW6 = true
          }
        } else {
          this.history.isRW1 = false
          this.history.isRW2 = false
          this.history.isRW3 = false
          this.history.isRW4 = false
          this.history.isRW5 = false
          this.history.isRW6 = false
        }
      })
      this.getHistoryList()
    },
    getHistoryList() {
      this.history.listLoading = true
      GetDataByName(this.history.getdataListParm).then((response) => {
        console.log('table数据', response.data.list)
        if (response.data.list !== null) {
          console.log('table数据', response.data.list)
          for (let i = 0; i < response.data.list.length; i++) {
            if (
              response.data.list[i].ptid == undefined ||
              response.data.list[i].ptname == ''
            ) {
              this.$set(response.data.list[i], 'ptid', '')
              this.$set(response.data.list[i], 'ptname', '')
            }
          }
          this.history.list = response.data.list
          this.handleSpan()
          this.history.pageNum = response.data.pageNum
          this.history.pageSize = response.data.pageSize
          this.history.total = response.data.total
        } else {
          this.history.list = []
        }
        setTimeout(() => {
          this.history.listLoading = false
        }, 100)
      })
    },
    handleSpan() {
      this.mergekeys.forEach((key) => {
        this.spanObj[key] = []
        let position = 0
        this.history.list.forEach((item, index) => {
          if (index === 0) {
            this.spanObj[key].push(1)
            position = 0
          } else {
            if (key == 'sumweight') {
              if (
                this.history.list[index][key] ===
                  this.history.list[index - 1][key] &&
                this.history.list[index]['barname'] ===
                  this.history.list[index - 1]['barname']
              ) {
                this.spanObj[key][position] += 1
                this.spanObj[key].push(0)
              } else {
                this.spanObj[key].push(1)
                position = index
              }
            } else {
              if (
                this.history.list[index][key] ===
                this.history.list[index - 1][key]
              ) {
                this.spanObj[key][position] += 1
                this.spanObj[key].push(0)
              } else {
                this.spanObj[key].push(1)
                position = index
              }
            }
          }
        })
      })
    },
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      for (let i = 0; i < this.mergekeys.length; i++) {
        if (column.property === this.mergekeys[i]) {
          const _row = this.spanObj[this.mergekeys[i]][rowIndex]
          const _col = _row > 0 ? 1 : 0
          return {
            rowspan: _row,
            colspan: _col
          }
        }
      }
    },
    changeDate() {
      this.getHistoryList()
    },
    // 应用
    handleApplication() {
      console.log('点击了应用')
      MessageBox.confirm(
        this.$t('message.msg58') +
          this.history.getdataListParm.parammaps.date +
          this.$t('message.msg59'),
        {
          confirmButtonText: this.$t('common.confirm'),
          cancelButtonText: this.$t('common.cancel'),
          type: 'warning'
        }
      )
        .then(() => {
          this.requestParam.name = 'applyFPdate'
          this.requestParam.parammaps = {}
          this.requestParam.parammaps.pastureid = Cookies.get('pastureid')
          this.requestParam.parammaps.date =
            this.history.getdataListParm.parammaps.date
          PostDataByName(this.requestParam).then((response) => {
            if (response.msg === 'fail') {
              this.$notify({
                title: this.$t('driver.saveFail'),
                message: response.data,
                type: 'warning',
                duration: 2000
              })
            } else {
              this.$notify({
                title: this.$t('common.succes'),
                message: this.$t('driver.saveSuccess'),
                type: 'success',
                duration: 2000
              })
              this.getHistoryIsDisplay()
              this.getList()
            }
          })
        })
        .catch(() => {
          this.$message({ type: 'info', message: this.$t('message.msg41') })
        })
    },
    // 导出
    handleExport(item) {
      if (item == 1) {
        console.log('点击了导出模板')
        this.download.getdataListParm.parammaps =
          this.table.getdataListParm.parammaps
        GetDataByName(this.download.getdataListParm).then((response) => {
          if (response.data.list !== null) {
            this.download.list = response.data.list
          } else {
            this.download.list = []
          }
          var downloadList = this.$t('message.downloadList')
          const table = this.$refs.table
          const columns = table.columns
          const labels = columns.map((column) => column.label)
          const labelArr = labels.splice(0,2);
          console.log(labels,'1111------------');

          var excelDatas = [
            {
              tHeader:this.$t('message.dhedform.theader'),
              filterVal: ['barname', '', '', '', '', '', '', '', ''],
              tableDatas: this.download.list,
              sheetName: 'Sheet1'
            },
            {
              tHeader: [this.$t('message.msg113')],
              filterVal: ['obj1'],
              tableDatas: downloadList,
              sheetName: 'Sheet2'
            }
          ]
          json2excel(excelDatas, this.$t('message.msg112'), true, 'xlsx')
        })
      } else {
        console.log('点击了导出数据')
        this.download.getdataListParm.parammaps =
          this.table.getdataListParm.parammaps
        GetDataByName(this.download.getdataListParm).then((response) => {
          if (response.data.list !== null) {
            for (let i = 0; i < response.data.list.length; i++) {
              if (
                response.data.list[i].ftid !== undefined &&
                response.data.list[i].ftid !== ''
              ) {
                if (
                  this.recipeTemplateList.find(
                    (obj) => obj.id == response.data.list[i].ftid
                  ) !== undefined
                ) {
                  this.$set(
                    response.data.list[i],
                    'dryweight',
                    this.recipeTemplateList.find(
                      (obj) => obj.id == response.data.list[i].ftid
                    ).dryweight
                  ) // 编辑保存
                } else {
                  this.$set(response.data.list[i], 'dryweight', '')
                }
              }
              if (response.data.list[i].timesopt !== undefined) {
                var timesoptArr = response.data.list[i].timesopt.split(',')
                for (let j = 0; j < timesoptArr.length; j++) {
                  response.data.list[i]['r' + timesoptArr[j].split(':')[0]] =
                    timesoptArr[j].split(':')[1]
                  response.data.list[i]['w' + timesoptArr[j].split(':')[0]] =
                    timesoptArr[j].split(':')[2]
                }
              }
              if (
                response.data.list[i].r1 == '' ||
                response.data.list[i].r1 == undefined
              ) {
                response.data.list[i].r1 = 0
                response.data.list[i].w1 = 0
              }
              if (
                response.data.list[i].r2 == '' ||
                response.data.list[i].r2 == undefined
              ) {
                response.data.list[i].r2 = 0
                response.data.list[i].w2 = 0
              }
              if (
                response.data.list[i].r3 == '' ||
                response.data.list[i].r3 == undefined
              ) {
                response.data.list[i].r3 = 0
                response.data.list[i].w3 = 0
              }
              if (
                response.data.list[i].r4 == '' ||
                response.data.list[i].r4 == undefined
              ) {
                response.data.list[i].r4 = 0
                response.data.list[i].w4 = 0
              }
              if (
                response.data.list[i].r5 == '' ||
                response.data.list[i].r5 == undefined
              ) {
                response.data.list[i].r5 = 0
                response.data.list[i].w5 = 0
              }
              if (
                response.data.list[i].r6 == '' ||
                response.data.list[i].r6 == undefined
              ) {
                response.data.list[i].r6 = 0
                response.data.list[i].w6 = 0
              }
              this.$set(
                response.data.list[i],
                'sumr',
                parseFloat(response.data.list[i].r1) +
                  parseFloat(response.data.list[i].r2) +
                  parseFloat(response.data.list[i].r3) +
                  parseFloat(response.data.list[i].r4) +
                  parseFloat(response.data.list[i].r5) +
                  parseFloat(response.data.list[i].r6)
              )
              response.data.list[i].sumr = formatNum(
                response.data.list[i].sumr,
                parseInt(Cookies.get('decimalr'))
              )
              this.$set(
                response.data.list[i],
                'dailyWeight',
                parseFloat(response.data.list[i].w1) +
                  parseFloat(response.data.list[i].w2) +
                  parseFloat(response.data.list[i].w3) +
                  parseFloat(response.data.list[i].w4) +
                  parseFloat(response.data.list[i].w5) +
                  parseFloat(response.data.list[i].w6)
              )
              response.data.list[i].dailyWeight = formatNum(
                response.data.list[i].dailyWeight,
                parseInt(Cookies.get('decimal'))
              )
            }
            this.download.list = response.data.list
          } else {
            this.download.list = []
          }
          if (
            this.table.isRW1 == true &&
            this.table.isRW2 == false &&
            this.table.isRW3 == false &&
            this.table.isRW4 == false &&
            this.table.isRW5 == false &&
            this.table.isRW6 == false
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader2'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          } else if (
            this.table.isRW1 == true &&
            this.table.isRW2 == true &&
            this.table.isRW3 == false &&
            this.table.isRW4 == false &&
            this.table.isRW5 == false &&
            this.table.isRW6 == false
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader3'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'r2',
                  'w2',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          } else if (
            this.table.isRW1 == true &&
            this.table.isRW2 == true &&
            this.table.isRW3 == true &&
            this.table.isRW4 == false &&
            this.table.isRW5 == false &&
            this.table.isRW6 == false
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader4'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'r2',
                  'w2',
                  'r3',
                  'w3',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          } else if (
            this.table.isRW1 == true &&
            this.table.isRW2 == true &&
            this.table.isRW3 == true &&
            this.table.isRW4 == true &&
            this.table.isRW5 == false &&
            this.table.isRW6 == false
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader5'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'r2',
                  'w2',
                  'r3',
                  'w3',
                  'r4',
                  'w4',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          } else if (
            this.table.isRW1 == true &&
            this.table.isRW2 == true &&
            this.table.isRW3 == true &&
            this.table.isRW4 == true &&
            this.table.isRW5 == true &&
            this.table.isRW6 == false
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader6'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'r2',
                  'w2',
                  'r3',
                  'w3',
                  'r4',
                  'w4',
                  'r5',
                  'w5',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          } else if (
            this.table.isRW1 == true &&
            this.table.isRW2 == true &&
            this.table.isRW3 == true &&
            this.table.isRW4 == true &&
            this.table.isRW5 == true &&
            this.table.isRW6 == true
          ) {
            var excelDatas = [
              {
                tHeader: this.$t('dhedFormula.theader7'),
                filterVal: [
                  'barname',
                  'softccount',
                  'ccount',
                  'ratio',
                  'ccountratio',
                  'ftname',
                  'ptsfname',
                  'r1',
                  'w1',
                  'r2',
                  'w2',
                  'r3',
                  'w3',
                  'r4',
                  'w4',
                  'r5',
                  'w5',
                  'r6',
                  'w6',
                  'sumr',
                  'dailyWeight',
                  'ftweight',
                  'supplyweight',
                  'dryweight'
                ],
                tableDatas: this.download.list,
                sheetName: 'Sheet1'
              }
            ]
          }
          json2excel(excelDatas, this.$t('message.msg140'), true, 'xlsx')
        })
      }
    },

    beforeImport(file) {
      const isLt2M = file.size / 1024 / 1024 < 2
      if (!isLt2M) {
        this.$message.error(this.$t('dhedFormula.errMsg'))
      }
      return isLt2M
    },
    handleImportSuccess(res, file) {
      this.getList()
      if (res.msg === 'ok') {
        this.$message({
          title: this.$t('common.succes'),
          message:
            this.$t('message.msg5') +
            res.data.success +
            this.$t('message.msg39'),
          type: 'success',
          duration: 2000
        })
        if (res.data.err_count > 0) {
          this.$notify({
            title: this.$t('message.msg37'),
            message:
              this.$t('message.msg38') +
              res.data.err_count +
              this.$t('message.msg39'),
            type: 'danger',
            duration: 2000
          })
          import('@/vendor/Export2Excel').then((excel) => {
            const list1 = res.data.result
            const tHeader = this.$t('dhedFormula.theader1')
            const filterVal = [
              '栏舍名称',
              '实际牛头数',
              '系数(%)',
              '配方模板',
              '补料配方',
              '第一班比例(%)',
              '第二班比例(%)',
              '第三班比例(%)',
              'error_msg'
            ]
            const data1 = this.formatJson(filterVal, list1)
            excel.export_json_to_excel({
              header: tHeader,
              data: data1,
              filename: this.$t('dhedFormula.lspf'),
              autoWidth: true,
              bookType: 'xlsx'
            })
          })
        }
      } else {
        this.$notify({
          title: this.$t('message.msg37'),
          message: this.$t('message.msg40'),
          type: 'danger',
          duration: 2000
        })
      }
    },
    formatJson(filterVal, jsonData) {
      return jsonData.map((v) =>
        filterVal.map((j) => {
          if (j === 'timestamp') {
            return parseTime(v[j])
          } else {
            return v[j]
          }
        })
      )
    },
    // 干物质调节
    handleDryMatterRegulation() {
      console.log('干物质调节')
      this.isShowDialog = true
      this.$refs.mychild.getBalconicFormula()
      this.$refs.mychild.restTemp()
    },
    handleSynchronous() {
      MessageBox.confirm(this.$t('dhedFormula.msg1'), {
        confirmButtonText: this.$t('common.confirm'),
        cancelButtonText: this.$t('common.cancel'),
        type: 'warning'
      })
        .then(() => {
          const url = 'authdata/ud/feedp/sync'
          const data = {}
          postJson(url, data).then((response) => {
            if (response.msg !== 'fail') {
              this.$notify({
                title: this.$t('common.succes'),
                message: this.$t('driver.saveSuccess'),
                type: 'success',
                duration: 2000
              })
            }
          })
        })
        .catch(() => {
          this.$message({ type: 'info', message: this.$t('message.msg114') })
        })
    },
    handle_batchEdit() {
      // this.getList()
      this.isproportion = true
      console.log(this.isproportion)
      this.oldList = JSON.parse(JSON.stringify(this.table.list))
      this.table.list.forEach((item, key) => {
        item.Edit = false
        item.NoEdit = true
        item.isUpdate = true
        item.isUpdateSave = false
      })
      // row.Edit
    },
    focusData(row) {
      console.log(row, 'row')
      this.oldList.forEach((item, key) => {
        if (row.id == item.id) {
          this.oldRowList = { ...item }
        }
      })
      console.log(this.oldRowList, 'row')
    },
    handle_batchEdit_save() {
      const arr = this.table.list.filter((item2) => {
        console.log(item2, 'item2')
        return !this.oldList.some(
          (item1) =>
            item1.r1 === item2.r1 &&
            item1.r2 === item2.r2 &&
            item1.r3 === item2.r3 &&
            item1.r4 === item2.r4 &&
            item1.r5 === item2.r5 &&
            item1.r6 === item2.r6
        )
      })
      const barList = []
      arr.forEach((item) => {
        let obj = {}
        obj.barname = item.barname
        obj.ccount = item.ccount
        obj.ratio = item.ratio
        obj.ftname = item.ftname
        obj.ptsfname = item.ptsfname
        obj.times1 = item.r1
        obj.times2 = item.r2
        obj.times3 = item.r3
        obj.times4 = item.r4
        obj.times5 = item.r5
        obj.times6 = item.r6
        barList.push(obj)
      })
      const url = 'authdata/fpdetail/batch/edit'
      let data = {
        pastureId: Cookies.get('pastureid'),
        barList: barList
      }
      postJson(url, data).then((response) => {
        if (response.msg !== 'fail') {
          this.$notify({
            title: this.$t('common.succes'),
            message: this.$t('driver.saveSuccess'),
            type: 'success',
            duration: 2000
          })
        } else {
          this.$notify({
            title: this.$t('driver.saveFail'),
            message: response.data,
            type: 'warning',
            duration: 2000
          })
        }
        this.isproportion = false
      })
    },
    cancelChangeEdit() {
      // 取消顺序
      this.getList()
      this.isproportion = false
    },
    handleRestore(row) {
      // 恢复
      MessageBox.confirm(this.$t('message.msg333'), {
        confirmButtonText: this.$t('common.confirm'),
        cancelButtonText: this.$t('common.cancel'),
        type: 'warning'
      })
        .then(() => {
          const dataList = this.history.list
          const result = dataList.filter((obj) => obj.barname === row.barname)
          console.log(result, 'result')
          const barList = []
          result.forEach((item) => {
            console.log(item, 'item')
            let obj = {}
            obj.barname = item.barname
            obj.ccount = item.ccount
            obj.ratio = item.ratio
            obj.ftname = item.ptname
            // obj.ptsfname = item.ptsfname
            if (item.timesin == '1') {
              obj.times1 = item.tratio
            } else {
              obj.times1 = 0
            }
            if (item.timesin == '2') {
              obj.times2 = item.tratio
            } else {
              obj.times2 = 0
            }
            if (item.timesin == '3') {
              obj.times3 = item.tratio
            } else {
              obj.times3 = 0
            }
            if (item.timesin == '4') {
              obj.times4 = item.tratio
            } else {
              obj.times4 = 0
            }
            if (item.timesin == '5') {
              obj.times5 = item.tratio
            } else {
              obj.times5 = 0
            }
            if (item.timesin == '6') {
              obj.times6 = item.tratio
            } else {
              obj.times6 = 0
            }
            barList.push(obj)
          })
          // 根据 "barname" 属性进行分组
          const groupedData = barList.reduce((acc, obj) => {
            const key = obj.barname
            if (!acc[key]) {
              acc[key] = [obj]
            } else {
              acc[key].push(obj)
            }
            return acc
          }, {})
          console.log(groupedData, 'groupedData')
          console.log(Object.keys(groupedData), 'groupedData')
          // 合并相同 "barname" 值的对象
          const consolidatedData = groupedData[
            Object.keys(groupedData)[0]
          ].reduce((acc, item) => {
            for (const key in item) {
              if (key.startsWith('times')) {
                acc[key] = (acc[key] || 0) + parseFloat(item[key])
              } else {
                acc[key] = item[key]
              }
            }
            return acc
          }, {})

          console.log(consolidatedData)
          const url = 'authdata/fpdetail/batch/edit'
          let data = {
            pastureId: Cookies.get('pastureid'),
            barList: [consolidatedData]
          }
          postJson(url, data).then((response) => {
            if (response.msg !== 'fail') {
              this.$notify({
                title: this.$t('common.succes'),
                message: this.$t('driver.saveSuccess'),
                type: 'success',
                duration: 2000
              })
              this.getDateList()
            } else {
              this.$notify({
                title: this.$t('driver.saveFail'),
                message: response.data,
                type: 'warning',
                duration: 2000
              })
            }
            this.isproportion = false
          })
        })
        .catch(() => {
          this.$message({ type: 'info', message: this.$t('message.msg115') })
        })
    }
  }
}
</script>
<style lang="scss" scoped>
.search {
  clear: both;
  height: 50px;
}

.table {
  margin-top: 10px;
}
/deep/ .el-input__inner {
  padding: 0 5px;
}
/deep/ .el-table .cell {
  padding-left: 5px;
  padding-right: 5px;
}
</style>
<style lang="scss">
.red-row {
  background: #fde2e2 !important;
}
</style>
