Jelajahi Sumber

Signed-off-by: 段小段 <1729609802@qq.com>

段小段 3 tahun lalu
induk
melakukan
db21e3f86d
25 mengubah file dengan 22546 tambahan dan 6689 penghapusan
  1. TEMPAT SAMPAH
      .svn/wc.db
  2. 1 1
      package.json
  3. 139 0
      src/api/common.js
  4. 4 1
      src/styles/index.scss
  5. 3 2
      src/views/formulationPlan/dailyExecutionPlan/revisePlan.vue
  6. 1453 0
      src/views/formulationPlan/dailyExecutionPlan/typePage/materialIssuancePlan - 副本.vue
  7. 1765 1430
      src/views/formulationPlan/dailyExecutionPlan/typePage/materialIssuancePlan.vue
  8. 6 6
      src/views/formulationPlan/dhedFormula/index.vue
  9. 560 560
      src/views/formulationPlan/formulaDistribution/index.vue
  10. 667 0
      src/views/formulationPlan/formulaDistribution/index改.vue
  11. 3 2
      src/views/formulationPlan/materialIssuancePlan/index.vue
  12. 2904 2904
      src/views/formulationPlan/recipeTemplate/index.vue
  13. 3108 0
      src/views/formulationPlan/recipeTemplate/index改.vue
  14. 7 1
      src/views/shedProduction/formulaDryMatter/historyRecord.vue
  15. 126 63
      src/views/statisticalAnalysis/errorAnalysis/group/tab1.vue
  16. 2802 0
      src/views/statisticalAnalysis/errorAnalysis/group/tab1改.vue
  17. 26 22
      src/views/statisticalAnalysis/errorAnalysis/group/tab2.vue
  18. 27 23
      src/views/statisticalAnalysis/errorAnalysis/group/tab3.vue
  19. 10 10
      src/views/statisticalAnalysis/errorAnalysis/pasture/index.vue
  20. 4121 0
      src/views/statisticalAnalysis/errorAnalysis/pasture/index改.vue
  21. 5 5
      src/views/statisticalAnalysis/errorAnalysis/pasture/see.vue
  22. 874 874
      src/views/statisticalAnalysis/feedingEfficiency/pasture/index.vue
  23. 2310 0
      src/views/statisticalAnalysis/feedingEfficiency/pasture/index改.vue
  24. 784 785
      src/views/statisticalAnalysis/formulationEvaluation/index.vue
  25. 841 0
      src/views/statisticalAnalysis/formulationEvaluation/index改.vue

TEMPAT SAMPAH
.svn/wc.db


+ 1 - 1
package.json

@@ -21,7 +21,7 @@
     "core-js": "^3.6.4",
     "driver.js": "^0.9.6",
     "echarts": "^4.6.0",
-    "element-ui": "^2.13.0",
+    "element-ui": "^2.13.2",
     "file-saver": "^2.0.5",
     "fuse.js": "3.4.4",
     "js-cookie": "^2.2.0",

+ 139 - 0
src/api/common.js

@@ -245,3 +245,142 @@ export function compareSort(property){
     return value1 - value2;
   }
 }
+
+
+//将日期转换成一年中的第几周
+export function getYearWeek(date) {
+  //按照国际标准
+  let time,
+    week,
+    checkDate = new Date(date);
+  checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
+  time = checkDate.getTime();
+  checkDate.setMonth(0);
+  checkDate.setDate(1);
+  week = Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
+  return week;
+}
+
+//返回格式 2019年第23周,特别注意跨年一周的问题
+export function getYearAndWeek(date, anotherDate) {
+  let week = getYearWeek(date);
+  let year = date.substring(0, 4);
+  let anotherYear = anotherDate.substring(0, 4);
+  //处理跨年特殊日期
+  if (anotherDate > date) {
+    let betweenDay = getBetweenDay(new Date(date), new Date(anotherDate));
+    if (betweenDay == 7 && anotherYear != year) {
+      if (week == 1) {
+        year = parseInt(year) + 1;
+      }
+    }
+  } else {
+    let betweenDay = getBetweenDay(new Date(anotherDate), new Date(date));
+    if (betweenDay == 7 && anotherYear != year) {
+      if (week != 1) {
+        year = parseInt(year) - 1;
+      }
+    }
+  }
+  return `${year}年第${week}周`;
+}
+export function getBetweenDay(beginDate, endDate) {
+  let dateSpan = endDate - beginDate;
+  dateSpan = Math.abs(dateSpan);
+  let days = Math.floor(dateSpan / (24 * 3600 * 1000));
+  return days + 1;
+}
+//获取当前count个周的起止日期,如:count=0 ,就是当前周,-1就是上周,以此类推
+export function getWeekStartAndEnd(count, currentDate) {
+  //起止日期数组
+  let resultArr = new Array();
+  let millisecond = 1000 * 60 * 60 * 24;
+  currentDate = new Date(currentDate.getTime() + millisecond * 7 * count);
+  let week = currentDate.getDay();
+
+  //减去的天数
+  let minusDay = week != 0 ? week - 1 : 6;
+  //获得当前周的第一天
+  let currentWeekFirstDay = new Date(
+    currentDate.getTime() - millisecond * minusDay
+  );
+  //获得当前周的最后一天
+  let currentWeekLastDay = new Date(
+    currentWeekFirstDay.getTime() + millisecond * 6
+  );
+
+  resultArr.push(currentWeekFirstDay.format());
+  resultArr.push(currentWeekLastDay.format());
+  return resultArr;
+}
+Date.prototype.format = function() {
+  let s = "";
+  let mouth =
+    this.getMonth() + 1 >= 10
+      ? this.getMonth() + 1
+      : "0" + (this.getMonth() + 1);
+  let day = this.getDate() >= 10 ? this.getDate() : "0" + this.getDate();
+  s += this.getFullYear() + "-"; // 获取年份。
+  s += mouth + "-"; // 获取月份。
+  s += day; // 获取日。
+  return s; // 返回日期。
+};
+
+/**
+ * @param date 传入的日期
+ * @param num 加减的天数,加为正,减为负
+ * @returns 格式化后的日期
+ */
+export function addDays(date, num) {
+  date.setDate(date.getDate() + num);
+  return date.format();
+}
+
+export function yearDay(long) {
+  var time = new Date(long * 1000)
+  var year = time.getFullYear()
+  var month = (time.getMonth() + 1) < 10 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1)
+  var date = time.getDate() < 10 ? '0' + time.getDate() : time.getDate()
+  var yearday = { year, month, date }
+  return yearday
+}
+
+// 计算一年中的每一周都是从几号到几号
+// 第一周为1月1日到 本年的 第一个周日
+// 第二周为 本年的 第一个周一 往后推到周日
+// 以此类推 再往后推52周。。。
+// 如果最后一周在12月31日之前,则本年有垮了54周,反之53周
+// 12月31 日不论是周几,都算为本周的最后一天
+// 参数年份 ,函数返回一个数组,数组里的对象包含 这一周的开始日期和结束日期
+export function whichWeek(year) {
+      var d = new Date(year, 0, 1)
+      while (d.getDay() != 1) {
+        d.setDate(d.getDate() + 1)
+      }
+      const arr = []
+      const longnum = d.setDate(d.getDate())
+      if (longnum > +new Date(year, 0, 1)) {
+        const obj = yearDay(+new Date(year, 0, 1) / 1000)
+        obj.last = yearDay(longnum / 1000 - 86400)
+        arr.push(obj)
+      }
+      const oneitem = yearDay(longnum / 1000)
+      oneitem.last = yearDay(longnum / 1000 + 86400 * 6)
+      arr.push(oneitem)
+      var lastStr
+      for (var i = 0; i < 51; i++) {
+        const long = d.setDate(d.getDate() + 7)
+        const obj = yearDay(long / 1000)
+        obj.last = yearDay(long / 1000 + 86400 * 6)
+        lastStr = long + 86400000 * 6
+        arr.push(obj)
+      }
+      if (lastStr < +new Date(year + 1, 0, 1)) {
+        const obj = yearDay(lastStr / 1000 + 86400)
+        obj.last = yearDay(+new Date(year + 1, 0, 1) / 1000 - 86400)
+        arr.push(obj)
+      } else {
+        arr[arr.length - 1].last = yearDay(+new Date(year + 1, 0, 1) / 1000 - 86400)
+      }
+      return arr
+    }

+ 4 - 1
src/styles/index.scss

@@ -383,6 +383,10 @@ input {
   .exportTable{ height:30px;width:80px;border:1px solid $color10;line-height:30px;border-radius:3px;text-align:center;font-size:12px;color:#6b6b6b;}
   .exportTable:focus{background: $color3; border-color: $color10; color: $color11;height:30px;width:80px;}
   .exportTable:hover{ color: $color11; border-color: $color10; background-color: $color16; height:30px;width:80px;}
+
+  .exportTable2{ height:30px;width:60px;border:1px solid $color10;line-height:30px;border-radius:3px;text-align:center;font-size:12px;color:#6b6b6b;}
+  .exportTable2:focus{background: $color3; border-color: $color10; color: $color11;height:30px;width:60px;}
+  .exportTable2:hover{ color: $color11; border-color: $color10; background-color: $color16; height:30px;width:60px;}
   // 取消/关闭
   .cancelClose{background: $color3; border-color: $color12; color: $color13;min-width:100px;height: 38px;}
   .cancelClose:focus, .cancelClose:hover{ color: $color13; border-color: $color12; background-color: $color3; min-width:100px;height: 38px}
@@ -504,4 +508,3 @@ input {
 .el-icon-full-screen:before {
   content: "\e719";
 }
-

+ 3 - 2
src/views/formulationPlan/dailyExecutionPlan/revisePlan.vue

@@ -1,6 +1,6 @@
 <template>
   <div v-if="visible">
-    <el-dialog id="reviseplanDialog" :title="title" :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="visible" :close-on-click-modal="false" append-to-body :before-close="closeDialog" width="90%">
+    <el-dialog id="reviseplanDialog" :title="title" :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="visible" :close-on-click-modal="false" :modal-append-to-body="false" :append-to-body="true" :before-close="closeDialog" width="90%">
       <template slot="title">
         <div class="avue-crud__dialog__header">
           <span class="el-dialog__title">
@@ -133,8 +133,9 @@ export default {
     handleClick(item) {
       console.log(item.name)
       if (item.name == '撒料计划') {
+        this.$refs.MaterialIssuancePlan.getButtons()
         this.$refs.MaterialIssuancePlan.getIsDisplay()
-        this.$refs.MaterialIssuancePlan.getDownList()
+        this.$refs.MaterialIssuancePlan.getList()
       } else if (item.name == '栏舍配方') {
         this.$refs.DhedFormula.getIsDisplay()
         this.$refs.DhedFormula.getDownList()

+ 1453 - 0
src/views/formulationPlan/dailyExecutionPlan/typePage/materialIssuancePlan - 副本.vue

@@ -0,0 +1,1453 @@
+<template>
+  <div class="app-container">
+    <div class="menuList">
+      <div class="menuList-t">
+        <div class="menuList-t-l">
+          <span>班次:</span>
+          <el-radio-group v-model="menuRadio" size="small" @change="changeMenu">
+            <el-radio-button v-if="maxTime.isTime1" label="一班">一班</el-radio-button>
+            <el-radio-button v-if="maxTime.isTime2" label="二班">二班</el-radio-button>
+            <el-radio-button v-if="maxTime.isTime3" label="三班">三班</el-radio-button>
+            <el-radio-button v-if="maxTime.isTime4" label="四班">四班</el-radio-button>
+          </el-radio-group>
+        </div>
+        <div class="menuList-t-r">
+          <div v-if="!isBarracks" class="menuList-t-r-l" @click="clickBarracks(2);">栏舍计划统计-展开<i class="el-icon-arrow-down" /></div>
+          <div v-if="isBarracks" class="menuList-t-r-r" @click="clickBarracks(1);">栏舍计划统计-收起<i class="el-icon-arrow-up" /></div>
+          <div v-if="isBarracks" class="columnHouse">
+            <div class="smallTable">
+              <el-table
+                :list-loading="smallMenu.listLoading"
+                element-loading-text="给我一点时间"
+                :data="smallMenu.list"
+                :row-style="rowStyle2"
+                :cell-style="cellStyle2"
+                :header-row-style="headerRowStyle2"
+                :header-cell-style="headerCellStyle2"
+                show-summary
+                sum-text="总栏舍"
+              >
+                <el-table-column label="配方/班次" min-width="80px" align="center" prop="tname" />
+                <el-table-column label="总数" min-width="50px" align="center" prop="usedsum" />
+                <el-table-column v-if="maxTime.isTime1" label="第一班未分配" min-width="105px" align="center" prop="onetime" />
+                <el-table-column v-if="maxTime.isTime2" label="第二班未分配" min-width="105px" align="center" prop="twotime" />
+                <el-table-column v-if="maxTime.isTime3" label="第三班未分配" min-width="105px" align="center" prop="threetime" />
+                <el-table-column v-if="maxTime.isTime4" label="第四班未分配" min-width="105px" align="center" prop="fourtime" />
+              </el-table>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="menuList-b">
+        <ul v-loading="listLoadingTimes" class="draggableList">
+          <li v-for="element in MenuList" :key="element.arrid">
+            <span v-if="element.isShowTitle" class="draggableTitle">{{ element.ftname }}:</span>
+            <draggable id="1" data-source="juju1" :list="element.arrList" class="list-group1" draggable=".item" group="a" :move="move" @change="changeLog" @start="start" @end="end">
+              <div v-for="item in element.arrList" :key="item.id" class="list-group-item1 item" style="width: 88px;float: left;margin:5px 5px;height: 36px;">
+                <div style="position: relative;">
+                  <el-tooltip placement="top" class="list-group-item1 item" style="height: 18px;line-height: 18px;" :style="{'background':item.background}">
+                    <div slot="content">{{ item.barname }}</div>
+                    <div class="draggableName">{{ item.barname }}</div>
+                  </el-tooltip>
+                  <div class="draggableWeight" :style="{ background: 'rgba('+item.background2+ ',0.1)' }">
+
+                    <!-- <span v-if="item.isfill==1" style="background: #009C69;color:#fff;position: absolute;left: 0;top: 18px;">补</span> -->
+                    {{ item.weight }}
+                  </div>
+                </div>
+              </div>
+            </draggable>
+          </li>
+        </ul>
+      </div>
+    </div>
+
+    <div class="operation" style="width: 100%; border-top: 2px solid #d8dce5; box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04)">
+      <el-button class="success" icon="el-icon-plus" style="float:left;" @click="handleCreate">新增车次</el-button>
+      <el-button class="danger" icon="el-icon-delete" style="float:left;" @click="handleReduceTrains">减少车次</el-button>
+    </div>
+
+    <div class="table">
+      <el-table
+        id="table"
+        :key="table.tableKey"
+        ref="table"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        highlight-current-row
+        style="width: 100%;"
+        :height="height"
+        :row-style="rowStyle"
+        :cell-style="cellStyle"
+        class="elTable table-fixed"
+        row-key="id"
+        @selection-change="handleSelect"
+      >
+        <el-table-column type="selection" width="50" />
+        <el-table-column label="车次" width="75px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.sort }}</span>
+            <el-input v-if="scope.row.Edit" v-model="scope.row.sort" type="number" placeholder="车次" class="filter-item" style="display: inline-block;width: 95%;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="TMR编号" width="100px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.tmrname }}</span>
+            <el-select v-if="scope.row.Edit" v-model="scope.row.tmrid" placeholder="TMR编号" class="filter-item" style="width:95%;" @change="(value)=> {changeTMRNumber(value, scope.row)}">
+              <el-option v-for="item in TMRNumberList" :key="item.id" :label="item.eqcode" :value="item.id" />
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column label="描述" width="100px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.display }}</span>
+            <el-input v-if="scope.row.Edit" v-model="scope.row.display" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" placeholder="描述" maxlength="255" class="filter-item" style="display: inline-block;width: 95%;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="生效" width="90px" align="center">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.sel" :disabled="scope.row.NoEdit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleTakeEffectChange(scope.$index, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column label="班次" width="90px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.timesstr }}</span>
+            <el-select v-if="scope.row.Edit" v-model="scope.row.times" :disabled="scope.row.Disabled" placeholder="班次" class="filter-item" style="width:95%;">
+              <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column label="时间" width="110px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.begintime }}</span>
+            <el-time-picker v-if="scope.row.Edit" v-model="scope.row.begintime" type="datetime" placeholder="选择时间" format="HH:mm" value-format="HH:mm" style="display: inline-block;width: 95%;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="最大重量" width="80px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.maxweight }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="合计重量" width="80px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.sumweight }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="模板配方" width="120px" 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" :disabled="scope.row.Disabled" placeholder="模板配方" class="filter-item" style="width:95%;" @change="(value)=> {changeTemplateFormulation(value, scope.row)}">
+              <el-option v-for="item in templateFormulationList" :key="item.id" :label="item.tname" :value="item.id" />
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否提前小料拆分" width="150px" align="center">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.issplit" :disabled="scope.row.NoEdit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleIssplitChange(scope.$index, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column label="撒料" width="950px" align="center">
+          <template slot-scope="scope">
+            <draggable id="2" data-source="juju" :list="scope.row.arrList" class="list-group2" draggable=".item" group="a" :move="move2" @change="changeLog2(scope.row)" @start="start2" @end="end2(scope.row)">
+              <div v-for="element in scope.row.arrList" :key="element.name" class="list-group-item2 item">
+                <div class="arr-l" :style="{'background':element.tbackground}">
+                  <div class="arr-l-t">
+                    <div class="arr-l-t-t" />
+                    <el-select v-model="element.tmrid" placeholder="撒料设备" class="arr-l-t-b el-icon-arrow-down" @change="(value)=> {changeEquipment(value, scope.row,element.fttype,element.id)}">
+                      <el-option v-for="item in equipmentList" :key="item.id" :disabled="table.myTemp.isUpdateSave || scope.row.havebutton == 1" :label="item.tmrmix" :value="item.id" />
+                    </el-select>
+                  </div>
+                  <div class="arr-l-b">
+                    <el-tooltip placement="top" class="list-group-item1 item" style="height: 18px;line-height: 18px;">
+                      <div slot="content">{{ element.tmrname }}</div>
+                      <div class="tmrname">{{ element.tmrname }}</div>
+                    </el-tooltip>
+                  </div>
+                  <!-- <div v-if="element.fttype==0" style="background: #009C69;position:absolute;bottom: 0;left: 0;">补</div> -->
+                </div>
+                <div class="arr-r">
+                  <div class="arr-r-l">
+                    <el-tooltip placement="top">
+                      <div slot="content">{{ element.barname }}</div>
+                      <div class="barname">{{ element.barname }}</div>
+                    </el-tooltip>
+                  </div>
+                  <div class="arr-r-c">-</div>
+                  <div class="arr-r-r">
+                    <el-tooltip v-show="!element.isWeight" placement="top">
+                      <div slot="content">{{ element.weight }}</div>
+                      <div class="weight" @dblclick="dbclickWeight(element,scope.row)">{{ element.weight }}</div>
+                    </el-tooltip>
+                    <el-tooltip v-show="element.isWeight" placement="top">
+                      <div slot="content">{{ element.weight }}</div>
+                      <input ref="weight" v-model="element.weight" v-focus="element.focusState" type="number" placeholder="重量" step="0.01" class="filter-item2" style="display: inline-block;width: 95%;border: 1px solid #e6e6e6;" @blur="(value)=> {blurWeight(scope.row,element.fttype,element.id)}">
+                    </el-tooltip>
+                  </div>
+                </div>
+                <div class="arr-t" :style="{'background':element.background}">
+                  <i class="el-icon-close" style="position: absolute;right: 0;" @click="handleFLDelete(element,scope.row)" />
+                </div>
+              </div>
+            </draggable>
+          </template>
+        </el-table-column>
+
+        <el-table-column align="center" width="100" label="操作" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <el-button v-if="row.isCreate" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData(row)" />
+            <span v-if="row.isCreate" class="centerSpan">|</span>
+            <el-button v-if="row.isCreate" class="minCancel" icon="el-icon-close" @click="createCancel(row)" />
+            <el-button v-if="row.isUpdate" :disabled="row.havebutton == 1" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
+            <span v-if="row.isUpdate" class="centerSpan">|</span>
+            <el-button v-if="row.isUpdate" :disabled="row.havebutton == 1" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(row)" />
+            <el-button v-if="row.isUpdateSave" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="updateData(row)" />
+            <span v-if="row.isUpdateSave" class="centerSpan">|</span>
+            <el-button v-if="row.isUpdateSave" class="minCancel" icon="el-icon-close" @click="updateCancel(row)" />
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, postJson, PostDataByName, failproccess, ExecDataByConfig } from '@/api/common'
+import draggable from 'vuedraggable'
+import Sortable from 'sortablejs'
+import Cookies from 'js-cookie'
+import { MessageBox } from 'element-ui'
+export default {
+  name: 'MaterialIssuancePlan',
+  display: 'Two list header slot',
+  order: 14,
+  components: { draggable },
+  directives: {
+    focus: {
+      update: function(el, { value }) {
+        if (value) {
+          el.focus()
+        }
+      }
+    }
+  },
+  props: {
+    show: { type: Boolean, default: false }, // 弹框可见标志
+    parentDate: { type: String, defalut: '' }
+  },
+  data() {
+    return {
+      date: '',
+      isBarracks: false,
+      requestParams: {
+        name: 'getTMRListEnableType', offset: 0, parammaps: { pastureid: Cookies.get('pastureid'), eqtype: '1' }
+      },
+      requestParams2: {
+        name: 'getTMRListEnableTypeAll', offset: 0, parammaps: { pastureid: Cookies.get('pastureid'), eqtype: '1' }
+      },
+      requestParams3: {
+        name: 'getFTSWList', offset: 0, parammaps: { pastureid: Cookies.get('pastureid') }
+      },
+      equipmentList: [], // 撒料设备
+      TMRNumberList: [], // TMR编号
+      frequencyList: [], // 班次
+      templateFormulationList: [], // 模板配方
+
+      // 班次
+      maxTime: {
+        getMaxTimesParm: {
+          name: 'getSysoptEnable',
+          page: 1,
+          offset: 1,
+          pagecount: 1,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            inforname: 'times'
+          }
+        },
+        // 班次
+        isTime1: false,
+        isTime2: false,
+        isTime3: false,
+        isTime4: false
+      },
+
+      table: {
+        getdataListParm: {
+          name: 'getLppListdate',
+          name1: 'getLppdListdate',
+          page: 1,
+          offset: 1,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        },
+        list: [],
+        total: 0,
+        tableKey: 0,
+        listLoading: false,
+        tabClickIndex: null, // 点击的单元格
+        tabClickLabel: '', // 当前点击的列名
+        temp: {},
+        move1: '',
+        changeList: [],
+        startObj: {},
+        isGoing: false,
+        myTemp: {}
+      },
+      selectList: [], // 选中数据
+
+      // 班次
+      menuRadio: '一班',
+      MenuList: [], // 配单列表
+      getdataListParmTimes: {
+        name: 'geFTListByFPdate',
+        name1: 'geFTListByFPDetaildate',
+        page: 1,
+        offset: 1,
+        returntype: 'Map',
+        parammaps: {
+          pastureid: Cookies.get('pastureid'),
+          times: '1'
+        }
+      },
+      listLoadingTimes: false,
+
+      // 栏舍统计
+      isLeftButton: true, // 向左
+      isRightButton: false, // 向右
+      rowStyle2: { maxHeight: 20 + 'px', height: 20 + 'px' },
+      cellStyle2: { padding: 0 + 'px' },
+      headerRowStyle2: { maxHeight: 20 + 'px', height: 20 + 'px' },
+      headerCellStyle2: { padding: 0 + 'px' },
+      smallMenu: {
+        getdataListParm: {
+          name: 'getLppUseSUMListdate',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        },
+        total: 0,
+        tableKey: 0,
+        listLoading: false,
+        list: []
+      },
+      // 自动生成
+      automaticGeneration: {
+        dialogFormVisible: false,
+        dialogStatus: ''
+      },
+      historyRecord: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        myComponent: null
+      },
+      textMap: {
+        automaticGeneration: '提示',
+        historyRecord: '历史记录'
+      },
+      isokDisable: false,
+      requestParam: {},
+      height: document.body.clientHeight - 255 - 50, // table高度
+      // height: document.body.clientHeight - 450 - 50, // table高度
+      rowStyle: { maxHeight: 45 + 'px', height: 40 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      dropState: false
+    }
+  },
+  watch: {
+    // 监听show,visible 随着show变化而变化
+    show: {
+      immediate: true,
+      handler(newVal, oldVal) {
+        console.log('newVal-show', newVal)
+      }
+    },
+    parentDate: {
+      immediate: true,
+      handler(newVal, oldVal) {
+        console.log('newVal-show', newVal)
+        this.date = newVal
+      }
+    }
+  },
+  created() {
+    this.getIsDisplay()
+    this.getDownList()
+  },
+  methods: {
+    clickBarracks(item) {
+      this.isBarracks = !this.isBarracks
+    },
+    // 下拉列表
+    getDownList() {
+      GetDataByName(this.requestParams).then(response => {
+        if (response.data !== null) {
+          this.TMRNumberList = response.data.list
+        } else {
+          this.TMRNumberList = []
+        }
+      })
+      GetDataByName(this.requestParams2).then(response => {
+        if (response.data !== null) {
+          this.equipmentList = response.data.list
+        } else {
+          this.equipmentList = []
+        }
+      })
+      GetDataByName(this.requestParams3).then(response => {
+        if (response.data !== null) {
+          this.templateFormulationList = response.data.list
+        } else {
+          this.templateFormulationList = []
+        }
+      })
+    },
+
+    // 显示班次
+    getIsDisplay() {
+      GetDataByName(this.maxTime.getMaxTimesParm).then(response => {
+        console.log(response.data.list[0].inforvalue)
+        if (response.data.list[0].inforvalue == 1) {
+          this.frequencyList = [{ id: '1', name: '第一班' }]
+        } else if (response.data.list[0].inforvalue == 2) {
+          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
+        } else if (response.data.list[0].inforvalue == 3) {
+          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
+        } else if (response.data.list[0].inforvalue == 4) {
+          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
+        }
+        if (response.data.list !== null) {
+          if (response.data.list[0].inforvalue == 1) {
+            this.maxTime.isTime1 = true
+            this.maxTime.isTime2 = false
+            this.maxTime.isTime3 = false
+            this.maxTime.isTime4 = false
+          } else if (response.data.list[0].inforvalue == 2) {
+            this.maxTime.isTime1 = true
+            this.maxTime.isTime2 = true
+            this.maxTime.isTime3 = false
+            this.maxTime.isTime4 = false
+          } else if (response.data.list[0].inforvalue == 3) {
+            this.maxTime.isTime1 = true
+            this.maxTime.isTime2 = true
+            this.maxTime.isTime3 = true
+            this.maxTime.isTime4 = false
+          } else if (response.data.list[0].inforvalue == 4) {
+            this.maxTime.isTime1 = true
+            this.maxTime.isTime2 = true
+            this.maxTime.isTime3 = true
+            this.maxTime.isTime4 = true
+          }
+        } else {
+          this.maxTime.isTime1 = false
+          this.maxTime.isTime2 = false
+          this.maxTime.isTime3 = false
+          this.maxTime.isTime4 = false
+        }
+      })
+      this.getList()
+      this.getSmallMenuList() // 栏舍统计
+      this.getTimesList() // 班次
+    },
+
+    // 头部班次
+    getTimesList() {
+      this.listLoadingTimes = true
+      this.getdataListParmTimes.parammaps.date = this.date
+      const url = 'authdata/GetArrList'
+      const data = this.getdataListParmTimes
+      postJson(url, data).then(response => {
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            this.$set(response.data.list[i], 'isShowTitle', true)
+            if (response.data.list[i].arrList == null) {
+              this.$set(response.data.list[i], 'isShowTitle', false)
+            } else {
+              for (let j = 0; j < response.data.list[i].arrList.length; j++) {
+                this.$set(response.data.list[i].arrList[j], 'background2', this.colorRgb(response.data.list[i].arrList[j].background))
+              }
+            }
+          }
+          this.MenuList = response.data.list
+        } else {
+          this.MenuList = []
+        }
+        setTimeout(() => {
+          this.listLoadingTimes = false
+        }, 100)
+      })
+    },
+    colorRgb(sColor) {
+      sColor = sColor.toLowerCase()
+      var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+      // 如果是16进制颜色
+      if (sColor && reg.test(sColor)) {
+        if (sColor.length === 4) {
+          var sColorNew = '#'
+          for (var i = 1; i < 4; i += 1) {
+            sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+          }
+          sColor = sColorNew
+        }
+        // 处理六位的颜色值
+        var sColorChange = []
+        for (var i = 1; i < 7; i += 2) {
+          sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))
+        }
+        return sColorChange.join(',')
+      }
+      return 'rgba(' + sColorChange.join(',') + ')'
+    },
+    // 切换班次
+    changeMenu(val) {
+      console.log(val)
+      if (this.menuRadio === '一班') {
+        this.getdataListParmTimes.parammaps.times = '1'
+        this.getTimesList()
+      } else if (this.menuRadio === '二班') {
+        this.getdataListParmTimes.parammaps.times = '2'
+        this.getTimesList()
+        this.MenuList = this.twoMenuList
+      } else if (this.menuRadio === '三班') {
+        this.getdataListParmTimes.parammaps.times = '3'
+        this.getTimesList()
+      } else if (this.menuRadio === '四班') {
+        this.getdataListParmTimes.parammaps.times = '4'
+        this.getTimesList()
+      }
+    },
+
+    // 右侧栏舍统计
+    getSmallMenuList() {
+      this.smallMenu.listLoading = true
+      this.smallMenu.getdataListParm.parammaps.date = this.date
+      GetDataByName(this.smallMenu.getdataListParm).then(response => {
+        console.log('smallMenu数据', response.data.list)
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            if (response.data.list[i].onetime == undefined) { this.$set(response.data.list[i], 'onetime', 0) } else { response.data.list[i].onetime = parseFloat(response.data.list[i].onetime) }
+            if (response.data.list[i].twotime == undefined) { this.$set(response.data.list[i], 'twotime', 0) } else { response.data.list[i].twotime = parseFloat(response.data.list[i].twotime) }
+            if (response.data.list[i].threetime == undefined) { this.$set(response.data.list[i], 'threetime', 0) } else { response.data.list[i].threetime = parseFloat(response.data.list[i].threetime) }
+            if (response.data.list[i].fourtime == undefined) { this.$set(response.data.list[i], 'fourtime', 0) } else { response.data.list[i].fourtime = parseFloat(response.data.list[i].fourtime) }
+            this.$set(response.data.list[i], 'usedsum', response.data.list[i].onetime + response.data.list[i].twotime + response.data.list[i].threetime + response.data.list[i].fourtime)
+            this.$set(response.data.list[i], 'all', '')
+          }
+          this.smallMenu.list = response.data.list
+          this.smallMenu.total = response.data.total
+        } else {
+          this.smallMenu.list = []
+        }
+
+        setTimeout(() => {
+          this.smallMenu.listLoading = false
+        }, 100)
+      })
+    },
+
+    // table
+    getList() {
+      this.table.listLoading = true
+      this.table.getdataListParm.parammaps.date = this.date
+      const url = 'authdata/GetArrList'
+      const data = this.table.getdataListParm
+      postJson(url, data).then(response => {
+        if (response.data !== null) {
+          console.log('table数据', response.data.list)
+          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], 'isCreate', false) // 新增操作
+            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
+            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
+            this.$set(response.data.list[i], 'Disabled', true) // 班次/模板配方不可输入
+
+            if (response.data.list[i].arrList == null) {
+              this.$set(response.data.list[i], 'Disabled', false)
+              this.$set(response.data.list[i], 'arrList', [])
+            } else {
+              for (let j = 0; j < response.data.list[i].arrList.length; j++) {
+                this.$set(response.data.list[i].arrList[j], 'isWeight', false)
+                this.$set(response.data.list[i].arrList[j], 'focusState', false)
+              }
+            }
+          }
+          this.table.list = response.data.list
+          this.rowDrop()
+          this.table.changeList = []
+          this.table.startObj = {}
+          if (response.data.total) {
+            this.table.total = response.data.total
+          }
+        } else {
+          this.table.list = []
+        }
+
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+
+    // 行拖拽
+    rowDrop() {
+      console.log(document.querySelector('#table .el-table__body-wrapper tbody'))
+      const tbody = document.querySelector('#table .el-table__body-wrapper tbody')
+      const that = this
+      var sortable = Sortable.create(tbody, {
+        disabled: that.dropState,
+        onChoose({ newIndex, oldIndex }) {
+          if (that.dropState == true) {
+            sortable.destroy()
+          }
+        },
+        onEnd({ newIndex, oldIndex }) {
+          const currRow = that.table.list.splice(oldIndex, 1)[0]
+          that.table.list.splice(newIndex, 0, currRow)
+          console.log('索引', newIndex)
+          console.log('拖动数据', currRow)
+          console.log('上', that.table.list[newIndex - 1])
+          console.log('下', that.table.list[newIndex + 1])
+        }
+      })
+    },
+
+    // TMR编号
+    changeTMRNumber(item, row) {
+      row.tmrname = this.TMRNumberList.find(obj => obj.id === item).eqcode
+      row.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
+    },
+    // 配方模板
+    changeTemplateFormulation(item, row) {
+      row.ftname = this.templateFormulationList.find(obj => obj.id === item).tname
+    },
+    // 增加车次
+    handleCreate() {
+      console.log(this.table.list)
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit === true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      if (this.table.list.length == 0) {
+        this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'tmrname': '', 'tmrid': '', 'sort': 1, 'sel': 1, 'issplit': 1, 'times': '', 'display': '', 'begintime': '', 'ftname': '', 'ftid': '', 'sumweight': '', 'sumcowcount': '', 'maxweight': '', 'arrList': [] })
+      } else {
+        this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'tmrname': '', 'tmrid': '', 'sort': parseInt(this.table.list[this.table.list.length - 1].sort) + 1, 'sel': 1, 'issplit': 1, 'times': '', 'display': '', 'begintime': '', 'ftname': '', 'ftid': '', 'sumweight': '', 'sumcowcount': '', 'maxweight': '', 'arrList': [] })
+      }
+      // this.$refs.box.scrollTop = 0
+      this.$refs.table.bodyWrapper.scrollTop = 0
+      this.dropState = true
+    },
+    createData(row) {
+      console.log('点击了新增保存', row)
+      this.table.temp.pastureid = Cookies.get('pastureid')
+      this.table.temp.tmrname = row.tmrname
+      this.table.temp.tmrid = row.tmrid
+      this.table.temp.sort = row.sort
+      this.table.temp.sel = row.sel
+      this.table.temp.issplit = row.issplit
+      this.table.temp.times = row.times
+      this.table.temp.display = row.display
+      this.table.temp.begintime = row.begintime
+      this.table.temp.ftname = row.ftname
+      this.table.temp.ftid = row.ftid
+      this.table.temp.sumweight = 0
+      this.table.temp.maxweight = row.maxweight
+      this.table.temp.date = this.date
+
+      if (this.table.temp.sort == '' && this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '车次/TMR编号/班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: 'TMR编号/班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.times == '') {
+        this.$message({ type: 'error', message: '班次不能为空', duration: 2000 })
+        return false
+      }
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (row.sort == this.table.list[i].sort) {
+          if (row.myId !== this.table.list[i].myId) {
+            this.$message({ type: 'error', message: '车次不可重复', duration: 2000 })
+            return false
+          }
+        }
+      }
+      var isInteger = /^\d+$/
+      if (this.table.temp.sort !== '') {
+        if (!isInteger.test(parseFloat(this.table.temp.sort))) {
+          this.$message({ type: 'error', message: '车次请输入整数', duration: 2000 })
+          return false
+        }
+      }
+
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam = {}
+      this.requestParam.name = 'insertLppdate'
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+          this.dropState = false
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    createCancel(row) {
+      console.log('点击了新增取消')
+      this.dropState = false
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (row.myId === this.table.list[i].myId) {
+          var listIndex = this.table.list.indexOf(this.table.list[i])
+        }
+        if (listIndex > -1) {
+          this.table.list.splice(listIndex, 1)
+          return
+        }
+      }
+    },
+
+    // 编辑
+    handleUpdate(row) {
+      console.log(row, '点击了行编辑')
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit == true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      // 编辑true,不可编辑false
+      row.Edit = true
+      row.NoEdit = false
+      // 新增false,编辑false,编辑保存true
+      row.isCreate = false
+      row.isUpdate = false
+      row.isUpdateSave = true
+      row.times = String(row.times)
+      if (row.sort == undefined) { row.sort = '' }
+      if (row.tmrid == undefined || row.tmrname == undefined) {
+        row.tmrid = ''
+        row.tmrname = ''
+      }
+      if (row.display == undefined) { row.display = '' }
+      if (row.times == undefined) { row.times = '' }
+      if (row.begintime == undefined) { row.begintime = '' }
+      if (row.ftid == undefined || row.ftname == undefined) {
+        row.ftid = ''
+        row.ftname = ''
+      }
+      this.dropState = true
+      this.table.myTemp = Object.assign({}, row)
+    },
+    updateData(row) {
+      console.log('点击了编辑保存', row)
+      row.isUpdateSave = false
+      this.table.myTemp = Object.assign({}, row)
+      this.table.temp.pastureid = row.pastureid
+      this.table.temp.id = row.id
+      this.table.temp.tmrname = row.tmrname
+      this.table.temp.tmrid = row.tmrid
+      this.table.temp.sort = row.sort
+      this.table.temp.sel = row.sel
+      this.table.temp.issplit = row.issplit
+      this.table.temp.times = row.times
+      this.table.temp.display = row.display
+      this.table.temp.begintime = row.begintime
+      this.table.temp.ftname = row.ftname
+      this.table.temp.ftid = row.ftid
+      this.table.temp.sumweight = row.sumweight
+      this.table.temp.sumcowcount = row.sumcowcount
+      this.table.temp.maxweight = row.maxweight
+      this.table.temp.date = this.date
+
+      if (this.table.temp.sort == '' && this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '车次/TMR编号/班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: 'TMR编号/班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.times == '' && this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '班次/模板配方不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ftid == '') {
+        this.$message({ type: 'error', message: '模板配方不能为空', duration: 2000 })
+        return false
+      }
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (row.sort == this.table.list[i].sort) {
+          if (row.id !== this.table.list[i].id) {
+            this.$message({ type: 'error', message: '车次不可重复', duration: 2000 })
+            return false
+          }
+        }
+      }
+      var isInteger = /^\d+$/
+      if (this.table.temp.sort !== '') {
+        if (!isInteger.test(parseFloat(this.table.temp.sort))) {
+          this.$message({ type: 'error', message: '车次请输入整数', duration: 2000 })
+          return false
+        }
+      }
+
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam = {}
+      this.requestParam.name = 'updateLppdate'
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('编辑保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+          this.dropState = false
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    updateCancel(row) {
+      console.log('点击了编辑取消')
+      // 编辑false,不可编辑true
+      row.Edit = false
+      row.NoEdit = true
+      // 新增false,编辑true,编辑保存false
+      row.isCreate = false
+      row.isUpdate = true
+      row.isUpdateSave = false
+      this.dropState = false
+      this.table.myTemp = Object.assign({}, row)
+    },
+
+    // 配方
+    changeLog: function(evt) {
+      console.log('change1', evt)
+    },
+    start(evt) {
+      console.log('start1', evt)
+      this.$set(this.table.startObj, 'from', evt.from.className)
+      this.$set(this.table.startObj, 'to', evt.from.className)
+    },
+    end(evt) {
+      console.log('end1', evt)
+    },
+    move(evt, originalEvent) {
+      if (originalEvent.target.className === 'list-group-item1 item' || originalEvent.target.className === 'draggableWeight') {
+        return false
+      }
+      console.log(evt)
+      this.table.move1 = evt.draggedContext.element
+    },
+
+    start2(evt) {
+      console.log('start2', evt)
+      this.$set(this.table.startObj, 'from', evt.from.className)
+      this.$set(this.table.startObj, 'to', evt.from.className)
+    },
+    move2(evt, originalEvent) {
+      // console.log(evt, originalEvent)
+      if (originalEvent.target.className === 'list-group-item1 item' || originalEvent.target.className === 'draggableWeight') {
+        return false
+      }
+      this.table.move1 = evt.draggedContext.element
+    },
+    end2(evt) {
+      // console.log(evt)
+      console.log('end2', evt)
+    },
+    // 撒料位
+    changeLog2(evt) {
+      // console.log(this.table.startObj)
+      console.log(evt, 'evt-----')
+      if (evt.havebutton == 1) {
+        this.$message({ type: 'error', message: '该车次计划已执行,不允许修改', duration: 2000 })
+        this.getTimesList()
+        this.getSmallMenuList()
+        this.getList()
+        return false
+      }
+      this.table.changeList.push(evt)
+      evt = this.table.changeList[0]
+      if (evt.arrList.length == 1) {
+        evt.arrList[0].sort = 0
+      } else if (evt.arrList.length > 1) {
+        for (let i = 0; i < evt.arrList.length; i++) {
+          if (evt.arrList[i].id == this.table.move1.id && evt.arrList[i].fttype == this.table.move1.fttype) {
+            if (evt.arrList[i - 1] == undefined) {
+              evt.arrList[i].sort = 0
+              evt.sort = 0
+            } else {
+              evt.arrList[i].sort = parseFloat(evt.arrList[i - 1].sort) + 1
+              evt.sort = parseFloat(evt.arrList[i - 1].sort) + 1
+            }
+          }
+        }
+      }
+      console.log(evt.arrList, '==========1')
+      console.log(evt, '==========2')
+      if (this.table.startObj.from == 'list-group1' && this.table.startObj.to == 'list-group1') {
+        this.requestParam = {}
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'v', 'parammaps': {
+          pastureid: this.table.move1.pastureid,
+          barid: this.table.move1.barid,
+          lppid: evt.id,
+          times: evt.times,
+          ftid: this.table.move1.ftid,
+          ptsid: this.table.move1.ptsid,
+          ptid: this.table.move1.ptid,
+          fttype: this.table.move1.fttype,
+          timesTem: this.table.move1.times,
+          date: this.date
+        }}
+        this.requestParam.data[1] = { 'name': 'updateLpplandtlSortsdate', 'type': 'e', 'parammaps': {
+          pastureid: evt.pastureid,
+          sort: evt.sort,
+          lppid: evt.id,
+          date: this.date
+        }}
+        this.requestParam.data[2] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
+          pastureid: evt.pastureid,
+          lppid: evt.id,
+          barid: this.table.move1.barid,
+          barname: this.table.move1.barname,
+          fpdid: this.table.move1.id,
+          fttype: this.table.move1.fttype,
+          lweight: this.table.move1.weight,
+          sort: evt.sort,
+          tmrid: evt.tmrid,
+          tmrname: evt.tmrname,
+          background: this.table.move1.background,
+          ccountradio: this.table.move1.ccountradio,
+          cowcount: this.table.move1.cowcount,
+          date: this.date
+        }}
+        this.requestParam.data[3] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
+          pastureid: this.table.move1.pastureid,
+          id: this.table.move1.id,
+          fttype: this.table.move1.fttype,
+          lweight: this.table.move1.weight,
+          date: this.date
+        }}
+
+        console.log('撒料位上-下新增', this.requestParam)
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('撒料位新增保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+            this.getTimesList()
+            this.getSmallMenuList()
+            this.getList()
+          } else {
+            this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+            this.getList()
+            this.getSmallMenuList()
+          }
+        })
+      } else if (this.table.startObj.from == 'list-group2' && this.table.startObj.to == 'list-group2') {
+        if (this.table.changeList.length == 1) {
+          this.requestParam = {}
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'v', 'parammaps': {
+            pastureid: this.table.move1.pastureid,
+            barid: this.table.move1.barid,
+            lppid: evt.id,
+            times: evt.times,
+            ftid: this.table.move1.ftid,
+            ptsid: this.table.move1.ptsid,
+            ptid: this.table.move1.ptid,
+            fttype: this.table.move1.fttype,
+            timesTem: evt.times,
+            date: this.date
+          }}
+          this.requestParam.data[1] = { 'name': 'updateLpplandtlSortsdate', 'type': 'e', 'parammaps': {
+            pastureid: evt.pastureid,
+            sort: evt.sort,
+            lppid: evt.id,
+            date: this.date
+          }}
+          this.requestParam.data[2] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
+            pastureid: evt.pastureid,
+            id: this.table.move1.id,
+            date: this.date
+          }}
+          this.requestParam.data[3] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
+            pastureid: evt.pastureid,
+            lppid: evt.id,
+            barid: this.table.move1.barid,
+            barname: this.table.move1.barname,
+            fpdid: this.table.move1.fpdid,
+            fttype: this.table.move1.fttype,
+            lweight: this.table.move1.weight,
+            sort: evt.sort,
+            tmrid: evt.tmrid,
+            tmrname: evt.tmrname,
+            background: this.table.move1.background,
+            ccountradio: this.table.move1.ccountradio,
+            cowcount: this.table.move1.cowcount,
+            date: this.date
+          }}
+          console.log('撒料位下-下新增', this.requestParam)
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('撒料位新增保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+              this.getTimesList()
+              this.getSmallMenuList()
+              this.getList()
+            } else {
+              this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+              this.getList()
+              this.getSmallMenuList()
+            }
+          })
+        } else if (this.table.changeList.length == 1) {
+          if (this.table.isGoing == true) {
+            console.log(11111)
+            this.requestParam.common = { 'returnmap': '0' }
+            this.requestParam.data = []
+            this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'e', 'parammaps': {
+              pastureid: evt.pastureid,
+              sort: evt.sort,
+              lppid: evt.id,
+              date: this.date
+            }}
+            this.requestParam.data[1] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
+              pastureid: evt.pastureid,
+              id: this.table.move1.id,
+              date: this.date
+            }}
+            this.requestParam.data[2] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
+              pastureid: evt.pastureid,
+              lppid: evt.id,
+              barid: this.table.move1.barid,
+              barname: this.table.move1.barname,
+              fpdid: this.table.move1.id,
+              fttype: this.table.move1.fttype,
+              lweight: this.table.move1.weight,
+              sort: evt.sort,
+              tmrid: evt.tmrid,
+              tmrname: evt.tmrname,
+              background: this.table.move1.background,
+              date: this.date
+            }}
+            this.requestParam.data[3] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
+              pastureid: this.table.move1.pastureid,
+              id: this.table.move1.id,
+              fttype: this.table.move1.fttype,
+              statue: 1,
+              date: this.date
+            }}
+
+            console.log('撒料位新增', this.requestParam)
+            ExecDataByConfig(this.requestParam).then(response => {
+              console.log('撒料位新增保存发送参数', this.requestParam)
+              if (response.msg === 'fail') {
+                this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+                this.getTimesList()
+                this.getList()
+              } else {
+                this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+                this.getList()
+              }
+            })
+            this.table.isGoing = false
+          } else {
+            this.table.isGoing = true
+          }
+        }
+      }
+    },
+
+    // 编辑-撒料设备
+    changeEquipment(item, row, fttype, myid) {
+      var objList = {}
+      for (let i = 0; i < row.arrList.length; i++) {
+        row.arrList[i].tmrname = this.equipmentList.find(obj => obj.id === item).tname
+        if (row.arrList[i].fttype == fttype && row.arrList[i].id == myid) {
+          objList = row.arrList[i]
+        }
+        if (row.tmrid == row.arrList[i].tmrid) {
+          if (row.tmrid !== item) {
+            this.$message({ type: 'warning', message: '混料设备不可与其它撒料设备同时选择', duration: 2000 })
+            this.getList()
+            return false
+          }
+        } else {
+          if (row.tmrid == item) {
+            this.$message({ type: 'warning', message: '混料设备不可与其它撒料设备同时选择', duration: 2000 })
+            this.getList()
+            return false
+          }
+        }
+      }
+      console.log(row)
+      this.requestParam = {}
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'updateLppddate', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        lppid: row.id,
+        barid: objList.barid,
+        barname: objList.barname,
+        fpdid: objList.fpdid,
+        fttype: objList.fttype,
+        lweight: objList.weight,
+        sort: objList.sort,
+        tmrid: objList.tmrid,
+        tmrname: objList.tmrname,
+        background: objList.background,
+        id: objList.id,
+        date: this.date
+      }}
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('编辑保存发送参数', this.requestParam)
+        if (response.msg === 'fail') {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        } else {
+          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+          this.getTimesList()
+        }
+      })
+    },
+    dbclickWeight(row, row2) {
+      console.log(row2, 'row2')
+      if (row2.havebutton == 1) {
+        return false
+      }
+      if (this.table.myTemp.isUpdateSave == true) {
+        return false
+      }
+      console.log(row)
+      row.isWeight = true
+      row.focusState = true
+      this.dropState = true
+      this.myStart2 = false
+      this.myMove2 = false
+      this.myEnd2 = false
+    },
+    // 编辑-重量
+    blurWeight(row, fttype, myid) {
+      var objList = {}
+      for (let i = 0; i < row.arrList.length; i++) {
+        if (row.arrList[i].fttype == fttype && row.arrList[i].id == myid) {
+          objList = row.arrList[i]
+        }
+      }
+      if (objList.weight == '') { objList.weight = 0 }
+      this.requestParam = {}
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'checkFPdLeftWdate', 'type': 'v', 'parammaps': {
+        pastureid: objList.pastureid,
+        fpdid: objList.fpdid,
+        fttype: objList.fttype,
+        lweight: String(parseFloat(objList.weight) - parseFloat(objList.lweight)),
+        date: this.date
+      }}
+      this.requestParam.data[1] = { 'name': 'updateLppddate', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        lppid: row.id,
+        barid: objList.barid,
+        barname: objList.barname,
+        fpdid: objList.fpdid,
+        fttype: objList.fttype,
+        lweight: objList.weight,
+        sort: objList.sort,
+        tmrid: objList.tmrid,
+        tmrname: objList.tmrname,
+        background: objList.background,
+        id: objList.id,
+        date: this.date
+      }}
+      this.requestParam.data[2] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
+        pastureid: objList.pastureid,
+        id: objList.fpdid,
+        fttype: objList.fttype,
+        lweight: String(parseFloat(objList.weight) - parseFloat(objList.lweight)),
+        date: this.date
+      }}
+
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('编辑保存发送参数', this.requestParam)
+        if (response.msg === 'fail') {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          this.getList()
+          this.getTimesList()
+        } else {
+          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+          this.getTimesList()
+        }
+      })
+    },
+    handleTakeEffectChange() {
+      console.log('点击了生效')
+    },
+    handleIssplitChange() {
+      console.log('是否提前小料拆分')
+    },
+
+    // 撒料位删除
+    handleFLDelete(ele, row) {
+      if (row.havebutton == 1) {
+        return false
+      }
+      if (this.table.myTemp.isUpdateSave == true) {
+        return false
+      }
+      console.log(ele, row, '点击了撒料删除')
+      this.selectList = []
+      this.requestParam = {}
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
+        pastureid: ele.pastureid,
+        id: ele.id,
+        date: this.date
+      }}
+      this.requestParam.data[1] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
+        pastureid: ele.pastureid,
+        id: ele.fpdid,
+        fttype: ele.fttype,
+        lweight: '-' + parseFloat(ele.weight),
+        date: this.date
+      }}
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('删除保存发送参数', this.requestParam)
+        if (response.msg === 'fail') {
+          this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+        } else {
+          this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
+          this.getList()
+          this.getTimesList()
+        }
+      })
+    },
+
+    handleSelect(val) {
+      console.log('勾选数据', val)
+      this.selectList = val
+    },
+    // 减少车次
+    handleReduceTrains() {
+      if (this.selectList.length == 0) {
+        this.$message({ type: 'error', message: '请选择车次', duration: 2000 })
+        return false
+      } else {
+        // 减少对应车次
+        for (let i = 0; i < this.selectList.length; i++) {
+          if (this.selectList[i].arrList.length > 0) {
+            this.$message({ type: 'error', message: '本车次已添加栏舍不可删除', duration: 2000 })
+            return false
+          }
+        }
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          console.log(this.selectList)
+          this.requestParam = {}
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertSpotListdate', 'resultmaps': { 'list': this.selectList }}
+          this.requestParam.data[0].children = []
+          this.requestParam.data[0].children[0] = { 'name': 'deleteLppdate', 'type': 'e', 'parammaps': {
+            id: '@insertSpotList.id',
+            pastureid: '@insertSpotList.pastureid',
+            date: this.date
+          }}
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('删除保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+
+    // 行内删除
+    handleRowDelete(row) {
+      console.log(row, '点击了行删除')
+      if (row.arrList.length == 0) {
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          this.selectList = []
+          this.requestParam = {}
+          this.requestParam.name = 'deleteLppdate'
+          this.requestParam.parammaps = {}
+          this.requestParam.parammaps.pastureid = row.pastureid
+          this.requestParam.parammaps.id = row.id
+          this.requestParam.parammaps.date = this.date
+          PostDataByName(this.requestParam).then(response => {
+            if (response.msg === 'fail') {
+              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+              this.getList()
+            }
+          })
+        }).catch(() => {
+          this.$message({ type: 'info', message: '已取消删除' })
+        })
+      } else {
+        this.$message({ type: 'error', message: '本车次已添加栏舍不可删除', duration: 2000 })
+        return false
+      }
+    },
+    handleLeftButton() { // 向左
+      this.isLeftButton = false
+      this.isRightButton = true
+      this.$refs.listR.style.width = '46%'
+      this.$refs.listR.style.zIndex = 4
+      this.getSmallMenuList()
+    },
+    handleRightButton() { // 向右
+      this.isLeftButton = true
+      this.isRightButton = false
+      this.$refs.list.style.zIndex = 1
+      this.$refs.listR.style.width = '50px'
+      this.$refs.listR.style.zIndex = 1
+      this.$nextTick(() => {
+        this.$refs.listRight.style.zIndex = 1
+        this.$refs.listRight2.style.zIndex = 1
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+  /deep/ :focus {
+    outline: 0;
+  }
+  :focus-visible {
+    outline: 0 !important;
+  }
+  // 下拉框
+  .filter-item2 .el-input--suffix .el-input__inner{
+    height: 30px !important;
+    font-size: 8px;
+    padding: 0 2px;
+  }
+  .filter-item2 .el-input--suffix .el-input__suffix .el-input__suffix-inner .el-input__icon{
+    line-height: 30px !important;
+  }
+  // 输入框
+  .filter-item2 .el-input__inner{
+    height: 30px !important;
+    font-size: 8px;
+    padding: 0 2px;
+  }
+</style>
+
+<style lang="scss">
+ .menuList{
+    height: 190px;background: red;border-bottom: 2px solid #d8dce5; box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+    .menuList-t{
+      height: 60px;background: #fff;display: flex;justify:center;align-items:center;display:-webkit-flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;
+      .menuList-t-l{}
+      .menuList-t-r{
+        display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;position: relative;
+        .menuList-t-r-l{
+          margin-right:10px;cursor:pointer;width:150px;height: 20px;line-height:20px; text-align: center; background: rgba(25, 138, 244, 0); border: 1px solid #1BBD89; border-radius: 2px;font-size:12px;color: #1BBD89;
+        }
+        .menuList-t-r-r{
+          margin-right:10px;cursor:pointer;width:150px;height: 20px;line-height:20px; text-align: center; background: rgba(25, 138, 244, 0); border: 1px solid #1BBD89; border-radius: 2px;font-size:12px;color: #1BBD89;
+        }
+        .columnHouse{
+          width:650px;background: #fff; box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.04), 0 0 6px 6px rgba(0, 0, 0, 0.04);position: absolute;right: 0;top: 25px;z-index: 5;
+          .el-table {
+            height: 250px;
+            overflow: auto;
+          }
+        }
+      }
+
+    }
+    .menuList-b{
+      height: 130px;background: #fff;position: relative;
+      ::-webkit-scrollbar{ width: 7px; height: 7px; background-color: #F5F5F5; }
+      ::-webkit-scrollbar-track { box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); border-radius: 10px; background-color: #F5F5F5; }
+      ::-webkit-scrollbar-thumb{ border-radius: 10px; box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); background-color: #c8c8c8; }
+      .draggableList{position: absolute;width: 100%;margin: 0 0; height: 130px; list-style: none;padding:0 0;overflow: auto;font-size: 12px;
+        .draggableTitle{float: left;width: 105px;white-space: nowrap;overflow: hidden; text-overflow: ellipsis;margin:5px 5px;border-radius: 7px;text-align: center;color:#000;height: 36px;line-height: 36px;}
+        li{
+          text-align: center;color:#fff;
+          .draggableName{display:block;width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
+        }
+      }
+    }
+  }
+  .list-group2{
+    .list-group-item2{
+      width: 220px;height: 50px;overflow: hidden; float: left;margin: 5px 5px;position: relative;
+      .arr-t{height: 50px;border-radius:5px 5px;}
+      .arr-l{
+        float: left;width: 60px;height: 50px;overflow: hidden;border-radius:5px 50% 50% 5px;
+        .arr-l-t{
+          position: relative;
+          .arr-l-t-t{
+            width: 0;height: 0; border-top: 26px solid #3479f2; border-right: 26px solid transparent;
+          }
+          .arr-l-t-b{
+            position: absolute;top: 4px;left: 1px;color: #fff;width: 10px; height: 10px;
+            .el-input--suffix{
+              opacity:0;
+              .el-input__inner{height: 10px;}
+            }
+          }
+        }
+
+        .arr-l-b{
+          width: 45px;position: absolute;top: 15px;left: 10px;color: #333;font-size: 12px;
+          .tmrname{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
+        }
+      }
+      .arr-c{position: absolute;top: 0px;left: 0;}
+      .arr-r{
+        float: right;width: 160px;height: 50px;overflow: hidden;line-height: 50px;
+        .arr-r-l{
+          float: left;width: 85px;
+          .barname{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
+        }
+        .arr-r-c{float: left;width: 10px;}
+        .arr-r-r{
+          float: left;width: 65px;
+          .weight{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
+        }
+      }
+    }
+  }
+</style>
+<style>
+  .draggableWeight{display:block;line-height: 18px;height: 18px; color: #000; width: 100%; margin: 0 auto;}
+</style>

+ 1765 - 1430
src/views/formulationPlan/dailyExecutionPlan/typePage/materialIssuancePlan.vue

@@ -1,1453 +1,1788 @@
-<template>
-  <div class="app-container">
-    <div class="menuList">
-      <div class="menuList-t">
-        <div class="menuList-t-l">
-          <span>班次:</span>
-          <el-radio-group v-model="menuRadio" size="small" @change="changeMenu">
-            <el-radio-button v-if="maxTime.isTime1" label="一班">一班</el-radio-button>
-            <el-radio-button v-if="maxTime.isTime2" label="二班">二班</el-radio-button>
-            <el-radio-button v-if="maxTime.isTime3" label="三班">三班</el-radio-button>
-            <el-radio-button v-if="maxTime.isTime4" label="四班">四班</el-radio-button>
-          </el-radio-group>
-        </div>
-        <div class="menuList-t-r">
-          <div v-if="!isBarracks" class="menuList-t-r-l" @click="clickBarracks(2);">栏舍计划统计-展开<i class="el-icon-arrow-down" /></div>
-          <div v-if="isBarracks" class="menuList-t-r-r" @click="clickBarracks(1);">栏舍计划统计-收起<i class="el-icon-arrow-up" /></div>
-          <div v-if="isBarracks" class="columnHouse">
-            <div class="smallTable">
-              <el-table
-                :list-loading="smallMenu.listLoading"
-                element-loading-text="给我一点时间"
-                :data="smallMenu.list"
-                :row-style="rowStyle2"
-                :cell-style="cellStyle2"
-                :header-row-style="headerRowStyle2"
-                :header-cell-style="headerCellStyle2"
-                show-summary
-                sum-text="总栏舍"
-              >
-                <el-table-column label="配方/班次" min-width="80px" align="center" prop="tname" />
-                <el-table-column label="总数" min-width="50px" align="center" prop="usedsum" />
-                <el-table-column v-if="maxTime.isTime1" label="第一班未分配" min-width="105px" align="center" prop="onetime" />
-                <el-table-column v-if="maxTime.isTime2" label="第二班未分配" min-width="105px" align="center" prop="twotime" />
-                <el-table-column v-if="maxTime.isTime3" label="第三班未分配" min-width="105px" align="center" prop="threetime" />
-                <el-table-column v-if="maxTime.isTime4" label="第四班未分配" min-width="105px" align="center" prop="fourtime" />
-              </el-table>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="menuList-b">
-        <ul v-loading="listLoadingTimes" class="draggableList">
-          <li v-for="element in MenuList" :key="element.arrid">
-            <span v-if="element.isShowTitle" class="draggableTitle">{{ element.ftname }}:</span>
-            <draggable id="1" data-source="juju1" :list="element.arrList" class="list-group1" draggable=".item" group="a" :move="move" @change="changeLog" @start="start" @end="end">
-              <div v-for="item in element.arrList" :key="item.id" class="list-group-item1 item" style="width: 88px;float: left;margin:5px 5px;height: 36px;">
-                <div style="position: relative;">
-                  <el-tooltip placement="top" class="list-group-item1 item" style="height: 18px;line-height: 18px;" :style="{'background':item.background}">
-                    <div slot="content">{{ item.barname }}</div>
-                    <div class="draggableName">{{ item.barname }}</div>
-                  </el-tooltip>
-                  <div class="draggableWeight" :style="{ background: 'rgba('+item.background2+ ',0.1)' }">
-
-                    <!-- <span v-if="item.isfill==1" style="background: #009C69;color:#fff;position: absolute;left: 0;top: 18px;">补</span> -->
-                    {{ item.weight }}
-                  </div>
-                </div>
-              </div>
-            </draggable>
-          </li>
-        </ul>
-      </div>
-    </div>
-
-    <div class="operation" style="width: 100%; border-top: 2px solid #d8dce5; box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04)">
-      <el-button class="success" icon="el-icon-plus" style="float:left;" @click="handleCreate">新增车次</el-button>
-      <el-button class="danger" icon="el-icon-delete" style="float:left;" @click="handleReduceTrains">减少车次</el-button>
-    </div>
-
-    <div class="table">
+<template>
+  <div class="app-container">
+    <div class="search">
+      <el-select
+        v-model="table.getdataListParm.parammaps.times"
+        filterable
+        placeholder="班次"
+        class="filter-item"
+        style="width: 120px;"
+        @change="changeFrequency"
+      >
+        <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+    </div>
+    <div class="operation">
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-plus" style="float:left;" @click="handleCreate">新增车次
+      </el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float:left;" @click="handleReduceTrains">
+        减少车次</el-button>
+      <el-button
+        v-if="isOrder && isRoleEdit"
+        icon="el-icon-sort"
+        style="float: left;"
+        class="success"
+        @click="handleChangeOrder"
+      >更改顺序</el-button>
+      <div v-else style="float: left;margin-left: 10px;">
+        <el-button v-if="isRoleEdit" icon="el-icon-folder-checked" class="success" @click="saveChangeOrder">保存
+        </el-button>
+        <el-button v-if="isRoleEdit" icon="el-icon-close" class="sortCancel" @click="cancelChangeOrder">取消</el-button>
+      </div>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" style="float: left;" @click="handleTakeEffect">
+        生效</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" style="float: left;" @click="handleDisable">
+        禁用</el-button>
+    </div>
+    <div class="table">
       <el-table
         id="table"
         :key="table.tableKey"
         ref="table"
         v-loading="table.listLoading"
-        element-loading-text="给我一点时间"
+        element-loading-text="给我一点时间"
         :data="table.list"
         border
         highlight-current-row
         style="width: 100%;"
         :height="height"
-        :row-style="rowStyle"
+        :row-style="rowStyle"
         :cell-style="cellStyle"
-        class="elTable table-fixed"
+        class="elTable"
         row-key="id"
         @selection-change="handleSelect"
-      >
-        <el-table-column type="selection" width="50" />
-        <el-table-column label="车次" width="75px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.sort }}</span>
-            <el-input v-if="scope.row.Edit" v-model="scope.row.sort" type="number" placeholder="车次" class="filter-item" style="display: inline-block;width: 95%;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="TMR编号" width="100px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.tmrname }}</span>
-            <el-select v-if="scope.row.Edit" v-model="scope.row.tmrid" placeholder="TMR编号" class="filter-item" style="width:95%;" @change="(value)=> {changeTMRNumber(value, scope.row)}">
-              <el-option v-for="item in TMRNumberList" :key="item.id" :label="item.eqcode" :value="item.id" />
-            </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column label="描述" width="100px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.display }}</span>
-            <el-input v-if="scope.row.Edit" v-model="scope.row.display" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" placeholder="描述" maxlength="255" class="filter-item" style="display: inline-block;width: 95%;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="生效" width="90px" align="center">
-          <template slot-scope="scope">
-            <el-switch v-model="scope.row.sel" :disabled="scope.row.NoEdit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleTakeEffectChange(scope.$index, scope.row)" />
-          </template>
-        </el-table-column>
-        <el-table-column label="班次" width="90px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.timesstr }}</span>
-            <el-select v-if="scope.row.Edit" v-model="scope.row.times" :disabled="scope.row.Disabled" placeholder="班次" class="filter-item" style="width:95%;">
-              <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column label="时间" width="110px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.begintime }}</span>
-            <el-time-picker v-if="scope.row.Edit" v-model="scope.row.begintime" type="datetime" placeholder="选择时间" format="HH:mm" value-format="HH:mm" style="display: inline-block;width: 95%;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="最大重量" width="80px" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.maxweight }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="合计重量" width="80px" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.sumweight }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="模板配方" width="120px" 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" :disabled="scope.row.Disabled" placeholder="模板配方" class="filter-item" style="width:95%;" @change="(value)=> {changeTemplateFormulation(value, scope.row)}">
-              <el-option v-for="item in templateFormulationList" :key="item.id" :label="item.tname" :value="item.id" />
-            </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column label="是否提前小料拆分" width="150px" align="center">
-          <template slot-scope="scope">
-            <el-switch v-model="scope.row.issplit" :disabled="scope.row.NoEdit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleIssplitChange(scope.$index, scope.row)" />
-          </template>
-        </el-table-column>
-        <el-table-column label="撒料" width="950px" align="center">
-          <template slot-scope="scope">
-            <draggable id="2" data-source="juju" :list="scope.row.arrList" class="list-group2" draggable=".item" group="a" :move="move2" @change="changeLog2(scope.row)" @start="start2" @end="end2(scope.row)">
-              <div v-for="element in scope.row.arrList" :key="element.name" class="list-group-item2 item">
-                <div class="arr-l" :style="{'background':element.tbackground}">
-                  <div class="arr-l-t">
-                    <div class="arr-l-t-t" />
-                    <el-select v-model="element.tmrid" placeholder="撒料设备" class="arr-l-t-b el-icon-arrow-down" @change="(value)=> {changeEquipment(value, scope.row,element.fttype,element.id)}">
-                      <el-option v-for="item in equipmentList" :key="item.id" :disabled="table.myTemp.isUpdateSave || scope.row.havebutton == 1" :label="item.tmrmix" :value="item.id" />
-                    </el-select>
-                  </div>
-                  <div class="arr-l-b">
-                    <el-tooltip placement="top" class="list-group-item1 item" style="height: 18px;line-height: 18px;">
-                      <div slot="content">{{ element.tmrname }}</div>
-                      <div class="tmrname">{{ element.tmrname }}</div>
-                    </el-tooltip>
-                  </div>
-                  <!-- <div v-if="element.fttype==0" style="background: #009C69;position:absolute;bottom: 0;left: 0;">补</div> -->
-                </div>
-                <div class="arr-r">
-                  <div class="arr-r-l">
-                    <el-tooltip placement="top">
-                      <div slot="content">{{ element.barname }}</div>
-                      <div class="barname">{{ element.barname }}</div>
-                    </el-tooltip>
-                  </div>
-                  <div class="arr-r-c">-</div>
-                  <div class="arr-r-r">
-                    <el-tooltip v-show="!element.isWeight" placement="top">
-                      <div slot="content">{{ element.weight }}</div>
-                      <div class="weight" @dblclick="dbclickWeight(element,scope.row)">{{ element.weight }}</div>
-                    </el-tooltip>
-                    <el-tooltip v-show="element.isWeight" placement="top">
-                      <div slot="content">{{ element.weight }}</div>
-                      <input ref="weight" v-model="element.weight" v-focus="element.focusState" type="number" placeholder="重量" step="0.01" class="filter-item2" style="display: inline-block;width: 95%;border: 1px solid #e6e6e6;" @blur="(value)=> {blurWeight(scope.row,element.fttype,element.id)}">
-                    </el-tooltip>
-                  </div>
-                </div>
-                <div class="arr-t" :style="{'background':element.background}">
-                  <i class="el-icon-close" style="position: absolute;right: 0;" @click="handleFLDelete(element,scope.row)" />
-                </div>
-              </div>
-            </draggable>
-          </template>
-        </el-table-column>
-
-        <el-table-column align="center" width="100" label="操作" class-name="small-padding fixed-width" fixed="right">
-          <template slot-scope="{row}">
-            <el-button v-if="row.isCreate" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData(row)" />
-            <span v-if="row.isCreate" class="centerSpan">|</span>
-            <el-button v-if="row.isCreate" class="minCancel" icon="el-icon-close" @click="createCancel(row)" />
-            <el-button v-if="row.isUpdate" :disabled="row.havebutton == 1" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
-            <span v-if="row.isUpdate" class="centerSpan">|</span>
-            <el-button v-if="row.isUpdate" :disabled="row.havebutton == 1" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(row)" />
-            <el-button v-if="row.isUpdateSave" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="updateData(row)" />
-            <span v-if="row.isUpdateSave" class="centerSpan">|</span>
-            <el-button v-if="row.isUpdateSave" class="minCancel" icon="el-icon-close" @click="updateCancel(row)" />
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import { GetDataByName, postJson, PostDataByName, failproccess, ExecDataByConfig } from '@/api/common'
-import draggable from 'vuedraggable'
-import Sortable from 'sortablejs'
+      >
+        <el-table-column type="selection" width="50" />
+        <el-table-column label="车次" width="50px" align="center" class-name="small-padding fixed-width" fixed="">
+          <template slot-scope="scope">
+            <span>{{ scope.row.sort }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="TMR编号" width="110px" align="center" class-name="small-padding fixed-width" fixed="left">
+          <template slot-scope="scope">
+            <span>{{ scope.row.tmrname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="描述" width="110px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.display }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="生效" width="70px" align="center">
+          <template slot-scope="scope">
+            <el-switch
+              v-model="scope.row.sel"
+              disabled
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+              :active-value="1"
+              :inactive-value="0"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="班次" width="65px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.timesstr }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="时间" width="55px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.begintime }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="最大重量" width="75px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.maxweight }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="合计重量" width="80px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.sumweight }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="模板配方" width="90px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.ftname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-show="isInforvalue" label="是否提前小料拆分" width="70px" align="center">
+          <template slot-scope="scope">
+            <el-switch
+              v-model="scope.row.issplit"
+              disabled
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+              :active-value="1"
+              :inactive-value="0"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="撒料" min-width="250px" align="left" header-align="center">
+          <template slot-scope="scope">
+            <div v-for="element in scope.row.arrList" :key="element.name" class="list">
+              <el-tooltip placement="top" :open-delay="1000">
+                <div slot="content">
+                  <div> 栏舍全称:{{ element.barname }} </div>
+                  <div> 饲料重量:{{ element.weight }} </div>
+                </div>
+                <div :style="{'background':element.background}" class="tmrname">{{ element.barname }}</div>
+              </el-tooltip>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="70" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <el-button v-if="isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
+            <span v-if="isRoleEdit" class="centerSpan">|</span>
+            <el-button v-if="isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(row)" />
+          </template>
+        </el-table-column>
+      </el-table>
+      <span
+        v-if="table.listLoading == false"
+        style="margin-right: 30px;margin-top: 10px;font-size: 14px;"
+      >共{{ table.total }}条</span>
+    </div>
+
+    <!-- 新增、编辑 -->
+    <el-dialog
+      :fullscreen="dialogFull"
+      :destroy-on-close="true"
+      :visible.sync="create.dialogFormVisible"
+      :before-close="close"
+      :close-on-click-modal="false"
+      width="90%"
+      :modal-append-to-body="false"
+      :append-to-body="true"
+    >
+      <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[create.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="create">
+        <el-form
+          ref="temp"
+          :rules="create.rules"
+          :model="create.temp"
+          label-position="right"
+          label-width="135px"
+          style="width: 100%;margin:0 auto 10px;"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="生效:" prop="sel">
+                <el-switch
+                  v-model="create.temp.sel"
+                  active-color="#13ce66"
+                  inactive-color="#ff4949"
+                  :active-value="1"
+                  :inactive-value="0"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="TMR编号:" prop="tmrid2">
+                <el-select
+                  v-model="create.temp.tmrid2"
+                  style="width: 100%;"
+                  placeholder="TMR编号"
+                  @change="changeTMRNumber"
+                >
+                  <el-option v-for="item in equipmentList" :key="item.id" :label="item.eqcode" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="班次:" prop="times">
+                <el-select
+                  v-model="create.temp.times"
+                  :disabled="create.list2.length>0"
+                  placeholder="班次"
+                  style="width:100%;"
+                  @change="changeTimes"
+                >
+                  <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="提前小料拆分:" prop="issplit">
+                <el-switch
+                  v-model="create.temp.issplit"
+                  active-color="#13ce66"
+                  inactive-color="#ff4949"
+                  :active-value="1"
+                  :inactive-value="0"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="时间:" prop="begintime">
+                <el-time-picker
+                  v-model="create.temp.begintime"
+                  style="width: 100%;"
+                  :clearable="false"
+                  type="datetime"
+                  placeholder="时间"
+                  format="HH:mm"
+                  value-format="HH:mm"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="模板配方:" prop="ftid">
+                <el-select
+                  v-model="create.temp.ftid"
+                  :disabled="create.list2.length>0"
+                  placeholder="模板配方"
+                  style="width:100%;"
+                  @change="changeTemplateFormulation"
+                >
+                  <el-option
+                    v-for="item in templateFormulationList"
+                    :key="item.id"
+                    :label="item.tname"
+                    :value="item.id"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="描述:" prop="display">
+                <el-input
+                  v-model="create.temp.display"
+                  type="textarea"
+                  :autosize="{ minRows: 1.3, maxRows: 4}"
+                  placeholder="描述"
+                  maxlength="255"
+                  style="width: 100%;"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div v-if="create.dialogStatus !=='update' && !isDispaly" slot="footer" class="dialog-footer">
+          <el-button class="cancelClose" @click="create.dialogFormVisible = false;getList()">关闭</el-button>
+          <el-button
+            v-if="create.dialogStatus==='create'"
+            class="save"
+            :disabled="isokDisable"
+            @click="distributionAndSpreading()"
+          >分配撒料</el-button>
+        </div>
+        <!-- 栏舍 -->
+        <div v-if="create.dialogStatus =='update' || isDispaly" class="bottom" style="border-top: 1px solid #009C69;">
+          <el-row>
+            <el-col :span="20">
+              <div class="fenceHouse">
+                <ul v-loading="create.listLoadingTimes" class="fenceHouseList">
+                  <li v-for="element in create.list1" :key="element.arrid">
+                    <span v-if="element.isShowTitle" class="fenceHouseTitle">{{ element.ftname }}:</span>
+                    <div v-for="item in element.arrList" :key="item.id" class="colorBlock">
+                      <div style="position: relative;">
+                        <el-tooltip
+                          placement="top"
+                          style="height: 18px;line-height: 18px;"
+                          :style="{'background':item.background}"
+                        >
+                          <div slot="content">{{ item.barname }}</div>
+                          <div class="barname">
+                            <span
+                              style="float: left;width: 70px;overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"
+                            >{{ item.barname }}</span>
+                            <b
+                              style="background: red;float: right;width: 18px;font-size: 18px;"
+                              class="el-icon-check"
+                              @click="clickBar(item)"
+                            />
+                          </div>
+                        </el-tooltip>
+                        <div class="barWeight" :style="{ background: 'rgba('+item.background2+ ',0.1)' }">
+                          {{ item.weight }}
+                        </div>
+                      </div>
+                    </div>
+                  </li>
+                </ul>
+              </div>
+            </el-col>
+            <el-col :span="4">
+              <div style="text-align: center;height: 100px;margin-top: 40px;">
+                <div class="maxweight" style="line-height:20px;"><b>最大重量:</b>{{ create.temp.maxweight }} (KG)</div>
+                <div class="sumweight" style="line-height:20px;margin-top: 10px;">
+                  <b>合计重量:</b>{{ create.temp.sumweight }} (KG)
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+          <!-- 撒料 -->
+          <div class="spreadingMaterial">
+            <div>撒料:</div>
+            <div class="spreadingMaterialList">
+              <div v-for="element in create.list2" :key="element.name" class="list-group-item2 item">
+                <div class="arr-l" :style="{'background':element.tbackground}">
+                  <div class="arr-l-t" />
+                  <div class="arr-l-b">
+                    <el-tooltip placement="top" class="list-group-item1 item" style="height: 18px;line-height: 18px;">
+                      <div slot="content">{{ element.barname }}</div>
+                      <div class="tmrname">{{ element.barname }}</div>
+                    </el-tooltip>
+                  </div>
+                  <div v-if="element.fttype==0" style="background: #009C69;position:absolute;bottom: 0;left: 0;">补</div>
+                </div>
+                <div class="arr-r">
+                  <div class="arr-r-r">
+                    <el-tooltip placement="top">
+                      <div slot="content">{{ element.weight }}</div>
+                      <input
+                        ref="weight"
+                        v-model="element.weight"
+                        :autofocus="element.focusState"
+                        type="number"
+                        placeholder="重量"
+                        step="0.01"
+                        class="filter-item2"
+                        style="display: inline-block;height:25px;padding:4px 4px 4px 0;text-align:right;font-size:12px;width: 95%;border: 1px solid #e6e6e6;"
+                        @keyup.enter="$event.target.blur"
+                        @blur="blurWeight(element)"
+                      >
+                    </el-tooltip>
+                  </div>
+                </div>
+                <div class="arr-t" :style="{'background':element.background}">
+                  <i class="el-icon-close" style="position: absolute;right: 0;" @click="handleFLDelete(element)" />
+                </div>
+              </div>
+            </div>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button class="cancelClose" :disabled="isokDisable" @click="close()">关闭</el-button>
+            <el-button class="save" :disabled="isokDisable" @click="updateData()">确认</el-button>
+          </div>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
 import Cookies from 'js-cookie'
-import { MessageBox } from 'element-ui'
-export default {
-  name: 'MaterialIssuancePlan',
-  display: 'Two list header slot',
-  order: 14,
-  components: { draggable },
-  directives: {
-    focus: {
-      update: function(el, { value }) {
-        if (value) {
-          el.focus()
-        }
-      }
-    }
-  },
-  props: {
-    show: { type: Boolean, default: false }, // 弹框可见标志
-    parentDate: { type: String, defalut: '' }
-  },
-  data() {
-    return {
-      date: '',
-      isBarracks: false,
-      requestParams: {
-        name: 'getTMRListEnableType', offset: 0, parammaps: { pastureid: Cookies.get('pastureid'), eqtype: '1' }
-      },
-      requestParams2: {
-        name: 'getTMRListEnableTypeAll', offset: 0, parammaps: { pastureid: Cookies.get('pastureid'), eqtype: '1' }
-      },
-      requestParams3: {
-        name: 'getFTSWList', offset: 0, parammaps: { pastureid: Cookies.get('pastureid') }
-      },
-      equipmentList: [], // 撒料设备
-      TMRNumberList: [], // TMR编号
-      frequencyList: [], // 班次
-      templateFormulationList: [], // 模板配方
-
-      // 班次
-      maxTime: {
-        getMaxTimesParm: {
-          name: 'getSysoptEnable',
-          page: 1,
-          offset: 1,
-          pagecount: 1,
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid'),
-            inforname: 'times'
-          }
-        },
-        // 班次
-        isTime1: false,
-        isTime2: false,
-        isTime3: false,
-        isTime4: false
-      },
-
-      table: {
-        getdataListParm: {
-          name: 'getLppListdate',
-          name1: 'getLppdListdate',
-          page: 1,
-          offset: 1,
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid')
-          }
-        },
-        list: [],
-        total: 0,
-        tableKey: 0,
-        listLoading: false,
-        tabClickIndex: null, // 点击的单元格
-        tabClickLabel: '', // 当前点击的列名
-        temp: {},
-        move1: '',
-        changeList: [],
-        startObj: {},
-        isGoing: false,
-        myTemp: {}
-      },
-      selectList: [], // 选中数据
-
-      // 班次
-      menuRadio: '一班',
-      MenuList: [], // 配单列表
-      getdataListParmTimes: {
-        name: 'geFTListByFPdate',
-        name1: 'geFTListByFPDetaildate',
-        page: 1,
-        offset: 1,
-        returntype: 'Map',
-        parammaps: {
-          pastureid: Cookies.get('pastureid'),
-          times: '1'
-        }
-      },
-      listLoadingTimes: false,
-
-      // 栏舍统计
-      isLeftButton: true, // 向左
-      isRightButton: false, // 向右
-      rowStyle2: { maxHeight: 20 + 'px', height: 20 + 'px' },
-      cellStyle2: { padding: 0 + 'px' },
-      headerRowStyle2: { maxHeight: 20 + 'px', height: 20 + 'px' },
-      headerCellStyle2: { padding: 0 + 'px' },
-      smallMenu: {
-        getdataListParm: {
-          name: 'getLppUseSUMListdate',
-          page: 1,
-          offset: 1,
-          pagecount: 10,
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid')
-          }
-        },
-        total: 0,
-        tableKey: 0,
-        listLoading: false,
-        list: []
-      },
-      // 自动生成
-      automaticGeneration: {
-        dialogFormVisible: false,
-        dialogStatus: ''
-      },
-      historyRecord: {
-        dialogFormVisible: false,
-        dialogStatus: '',
-        myComponent: null
-      },
-      textMap: {
-        automaticGeneration: '提示',
-        historyRecord: '历史记录'
-      },
-      isokDisable: false,
-      requestParam: {},
-      height: document.body.clientHeight - 255 - 50, // table高度
-      // height: document.body.clientHeight - 450 - 50, // table高度
-      rowStyle: { maxHeight: 45 + 'px', height: 40 + 'px' },
-      cellStyle: { padding: 0 + 'px' },
-      dropState: false
-    }
-  },
-  watch: {
-    // 监听show,visible 随着show变化而变化
-    show: {
-      immediate: true,
-      handler(newVal, oldVal) {
-        console.log('newVal-show', newVal)
-      }
-    },
-    parentDate: {
-      immediate: true,
-      handler(newVal, oldVal) {
-        console.log('newVal-show', newVal)
-        this.date = newVal
-      }
-    }
-  },
-  created() {
+import Sortable from 'sortablejs'
+import { checkButtons, postJson } from '@/api/common'
+import { MessageBox } from 'element-ui'
+export default {
+  name: 'MaterialIssuancePlan',
+  directives: {
+    focus: {
+      update: function(el, {
+        value
+      }) {
+        if (value) {
+          el.focus()
+        }
+      }
+    }
+  },
+  props: {
+    show: {
+      type: Boolean,
+      default: false
+    }, // 弹框可见标志
+    parentDate: {
+      type: String,
+      defalut: ''
+    }
+  },
+  data() {
+    return {
+      date: '',
+      isRoleEdit: [],
+      rowStyle: {
+        maxHeight: 25 + 'px',
+        height: 25 + 'px'
+      },
+      cellStyle: {
+        padding: 0 + 'px'
+      },
+      height: document.body.clientHeight - 220, // table高度
+      table: {
+        getdataListParm: {
+          page: 1,
+          offset: 1,
+          pagecount: 0,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            times: 1,
+            refresh: 1
+          }
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: false
+      },
+      frequencyList: [], // 班次
+      maxTime: {
+        getMaxTimesParm: {
+          name: 'getSysoptEnable',
+          page: 1,
+          offset: 1,
+          pagecount: 1,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            inforname: 'times'
+          }
+        }
+      },
+      // 是否显示小料拆分
+      isInforvalue: false,
+      selectList: [],
+      textMap: {
+        create: '新增',
+        update: '编辑'
+      },
+      dialogFull: false,
+      isOrder: true,
+      requestParam: {},
+      isokDisable: false,
+      create: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp: {
+          sel: 1,
+          tmrid: '',
+          tmrid2: '',
+          maxweight: '',
+          issplit: 1,
+          begintime: '',
+          sumweight: 0,
+          display: '',
+          times: 1,
+          ftid: '',
+          ftname: '',
+          tmrname: '',
+          maxweight: ''
+        },
+        rules: {
+          tmrid2: [{
+            type: 'string',
+            required: true,
+            message: '必填',
+            trigger: 'blur'
+          }],
+          times: [{
+            type: 'number',
+            required: true,
+            message: '必填',
+            trigger: 'blur'
+          }],
+          ftid: [{
+            type: 'string',
+            required: true,
+            message: '必填',
+            trigger: 'blur'
+          }]
+        },
+        listLoadingTimes: false,
+        list1: [],
+        list2: [],
+        checkBarList: []
+      },
+      TMRNumberList: [], // TMR编号
+      equipmentList: [], // 撒料设备
+      templateFormulationList: [], // 模板配方
+      isDispaly: false
+    }
+  },
+  watch: {
+    // 监听show,visible 随着show变化而变化
+    show: {
+      immediate: true,
+      handler(newVal, oldVal) {
+        console.log('newVal-show', newVal)
+      }
+    },
+    parentDate: {
+      immediate: true,
+      handler(newVal, oldVal) {
+        console.log('newVal-show', newVal)
+        this.date = newVal
+      }
+    }
+  },
+  created() {
+    this.getButtons()
     this.getIsDisplay()
-    this.getDownList()
-  },
-  methods: {
-    clickBarracks(item) {
-      this.isBarracks = !this.isBarracks
-    },
-    // 下拉列表
-    getDownList() {
-      GetDataByName(this.requestParams).then(response => {
-        if (response.data !== null) {
-          this.TMRNumberList = response.data.list
-        } else {
-          this.TMRNumberList = []
-        }
-      })
-      GetDataByName(this.requestParams2).then(response => {
-        if (response.data !== null) {
-          this.equipmentList = response.data.list
-        } else {
-          this.equipmentList = []
-        }
-      })
-      GetDataByName(this.requestParams3).then(response => {
-        if (response.data !== null) {
-          this.templateFormulationList = response.data.list
-        } else {
-          this.templateFormulationList = []
-        }
-      })
-    },
-
-    // 显示班次
-    getIsDisplay() {
-      GetDataByName(this.maxTime.getMaxTimesParm).then(response => {
-        console.log(response.data.list[0].inforvalue)
-        if (response.data.list[0].inforvalue == 1) {
-          this.frequencyList = [{ id: '1', name: '第一班' }]
-        } else if (response.data.list[0].inforvalue == 2) {
-          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
-        } else if (response.data.list[0].inforvalue == 3) {
-          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
-        } else if (response.data.list[0].inforvalue == 4) {
-          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
-        }
-        if (response.data.list !== null) {
-          if (response.data.list[0].inforvalue == 1) {
-            this.maxTime.isTime1 = true
-            this.maxTime.isTime2 = false
-            this.maxTime.isTime3 = false
-            this.maxTime.isTime4 = false
-          } else if (response.data.list[0].inforvalue == 2) {
-            this.maxTime.isTime1 = true
-            this.maxTime.isTime2 = true
-            this.maxTime.isTime3 = false
-            this.maxTime.isTime4 = false
-          } else if (response.data.list[0].inforvalue == 3) {
-            this.maxTime.isTime1 = true
-            this.maxTime.isTime2 = true
-            this.maxTime.isTime3 = true
-            this.maxTime.isTime4 = false
-          } else if (response.data.list[0].inforvalue == 4) {
-            this.maxTime.isTime1 = true
-            this.maxTime.isTime2 = true
-            this.maxTime.isTime3 = true
-            this.maxTime.isTime4 = true
-          }
-        } else {
-          this.maxTime.isTime1 = false
-          this.maxTime.isTime2 = false
-          this.maxTime.isTime3 = false
-          this.maxTime.isTime4 = false
-        }
-      })
-      this.getList()
-      this.getSmallMenuList() // 栏舍统计
-      this.getTimesList() // 班次
-    },
-
-    // 头部班次
-    getTimesList() {
-      this.listLoadingTimes = true
-      this.getdataListParmTimes.parammaps.date = this.date
-      const url = 'authdata/GetArrList'
-      const data = this.getdataListParmTimes
-      postJson(url, data).then(response => {
-        if (response.data.list !== null) {
-          for (let i = 0; i < response.data.list.length; i++) {
-            this.$set(response.data.list[i], 'isShowTitle', true)
-            if (response.data.list[i].arrList == null) {
-              this.$set(response.data.list[i], 'isShowTitle', false)
-            } else {
-              for (let j = 0; j < response.data.list[i].arrList.length; j++) {
-                this.$set(response.data.list[i].arrList[j], 'background2', this.colorRgb(response.data.list[i].arrList[j].background))
-              }
-            }
-          }
-          this.MenuList = response.data.list
-        } else {
-          this.MenuList = []
-        }
-        setTimeout(() => {
-          this.listLoadingTimes = false
-        }, 100)
-      })
-    },
-    colorRgb(sColor) {
-      sColor = sColor.toLowerCase()
-      var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
-      // 如果是16进制颜色
-      if (sColor && reg.test(sColor)) {
-        if (sColor.length === 4) {
-          var sColorNew = '#'
-          for (var i = 1; i < 4; i += 1) {
-            sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
-          }
-          sColor = sColorNew
-        }
-        // 处理六位的颜色值
-        var sColorChange = []
-        for (var i = 1; i < 7; i += 2) {
-          sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))
-        }
-        return sColorChange.join(',')
-      }
-      return 'rgba(' + sColorChange.join(',') + ')'
-    },
-    // 切换班次
-    changeMenu(val) {
-      console.log(val)
-      if (this.menuRadio === '一班') {
-        this.getdataListParmTimes.parammaps.times = '1'
-        this.getTimesList()
-      } else if (this.menuRadio === '二班') {
-        this.getdataListParmTimes.parammaps.times = '2'
-        this.getTimesList()
-        this.MenuList = this.twoMenuList
-      } else if (this.menuRadio === '三班') {
-        this.getdataListParmTimes.parammaps.times = '3'
-        this.getTimesList()
-      } else if (this.menuRadio === '四班') {
-        this.getdataListParmTimes.parammaps.times = '4'
-        this.getTimesList()
-      }
-    },
-
-    // 右侧栏舍统计
-    getSmallMenuList() {
-      this.smallMenu.listLoading = true
-      this.smallMenu.getdataListParm.parammaps.date = this.date
-      GetDataByName(this.smallMenu.getdataListParm).then(response => {
-        console.log('smallMenu数据', response.data.list)
-        if (response.data.list !== null) {
-          for (let i = 0; i < response.data.list.length; i++) {
-            if (response.data.list[i].onetime == undefined) { this.$set(response.data.list[i], 'onetime', 0) } else { response.data.list[i].onetime = parseFloat(response.data.list[i].onetime) }
-            if (response.data.list[i].twotime == undefined) { this.$set(response.data.list[i], 'twotime', 0) } else { response.data.list[i].twotime = parseFloat(response.data.list[i].twotime) }
-            if (response.data.list[i].threetime == undefined) { this.$set(response.data.list[i], 'threetime', 0) } else { response.data.list[i].threetime = parseFloat(response.data.list[i].threetime) }
-            if (response.data.list[i].fourtime == undefined) { this.$set(response.data.list[i], 'fourtime', 0) } else { response.data.list[i].fourtime = parseFloat(response.data.list[i].fourtime) }
-            this.$set(response.data.list[i], 'usedsum', response.data.list[i].onetime + response.data.list[i].twotime + response.data.list[i].threetime + response.data.list[i].fourtime)
-            this.$set(response.data.list[i], 'all', '')
-          }
-          this.smallMenu.list = response.data.list
-          this.smallMenu.total = response.data.total
-        } else {
-          this.smallMenu.list = []
-        }
-
-        setTimeout(() => {
-          this.smallMenu.listLoading = false
-        }, 100)
-      })
-    },
-
-    // table
-    getList() {
-      this.table.listLoading = true
-      this.table.getdataListParm.parammaps.date = this.date
-      const url = 'authdata/GetArrList'
-      const data = this.table.getdataListParm
-      postJson(url, data).then(response => {
-        if (response.data !== null) {
-          console.log('table数据', response.data.list)
-          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], 'isCreate', false) // 新增操作
-            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
-            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
-            this.$set(response.data.list[i], 'Disabled', true) // 班次/模板配方不可输入
-
-            if (response.data.list[i].arrList == null) {
-              this.$set(response.data.list[i], 'Disabled', false)
-              this.$set(response.data.list[i], 'arrList', [])
-            } else {
-              for (let j = 0; j < response.data.list[i].arrList.length; j++) {
-                this.$set(response.data.list[i].arrList[j], 'isWeight', false)
-                this.$set(response.data.list[i].arrList[j], 'focusState', false)
-              }
-            }
-          }
-          this.table.list = response.data.list
-          this.rowDrop()
-          this.table.changeList = []
-          this.table.startObj = {}
-          if (response.data.total) {
-            this.table.total = response.data.total
-          }
-        } else {
-          this.table.list = []
-        }
-
-        setTimeout(() => {
-          this.table.listLoading = false
-        }, 100)
-      })
-    },
-
-    // 行拖拽
-    rowDrop() {
-      console.log(document.querySelector('#table .el-table__body-wrapper tbody'))
-      const tbody = document.querySelector('#table .el-table__body-wrapper tbody')
-      const that = this
-      var sortable = Sortable.create(tbody, {
-        disabled: that.dropState,
-        onChoose({ newIndex, oldIndex }) {
-          if (that.dropState == true) {
-            sortable.destroy()
-          }
-        },
-        onEnd({ newIndex, oldIndex }) {
-          const currRow = that.table.list.splice(oldIndex, 1)[0]
-          that.table.list.splice(newIndex, 0, currRow)
-          console.log('索引', newIndex)
-          console.log('拖动数据', currRow)
-          console.log('上', that.table.list[newIndex - 1])
-          console.log('下', that.table.list[newIndex + 1])
-        }
-      })
-    },
-
-    // TMR编号
-    changeTMRNumber(item, row) {
-      row.tmrname = this.TMRNumberList.find(obj => obj.id === item).eqcode
-      row.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
-    },
-    // 配方模板
-    changeTemplateFormulation(item, row) {
-      row.ftname = this.templateFormulationList.find(obj => obj.id === item).tname
-    },
-    // 增加车次
-    handleCreate() {
-      console.log(this.table.list)
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (this.table.list[i].Edit === true) {
-          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
-          return false
-        }
-      }
-      if (this.table.list.length == 0) {
-        this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'tmrname': '', 'tmrid': '', 'sort': 1, 'sel': 1, 'issplit': 1, 'times': '', 'display': '', 'begintime': '', 'ftname': '', 'ftid': '', 'sumweight': '', 'sumcowcount': '', 'maxweight': '', 'arrList': [] })
-      } else {
-        this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'tmrname': '', 'tmrid': '', 'sort': parseInt(this.table.list[this.table.list.length - 1].sort) + 1, 'sel': 1, 'issplit': 1, 'times': '', 'display': '', 'begintime': '', 'ftname': '', 'ftid': '', 'sumweight': '', 'sumcowcount': '', 'maxweight': '', 'arrList': [] })
-      }
-      // this.$refs.box.scrollTop = 0
-      this.$refs.table.bodyWrapper.scrollTop = 0
-      this.dropState = true
-    },
-    createData(row) {
-      console.log('点击了新增保存', row)
-      this.table.temp.pastureid = Cookies.get('pastureid')
-      this.table.temp.tmrname = row.tmrname
-      this.table.temp.tmrid = row.tmrid
-      this.table.temp.sort = row.sort
-      this.table.temp.sel = row.sel
-      this.table.temp.issplit = row.issplit
-      this.table.temp.times = row.times
-      this.table.temp.display = row.display
-      this.table.temp.begintime = row.begintime
-      this.table.temp.ftname = row.ftname
-      this.table.temp.ftid = row.ftid
-      this.table.temp.sumweight = 0
-      this.table.temp.maxweight = row.maxweight
-      this.table.temp.date = this.date
-
-      if (this.table.temp.sort == '' && this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '车次/TMR编号/班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: 'TMR编号/班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.times == '') {
-        this.$message({ type: 'error', message: '班次不能为空', duration: 2000 })
-        return false
-      }
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (row.sort == this.table.list[i].sort) {
-          if (row.myId !== this.table.list[i].myId) {
-            this.$message({ type: 'error', message: '车次不可重复', duration: 2000 })
-            return false
-          }
-        }
-      }
-      var isInteger = /^\d+$/
-      if (this.table.temp.sort !== '') {
-        if (!isInteger.test(parseFloat(this.table.temp.sort))) {
-          this.$message({ type: 'error', message: '车次请输入整数', duration: 2000 })
-          return false
-        }
-      }
-
-      this.isokDisable = true
-      setTimeout(() => {
-        this.isokDisable = false
-      }, 1000)
-      this.requestParam = {}
-      this.requestParam.name = 'insertLppdate'
-      this.requestParam.parammaps = this.table.temp
-      PostDataByName(this.requestParam).then(response => {
-        console.log('新增保存发送参数', this.requestParam)
-        if (response.msg !== 'fail') {
-          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-          this.dropState = false
-        } else {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-        }
-      })
-    },
-    createCancel(row) {
-      console.log('点击了新增取消')
-      this.dropState = false
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (row.myId === this.table.list[i].myId) {
-          var listIndex = this.table.list.indexOf(this.table.list[i])
-        }
-        if (listIndex > -1) {
-          this.table.list.splice(listIndex, 1)
-          return
-        }
-      }
-    },
-
-    // 编辑
-    handleUpdate(row) {
-      console.log(row, '点击了行编辑')
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (this.table.list[i].Edit == true) {
-          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
-          return false
-        }
-      }
-      // 编辑true,不可编辑false
-      row.Edit = true
-      row.NoEdit = false
-      // 新增false,编辑false,编辑保存true
-      row.isCreate = false
-      row.isUpdate = false
-      row.isUpdateSave = true
-      row.times = String(row.times)
-      if (row.sort == undefined) { row.sort = '' }
-      if (row.tmrid == undefined || row.tmrname == undefined) {
-        row.tmrid = ''
-        row.tmrname = ''
-      }
-      if (row.display == undefined) { row.display = '' }
-      if (row.times == undefined) { row.times = '' }
-      if (row.begintime == undefined) { row.begintime = '' }
-      if (row.ftid == undefined || row.ftname == undefined) {
-        row.ftid = ''
-        row.ftname = ''
-      }
-      this.dropState = true
-      this.table.myTemp = Object.assign({}, row)
-    },
-    updateData(row) {
-      console.log('点击了编辑保存', row)
-      row.isUpdateSave = false
-      this.table.myTemp = Object.assign({}, row)
-      this.table.temp.pastureid = row.pastureid
-      this.table.temp.id = row.id
-      this.table.temp.tmrname = row.tmrname
-      this.table.temp.tmrid = row.tmrid
-      this.table.temp.sort = row.sort
-      this.table.temp.sel = row.sel
-      this.table.temp.issplit = row.issplit
-      this.table.temp.times = row.times
-      this.table.temp.display = row.display
-      this.table.temp.begintime = row.begintime
-      this.table.temp.ftname = row.ftname
-      this.table.temp.ftid = row.ftid
-      this.table.temp.sumweight = row.sumweight
-      this.table.temp.sumcowcount = row.sumcowcount
-      this.table.temp.maxweight = row.maxweight
-      this.table.temp.date = this.date
-
-      if (this.table.temp.sort == '' && this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '车次/TMR编号/班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.tmrid == '' && this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: 'TMR编号/班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.times == '' && this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '班次/模板配方不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.ftid == '') {
-        this.$message({ type: 'error', message: '模板配方不能为空', duration: 2000 })
-        return false
-      }
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (row.sort == this.table.list[i].sort) {
-          if (row.id !== this.table.list[i].id) {
-            this.$message({ type: 'error', message: '车次不可重复', duration: 2000 })
-            return false
-          }
-        }
-      }
-      var isInteger = /^\d+$/
-      if (this.table.temp.sort !== '') {
-        if (!isInteger.test(parseFloat(this.table.temp.sort))) {
-          this.$message({ type: 'error', message: '车次请输入整数', duration: 2000 })
-          return false
-        }
-      }
-
-      this.isokDisable = true
-      setTimeout(() => {
-        this.isokDisable = false
-      }, 1000)
-      this.requestParam = {}
-      this.requestParam.name = 'updateLppdate'
-      this.requestParam.parammaps = this.table.temp
-      PostDataByName(this.requestParam).then(response => {
-        console.log('编辑保存发送参数', this.requestParam)
-        if (response.msg !== 'fail') {
-          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-          this.dropState = false
-        } else {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-        }
-      })
-    },
-    updateCancel(row) {
-      console.log('点击了编辑取消')
-      // 编辑false,不可编辑true
-      row.Edit = false
-      row.NoEdit = true
-      // 新增false,编辑true,编辑保存false
-      row.isCreate = false
-      row.isUpdate = true
-      row.isUpdateSave = false
-      this.dropState = false
-      this.table.myTemp = Object.assign({}, row)
-    },
-
-    // 配方
-    changeLog: function(evt) {
-      console.log('change1', evt)
-    },
-    start(evt) {
-      console.log('start1', evt)
-      this.$set(this.table.startObj, 'from', evt.from.className)
-      this.$set(this.table.startObj, 'to', evt.from.className)
-    },
-    end(evt) {
-      console.log('end1', evt)
-    },
-    move(evt, originalEvent) {
-      if (originalEvent.target.className === 'list-group-item1 item' || originalEvent.target.className === 'draggableWeight') {
-        return false
-      }
-      console.log(evt)
-      this.table.move1 = evt.draggedContext.element
-    },
-
-    start2(evt) {
-      console.log('start2', evt)
-      this.$set(this.table.startObj, 'from', evt.from.className)
-      this.$set(this.table.startObj, 'to', evt.from.className)
-    },
-    move2(evt, originalEvent) {
-      // console.log(evt, originalEvent)
-      if (originalEvent.target.className === 'list-group-item1 item' || originalEvent.target.className === 'draggableWeight') {
-        return false
+    this.getList()
+  },
+  methods: {
+    getButtons() {
+      const Edit = 'DailyExecutionPlan'
+      const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
+      this.isRoleEdit = isRoleEdit
+    },
+    // 下拉列表
+    getDownList() {
+      const url = 'authdata/GetDataByName'
+      const data1 = {
+        name: 'getTMRListEnableType',
+        offset: 0,
+        parammaps: {
+          pastureid: Cookies.get('pastureid'),
+          eqtype: '1'
+        }
+      }
+      postJson(url, data1).then(response => {
+        if (response.data !== null) {
+          this.TMRNumberList = response.data.list
+        } else {
+          this.TMRNumberList = []
+        }
+      })
+      const data2 = {
+        name: 'getTMRListEnableTypeAll',
+        offset: 0,
+        parammaps: {
+          pastureid: Cookies.get('pastureid'),
+          eqtype: '1'
+        }
+      }
+      postJson(url, data2).then(response => {
+        if (response.data !== null) {
+          this.equipmentList = response.data.list
+        } else {
+          this.equipmentList = []
+        }
+      })
+      const data3 = {
+        name: 'getFTSWList',
+        offset: 0,
+        parammaps: {
+          pastureid: Cookies.get('pastureid')
+        }
+      }
+      postJson(url, data3).then(response => {
+        if (response.data !== null) {
+          this.templateFormulationList = response.data.list
+        } else {
+          this.templateFormulationList = []
+        }
+      })
+      const data4 = {
+        name: 'getSysoptEnable',
+        offset: 0,
+        parammaps: {
+          pastureid: Cookies.get('pastureid'),
+          inforname: 'isSmallMaterial'
+        }
+      }
+      postJson(url, data4).then(response => {
+        if (response.data !== null) {
+          if (response.data.list[0].inforvalue == 0) {
+            this.isInforvalue = false
+          } else {
+            this.isInforvalue = true
+          }
+        } else {
+          this.isInforvalue = false
+        }
+      })
+    },
+    getIsDisplay() {
+      const url = 'authdata/GetDataByName'
+      const data = this.maxTime.getMaxTimesParm
+      postJson(url, data).then(response => {
+        console.log(response.data.list[0].inforvalue)
+        if (response.data.list[0].inforvalue == 1) {
+          this.frequencyList = [{
+            id: 1,
+            name: '第一班'
+          }]
+        } else if (response.data.list[0].inforvalue == 2) {
+          this.frequencyList = [{
+            id: 1,
+            name: '第一班'
+          },
+          {
+            id: 2,
+            name: '第二班'
+          }
+          ]
+        } else if (response.data.list[0].inforvalue == 3) {
+          this.frequencyList = [{
+            id: 1,
+            name: '第一班'
+          },
+          {
+            id: 2,
+            name: '第二班'
+          },
+          {
+            id: 3,
+            name: '第三班'
+          }
+          ]
+        } else if (response.data.list[0].inforvalue == 4) {
+          this.frequencyList = [{
+            id: 1,
+            name: '第一班'
+          },
+          {
+            id: 2,
+            name: '第二班'
+          },
+          {
+            id: 3,
+            name: '第三班'
+          },
+          {
+            id: 4,
+            name: '第四班'
+          }
+          ]
+        }
+      })
+    },
+
+    getList() {
+      this.table.listLoading = true
+      const url = 'authdata/spillage/day'
+      this.table.getdataListParm.parammaps.date = this.date
+      const data = this.table.getdataListParm
+      postJson(url, data).then(response => {
+        if (response.data.list !== undefined) {
+          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].arrList == null) {
+                this.$set(response.data.list[i], 'arrList', [])
+              }
+            }
+            this.table.list = response.data.list
+            this.table.total = response.data.list.length
+            setTimeout(() => {
+              this.$refs.table.doLayout()
+            }, 100)
+          } else {
+            this.table.list = []
+          }
+        }
+        this.table.listLoading = false
+      })
+    },
+    changeFrequency(val) {
+      console.log('选择了班次', val)
+      this.getList()
+    },
+    // 行内删除
+    handleRowDelete(row) {
+      console.log(row, '点击了行删除')
+      if (row.arrList.length == 0) {
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.selectList = []
+          this.requestParam = {}
+          this.requestParam.name = 'deleteLppdate'
+          this.requestParam.parammaps = {}
+          this.requestParam.parammaps.pastureid = row.pastureid
+          this.requestParam.parammaps.id = row.id
+          this.requestParam.parammaps.date = this.date
+          const url = 'authdata/PostDataByName'
+          const data = this.requestParam
+          postJson(url, data).then(response => {
+            if (response.msg === 'fail') {
+              this.$notify({
+                title: '删除失败',
+                message: response.data,
+                type: 'warning',
+                duration: 2000
+              })
+            } else {
+              this.$notify({
+                title: '成功',
+                message: '删除成功',
+                type: 'success',
+                duration: 2000
+              })
+              this.table.getdataListParm.parammaps.refresh = 1
+              this.getList()
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消删除'
+          })
+        })
+      } else {
+        this.$message({
+          type: 'error',
+          message: '本车次已添加栏舍不可删除',
+          duration: 2000
+        })
+        return false
+      }
+    },
+    handleSelect(val) {
+      console.log('勾选数据', val)
+      this.selectList = val
+    },
+    changeTemplateFormulation(item) {
+      this.create.temp.ftname = this.templateFormulationList.find(obj => obj.id === item).tname
+      this.getCreateList1()
+    },
+    changeTimes(item) {
+      this.getCreateList1()
+    },
+    // TMR编号
+    changeTMRNumber(item) {
+      if (this.create.list2.length > 0) {
+        MessageBox.confirm('更换TMR撒料设备,会清空撒料车,是否更换?', {
+          confirmButtonText: '是',
+          cancelButtonText: '否',
+          type: 'warning'
+        }).then(() => {
+          this.create.temp.tmrid = this.create.temp.tmrid2
+          this.create.temp.tmrname = this.equipmentList.find(obj => obj.id === item).eqcode
+          this.create.temp.maxweight = this.equipmentList.find(obj => obj.id === item).maxstirfeed
+          console.log('tmrname==>', this.create.temp)
+          if (this.isDispaly || this.create.dialogStatus == 'update') {
+            this.getClearList()
+          }
+        }).catch(() => {
+          this.create.temp.tmrid2 = this.create.temp.tmrid
+          this.create.temp.tmrname = this.equipmentList.find(obj => obj.id === this.create.temp.tmrid2).eqcode
+          this.create.temp.maxweight = this.equipmentList.find(obj => obj.id === this.create.temp.tmrid2)
+            .maxstirfeed
+          console.log(this.create.temp)
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          })
+        })
+      } else {
+        this.create.temp.tmrid = this.create.temp.tmrid2
+        this.create.temp.tmrname = this.equipmentList.find(obj => obj.id === item).eqcode
+        this.create.temp.maxweight = this.equipmentList.find(obj => obj.id === item).maxstirfeed
+        console.log('TMR编号item==>', item)
+        console.log('tmrname==>', this.create.temp)
+      }
+    },
+    getClearList() {
+      const url = 'authdata/lpplandtl/del/day'
+      const data = []
+      this.create.list2.forEach((item, i) => {
+        const obj = {}
+        obj.pastureid = item.pastureid
+        obj.lpplandtlid = item.id
+        obj.fttype = item.fttype
+        obj.lweight = item.lweight
+        obj.fpdid = item.fpdid
+        obj.date = this.date
+        data.push(obj)
+      })
+      postJson(url, data).then(response => {
+        if (response.msg === 'fail') {
+          this.$notify({
+            title: '失败',
+            message: response.data,
+            type: 'warning',
+            duration: 2000
+          })
+        } else {
+          this.$notify({
+            title: '',
+            message: '成功',
+            type: 'success',
+            duration: 2000
+          })
+          this.getCreateList1()
+        }
+      })
+    },
+    colorRgb(sColor) {
+      sColor = sColor.toLowerCase()
+      var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+      // 如果是16进制颜色
+      if (sColor && reg.test(sColor)) {
+        if (sColor.length === 4) {
+          var sColorNew = '#'
+          for (var i = 1; i < 4; i += 1) {
+            sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+          }
+          sColor = sColorNew
+        }
+        // 处理六位的颜色值
+        var sColorChange = []
+        for (var i = 1; i < 7; i += 2) {
+          sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))
+        }
+        return sColorChange.join(',')
+      }
+      return 'rgba(' + sColorChange.join(',') + ')'
+    },
+    dbclickWeight(item) {
+      console.log('item==>', item)
+      console.log('isRoleEdit==>', this.isRoleEdit)
+      this.$set(item, 'isWeight', true)
+      this.$set(item, 'focusState', true)
+    },
+    blurWeight(item) {
+      if (parseFloat(item.weight) <= 0) {
+        this.$message({
+          type: 'error',
+          message: '重量不可输入小于0的数据',
+          duration: 2000
+        })
+        return false
+      }
+      if (item.weight == '') {
+        item.weight = 0
+      }
+      const lweight = String(parseFloat(item.weight) - parseFloat(item.lweight))
+      let sum = 0
+      this.create.list2.forEach((item, i) => {
+        console.log('item==>', item)
+        sum += parseFloat(item.weight)
+      })
+      if (sum > this.create.temp.maxweight) {
+        this.$message({
+          type: 'error',
+          message: '撒料车总重量大于最大重量',
+          duration: 2000
+        })
+        return false
+      }
+      this.requestParam = {}
+      this.requestParam.common = {
+        'returnmap': '0'
+      }
+      this.requestParam.data = []
+      this.requestParam.data[0] = {
+        'name': 'checkFPdLeftWdate',
+        'type': 'v',
+        'parammaps': {
+          pastureid: item.pastureid,
+          fpdid: item.fpdid,
+          fttype: item.fttype,
+          lweight: lweight,
+          date: this.date
+        }
+      }
+      this.requestParam.data[1] = {
+        'name': 'updateLppddate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: this.create.temp.pastureid,
+          lppid: this.create.temp.id,
+          barid: item.barid,
+          barname: item.barname,
+          fpdid: item.fpdid,
+          fttype: item.fttype,
+          lweight: item.weight,
+          sort: item.sort,
+          tmrid: item.tmrid,
+          tmrname: item.tmrname,
+          background: item.background,
+          id: item.id,
+          date: this.date
+        }
+      }
+      this.requestParam.data[2] = {
+        'name': 'updateFpdetailUsedate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: item.pastureid,
+          id: item.fpdid,
+          fttype: item.fttype,
+          lweight: lweight,
+          date: this.date
+        }
       }
-      this.table.move1 = evt.draggedContext.element
-    },
-    end2(evt) {
-      // console.log(evt)
-      console.log('end2', evt)
-    },
-    // 撒料位
-    changeLog2(evt) {
-      // console.log(this.table.startObj)
-      console.log(evt, 'evt-----')
-      if (evt.havebutton == 1) {
-        this.$message({ type: 'error', message: '该车次计划已执行,不允许修改', duration: 2000 })
-        this.getTimesList()
-        this.getSmallMenuList()
-        this.getList()
-        return false
-      }
-      this.table.changeList.push(evt)
-      evt = this.table.changeList[0]
-      if (evt.arrList.length == 1) {
-        evt.arrList[0].sort = 0
-      } else if (evt.arrList.length > 1) {
-        for (let i = 0; i < evt.arrList.length; i++) {
-          if (evt.arrList[i].id == this.table.move1.id && evt.arrList[i].fttype == this.table.move1.fttype) {
-            if (evt.arrList[i - 1] == undefined) {
-              evt.arrList[i].sort = 0
-              evt.sort = 0
-            } else {
-              evt.arrList[i].sort = parseFloat(evt.arrList[i - 1].sort) + 1
-              evt.sort = parseFloat(evt.arrList[i - 1].sort) + 1
-            }
-          }
-        }
-      }
-      console.log(evt.arrList, '==========1')
-      console.log(evt, '==========2')
-      if (this.table.startObj.from == 'list-group1' && this.table.startObj.to == 'list-group1') {
-        this.requestParam = {}
-        this.requestParam.common = { 'returnmap': '0' }
-        this.requestParam.data = []
-        this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'v', 'parammaps': {
-          pastureid: this.table.move1.pastureid,
-          barid: this.table.move1.barid,
-          lppid: evt.id,
-          times: evt.times,
-          ftid: this.table.move1.ftid,
-          ptsid: this.table.move1.ptsid,
-          ptid: this.table.move1.ptid,
-          fttype: this.table.move1.fttype,
-          timesTem: this.table.move1.times,
-          date: this.date
-        }}
-        this.requestParam.data[1] = { 'name': 'updateLpplandtlSortsdate', 'type': 'e', 'parammaps': {
-          pastureid: evt.pastureid,
-          sort: evt.sort,
-          lppid: evt.id,
-          date: this.date
-        }}
-        this.requestParam.data[2] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
-          pastureid: evt.pastureid,
+      const url = 'authdata/ExecDataByConfig'
+      const data = this.requestParam
+      postJson(url, data).then(response => {
+        if (response.msg === 'fail') {
+          this.$notify({
+            title: '保存失败',
+            message: response.data,
+            type: 'warning',
+            duration: 2000
+          })
+        } else {
+          // this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+        }
+        this.getCreateList1()
+      })
+    },
+    handleFLDelete(ele) {
+      console.log(ele, '点击了撒料删除')
+      this.requestParam = {}
+      this.requestParam.common = {
+        'returnmap': '0'
+      }
+      this.requestParam.data = []
+      this.requestParam.data[0] = {
+        'name': 'deleteLppddate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: ele.pastureid,
+          id: ele.id,
+          date: this.date
+        }
+      }
+      this.requestParam.data[1] = {
+        'name': 'updateFpdetailUsedate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: ele.pastureid,
+          id: ele.fpdid,
+          fttype: ele.fttype,
+          lweight: '-' + parseFloat(ele.weight),
+          date: this.date
+        }
+      }
+      const url = 'authdata/ExecDataByConfig'
+      const data = this.requestParam
+      postJson(url, data).then(response => {
+        if (response.msg === 'fail') {
+          this.$notify({
+            title: '删除失败',
+            message: response.data,
+            type: 'warning',
+            duration: 2000
+          })
+        } else {
+          this.$notify({
+            title: '',
+            message: '删除成功',
+            type: 'success',
+            duration: 2000
+          })
+          this.getCreateList1()
+        }
+      })
+    },
+    handleCreate() {
+      console.log('新增车次')
+      this.create.temp = {
+        sel: 1,
+        tmrid: '',
+        tmrid2: '',
+        maxweight: '',
+        issplit: 1,
+        begintime: '',
+        sumweight: 0,
+        display: '',
+        times: 1,
+        ftid: '',
+        ftname: '',
+        tmrname: '',
+        maxweight: ''
+      }
+      this.getDownList()
+      this.isDispaly = false
+      this.dialogFull = false
+      this.create.dialogStatus = 'create'
+      this.create.dialogFormVisible = true
+      this.create.list1 = []
+      this.create.list2 = []
+      this.create.checkBarList = []
+    },
+    distributionAndSpreading() {
+      console.log('点击了分配撒料')
+      this.$refs['temp'].validate(valid => {
+        if (valid) {
+          this.isokDisable = true
+          setTimeout(() => {
+            this.isokDisable = false
+          }, 1000)
+          const url = 'authdata/lpplandtl/add/day'
+          const data = {}
+          this.create.temp.pastureid = Cookies.get('pastureid')
+          this.create.temp.times = parseInt(this.create.temp.times)
+          this.create.temp.date = this.date
+          data.parammaps = this.create.temp
+          postJson(url, data).then(response => {
+            console.log('新增保存发送参数', this.requestParam)
+            if (response.msg !== 'fail') {
+              this.$notify({
+                title: '成功',
+                message: '保存成功',
+                type: 'success',
+                duration: 2000
+              })
+              this.create.temp.id = response.data.Id
+              this.isDispaly = true
+            } else {
+              this.$notify({
+                title: '保存失败',
+                message: response.data,
+                type: 'warning',
+                duration: 2000
+              })
+            }
+          })
+          this.getCreateList1()
+        }
+      })
+    },
+    getCreateList1() {
+      this.create.listLoadingTimes = true
+      const url = 'authdata/spillage/day'
+      const data = {
+        page: 1,
+        offset: 1,
+        pagecount: 0,
+        returntype: 'Map',
+        parammaps: {
+          pastureid: Cookies.get('pastureid'),
+          times: this.create.temp.times,
+          refresh: 2,
+          ftid: this.create.temp.ftid,
+          date: this.date
+        }
+      }
+      postJson(url, data).then(response => {
+        if (response.data.ftlist !== null) {
+          for (let i = 0; i < response.data.ftlist.length; i++) {
+            this.$set(response.data.ftlist[i], 'isShowTitle', true)
+            if (response.data.ftlist[i].arrList == null) {
+              this.$set(response.data.ftlist[i], 'isShowTitle', false)
+            } else {
+              for (let j = 0; j < response.data.ftlist[i].arrList.length; j++) {
+                this.$set(response.data.ftlist[i].arrList[j], 'background2', this.colorRgb(response.data.ftlist[i]
+                  .arrList[j].background))
+              }
+            }
+          }
+          this.create.list1 = response.data.ftlist
+        } else {
+          this.create.list1 = []
+        }
+        this.create.listLoadingTimes = false
+      })
+      this.getCreateList2()
+    },
+    getCreateList2() {
+      const url = 'authdata/lpplandtl/day'
+      const data = {}
+      data.parammaps = {}
+      data.parammaps.pastureid = Cookies.get('pastureid'),
+      data.parammaps.id = this.create.temp.id
+      data.parammaps.date = this.date
+      postJson(url, data).then(response => {
+        if (response.data !== null) {
+          this.create.list2 = response.data
+          // this.create.temp.sort = response.data.length + 1
+          var sumweight = 0
+          for (let i = 0; i < this.create.list2.length; i++) {
+            sumweight += parseFloat(this.create.list2[i].weight)
+            this.$set(this.create.list2[i], 'isWeight', false)
+            this.$set(this.create.list2[i], 'focusState', false)
+          }
+          console.log('sumweight==>', sumweight)
+          this.create.temp.sumweight = (sumweight).toFixed(2)
+        } else {
+          this.create.list2 = []
+          this.create.temp.sort = 0
+          this.create.temp.sumweight = 0
+        }
+      })
+    },
+    clickBar(item) {
+      console.log('点击了栏舍item==>', item)
+      this.create.temp.sumweight = parseFloat(this.create.temp.sumweight)
+      console.log('this.create.temp.sumweight', this.create.temp.sumweight)
+      var evt = this.create.temp
+      if (parseFloat(evt.maxweight) - parseFloat(evt.sumweight) < parseFloat(item.weight)) {
+        if (parseFloat(evt.sumweight) + parseFloat(item.weight) > parseFloat(evt.maxweight)) {
+          this.$set(item, 'weight', (parseFloat(evt.maxweight) - parseFloat(evt.sumweight)).toFixed(2))
+        }
+      }
+      if (parseFloat(evt.maxweight) == parseFloat(evt.sumweight) || parseFloat(evt.maxweight) < parseFloat(evt
+        .sumweight)) {
+        this.$message({
+          type: 'error',
+          message: '计划配方已经是最大容量',
+          duration: 2000
+        })
+        this.getCreateList1()
+        return
+      }
+      console.log('item.weight===>', item.weight)
+      this.requestParam = {}
+      this.requestParam.common = {
+        'returnmap': '0'
+      }
+      this.requestParam.data = []
+      this.requestParam.data[0] = {
+        'name': 'updateLpplandtlSortsdate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: evt.pastureid,
+          sort: evt.sort,
           lppid: evt.id,
-          barid: this.table.move1.barid,
-          barname: this.table.move1.barname,
-          fpdid: this.table.move1.id,
-          fttype: this.table.move1.fttype,
-          lweight: this.table.move1.weight,
-          sort: evt.sort,
-          tmrid: evt.tmrid,
-          tmrname: evt.tmrname,
-          background: this.table.move1.background,
-          ccountradio: this.table.move1.ccountradio,
-          cowcount: this.table.move1.cowcount,
-          date: this.date
-        }}
-        this.requestParam.data[3] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
-          pastureid: this.table.move1.pastureid,
-          id: this.table.move1.id,
-          fttype: this.table.move1.fttype,
-          lweight: this.table.move1.weight,
-          date: this.date
-        }}
-
-        console.log('撒料位上-下新增', this.requestParam)
-        ExecDataByConfig(this.requestParam).then(response => {
-          console.log('撒料位新增保存发送参数', this.requestParam)
-          if (response.msg === 'fail') {
-            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-            this.getTimesList()
-            this.getSmallMenuList()
-            this.getList()
-          } else {
-            this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-            this.getList()
-            this.getSmallMenuList()
-          }
-        })
-      } else if (this.table.startObj.from == 'list-group2' && this.table.startObj.to == 'list-group2') {
-        if (this.table.changeList.length == 1) {
-          this.requestParam = {}
-          this.requestParam.common = { 'returnmap': '0' }
-          this.requestParam.data = []
-          this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'v', 'parammaps': {
-            pastureid: this.table.move1.pastureid,
-            barid: this.table.move1.barid,
-            lppid: evt.id,
-            times: evt.times,
-            ftid: this.table.move1.ftid,
-            ptsid: this.table.move1.ptsid,
-            ptid: this.table.move1.ptid,
-            fttype: this.table.move1.fttype,
-            timesTem: evt.times,
-            date: this.date
-          }}
-          this.requestParam.data[1] = { 'name': 'updateLpplandtlSortsdate', 'type': 'e', 'parammaps': {
-            pastureid: evt.pastureid,
-            sort: evt.sort,
-            lppid: evt.id,
-            date: this.date
-          }}
-          this.requestParam.data[2] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
-            pastureid: evt.pastureid,
-            id: this.table.move1.id,
-            date: this.date
-          }}
-          this.requestParam.data[3] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
-            pastureid: evt.pastureid,
-            lppid: evt.id,
-            barid: this.table.move1.barid,
-            barname: this.table.move1.barname,
-            fpdid: this.table.move1.fpdid,
-            fttype: this.table.move1.fttype,
-            lweight: this.table.move1.weight,
-            sort: evt.sort,
-            tmrid: evt.tmrid,
-            tmrname: evt.tmrname,
-            background: this.table.move1.background,
-            ccountradio: this.table.move1.ccountradio,
-            cowcount: this.table.move1.cowcount,
-            date: this.date
-          }}
-          console.log('撒料位下-下新增', this.requestParam)
-          ExecDataByConfig(this.requestParam).then(response => {
-            console.log('撒料位新增保存发送参数', this.requestParam)
-            if (response.msg === 'fail') {
-              this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-              this.getTimesList()
-              this.getSmallMenuList()
-              this.getList()
-            } else {
-              this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-              this.getList()
-              this.getSmallMenuList()
-            }
-          })
-        } else if (this.table.changeList.length == 1) {
-          if (this.table.isGoing == true) {
-            console.log(11111)
-            this.requestParam.common = { 'returnmap': '0' }
-            this.requestParam.data = []
-            this.requestParam.data[0] = { 'name': 'checkLLPDetailInsertdate', 'type': 'e', 'parammaps': {
-              pastureid: evt.pastureid,
-              sort: evt.sort,
-              lppid: evt.id,
-              date: this.date
-            }}
-            this.requestParam.data[1] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
-              pastureid: evt.pastureid,
-              id: this.table.move1.id,
-              date: this.date
-            }}
-            this.requestParam.data[2] = { 'name': 'insertLppddate', 'type': 'e', 'parammaps': {
-              pastureid: evt.pastureid,
-              lppid: evt.id,
-              barid: this.table.move1.barid,
-              barname: this.table.move1.barname,
-              fpdid: this.table.move1.id,
-              fttype: this.table.move1.fttype,
-              lweight: this.table.move1.weight,
-              sort: evt.sort,
-              tmrid: evt.tmrid,
-              tmrname: evt.tmrname,
-              background: this.table.move1.background,
-              date: this.date
-            }}
-            this.requestParam.data[3] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
-              pastureid: this.table.move1.pastureid,
-              id: this.table.move1.id,
-              fttype: this.table.move1.fttype,
-              statue: 1,
-              date: this.date
-            }}
-
-            console.log('撒料位新增', this.requestParam)
-            ExecDataByConfig(this.requestParam).then(response => {
-              console.log('撒料位新增保存发送参数', this.requestParam)
-              if (response.msg === 'fail') {
-                this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-                this.getTimesList()
-                this.getList()
-              } else {
-                this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-                this.getList()
-              }
-            })
-            this.table.isGoing = false
-          } else {
-            this.table.isGoing = true
-          }
-        }
-      }
-    },
-
-    // 编辑-撒料设备
-    changeEquipment(item, row, fttype, myid) {
-      var objList = {}
-      for (let i = 0; i < row.arrList.length; i++) {
-        row.arrList[i].tmrname = this.equipmentList.find(obj => obj.id === item).tname
-        if (row.arrList[i].fttype == fttype && row.arrList[i].id == myid) {
-          objList = row.arrList[i]
-        }
-        if (row.tmrid == row.arrList[i].tmrid) {
-          if (row.tmrid !== item) {
-            this.$message({ type: 'warning', message: '混料设备不可与其它撒料设备同时选择', duration: 2000 })
-            this.getList()
-            return false
-          }
-        } else {
-          if (row.tmrid == item) {
-            this.$message({ type: 'warning', message: '混料设备不可与其它撒料设备同时选择', duration: 2000 })
-            this.getList()
-            return false
-          }
-        }
-      }
-      console.log(row)
-      this.requestParam = {}
-      this.requestParam.common = { 'returnmap': '0' }
-      this.requestParam.data = []
-      this.requestParam.data[0] = { 'name': 'updateLppddate', 'type': 'e', 'parammaps': {
-        pastureid: row.pastureid,
-        lppid: row.id,
-        barid: objList.barid,
-        barname: objList.barname,
-        fpdid: objList.fpdid,
-        fttype: objList.fttype,
-        lweight: objList.weight,
-        sort: objList.sort,
-        tmrid: objList.tmrid,
-        tmrname: objList.tmrname,
-        background: objList.background,
-        id: objList.id,
-        date: this.date
-      }}
-      ExecDataByConfig(this.requestParam).then(response => {
-        console.log('编辑保存发送参数', this.requestParam)
-        if (response.msg === 'fail') {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-        } else {
-          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-          this.getTimesList()
-        }
-      })
-    },
-    dbclickWeight(row, row2) {
-      console.log(row2, 'row2')
-      if (row2.havebutton == 1) {
-        return false
-      }
-      if (this.table.myTemp.isUpdateSave == true) {
-        return false
-      }
-      console.log(row)
-      row.isWeight = true
-      row.focusState = true
-      this.dropState = true
-      this.myStart2 = false
-      this.myMove2 = false
-      this.myEnd2 = false
-    },
-    // 编辑-重量
-    blurWeight(row, fttype, myid) {
-      var objList = {}
-      for (let i = 0; i < row.arrList.length; i++) {
-        if (row.arrList[i].fttype == fttype && row.arrList[i].id == myid) {
-          objList = row.arrList[i]
-        }
-      }
-      if (objList.weight == '') { objList.weight = 0 }
-      this.requestParam = {}
-      this.requestParam.common = { 'returnmap': '0' }
-      this.requestParam.data = []
-      this.requestParam.data[0] = { 'name': 'checkFPdLeftWdate', 'type': 'v', 'parammaps': {
-        pastureid: objList.pastureid,
-        fpdid: objList.fpdid,
-        fttype: objList.fttype,
-        lweight: String(parseFloat(objList.weight) - parseFloat(objList.lweight)),
-        date: this.date
-      }}
-      this.requestParam.data[1] = { 'name': 'updateLppddate', 'type': 'e', 'parammaps': {
-        pastureid: row.pastureid,
-        lppid: row.id,
-        barid: objList.barid,
-        barname: objList.barname,
-        fpdid: objList.fpdid,
-        fttype: objList.fttype,
-        lweight: objList.weight,
-        sort: objList.sort,
-        tmrid: objList.tmrid,
-        tmrname: objList.tmrname,
-        background: objList.background,
-        id: objList.id,
-        date: this.date
-      }}
-      this.requestParam.data[2] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
-        pastureid: objList.pastureid,
-        id: objList.fpdid,
-        fttype: objList.fttype,
-        lweight: String(parseFloat(objList.weight) - parseFloat(objList.lweight)),
-        date: this.date
-      }}
-
-      ExecDataByConfig(this.requestParam).then(response => {
-        console.log('编辑保存发送参数', this.requestParam)
-        if (response.msg === 'fail') {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-          this.getList()
-          this.getTimesList()
-        } else {
-          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-          this.getTimesList()
-        }
-      })
-    },
-    handleTakeEffectChange() {
-      console.log('点击了生效')
-    },
-    handleIssplitChange() {
-      console.log('是否提前小料拆分')
-    },
-
-    // 撒料位删除
-    handleFLDelete(ele, row) {
-      if (row.havebutton == 1) {
-        return false
-      }
-      if (this.table.myTemp.isUpdateSave == true) {
-        return false
-      }
-      console.log(ele, row, '点击了撒料删除')
-      this.selectList = []
-      this.requestParam = {}
-      this.requestParam.common = { 'returnmap': '0' }
-      this.requestParam.data = []
-      this.requestParam.data[0] = { 'name': 'deleteLppddate', 'type': 'e', 'parammaps': {
-        pastureid: ele.pastureid,
-        id: ele.id,
-        date: this.date
-      }}
-      this.requestParam.data[1] = { 'name': 'updateFpdetailUsedate', 'type': 'e', 'parammaps': {
-        pastureid: ele.pastureid,
-        id: ele.fpdid,
-        fttype: ele.fttype,
-        lweight: '-' + parseFloat(ele.weight),
-        date: this.date
-      }}
-      ExecDataByConfig(this.requestParam).then(response => {
-        console.log('删除保存发送参数', this.requestParam)
-        if (response.msg === 'fail') {
-          this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
-        } else {
-          this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
-          this.getList()
-          this.getTimesList()
-        }
-      })
-    },
-
-    handleSelect(val) {
-      console.log('勾选数据', val)
-      this.selectList = val
-    },
-    // 减少车次
-    handleReduceTrains() {
-      if (this.selectList.length == 0) {
-        this.$message({ type: 'error', message: '请选择车次', duration: 2000 })
-        return false
-      } else {
-        // 减少对应车次
-        for (let i = 0; i < this.selectList.length; i++) {
-          if (this.selectList[i].arrList.length > 0) {
-            this.$message({ type: 'error', message: '本车次已添加栏舍不可删除', duration: 2000 })
-            return false
-          }
+          date: this.date
+        }
+      }
+      this.requestParam.data[1] = {
+        'name': 'insertLppddate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: evt.pastureid,
+          lppid: evt.id,
+          barid: item.barid,
+          barname: item.barname,
+          fpdid: item.id,
+          fttype: item.fttype,
+          lweight: item.weight,
+          sort: evt.sort,
+          tmrid: evt.tmrid,
+          tmrname: evt.tmrname,
+          background: item.background,
+          ccountradio: item.ccountradio,
+          cowcount: item.cowcount,
+          date: this.date
+        }
+      }
+      this.requestParam.data[2] = {
+        'name': 'updateFpdetailUsedate',
+        'type': 'e',
+        'parammaps': {
+          pastureid: item.pastureid,
+          id: item.id,
+          fttype: item.fttype,
+          lweight: item.weight,
+          date: this.date
+        }
+      }
+      const url = 'authdata/ExecDataByConfig'
+      const data = this.requestParam
+      postJson(url, data).then(response => {
+        if (response.msg === 'fail') {
+          this.$notify({
+            title: '保存失败',
+            message: response.data,
+            type: 'warning',
+            duration: 2000
+          })
+        } else {
+          this.$notify({
+            title: '',
+            message: '保存成功',
+            type: 'success',
+            duration: 2000
+          })
+        }
+        this.getCreateList1()
+      })
+    },
+    handleUpdate(row) {
+      this.getDownList()
+      this.dialogFull = false
+      this.create.dialogStatus = 'update'
+      this.create.dialogFormVisible = true
+      row.tmrid2 = row.tmrid
+      this.create.temp = Object.assign({}, row)
+      console.log('this.create.temp', this.create.temp)
+      this.create.checkBarList = []
+      this.getCreateList1()
+    },
+    updateData() {
+      this.$refs['temp'].validate(valid => {
+        if (valid) {
+          this.isokDisable = true
+          setTimeout(() => {
+            this.isokDisable = false
+          }, 1000)
+          const url = 'authdata/PostDataByName'
+          const data = {}
+          data.name = 'updateLppdate'
+          this.create.temp.pastureid = Cookies.get('pastureid')
+          this.create.temp.times = parseInt(this.create.temp.times)
+          this.create.temp.sumcowcount = 0
+          this.create.temp.date = this.date
+          data.parammaps = this.create.temp
+          postJson(url, data).then(response => {
+            console.log('新增保存发送参数', this.requestParam)
+            if (response.msg !== 'fail') {
+              this.$notify({
+                title: '成功',
+                message: '保存成功',
+                type: 'success',
+                duration: 2000
+              })
+              this.isDispaly = false
+              this.dialogFull = false
+              this.create.dialogFormVisible = false
+              this.getList()
+            } else {
+              this.$notify({
+                title: '保存失败',
+                message: response.data,
+                type: 'warning',
+                duration: 2000
+              })
+            }
+          })
+        }
+      })
+    },
+    close() {
+      if (this.create.dialogStatus == 'create') {
+        console.log('新增关闭')
+        this.isokDisable = true
+        setTimeout(() => {
+          this.isokDisable = false
+        }, 1000)
+        const url = 'authdata/lpplandtl/restore/day'
+        const data = {}
+        data.old = []
+        for (let i = 0; i < this.create.list2.length; i++) {
+          this.$set(this.create.list2[i], 'date', this.date)
+        }
+        data.new = this.create.list2
+        postJson(url, data).then(response => {
+          console.log('新增保存发送参数', this.requestParam)
+          if (response.msg !== 'fail') {
+            // this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+            this.isDispaly = false
+            this.dialogFull = false
+            this.create.dialogFormVisible = false
+            this.getList()
+          } else {
+            // this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          }
+        })
+      } else {
+        console.log('编辑关闭')
+        this.isokDisable = true
+        setTimeout(() => {
+          this.isokDisable = false
+        }, 1000)
+        const url = 'authdata/lpplandtl/restore/day'
+        const data = {}
+        for (let i = 0; i < this.create.temp.arrList.length; i++) {
+          this.$set(this.create.temp.arrList[i], 'date', this.date)
+        }
+        for (let i = 0; i < this.create.list2.length; i++) {
+          this.$set(this.create.list2[i], 'date', this.date)
         }
-        MessageBox.confirm('是否确认删除此信息?', {
-          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-        }).then(() => {
+        data.old = this.create.temp.arrList
+        data.new = this.create.list2
+        postJson(url, data).then(response => {
+          console.log('新增保存发送参数', this.requestParam)
+          if (response.msg !== 'fail') {
+            this.$notify({
+              title: '成功',
+              message: '保存成功',
+              type: 'success',
+              duration: 2000
+            })
+            this.isDispaly = false
+            this.dialogFull = false
+            this.create.dialogFormVisible = false
+            this.getList()
+          } else {
+            this.$notify({
+              title: '保存失败',
+              message: response.data,
+              type: 'warning',
+              duration: 2000
+            })
+          }
+        })
+      }
+    },
+    // 减少车次
+    handleReduceTrains() {
+      if (this.selectList.length == 0) {
+        this.$message({
+          type: 'error',
+          message: '请选择车次',
+          duration: 2000
+        })
+        return false
+      } else {
+        // 减少对应车次
+        for (let i = 0; i < this.selectList.length; i++) {
+          if (this.selectList[i].arrList.length > 0) {
+            this.$message({
+              type: 'error',
+              message: '本车次已添加栏舍不可删除',
+              duration: 2000
+            })
+            return false
+          }
+        }
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
           console.log(this.selectList)
-          this.requestParam = {}
-          this.requestParam.common = { 'returnmap': '0' }
-          this.requestParam.data = []
-          this.requestParam.data[0] = { 'name': 'insertSpotListdate', 'resultmaps': { 'list': this.selectList }}
-          this.requestParam.data[0].children = []
-          this.requestParam.data[0].children[0] = { 'name': 'deleteLppdate', 'type': 'e', 'parammaps': {
-            id: '@insertSpotList.id',
-            pastureid: '@insertSpotList.pastureid',
-            date: this.date
-          }}
-          ExecDataByConfig(this.requestParam).then(response => {
-            console.log('删除保存发送参数', this.requestParam)
-            if (response.msg === 'fail') {
-              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
-            } else {
-              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
-              this.getList()
-            }
-          })
-        })
-      }
-    },
-
-    // 行内删除
-    handleRowDelete(row) {
-      console.log(row, '点击了行删除')
-      if (row.arrList.length == 0) {
-        MessageBox.confirm('是否确认删除此信息?', {
-          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-        }).then(() => {
-          this.selectList = []
-          this.requestParam = {}
-          this.requestParam.name = 'deleteLppdate'
-          this.requestParam.parammaps = {}
-          this.requestParam.parammaps.pastureid = row.pastureid
-          this.requestParam.parammaps.id = row.id
-          this.requestParam.parammaps.date = this.date
-          PostDataByName(this.requestParam).then(response => {
-            if (response.msg === 'fail') {
-              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
-            } else {
-              this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
-              this.getList()
-            }
-          })
-        }).catch(() => {
-          this.$message({ type: 'info', message: '已取消删除' })
-        })
-      } else {
-        this.$message({ type: 'error', message: '本车次已添加栏舍不可删除', duration: 2000 })
-        return false
-      }
-    },
-    handleLeftButton() { // 向左
-      this.isLeftButton = false
-      this.isRightButton = true
-      this.$refs.listR.style.width = '46%'
-      this.$refs.listR.style.zIndex = 4
-      this.getSmallMenuList()
-    },
-    handleRightButton() { // 向右
-      this.isLeftButton = true
-      this.isRightButton = false
-      this.$refs.list.style.zIndex = 1
-      this.$refs.listR.style.width = '50px'
-      this.$refs.listR.style.zIndex = 1
-      this.$nextTick(() => {
-        this.$refs.listRight.style.zIndex = 1
-        this.$refs.listRight2.style.zIndex = 1
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-  /deep/ :focus {
-    outline: 0;
-  }
-  :focus-visible {
-    outline: 0 !important;
-  }
-  // 下拉框
-  .filter-item2 .el-input--suffix .el-input__inner{
-    height: 30px !important;
-    font-size: 8px;
-    padding: 0 2px;
-  }
-  .filter-item2 .el-input--suffix .el-input__suffix .el-input__suffix-inner .el-input__icon{
-    line-height: 30px !important;
-  }
-  // 输入框
-  .filter-item2 .el-input__inner{
-    height: 30px !important;
-    font-size: 8px;
-    padding: 0 2px;
-  }
-</style>
-
-<style lang="scss">
- .menuList{
-    height: 190px;background: red;border-bottom: 2px solid #d8dce5; box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
-    .menuList-t{
-      height: 60px;background: #fff;display: flex;justify:center;align-items:center;display:-webkit-flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;
-      .menuList-t-l{}
-      .menuList-t-r{
-        display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;position: relative;
-        .menuList-t-r-l{
-          margin-right:10px;cursor:pointer;width:150px;height: 20px;line-height:20px; text-align: center; background: rgba(25, 138, 244, 0); border: 1px solid #1BBD89; border-radius: 2px;font-size:12px;color: #1BBD89;
-        }
-        .menuList-t-r-r{
-          margin-right:10px;cursor:pointer;width:150px;height: 20px;line-height:20px; text-align: center; background: rgba(25, 138, 244, 0); border: 1px solid #1BBD89; border-radius: 2px;font-size:12px;color: #1BBD89;
-        }
-        .columnHouse{
-          width:650px;background: #fff; box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.04), 0 0 6px 6px rgba(0, 0, 0, 0.04);position: absolute;right: 0;top: 25px;z-index: 5;
-          .el-table {
-            height: 250px;
-            overflow: auto;
+          for (let i = 0; i < this.selectList.length; i++) {
+            this.$set(this.selectList[i], 'date', this.date)
+          }
+          this.requestParam = {}
+          this.requestParam.common = {
+            'returnmap': '0'
+          }
+          this.requestParam.data = []
+          this.requestParam.data[0] = {
+            'name': 'insertSpotList',
+            'resultmaps': {
+              'list': this.selectList
+            }
+          }
+          this.requestParam.data[0].children = []
+          this.requestParam.data[0].children[0] = {
+            'name': 'deleteLppdate',
+            'type': 'e',
+            'parammaps': {
+              id: '@insertSpotList.id',
+              pastureid: '@insertSpotList.pastureid',
+              date: '@insertSpotList.date'
+            }
           }
-        }
-      }
-
-    }
-    .menuList-b{
-      height: 130px;background: #fff;position: relative;
-      ::-webkit-scrollbar{ width: 7px; height: 7px; background-color: #F5F5F5; }
-      ::-webkit-scrollbar-track { box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); border-radius: 10px; background-color: #F5F5F5; }
-      ::-webkit-scrollbar-thumb{ border-radius: 10px; box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); background-color: #c8c8c8; }
-      .draggableList{position: absolute;width: 100%;margin: 0 0; height: 130px; list-style: none;padding:0 0;overflow: auto;font-size: 12px;
-        .draggableTitle{float: left;width: 105px;white-space: nowrap;overflow: hidden; text-overflow: ellipsis;margin:5px 5px;border-radius: 7px;text-align: center;color:#000;height: 36px;line-height: 36px;}
-        li{
-          text-align: center;color:#fff;
-          .draggableName{display:block;width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
-        }
-      }
-    }
-  }
-  .list-group2{
-    .list-group-item2{
-      width: 220px;height: 50px;overflow: hidden; float: left;margin: 5px 5px;position: relative;
-      .arr-t{height: 50px;border-radius:5px 5px;}
-      .arr-l{
-        float: left;width: 60px;height: 50px;overflow: hidden;border-radius:5px 50% 50% 5px;
-        .arr-l-t{
-          position: relative;
-          .arr-l-t-t{
-            width: 0;height: 0; border-top: 26px solid #3479f2; border-right: 26px solid transparent;
+          const url = 'authdata/ExecDataByConfig'
+          const data = this.requestParam
+          postJson(url, data).then(response => {
+            console.log('删除保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({
+                title: '删除失败',
+                message: response.data,
+                type: 'warning',
+                duration: 2000
+              })
+            } else {
+              this.$notify({
+                title: '',
+                message: '删除成功',
+                type: 'success',
+                duration: 2000
+              })
+              this.table.getdataListParm.parammaps.refresh = 1
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+    handleChangeOrder() {
+      console.log('更改顺序')
+      this.isOrder = false
+      this.rowDrop()
+    },
+    // 行拖拽
+    rowDrop() {
+      console.log(document.querySelector('#table .el-table__body-wrapper tbody'))
+      const tbody = document.querySelector('#table .el-table__body-wrapper tbody')
+      const that = this
+      var sortable = Sortable.create(tbody, {
+        disabled: that.dropState,
+        onChoose({
+          newIndex,
+          oldIndex
+        }) {
+          console.log(that.isOrder, 'that.isOrder == false')
+          console.log(that.dropState, 'that.dropState')
+          if (that.dropState == true || that.isOrder == true) {
+            sortable.destroy()
+          }
+        },
+        onEnd({
+          newIndex,
+          oldIndex
+        }) {
+          const currRow = that.table.list.splice(oldIndex, 1)[0]
+          that.table.list.splice(newIndex, 0, currRow)
+          console.log('索引', newIndex)
+          console.log('拖动数据', currRow)
+          console.log('上', that.table.list[newIndex - 1])
+          console.log('下', that.table.list[newIndex + 1])
+        }
+      })
+    },
+    saveChangeOrder() {
+      // 保存顺序
+      var sortArr = []
+      for (let i = 0; i < this.table.list.length; i++) {
+        var obj = {}
+        obj.sort = i + 1
+        obj.date = this.date
+        obj.id = this.table.list[i].id
+        obj.pastureid = this.table.list[i].pastureid
+        sortArr.push(obj)
+      }
+      const url = 'authdata/trains/day'
+      const data = sortArr
+      postJson(url, data).then(response => {
+        if (response.msg === 'fail') {
+          this.$notify({
+            title: '顺序切换失败',
+            message: response.data,
+            type: 'warning',
+            duration: 2000
+          })
+        } else {
+          this.$notify({
+            title: '',
+            message: '顺序切换成功',
+            type: 'success',
+            duration: 2000
+          })
+          this.table.getdataListParm.parammaps.refresh = 1
+          this.getList()
+          this.isOrder = true
+        }
+      })
+    },
+    cancelChangeOrder() {
+      console.log('取消顺序')
+      this.table.getdataListParm.parammaps.refresh = 1
+      this.getList()
+      this.isOrder = true
+    },
+    handleTakeEffect() {
+      if (this.selectList.length == 0) {
+        this.$message({
+          type: 'error',
+          message: '请选择车次信息',
+          duration: 2000
+        })
+      } else {
+        MessageBox.confirm('当前选中' + this.selectList.length + '条信息,是否生效?', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          for (let i = 0; i < this.selectList.length; i++) {
+            this.selectList[i].sel = 1
+          }
+          console.log('生效', this.selectList)
+          const data = {}
+          data.common = {
+            'returnmap': '0'
+          }
+          data.data = []
+          data.data[0] = {
+            'name': 'insertSpotList',
+            'resultmaps': {
+              'list': this.selectList
+            }
+          }
+          data.data[0].children = []
+          data.data[0].children[0] = {
+            'name': 'UpdateLpplandateSel',
+            'type': 'e',
+            'parammaps': {
+              sel: '@insertSpotList.sel',
+              id: '@insertSpotList.id',
+              pastureid: '@insertSpotList.pastureid'
+            }
           }
-          .arr-l-t-b{
-            position: absolute;top: 4px;left: 1px;color: #fff;width: 10px; height: 10px;
-            .el-input--suffix{
-              opacity:0;
-              .el-input__inner{height: 10px;}
-            }
+          const url = 'authdata/ExecDataByConfig'
+          postJson(url, data).then(response => {
+            if (response.msg === 'fail') {
+              this.$notify({ title: '生效失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '生效成功', type: 'success', duration: 2000 })
+              this.table.getdataListParm.parammaps.refresh = 1
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+    handleDisable() {
+      if (this.selectList.length == 0) {
+        this.$message({
+          type: 'error',
+          message: '请选择车次信息',
+          duration: 2000
+        })
+      } else {
+        MessageBox.confirm('当前选中' + this.selectList.length + '条信息,是否禁用?', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          for (let i = 0; i < this.selectList.length; i++) {
+            this.selectList[i].sel = 0
+          }
+          console.log('禁用', this.selectList)
+          var data = {}
+          data.common = {
+            'returnmap': '0'
+          }
+          data.data = []
+          data.data[0] = {
+            'name': 'insertSpotList',
+            'resultmaps': {
+              'list': this.selectList
+            }
+          }
+          data.data[0].children = []
+          data.data[0].children[0] = {
+            'name': 'UpdateLpplandateSel',
+            'type': 'e',
+            'parammaps': {
+              sel: '@insertSpotList.sel',
+              id: '@insertSpotList.id',
+              pastureid: '@insertSpotList.pastureid'
+            }
           }
-        }
-
-        .arr-l-b{
-          width: 45px;position: absolute;top: 15px;left: 10px;color: #333;font-size: 12px;
-          .tmrname{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
-        }
-      }
-      .arr-c{position: absolute;top: 0px;left: 0;}
-      .arr-r{
-        float: right;width: 160px;height: 50px;overflow: hidden;line-height: 50px;
-        .arr-r-l{
-          float: left;width: 85px;
-          .barname{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
-        }
-        .arr-r-c{float: left;width: 10px;}
-        .arr-r-r{
-          float: left;width: 65px;
-          .weight{width: 100%;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
-        }
-      }
-    }
-  }
-</style>
-<style>
-  .draggableWeight{display:block;line-height: 18px;height: 18px; color: #000; width: 100%; margin: 0 auto;}
+          const url = 'authdata/ExecDataByConfig'
+          postJson(url, data).then(response => {
+            console.log('禁用保存发送参数', data)
+            if (response.msg === 'fail') {
+              this.$notify({
+                title: '禁用失败',
+                message: response.data,
+                type: 'warning',
+                duration: 2000
+              })
+            } else {
+              this.$notify({
+                title: '禁用成功',
+                message: '禁用成功',
+                type: 'success',
+                duration: 2000
+              })
+              this.table.getdataListParm.parammaps.refresh = 1
+              this.getList()
+            }
+          })
+        })
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .list {
+    width: 60px;
+    display: inline-block;
+    margin: 5px 5px;
+    text-align: center;
+    .tmrname {
+      width: 100%;
+      padding: 5px 5px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+    }
+  }
+  .fenceHouse {
+    height: 130px;
+    background: #fff;
+    position: relative;
+    ::-webkit-scrollbar {
+      width: 7px;
+      height: 7px;
+      background-color: #F5F5F5;
+    }
+    ::-webkit-scrollbar-track {
+      box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+      border-radius: 10px;
+      background-color: #F5F5F5;
+    }
+    ::-webkit-scrollbar-thumb {
+      border-radius: 10px;
+      box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
+      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
+      background-color: #c8c8c8;
+    }
+    .fenceHouseList {
+      position: absolute;
+      width: 100%;
+      margin: 0 0;
+      height: 130px;
+      list-style: none;
+      padding: 0 0;
+      overflow: auto;
+      font-size: 12px;
+      .fenceHouseTitle {
+        float: left;
+        width: 105px;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        margin: 5px 5px;
+        border-radius: 7px;
+        text-align: center;
+        color: #000;
+        height: 36px;
+        line-height: 36px;
+      }
+      li {
+        text-align: center;
+        color: #fff;
+        .barname {
+          display: block;
+          width: 100%;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          white-space: nowrap;
+        }
+        .barWeight {
+          display: block;
+          line-height: 18px;
+          height: 18px;
+          color: #000;
+          width: 100%;
+          margin: 0 auto;
+        }
+        .colorBlock {
+          width: 88px;
+          float: left;
+          margin: 5px 5px;
+          height: 36px;
+        }
+      }
+    }
+  }
+</style>
+<style lang="scss">
+  .spreadingMaterial {
+    height: 200px;
+    ::-webkit-scrollbar {
+      width: 7px;
+      height: 7px;
+      background-color: #F5F5F5;
+    }
+    ::-webkit-scrollbar-track {
+      box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+      border-radius: 10px;
+      background-color: #F5F5F5;
+    }
+    ::-webkit-scrollbar-thumb {
+      border-radius: 10px;
+      box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
+      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
+      background-color: #c8c8c8;
+    }
+    .spreadingMaterialList {
+      height: 100%;
+      overflow: auto;
+    }
+    .list-group-item2 {
+      width: 145px;
+      height: 50px;
+      overflow: hidden;
+      float: left;
+      margin: 5px 5px;
+      position: relative;
+      color: #fff;
+      .arr-t {
+        height: 50px;
+        border-radius: 5px 5px;
+      }
+      .arr-l {
+        float: left;
+        width: 60px;
+        height: 50px;
+        overflow: hidden;
+        border-radius: 5px 50% 50% 5px;
+        .arr-l-t {
+          position: relative;
+          .arr-l-t-t {
+            width: 0;
+            height: 0;
+            border-top: 26px solid #3479f2;
+            border-right: 26px solid transparent;
+          }
+          .arr-l-t-b {
+            position: absolute;
+            top: 4px;
+            left: 1px;
+            color: #fff;
+            width: 10px;
+            height: 10px;
+            .el-input--suffix {
+              opacity: 0;
+              .el-input__inner {
+                height: 10px;
+              }
+            }
+          }
+        }
+        .arr-l-b {
+          width: 45px;
+          position: absolute;
+          top: 15px;
+          left: 10px;
+          color: #fff !important;
+          font-size: 12px;
+          .tmrname {
+            width: 100%;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+          }
+        }
+      }
+      .arr-c {
+        position: absolute;
+        top: 0px;
+        left: 0;
+      }
+      .arr-r {
+        float: right;
+        width: 80px;
+        height: 50px;
+        overflow: hidden;
+        line-height: 50px;
+        .arr-r-l {
+          float: left;
+          width: 85px;
+          .barname {
+            width: 95%;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            font-size: 14px;
+            text-align: center;
+          }
+        }
+        .arr-r-c {
+          float: left;
+          width: 10px;
+        }
+        .arr-r-r {
+          float: left;
+          width: 65px;
+          .weight {
+            width: 100%;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            font-size: 14px;
+          }
+        }
+      }
+    }
+  }
 </style>

+ 6 - 6
src/views/formulationPlan/dhedFormula/index.vue

@@ -1448,6 +1448,12 @@ export default {
     // 补料配方
     changeFeedingFormula(item, row) {
       console.log(item, '=========')
+      if (item == '') {
+        row.bw1 = 0
+        row.bw2 = 0
+        row.bw3 = 0
+        row.bw4 = 0
+      }
       // 补料重量supplyweight
       // 配方重量ftweight
       // 系数头数ccountratio
@@ -1494,12 +1500,6 @@ export default {
         } else if (row.supplyweight !== '' && row.ftweight == '') {
           row.feedweight = formatNum(parseFloat(row.supplyweight), parseInt(Cookies.get('decimal')))
         }
-        // if (row.ccountratio !== '' && row.ftweight !== '') {
-        //   row.ftweight = parseFloat(row.Sfweight) * parseFloat(row.ccountratio)
-        // }
-        // if (row.ccountratio !== '' && row.BLweight !== '') {
-        //   row.supplyweight = parseFloat(row.BLweight) * parseFloat(row.ccountratio)
-        // }
       }
       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')))) }

File diff ditekan karena terlalu besar
+ 560 - 560
src/views/formulationPlan/formulaDistribution/index.vue


+ 667 - 0
src/views/formulationPlan/formulaDistribution/index改.vue

@@ -0,0 +1,667 @@
+<template>
+  <div class="app-container">
+    <div class="operation">
+      <el-button class="successBorder" @click="handleFormulaDistribution">配方下发</el-button>
+    </div>
+    <div class="search">
+      <el-input v-model="table.getdataListParm.parammaps.fname" placeholder="配方名称" style="width: 180px;" class="filter-item" clearable />
+      <el-select v-model="table.getdataListParm.parammaps.ccname" placeholder="牲畜类别" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in livestockList" :key="item.id" :label="item.mixname" :value="item.parentname" />
+      </el-select>
+      <el-select v-model="table.getdataListParm.parammaps.fttype" placeholder="配方类型" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in formulaTypeList" :key="item.value" :label="item.label" :value="item.label" />
+      </el-select>
+      <el-select v-model="table.getdataListParm.parammaps.useStatus" placeholder="使用状态" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in useStatusList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-select v-model="table.getdataListParm.parammaps.adjustmentResults" placeholder="调整结果" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in adjustmentResultsList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-button class="successBorder" @click="handleSearch">查询</el-button>
+      <el-button class="successBorder" @click="handleRefresh">重置</el-button>
+    </div>
+    <div class="table">
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="cellStyle"
+        class="elTable table-fixed"
+      >
+        <el-table-column label="序号" align="center" type="index" width="50px">
+          <template slot-scope="scope">
+            <span>{{ scope.$index + (table.pageNum-1) * table.pageSize + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="配方名称" min-width="100px" align="center" prop="tname" />
+        <el-table-column label="牲畜类别" min-width="100px" align="center" prop="ccname" />
+        <el-table-column label="配方类型" min-width="100px" align="center" prop="fttype" />
+        <el-table-column label="是否为当前配方" min-width="90px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.isissue == 0">否</span>
+            <span v-else>是</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="已下发牧场" min-width="100px" align="center" prop="grouppastures" />
+        <el-table-column label="下发时间" min-width="100px" align="center" prop="issueTime" />
+        <el-table-column label="使用状态" min-width="100px" align="center" prop="useStatus" />
+        <el-table-column label="调整结果" min-width="100px" align="center" prop="adjustmentResults">
+          <template slot-scope="scope">
+            <a v-if="scope.row.adjustmentResults == '已调整'" style="text-decoration:underline;">{{ scope.row.adjustmentResults }}</a>
+            <span v-else>{{ scope.row.adjustmentResults }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="最近一次调整时间" min-width="130px" align="center" prop="lastTime" />
+        <el-table-column label="备注" min-width="130px" align="center" prop="remark" />
+        <el-table-column label="操作" :show-overflow-tooltip="true" align="center" class-name="small-padding fixed-width" width="50" fixed="right">
+          <template slot-scope="{row}">
+            <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(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 :title="textMap[formulaDistribution.dialogStatus]" :visible.sync="formulaDistribution.dialogFormVisible" :close-on-click-modal="false" width="70%">
+      <div class="app-formulaDistribution">
+        <h4>请选择下发配方:</h4>
+        <div class="table">
+          <el-table
+            :key="formulaDistribution.table.tableKey"
+            v-loading="formulaDistribution.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="formulaDistribution.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            @selection-change="handleSelectionChange"
+          >
+            <el-table-column type="selection" width="55" />
+            <el-table-column label="序号" align="center" type="index" width="50px" />
+            <el-table-column label="配方名称" min-width="130px" align="center" prop="tname" />
+            <el-table-column label="牲畜类别" min-width="130px" align="center" prop="ccname" />
+            <el-table-column label="配方类型" min-width="130px" align="center" prop="fttype" />
+            <el-table-column label="备注" min-width="130px" align="center" prop="remark" />
+            <el-table-column label="是否启用" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <el-switch v-model="scope.row.enable" disabled active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.$index, scope.row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" @click="formulaDistribution.dialogFormVisible = false; ">关闭</el-button>
+        <el-button class="save" :disabled="isokDisable" @click="nextData()">下一步</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 牧场 -->
+    <el-dialog :title="textMap[formulaDistribution.pasture.dialogStatus]" :visible.sync="formulaDistribution.pasture.dialogFormVisible" :close-on-click-modal="false" width="40%">
+      <div class="app-pasture">
+        <h4>选择下发牧场:</h4>
+        <el-checkbox v-model="formulaDistribution.pasture.checkAll" :indeterminate="formulaDistribution.pasture.isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox>
+        <div style="margin: 15px 0;" />
+        <el-checkbox-group v-model="formulaDistribution.pasture.checkedList" @change="handlePastureChange">
+          <el-checkbox v-for="item in formulaDistribution.pasture.list" :key="item.id" :label="item" :value="item.id">{{ item.pasturename }}</el-checkbox>
+        </el-checkbox-group>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" @click="formulaDistribution.pasture.dialogFormVisible = false; ">关闭</el-button>
+        <el-button class="save" :disabled="isokDisable" @click="formulaDistributionData()">确认</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 查看 -->
+    <el-dialog :title="textMap[see.dialogStatus]" :visible.sync="see.dialogFormVisible" :close-on-click-modal="false" width="70%">
+      <div class="app-see">
+        <el-tabs v-model="see.activeName" @tab-click="handleSeeTabClick">
+          <el-tab-pane label="下发记录" name="first">
+            <div class="search">
+              <el-select v-model="see.tab1.table.getdataListParm.parammaps.pasturename" placeholder="牧场" class="filter-item" style="width: 120px;" clearable>
+                <el-option v-for="item in formulaDistribution.pasture.list" :key="item.id" :label="item.pasturename" :value="item.pasturename" />
+              </el-select>
+              <el-button class="successBorder" @click="handleSeeTab1Search">查询</el-button>
+            </div>
+            <div class="table">
+              <el-table
+                :key="see.tab1.table.tableKey"
+                v-loading="see.tab1.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="see.tab1.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                @row-click="handleSeeTab1RowClick"
+              >
+                <el-table-column label="序号" align="center" type="index" width="50px">
+                  <template slot-scope="scope">
+                    <span>{{ scope.$index + (see.tab1.table.pageNum-1) * see.tab1.table.pageSize + 1 }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="牧场" min-width="130px" align="center" prop="pasturename" />
+                <el-table-column label="下发时间" min-width="130px" align="center" prop="date" />
+              </el-table>
+            </div>
+            <pagination v-show="see.tab1.table.total>0" :total="see.tab1.table.total" :page.sync="see.tab1.table.getdataListParm.offset" :limit.sync="see.tab1.table.getdataListParm.pagecount" @pagination="getSeeTab1List" />
+          </el-tab-pane>
+          <el-tab-pane label="使用情况" name="second">
+            <div class="search">
+              <el-autocomplete v-model="see.tab2.table.getdataListParm.parammaps.date" value-key="date" class="inline-input filter-item" :fetch-suggestions="dateSearch" placeholder="日期" style="width:250px" @select="handleSelectDate">
+                <template slot-scope="{ item }">
+                  <span>{{ item.date }}</span>
+                </template>
+              </el-autocomplete>
+              <el-button class="successBorder" @click="handleSeeTab2Search">查询</el-button>
+            </div>
+            <div class="table">
+              <el-table
+                id="table"
+                :key="see.tab2.table.tableKey"
+                ref="table"
+                v-loading="see.tab2.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="see.tab2.table.list"
+                border
+                highlight-current-row
+                style="width: 100%;"
+                :height="height"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                row-key="id"
+                :show-header="false"
+              >
+                <el-table-column label="1" width="100px" align="center" prop="pasturename" />
+                <el-table-column label="1" width="120px" align="center" prop="tname" />
+                <el-table-column label="1" width="130px" align="center" prop="datestr" />
+                <el-table-column label="1" min-width="800px" align="center">
+                  <template slot-scope="scope">
+                    <div v-for="element in scope.row.arrList" :key="element.concatname" class="list-group-item2 item" style="width: 100px;float: left;margin: 5px 5px;padding: 0;height: 30px;">
+                      <el-tooltip placement="top">
+                        <div slot="content">{{ element.concatname }}</div>
+                        <span :style="{'color':element.color}" style="display: block;height:30px;line-height: 30px;">
+                          {{ element.concatname }}
+                        </span>
+                      </el-tooltip>
+                    </div>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose1" @click="see.dialogFormVisible = false; ">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, GetDataByNames, postJson, ExecDataByConfig } from '@/api/common'
+import Pagination from '@/components/Pagination'
+import { parseTime } from '@/utils/index.js'
+import Cookies from 'js-cookie'
+
+export default {
+  name: 'FormulaDistribution',
+  components: { Pagination },
+  data() {
+    return {
+      useStatusList: [{ id: 0, name: '未使用' }, { id: 1, name: '已使用' }],
+      adjustmentResultsList: [{ id: 0, name: '未调整' }, { id: 1, name: '已调整' }],
+      formulaTypeList: [],
+      livestockList: [],
+      requestParams: [
+        { name: 'getDictByName2', offset: 0, pagecount: 0, params: ['配方类型'] },
+        { name: 'getCowclassListEnable', offset: 0, pagecount: 0, parammaps: { 'pastureid': Cookies.get('pastureid') }}
+      ],
+      table: {
+        getdataListParm: {
+          name: 'getFTListXF',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            tname: '',
+            ccname: '',
+            fttype: '',
+            remark: '',
+            useStatus: '',
+            adjustmentResults: ''
+          }
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: true
+      },
+
+      formulaDistribution: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        table: {
+          getdataListParm: {
+            name: 'getFTListXF',
+            page: 1,
+            offset: 1,
+            pagecount: 0,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid')
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true
+        },
+        selectList: [],
+        pasture: {
+          dialogFormVisible: false,
+          dialogStatus: '',
+          getdataListParm: {
+            name: 'getgroupsPasture',
+            page: 1,
+            offset: 1,
+            pagecount: 0,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid')
+            }
+          },
+          total: 0,
+          listLoading: true,
+          // 牧场
+          checkAll: false,
+          checkedList: [],
+          list: [],
+          isIndeterminate: false
+        }
+      },
+
+      see: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        activeName: 'first',
+        temp: {},
+        tab1: {
+          table: {
+            getdataListParm: {
+              name: 'getFTListXFhis',
+              page: 1,
+              offset: 1,
+              pagecount: 10,
+              returntype: 'Map',
+              parammaps: {
+                pastureid: '',
+                ftid: '',
+                pasturename: ''
+              }
+            },
+            tableKey: 2,
+            list: [],
+            total: 0,
+            listLoading: true
+          }
+        },
+        tab2: {
+          table: {
+            getdataListParm: {
+              name: 'getFTusageList',
+              name1: 'getFTdusageList',
+              page: 1,
+              offset: 1,
+              pagecount: 0,
+              returntype: 'Map',
+              parammaps: {
+                pastureid: Cookies.get('pastureid'),
+                date: ''
+              }
+            },
+            tableKey: 3,
+            list: [],
+            total: 0,
+            listLoading: true
+          },
+          date: {
+            getdataListParm: {
+              name: 'getFTListXFhisTime',
+              page: 1,
+              offset: 1,
+              pagecount: 10,
+              returntype: 'Map',
+              parammaps: {
+                pastureid: Cookies.get('pastureid'),
+                date: ''
+              }
+            },
+            list: []
+          }
+        }
+      },
+      textMap: {
+        formulaDistribution: '配方下发',
+        see: '查看',
+        pasture: '配方下发'
+      },
+      requestParam: {},
+      isokDisable: false,
+      height: document.body.clientHeight,
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' }
+    }
+  },
+  created() {
+    this.getDownList()
+    this.getList()
+  },
+
+  methods: {
+    getDownList() {
+      GetDataByNames(this.requestParams).then(response => {
+        this.livestockList = response.data.getCowclassListEnable.list
+        this.formulaTypeList = response.data.getDictByName2.list
+        console.log(this.formulaTypeList)
+      })
+    },
+    getList() {
+      this.table.listLoading = true
+      GetDataByName(this.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.table.list = response.data.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)
+      })
+    },
+    handleSearch() {
+      this.table.getdataListParm.offset = 1
+      this.getList()
+    },
+    handleRefresh() {
+      this.table.getdataListParm.parammaps.tname = ''
+      this.table.getdataListParm.parammaps.ccname = ''
+      this.table.getdataListParm.parammaps.fttype = ''
+      this.table.getdataListParm.parammaps.remark = ''
+    },
+
+    // 配方下发
+    handleFormulaDistribution() {
+      this.formulaDistribution.dialogStatus = 'formulaDistribution'
+      this.formulaDistribution.dialogFormVisible = true
+      this.getFormulaDistributionList()
+    },
+    handleSelectionChange(item) {
+      this.formulaDistribution.selectList = item
+    },
+    getFormulaDistributionList() {
+      this.formulaDistribution.table.listLoading = true
+      GetDataByName(this.formulaDistribution.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.formulaDistribution.table.list = response.data.list
+        } else {
+          this.formulaDistribution.table.list = []
+        }
+        setTimeout(() => {
+          this.formulaDistribution.table.listLoading = false
+        }, 100)
+      })
+    },
+    nextData() {
+      if (this.formulaDistribution.selectList.length == 0) {
+        this.$message({ type: 'error', message: '请选择下发配方', duration: 2000 })
+        return false
+      } else {
+        for (let i = 0; i < this.formulaDistribution.selectList.length; i++) {
+          if (this.formulaDistribution.selectList[i].enable == 0) {
+            this.$message({ type: 'error', message: '配方未启用不可下发', duration: 2000 })
+            return false
+          }
+        }
+        this.formulaDistribution.pasture.dialogStatus = 'pasture'
+        this.formulaDistribution.pasture.dialogFormVisible = true
+        this.getPastureList()
+      }
+    },
+    getPastureList() {
+      GetDataByName(this.formulaDistribution.pasture.getdataListParm).then(response => {
+        if (response.data.list !== null) {
+          this.formulaDistribution.pasture.list = response.data.list
+        } else {
+          this.formulaDistribution.pasture.list = []
+        }
+      })
+    },
+    handleCheckAllChange(val) {
+      this.formulaDistribution.pasture.checkedList = val ? this.formulaDistribution.pasture.list : []
+      this.formulaDistribution.pasture.isIndeterminate = false
+    },
+    handlePastureChange(value) {
+      const checkedCount = value.length
+      this.formulaDistribution.pasture.checkAll = checkedCount === this.formulaDistribution.pasture.list.length
+      this.formulaDistribution.pasture.isIndeterminate = checkedCount > 0 && checkedCount < this.formulaDistribution.pasture.list.length
+    },
+    formulaDistributionData() {
+      if (this.formulaDistribution.pasture.checkedList.length == 0) {
+        this.$message({ type: 'error', message: '请选择下发牧场', duration: 2000 })
+        return false
+      } else {
+        this.isokDisable = true
+        setTimeout(() => {
+          this.isokDisable = false
+        }, 1000)
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.formulaDistribution.selectList }}
+        this.requestParam.data[0].children = []
+        this.requestParam.data[0].children[0] = { 'name': 'insertfeedtemplet_issue', 'type': 'e', 'parammaps': {
+          pastureid: Cookies.get('pastureid'),
+          ftid: '@insertSpotList.id'
+        }}
+        this.requestParam.data[0].children[1] = { 'name': 'insertftdetail_issue', 'type': 'e', 'parammaps': {
+          pastureid: Cookies.get('pastureid'),
+          ftid: '@insertSpotList.id'
+        }}
+        this.requestParam.data[1] = { 'name': 'insertSpotList2', 'resultmaps': { 'list': this.formulaDistribution.pasture.checkedList }}
+        this.requestParam.data[1].children = []
+        this.requestParam.data[1].children[0] = { 'name': 'deleteFTissue', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+        this.requestParam.data[1].children[1] = { 'name': 'insertfeedtempletISS', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+        this.requestParam.data[1].children[2] = { 'name': 'insertftdetailISS', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+        this.requestParam.data[1].children[3] = { 'name': 'insertfeedtemplet_pastureISS', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          pasturename: '@insertSpotList2.pasturename',
+          groupsid: Cookies.get('pastureid')
+        }}
+        this.requestParam.data[1].children[4] = { 'name': 'deleteFeedissue', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+
+        this.requestParam.data[1].children[5] = { 'name': 'insertFeedissue', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+        this.requestParam.data[1].children[6] = { 'name': 'insertFeednurissue', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList2.id',
+          groupsid: Cookies.get('pastureid')
+        }}
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('配方下发保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          } else {
+            this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+            this.formulaDistribution.dialogFormVisible = false
+            this.formulaDistribution.pasture.dialogFormVisible = false
+            this.getList()
+          }
+        })
+      }
+    },
+
+    // 查看
+    handleSee(row) {
+      this.see.dialogStatus = 'see'
+      this.see.dialogFormVisible = true
+      this.see.temp = Object.assign({}, row)
+      this.see.activeName = 'first'
+      this.see.tab1.table.list = []
+      this.formulaDistribution.pasture.list = []
+      this.see.tab2.date.list = []
+      this.getSeeTab1List()
+      this.getPastureList()
+      this.getSeeTab2DateList()
+    },
+    getSeeTab1List() {
+      this.see.tab1.table.listLoading = true
+      this.see.tab1.table.getdataListParm.parammaps.ftid = this.see.temp.id
+      this.see.tab1.table.getdataListParm.parammaps.pastureid = this.see.temp.pastureid
+      GetDataByName(this.see.tab1.table.getdataListParm).then(response => {
+        console.log('下发记录数据', response.data.list)
+        if (response.data.list !== null) {
+          this.see.tab1.table.list = response.data.list
+          this.see.tab1.table.pageNum = response.data.pageNum
+          this.see.tab1.table.pageSize = response.data.pageSize
+          this.see.tab1.table.total = response.data.total
+        } else {
+          this.see.tab1.table.list = []
+        }
+        setTimeout(() => {
+          this.see.tab1.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleSeeTab1Search() {
+      this.getSeeTab1List()
+    },
+    getSeeTab2List() {
+      this.see.tab2.table.listLoading = true
+      this.see.tab2.table.getdataListParm.parammaps.ftid = this.see.temp.id
+      const url = 'authdata/GetArrList'
+      const data = this.see.tab2.table.getdataListParm
+      postJson(url, data).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            if (response.data.list[i].arrList == null) {
+              this.$set(response.data.list[i], 'Disabled', false)
+              this.$set(response.data.list[i], 'arrList', [])
+            } else {
+              if (response.data.list[i].arrList.length > 0) {
+                for (let j = 0; j < response.data.list[i].arrList.length; j++) {
+                  if (response.data.list[i].arrList[j].nowweight == response.data.list[i].arrList[j].fweight) {
+                    this.$set(response.data.list[i].arrList[j], 'color', '#333')
+                  } else if (response.data.list[i].arrList[j].nowweight == -1) {
+                    console.log(response.data.list[i].arrList[j])
+                    this.$set(response.data.list[i].arrList[j], 'color', 'orange')
+                  } else if (response.data.list[i].arrList[j].nowweight !== response.data.list[i].arrList[j].fweight && parseFloat(response.data.list[i].arrList[j].nowweight) > 0) {
+                    this.$set(response.data.list[i].arrList[j], 'color', 'red')
+                  }
+                }
+              }
+            }
+          }
+          this.see.tab2.table.list = response.data.list
+          if (response.data.total) {
+            this.see.tab2.table.total = response.data.total
+          }
+        } else {
+          this.see.tab2.table.list = []
+        }
+        setTimeout(() => {
+          this.see.tab2.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleSeeTab2Search() {
+      if (this.see.tab2.table.getdataListParm.parammaps.date == '') {
+        this.see.tab2.table.getdataListParm.parammaps.date = this.see.tab2.date.list[0].date
+      }
+      this.see.tab2.table.list = []
+      this.getSeeTab2List()
+    },
+    getSeeTab2DateList() {
+      this.see.tab2.date.getdataListParm.parammaps.ftid = this.see.temp.id
+      GetDataByName(this.see.tab2.date.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.see.tab2.date.list = response.data.list
+        } else {
+          this.see.tab2.table.list = []
+        }
+      })
+    },
+
+    dateSearch(queryString, cb) {
+      this.see.tab2.date.getdataListParm.parammaps['date'] = queryString
+      GetDataByName(this.see.tab2.date.getdataListParm).then(response => {
+        console.log('模糊查询搜索data', response.data.list)
+        if (response.data.list == null) {
+          cb([])
+        } else {
+          cb(response.data.list)
+        }
+      })
+    },
+    handleSelectDate(item) {
+      this.see.tab2.table.getdataListParm.parammaps.date = item.date
+    },
+    handleSeeTabClick() {
+      if (this.see.activeName == 'first') {
+        this.getSeeTab1List()
+      } else {
+        this.see.tab2.table.getdataListParm.parammaps.date = this.see.tab2.date.list[0].date
+        this.getSeeTab2List()
+      }
+    },
+    handleSeeTab1RowClick(row) {
+      console.log(row)
+      this.see.activeName = 'second'
+      this.see.tab2.table.getdataListParm.parammaps.date = row.date
+      this.getSeeTab2List()
+    }
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .search { clear: both;margin-top:10px; }
+  .table { margin-top: 10px; }
+</style>

+ 3 - 2
src/views/formulationPlan/materialIssuancePlan/index.vue

@@ -873,6 +873,7 @@ export default {
       })
     },
     handleUpdate(row) {
+      console.log(row)
       this.getDownList()
       this.dialogFull = false
       this.create.dialogStatus = 'update'
@@ -1006,7 +1007,7 @@ export default {
         this.requestParam = {}
         this.requestParam.pastureid = Cookies.get('pastureid')
         this.requestParam.type = 0
-        const url = 'authdata/Autogeneration'
+        const url = 'authdata/autogeneration'
         const data = this.requestParam
         postJson(url, data).then(response => {
           console.log('新增保存发送参数', this.requestParam)
@@ -1027,7 +1028,7 @@ export default {
           this.requestParam = {}
           this.requestParam.pastureid = Cookies.get('pastureid')
           this.requestParam.type = 1
-          const url = 'authdata/Autogeneration'
+          const url = 'authdata/autogeneration'
           const data = this.requestParam
           postJson(url, data).then(response => {
             console.log('新增保存发送参数', this.requestParam)

File diff ditekan karena terlalu besar
+ 2904 - 2904
src/views/formulationPlan/recipeTemplate/index.vue


+ 3108 - 0
src/views/formulationPlan/recipeTemplate/index改.vue

@@ -0,0 +1,3108 @@
+<template>
+  <div ref="appContainer" class="app-container">
+    <div ref="myContainer" class="myContainer">
+      <!-- 配方模板表 -->
+      <div ref="template" class="template">
+        <div class="recipeTemplate">
+          <p>配方模板表</p>
+        </div>
+        <div class="search">
+          <el-select v-model="table.getdataListParm.parammaps.ccname" filterable placeholder="牲畜类别" class="filter-item" clearable>
+            <el-option v-for="item in livestockTypeList" :key="item.value" :label="item.label" :value="item.label" />
+          </el-select>
+          <el-select v-model="table.getdataListParm.parammaps.fttype" filterable placeholder="配方类型" class="filter-item" style="width: 120px;" clearable>
+            <el-option v-for="item in formulaTypeList" :key="item.value" :label="item.label" :value="item.label" />
+          </el-select>
+          <el-select v-model="table.getdataListParm.parammaps.source" filterable placeholder="来源" class="filter-item" style="width: 120px;" clearable>
+            <el-option v-for="item in sourceList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-select v-model="table.getdataListParm.parammaps.enable" filterable placeholder="是否启用" class="filter-item" style="width: 120px;" clearable>
+            <el-option v-for="item in enableList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <div ref="selectInput" class="filter-item selectInput">
+            <el-input v-model="table.getdataListParm.parammaps.all" type="text" placeholder="请点击选择搜索条件" class="Input" />
+            <i v-if="arrowDown" icon="el-icon-arrow-down" class="el-icon-arrow-down" />
+            <i v-if="arrowUp" icon="el-icon-arrow-up" class="el-icon-arrow-up" />
+            <ul v-if="arrowUp" class="selectUl">
+              <li><a>配方名称</a><el-input v-model="table.getdataListParm.parammaps.tname" clearable style="width: 245px;" /></li>
+              <li><a>备注</a><el-input v-model="table.getdataListParm.parammaps.remark" clearable style="width: 245px;" /></li>
+              <li />
+              <!-- <li><a>来源</a><el-input v-model="table.getdataListParm.parammaps.source" clearable style="width: 245px;" /></li> -->
+              <li>
+                <div style="float: right;">
+                  <el-button class="downminCancel" @click="arrowUp=false;arrowDown=true;">取消</el-button>
+                  <el-button class="miniPrimary" @click="handleSearch">搜索</el-button>
+                </div>
+              </li>
+            </ul>
+          </div>
+          <el-button class="successBorder" @click="handleSearch">查询</el-button>
+          <el-button class="successBorder" @click="handleRefresh">重置</el-button>
+        </div>
+        <div class="operation">
+          <el-button v-if="isRoleEdit" class="success" icon="el-icon-plus" @click="handleCreate">新增</el-button>
+          <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" @click="handleDelete">删除</el-button>
+          <el-button v-if="isRoleEdit" class="copy" icon="el-icon-copy-document" @click="handleCopy">复制</el-button>
+          <el-upload style="float: right;margin-right: 15px;" :headers="headers" :data="uploadData" :action="uploadExcelUrl" :show-file-list="false" :before-upload="beforeImport" :on-success="handleImportSuccess">
+            <el-button v-if="isRoleEdit" class="export" icon="el-icon-download" style="float: right;">导入</el-button>
+          </el-upload>
+          <el-dropdown style="float: right;">
+            <el-button class="export" icon="el-icon-upload2">导出</el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item @click.native="handleExport(1)">导出模板</el-dropdown-item>
+              <el-dropdown-item @click.native="handleExport(2)">导出数据</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+          <el-button class="export" style="float: right;" @click="handleRecipeRecord">配方记录</el-button>
+        </div>
+        <div ref="table" class="table">
+          <el-table
+            :key="table.tableKey"
+            v-loading="table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 98%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :height="myheight"
+            @row-click="tableRowClick"
+            @selection-change="handleSelectionChange"
+          >
+            <el-table-column type="selection" align="center" width="50" />
+            <el-table-column label="序号" align="center" type="index" width="50px" />
+            <el-table-column label="配方名称" min-width="90px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.tname }}</span>
+                <el-input v-if="scope.row.Edit" v-model.trim="scope.row.tname" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:98%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="配方编码" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.tcode }}</span>
+                <!-- <el-input v-if="scope.row.Edit" v-model.trim="scope.row.tcode" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:98%;padding:10px 0;" /> -->
+                <el-input v-if="scope.row.Edit" v-model.trim="scope.row.tcode" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" disabled maxlength="32" style="width:98%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="配方颜色" min-width="70px" align="center">
+              <template slot-scope="scope">
+                <el-color-picker v-model="scope.row.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" :disabled="scope.row.NoEdit" />
+              </template>
+            </el-table-column>
+            <el-table-column label="牲畜类别" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.ccname }}</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.ccid" filterable placeholder="牲畜类别" class="filter-item" style="width:95%;padding:10px 0;" @change="changeLivestockType">
+                  <el-option v-for="item in livestockTypeList" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="配方类型" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.fttype }}</span>
+                <el-select v-if="scope.row.Edit && scope.row.isCreate == true" v-model="scope.row.fttypeid" filterable placeholder="配方类型" class="filter-item" style="width:95%;padding:10px 0;" @change="changeFormulaType">
+                  <el-option v-for="item in formulaTypeList" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+                <el-select v-if="scope.row.Edit && scope.row.isUpdateSave == true" v-model="scope.row.fttypeid" disabled filterable placeholder="配方类型" class="filter-item" style="width:95%;padding:10px 0;" @change="changeFormulaType">
+                  <el-option v-for="item in formulaTypeList" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="来源" min-width="90px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.source }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" min-width="90px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.remark }}</span>
+                <el-input v-if="scope.row.Edit" v-model="scope.row.remark" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="255" style="width:95%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="版本号" min-width="90px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.version }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="是否启用" min-width="90px" align="center">
+              <template slot-scope="scope">
+                <el-switch v-model="scope.row.enable" :disabled="scope.row.NoEdit==true" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.$index, scope.row)" />
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width" fixed="right">
+              <template slot-scope="{row}">
+                <el-button v-if="row.NoEdit && isRoleEdit && ispastureuse==0" icon="el-icon-tickets" class="miniSuccess" @click="handleRowRecipeRecord(row)" />
+                <span v-if="row.NoEdit && isRoleEdit && ispastureuse ==0" icon="el-icon-data-line" class="centerSpan">|</span>
+                <el-button v-if="row.isCreate && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData(row)" />
+                <span v-if="row.isCreate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isCreate && isRoleEdit" class="minCancel" icon="el-icon-close" @click="createCancel(row)" />
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
+                <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(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)" />
+                <span v-if="row.NoEdit && isRoleEdit && ispastureuse ==0" icon="el-icon-data-line" class="centerSpan">|</span>
+                <el-button v-if="row.NoEdit && isRoleEdit && ispastureuse==0" icon="el-icon-data-line" class="miniSuccess" @click="handleFormulationEvaluation(row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <span v-if="table.listLoading == false" style="margin-right: 30px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;">共{{ table.total }}条</span>
+      </div>
+      <!-- 配方详情表 -->
+      <div v-if="isDetail" ref="detail" class="detail">
+        <div class="recipeTemplate">
+          <p>配方详情表</p>
+        </div>
+        <div class="operation">
+          <el-button v-if="isRoleEdit" style="float: left;" icon="el-icon-plus" class="success" @click="handleCreate2">新增</el-button>
+          <el-button v-if="isRoleEdit" style="float: left;" icon="el-icon-delete" class="danger" @click="handleDelete2">删除</el-button>
+          <el-button v-if="isRoleEdit" style="float: left;" class="success" icon="el-icon-takeaway-box" @click="handleSyntheticPremix">合成预混料</el-button>
+          <el-button v-if="isOrder && isRoleEdit" icon="el-icon-sort" style="float: left;" class="success" @click="handleChangeOrder">更改顺序</el-button>
+          <div v-else style="float: left;margin-left: 10px;">
+            <el-button v-if="isRoleEdit" icon="el-icon-folder-checked" class="success" @click="saveChangeOrder">保存</el-button>
+            <el-button v-if="isRoleEdit" icon="el-icon-close" class="sortCancel" @click="cancelChangeOrder">取消</el-button>
+          </div>
+          <div ref="selectInput2" class="filter-item selectInput" style="margin: 0 10px;">
+            <el-input v-model="table2.getdataListParm.parammaps.all" type="text" name="" value="" placeholder="请点击选择搜索条件" class="Input" />
+            <i v-if="arrowDown2" icon="el-icon-arrow-down" class="el-icon-arrow-down" />
+            <i v-if="arrowUp2" icon="el-icon-arrow-up" class="el-icon-arrow-up" />
+            <ul v-if="arrowUp2" class="selectUl">
+              <li>
+                <a style="width: 130px;">饲料名称</a>
+                <el-select v-model="table2.getdataListParm.parammaps.fname" filterable placeholder="" style="width:190px;">
+                  <el-option v-for="item in feedNameList" :key="item.id" :label="item.fname" :value="item.fname" />
+                </el-select>
+              </li>
+              <li><a style="width: 130px;">饲料组名称</a><el-input v-model="table2.getdataListParm.parammaps.feedgroup" style="width: 190px;" /></li>
+              <li><a style="width: 130px;">重量</a><el-input v-model="table2.getdataListParm.parammaps.fweight" style="width: 190px;" /></li>
+              <li>
+                <a style="width: 130px;">搅拌延时</a>
+                <el-select v-model="table2.getdataListParm.parammaps.autosecondname" filterable placeholder="" style="width:190px;" clearable>
+                  <el-option v-for="item in mixingDelayList" :key="item.id" :label="item.name" :value="item.name" />
+                </el-select>
+              </li>
+              <li>
+                <a style="width: 130px;">是否锁定牛头数比例</a>
+                <el-select v-model="table2.getdataListParm.parammaps.islockcount" placeholder="" style="width:190px;" clearable>
+                  <el-option v-for="item in lockBullsList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </li>
+              <li><a style="width: 130px;">顺序</a><el-input v-model="table2.getdataListParm.parammaps.sort" style="width: 190px;" /></li>
+              <li>
+                <div style="float: right;">
+                  <el-button class="downminCancel" @click="arrowUp2=false;arrowDown2=true;">取消</el-button>
+                  <el-button class="miniPrimary" @click="handleSearch2">搜索</el-button>
+                </div>
+              </li>
+            </ul>
+          </div>
+          <el-button class="successBorder" @click="handleSearch2">查询</el-button>
+          <el-button class="successBorder" @click="handleRefresh2">重置</el-button>
+          <el-button class="hide" @click="handleCloseTable2">隐藏</el-button>
+          <el-button v-if="isEnlarge" class="hide2" @click="handleEnlarge">放大</el-button>
+          <el-button v-else class="hide2" @click="handleNarrow">缩小</el-button>
+        </div>
+        <div v-if="isEnlarge" class="table2">
+          <el-table
+            id="table2"
+            ref="table2"
+            :key="table2.tableKey"
+            v-loading="table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="table2.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 98%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable"
+            row-key="id"
+            show-summary
+            :max-height="220"
+            :summary-method="getSummaries"
+            @selection-change="handleSelectionChange2"
+            @cell-dblclick="celldblclick"
+          >
+            <el-table-column type="selection" width="50" />
+            <el-table-column label="序号" align="center" type="index" width="50px" />
+            <el-table-column label="饲料组" min-width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.groupNoEdit">{{ scope.row.feedgroup }}</span>
+                <el-input v-if="scope.row.groupEdit" v-model="scope.row.feedgroup" :disabled="scope.row.isGroupDisabled" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="饲料名称" min-width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.fname }}</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.fid" filterable placeholder="" class="filter-item" style="width:95%;padding:10px 0;" @change="(value)=> {changeFname(value, scope.row)}">
+                  <el-option v-for="item in feedNameList" :key="item.id" :label="item.fname" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="重量(KG)" prop="fweight" width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.fweight }}</span>
+                <el-input v-if="scope.row.Edit" v-model="scope.row.fweight" placeholder="重量" step="0.001" type="number" style="width:95%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="搅拌延时(min)" min-width="80px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.autosecond }}</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.autosecond" filterable placeholder="搅拌延时" class="filter-item" style="width:95%;padding:10px 0;">
+                  <el-option v-for="item in mixingDelayList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column v-if="lockCount.isLockCount" label="是否锁定牛头数比例" min-width="80px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit && scope.row.islockcount == '0'">否</span>
+                <span v-if="scope.row.NoEdit && scope.row.islockcount == '1'">是</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.islockcount" placeholder="" class="filter-item" style="width:95%;padding:10px 0;">
+                  <el-option v-for="item in lockBullsList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="顺序" min-width="70px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.sort }}</span>
+                <el-input v-if="scope.row.Edit" v-model="scope.row.sort" step="0.01" type="number" style="width:95%;padding:10px 0;" min-number="0" @blur="blurSort(scope.row)" />
+              </template>
+            </el-table-column>
+
+            <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">
+              <template slot-scope="{row}">
+                <el-button v-if="row.isCreate && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData2(row)" />
+                <span v-if="row.isCreate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isCreate && isRoleEdit" class="minCancel" icon="el-icon-close" @click="createCancel2(row)" />
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate2(row)" />
+                <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete2(row)" />
+                <el-button v-if="row.isUpdateSave && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="updateData2(row)" />
+                <span v-if="row.isUpdateSave && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isUpdateSave && isRoleEdit" class="minCancel" icon="el-icon-close" @click="updateCancel2(row)" />
+                <span v-if="parseInt(row.preftid)>0 && row.isUpdateSave==false && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="parseInt(row.preftid)>0 && row.isUpdateSave==false && isRoleEdit" icon="el-icon-connection" class="miniSuccess" @click="handleSplitPremix(row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div v-else class="table2">
+          <el-table
+            id="table2"
+            ref="mytable2"
+            :key="table2.tableKey"
+            v-loading="table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="table2.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 98%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable"
+            row-key="id"
+            show-summary
+            :max-height="enlargeHeight"
+            :summary-method="getSummaries"
+            @selection-change="handleSelectionChange2"
+            @cell-dblclick="celldblclick"
+          >
+            <el-table-column type="selection" width="50" />
+            <el-table-column label="序号" align="center" type="index" width="50px" />
+            <el-table-column label="饲料组" min-width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.groupNoEdit">{{ scope.row.feedgroup }}</span>
+                <el-input v-if="scope.row.groupEdit" v-model="scope.row.feedgroup" :disabled="scope.row.isGroupDisabled" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="饲料名称" min-width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.fname }}</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.fid" filterable placeholder="" class="filter-item" style="width:95%;padding:10px 0;" @change="(value)=> {changeFname(value, scope.row)}">
+                  <el-option v-for="item in feedNameList" :key="item.id" :label="item.fname" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="重量(KG)" prop="fweight" width="120px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.fweight }}</span>
+                <el-input v-if="scope.row.Edit" v-model="scope.row.fweight" placeholder="重量" step="0.01" type="number" style="width:95%;padding:10px 0;" />
+              </template>
+            </el-table-column>
+            <el-table-column label="搅拌延时(min)" min-width="80px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.autosecond }}</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.autosecond" filterable placeholder="搅拌延时" class="filter-item" style="width:95%;padding:10px 0;">
+                  <el-option v-for="item in mixingDelayList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column v-if="lockCount.isLockCount" label="是否锁定牛头数比例" min-width="80px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit && scope.row.islockcount == '0'">否</span>
+                <span v-if="scope.row.NoEdit && scope.row.islockcount == '1'">是</span>
+                <el-select v-if="scope.row.Edit" v-model="scope.row.islockcount" placeholder="" class="filter-item" style="width:95%;padding:10px 0;">
+                  <el-option v-for="item in lockBullsList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="顺序" min-width="70px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.NoEdit">{{ scope.row.sort }}</span>
+                <el-input v-if="scope.row.Edit" v-model="scope.row.sort" step="0.01" type="number" style="width:95%;padding:10px 0;" min-number="0" @blur="blurSort(scope.row)" />
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">
+              <template slot-scope="{row}">
+                <el-button v-if="row.isCreate && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData2(row)" />
+                <span v-if="row.isCreate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isCreate && isRoleEdit" class="minCancel" icon="el-icon-close" @click="createCancel2(row)" />
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate2(row)" />
+                <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isUpdate && isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete2(row)" />
+                <el-button v-if="row.isUpdateSave && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="updateData2(row)" />
+                <span v-if="row.isUpdateSave && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="row.isUpdateSave && isRoleEdit" class="minCancel" icon="el-icon-close" @click="updateCancel2(row)" />
+                <span v-if="parseInt(row.preftid)>0 && row.isUpdateSave==false && isRoleEdit" class="centerSpan">|</span>
+                <el-button v-if="parseInt(row.preftid)>0 && row.isUpdateSave==false && isRoleEdit" icon="el-icon-connection" class="miniSuccess" @click="handleSplitPremix(row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <!-- 配方模板表 -->
+    <el-dialog :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="template.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[template.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="dialogMinHeight" style="overflow-y: auto;margin-bottom: 0px;overflow-x: hidden;">
+        <div ref="templateDialog" class="templateDialog">
+          <div class="recipeTemplate">
+            <p>配方模板表</p>
+          </div>
+          <div class="operation">
+            <el-date-picker v-model="template.table.getdataListParm.parammaps.date" type="date" placeholder="请选择历史记录时间" :clearable="false" style="width: 180px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeDate" />
+            <!-- <el-button class="successBorder" @click="handleApplication">应用</el-button> -->
+          </div>
+
+          <div class="search">
+            <el-select v-model="template.table.getdataListParm.parammaps.ccname" placeholder="牲畜类别" class="filter-item" clearable>
+              <el-option v-for="item in livestockTypeList" :key="item.value" :label="item.label" :value="item.label" />
+            </el-select>
+            <el-select v-model="template.table.getdataListParm.parammaps.fttype" placeholder="配方类型" class="filter-item" style="width: 120px;" clearable>
+              <el-option v-for="item in formulaTypeList" :key="item.value" :label="item.label" :value="item.label" />
+            </el-select>
+            <el-select v-model="template.table.getdataListParm.parammaps.enable" placeholder="是否启用" class="filter-item" style="width: 120px;" clearable>
+              <el-option v-for="item in enableList" :key="item.id" :label="item.name" :value="item.id" />
+            </el-select>
+            <div ref="selectInput" class="filter-item selectInput">
+              <el-input type="text" name="" value="" placeholder="请点击选择搜索条件" class="Input" />
+              <i v-if="arrowDown" icon="el-icon-arrow-down" class="el-icon-arrow-down" />
+              <i v-if="arrowUp" icon="el-icon-arrow-up" class="el-icon-arrow-up" />
+              <ul v-if="arrowUp" class="selectUl">
+                <li><a>配方名称</a><el-input v-model="template.table.getdataListParm.parammaps.tname" style="width: 245px;" /></li>
+                <li><a>备注</a><el-input v-model="template.table.getdataListParm.parammaps.remark" style="width: 245px;" /></li>
+                <li><a>来源</a><el-input v-model="template.table.getdataListParm.parammaps.source" style="width: 245px;" /></li>
+                <li>
+                  <div style="float: right;">
+                    <el-button class="downminCancel" @click="arrowUp=false;arrowDown=true;">取消</el-button>
+                    <el-button class="miniPrimary" @click="handleDialogSearch">搜索</el-button>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <el-button class="successBorder" @click="handleDialogSearch">查询</el-button>
+            <el-button class="successBorder" @click="handleDialogRefresh">重置</el-button>
+          </div>
+
+          <div class="table">
+            <el-table
+              :key="template.table.tableKey"
+              v-loading="template.table.listLoading"
+              element-loading-text="给我一点时间"
+              :data="template.table.list"
+              border
+              fit
+              highlight-current-row
+              style="width: 98%;"
+              :row-style="rowStyle"
+              :height="myheight2"
+              :cell-style="cellStyle"
+              class="elTable table-fixed"
+              @row-click="tableRowClickDialog"
+            >
+              <el-table-column v-if="template.dialogStatus == 'RecipeRecord'" label="序号" align="center" type="index" width="50px" />
+              <el-table-column v-else label="序号" align="center" type="index" width="50px">
+                <template slot-scope="scope">
+                  <span>{{ scope.$index + (template.table.pageNum-1) * template.table.pageSize + 1 }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="配方名称" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.tname }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="配方编码" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.tcode }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="配方颜色" min-width="110px" align="center">
+                <template slot-scope="scope">
+                  <el-color-picker v-model="scope.row.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" />
+                </template>
+              </el-table-column>
+              <el-table-column label="牲畜类别" min-width="110px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.ccname }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="配方类型" min-width="110px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.fttype }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="来源" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.source }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="备注" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.remark }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="版本号" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.version }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="版本时间" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.versiontime }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="是否启用" min-width="90px" align="center">
+                <template slot-scope="scope">
+                  <el-switch v-model="scope.row.enable" disabled active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" />
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+
+        <div v-if="isDetailDialog" id="detailDialog2" ref="detailDialog2" class="detailDialog" style="margin-top: 30px;height: 200px;overflow-y: auto;overflow-x: hidden;">
+          <div class="recipeTemplate">
+            <p>配方详情表</p>
+          </div>
+          <div class="operation">
+            <div ref="selectInput2" class="filter-item selectInput">
+              <el-input type="text" name="" value="" placeholder="请点击选择搜索条件" class="Input" />
+              <i v-if="arrowDown2" icon="el-icon-arrow-down" class="el-icon-arrow-down" />
+              <i v-if="arrowUp2" icon="el-icon-arrow-up" class="el-icon-arrow-up" />
+              <ul v-if="arrowUp2" class="selectUl">
+                <li>
+                  <a style="width: 130px;">饲料名称</a>
+                  <el-select v-model="template.table2.getdataListParm.parammaps.fname" filterable placeholder="" style="width:245px;">
+                    <el-option v-for="item in feedNameList" :key="item.id" :label="item.fname" :value="item.fname" />
+                  </el-select>
+                </li>
+                <li><a style="width: 130px;">饲料组名称</a><el-input v-model="template.table2.getdataListParm.parammaps.feedgroup" style="width: 245px;" /></li>
+                <li><a style="width: 130px;">重量</a><el-input v-model="template.table2.getdataListParm.parammaps.fweight" style="width: 245px;" /></li>
+                <li>
+                  <a style="width: 130px;">搅拌延时</a>
+                  <el-select v-model="template.table2.getdataListParm.parammaps.autosecondname" filterable placeholder="" style="width:245px;">
+                    <el-option v-for="item in mixingDelayList" :key="item.id" :label="item.name" :value="item.name" />
+                  </el-select>
+                </li>
+                <li>
+                  <a style="width: 130px;">是否锁定牛头数比例</a>
+                  <el-select v-model="template.table2.getdataListParm.parammaps.islockcount" placeholder="" style="width:245px;">
+                    <el-option v-for="item in lockBullsList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </li>
+                <li><a style="width: 130px;">顺序</a><el-input v-model="template.table2.getdataListParm.parammaps.sort" style="width: 245px;" /></li>
+                <li>
+                  <div style="float: right;">
+                    <el-button class="downminCancel" @click="arrowUp2=false;arrowDown2=true;">取消</el-button>
+                    <el-button class="miniPrimary" @click="handleDialogSearch2">搜索</el-button>
+                  </div>
+                </li>
+              </ul>
+            </div>
+            <el-button class="successBorder" @click="handleDialogSearch2">查询</el-button>
+            <el-button class="successBorder" @click="handleDialogRefresh2">重置</el-button>
+            <el-button class="hide" @click="handleDialogCloseTable2">隐藏</el-button>
+          </div>
+
+          <div class="table2">
+            <el-table
+              id="templateTable2"
+              :key="template.table2.tableKey"
+              v-loading="template.table2.listLoading"
+              element-loading-text="给我一点时间"
+              :data="template.table2.list"
+              border
+              fit
+              highlight-current-row
+              style="width: 98%;"
+              :summary-method="getTemplateTable2Summaries"
+              show-summary
+              :row-style="rowStyle"
+              :cell-style="cellStyle"
+              class="elTable table-fixed"
+              row-key="id"
+            >
+              <el-table-column label="饲料组" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.feedgroup }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="饲料名称" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.fname }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="重量(KG)" prop="fweight" min-width="200px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.fweight }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="搅拌延时(min)" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.autosecondname }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="是否锁定牛头数比例" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span v-if="scope.row.islockcount == '0'">否</span>
+                  <span v-if="scope.row.islockcount == '1'">是</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="顺序" min-width="130px" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.sort }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button class="cancelClose cancelClose1" @click="template.dialogFormVisible = false; ">关闭</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 合成预混料 -->
+    <el-dialog :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="detail.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[detail.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="detailDialog">
+        <h2>饲料</h2>
+        <div class="table1">
+          <el-table
+            :key="detail.tableKey"
+            v-loading="detail.listLoading"
+            element-loading-text="给我一点时间"
+            :data="detail.list"
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            show-summary
+          >
+            <el-table-column label="序号" align="center" type="index" width="50px" />
+            <el-table-column label="饲料名称" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.fname }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="fweight" label="重量(KG)" />
+            <el-table-column label="搅拌延时(min)" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.autosecond }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column v-if="lockCount.isLockCount" label="是否锁定牛头数比例" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.islockcount == '0'">否</span>
+                <span v-if="scope.row.islockcount == '1'">是</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="顺序" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.sort }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <h2>合成预混料</h2>
+        <div class="table2" style="margin-bottom: 50px;">
+          <el-table
+            :key="detail.tableKey2"
+            v-loading="detail.listLoading2"
+            element-loading-text="给我一点时间"
+            :data="detail.list2"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="配方名称" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.tname" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" :disabled="detail.disabled" />
+              </template>
+            </el-table-column>
+            <el-table-column label="配方颜色" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <el-color-picker v-model="scope.row.tcolor" size="mini" :predefine="predefineColors" style="vertical-align: middle;" :disabled="detail.disabled" />
+              </template>
+            </el-table-column>
+            <el-table-column label="牲畜类别" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <el-select v-model="scope.row.ccid" placeholder="选择牲畜父类" class="filter-item" style="width:95%;padding:10px 0;" :disabled="detail.disabled" @change="changeLivestockType2">
+                  <el-option v-for="item in livestockTypeList" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="配方类型" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.fttype }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="来源" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.source }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.remark" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" :disabled="detail.disabled" />
+              </template>
+            </el-table-column>
+            <el-table-column label="是否启用" min-width="130px" align="center">
+              <template slot-scope="scope">
+                <el-switch v-model="scope.row.enable" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" :disabled="detail.disabled" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div slot="footer" class="dialog-footer">
+          <el-button class="cancelClose" @click="detail.dialogFormVisible = false; ">关闭</el-button>
+          <el-button class="save" :disabled="isokDisable" @click="syntheticPremixData()">确认</el-button>
+        </div>
+      </div>
+    </el-dialog>
+    <!-- 历史记录 -->
+    <el-dialog :title="textMap[historyRecord.dialogStatus]" :destroy-on-close="true" :visible.sync="historyRecord.dialogFormVisible" :close-on-click-modal="false" width="90%">
+      <div class="historyRecord">
+        <keep-alive>
+          <component :is="historyRecord.myComponent" ref="historyRecord" />
+        </keep-alive>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose1" @click="historyRecord.dialogFormVisible = false; ">关闭</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 行内配方记录 -->
+    <el-dialog :title="textMap[rowRecipeRecord.dialogStatus]" :destroy-on-close="true" :visible.sync="rowRecipeRecord.dialogFormVisible" :close-on-click-modal="false" width="90%">
+      <div class="rowRecipeRecord">
+        <div class="search">
+          <el-date-picker ref="inputDatetime" v-model="rowRecipeRecord.getdataListParm.parammaps.inputDatetime" class="filter-item inputDatetime" type="daterange" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
+          <el-button class="successBorder" @click="handleRowRecipeRecordSearch">查询</el-button>
+        </div>
+        <div class="table">
+          <el-table
+            :key="rowRecipeRecord.tableKey"
+            v-loading="rowRecipeRecord.listLoading"
+            element-loading-text="给我一点时间"
+            :data="rowRecipeRecord.list"
+            border
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="序号" align="center" type="index" width="50px">
+              <template slot-scope="scope">
+                <span>{{ scope.$index + (rowRecipeRecord.pageNum-1) * rowRecipeRecord.pageSize + 1 }}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column label="序号" width="60px" align="center" prop="sort" /> -->
+            <el-table-column label="修改时间" width="100px" align="center" prop="datetime1" />
+            <el-table-column label="饲料名称(单位:kg)" min-width="800px" align="center">
+              <template slot-scope="scope">
+                <div v-for="element in scope.row.arrList" :key="element.name" class="list-group-item2 item" style="width:150px;float: left;margin: 5px 5px;padding: 0;height: 30px;">
+                  <el-tooltip v-if="element.change== 'red'" placement="top">
+                    <div slot="content">{{ element.name }}( {{ element.weight }} / {{ element.Eweight }} )</div>
+                    <span :style="{'color':element.change}" style="display: block;height:30px;line-height: 30px;">
+                      {{ element.name }}( {{ element.weight }} / {{ element.Eweight }} )
+                    </span>
+                  </el-tooltip>
+                  <el-tooltip v-else placement="top">
+                    <div slot="content">{{ element.name }}( {{ element.weight }} )</div>
+                    <span :style="{'color':element.change}" style="display: block;height:30px;line-height: 30px;">
+                      {{ element.name }}( {{ element.weight }})
+                    </span>
+                  </el-tooltip>
+                </div>
+              </template>
+            </el-table-column>
+          </el-table>
+          <pagination v-show="rowRecipeRecord.total>=0" :total="rowRecipeRecord.total" :page.sync="rowRecipeRecord.getdataListParm.offset" :limit.sync="rowRecipeRecord.getdataListParm.pagecount" @pagination="getRowRecipeRecordList()" />
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose1" @click="rowRecipeRecord.dialogFormVisible = false; ">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, GetDataByNames, PostDataByName, failproccess, checkButtons, postJson, ExecDataByConfig, formatNum } from '@/api/common'
+import Sortable from 'sortablejs'
+import { MessageBox } from 'element-ui'
+import Cookies from 'js-cookie'
+import { json2excel } from '@/utils/index.js'
+import axios from 'axios'
+import { getToken } from '@/utils/auth'
+import { parseTime } from '@/utils/index.js'
+import Pagination from '@/components/Pagination'
+export default {
+  name: 'RecipeTemplate',
+  components: { Pagination },
+  data() {
+    return {
+      dialogFull: false,
+      predefineColors: [
+        '#E57373', '#F06292', '#BA68C8', '#9575CD', '#7986CB', '#64B5F6', '#4FC3F7', '#4DD0E1', '#4DB6AC', '#81C784', '#AED581', '#DCE775', '#FFF176', '#FFD54F', '#FFB74D', '#FF8A65', '#A1887F', '#E0E0E0', '#90A4AE'
+      ],
+      isRoleEdit: [],
+      myheight: '',
+      requestParams: [
+        { name: 'getDictByName', offset: 0, pagecount: 0, params: ['牲畜父类'] },
+        { name: 'getDictByName2', offset: 0, pagecount: 0, params: ['配方类型'] },
+        { name: 'getFeedAndPre', offset: 0, pagecount: 0, parammaps: { pastureid: Cookies.get('pastureid') }}
+      ],
+      enableList: [{ id: '0', name: '否' }, { id: '1', name: '是' }], // 是否启用
+      lockBullsList: [{ id: '0', name: '否' }, { id: '1', name: '是' }], // 是否锁定牛头数比例
+      livestockTypeList: [], // 牲畜类别
+      formulaTypeList: [], // 配方类型
+      feedNameList: [], // 饲料名称
+      mixingDelayList: [{ id: '0', name: '0' }, { id: '1', name: '1' }, { id: '2', name: '2' }, { id: '3', name: '3' }, { id: '4', name: '4' }, { id: '5', name: '5' }, { id: '6', name: '6' }, { id: '7', name: '7' }, { id: '8', name: '8' }, { id: '9', name: '9' }, { id: '10', name: '10' }, { id: '11', name: '11' }, { id: '12', name: '12' }, { id: '13', name: '13' }, { id: '14', name: '14' }, { id: '15', name: '15' }], // 搅拌延时
+      selectHistoryTimeList: [{ id: 0, name: '2020-06-10' }, { id: 1, name: '2020-06-11' }, { id: 2, name: '2020-06-12' }, { id: 3, name: '2020-06-13' }], // 请选择历史记录时间
+      arrowDown: true,
+      arrowUp: false,
+      ispastureuse: Cookies.get('ispastureuse'),
+      table: {
+        getdataListParm: {
+          name: 'getFTList',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            tname: '',
+            ccid: '',
+            ccname: '',
+            fttypeid: '',
+            fttype: '',
+            remark: '',
+            enable: '',
+            source: ''
+          }
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      lockCount: {
+        getdataListParm: {
+          name: 'getSysoptEnable',
+          page: 1,
+          offset: 1,
+          pagecount: 30,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            inforname: 'isLockCount'
+          }
+        },
+        isLockCount: false // 是否显示是否锁定牛头数比例
+      },
+      isDetail: false,
+      arrowDown2: true,
+      arrowUp2: false,
+      table2: {
+        getDryweightParm: {
+          name: 'getFTdryweight',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: '',
+            ftid: ''
+          }
+        },
+        dryweight: '',
+        getdataListParm: {
+          name: 'getFTdetailList',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            fname: '',
+            feedgroup: '',
+            fweight: '',
+            autosecondname: '',
+            islockcount: '',
+            sort: ''
+          }
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {},
+        updateList: {}
+      },
+      isDetailDialog: false,
+      template: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        table: {
+          getdataListParm: {
+            name: 'getFTListDate',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              tname: '',
+              ccid: '',
+              ccname: '',
+              fttype: '',
+              remark: '',
+              enable: '',
+              date: '',
+              source: ''
+            }
+          },
+          tableKey: 0,
+          total: 0,
+          listLoading: true,
+          list: []
+        },
+        table2: {
+          getdataListParm: {
+            name: 'getFTdetailListDate',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              fname: '',
+              fweight: '',
+              islockcount: '',
+              sort: '',
+              feedgroup: '',
+              autosecondname: ''
+            }
+          },
+          tableKey: 0,
+          total: 0,
+          listLoading: true,
+          list: []
+        },
+        // 历史日期
+        getdataDateParm: {
+          name: 'getFTMaxDate',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        }
+      },
+
+      isOrder: true,
+      detail: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        tableKey: 0,
+        total: 0,
+        listLoading: true,
+        list: [],
+        tableKey2: 0,
+        total2: 0,
+        listLoading2: false,
+        list2: [{ tname: '', tcolor: '#ccc', ccid: '', fttype: '预混配方', fttypeid: '2', source: '自定义', remark: '', 'enable': 1 }],
+        getdataListParm: {
+          name: 'getFTDetailCompare',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {}
+        },
+        list3: [],
+        disabled: false,
+        getdataListParm2: {
+          name: 'getFTCompare',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {}
+        }
+      },
+      selectList: [],
+      selectList2: [],
+      textMap: {
+        RecipeRecord: '配方记录',
+        SyntheticPremix: '合成预混料',
+        historyRecord: '历史记录',
+        detail: '饲料详情',
+        rowRecipeRecordTxt: '配方修改记录'
+      },
+
+      requestParam: {},
+      requestParam2: {},
+      download: {
+        getdataListParm: {
+          name: 'getFTList',
+          page: 1,
+          offset: 1,
+          pagecount: 0,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            tname: '',
+            ccid: '',
+            ccname: '',
+            fttypeid: '',
+            fttype: '',
+            remark: '',
+            enable: ''
+          }
+        },
+        list: []
+      },
+      historyRecord: {
+        dialogStatus: '',
+        dialogFormVisible: false
+      },
+      isokDisable: false,
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      dropState: false,
+      myheight2: 0,
+      height: 0,
+      rowRecipeRecord: {
+        dialogStatus: '',
+        dialogFormVisible: false,
+        getdataListParm: {
+          name: 'getFitHistory1', 'name1': 'getFitHistory2', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
+          parammaps: { inputDatetime: '', pastureid: '', fitid: '' }
+        },
+        tableKey: 0, total: 0, listLoading: true, list: []
+      },
+      isEnlarge: true,
+      // enlargeHeight: document.documentElement.clientHeight - 85 - 165 + 50,
+      enlargeHeight: document.documentElement.clientHeight - 85 - 165 + 50,
+      getTcodeParm: {
+        name: 'getTcode', page: 1, offset: 1, pagecount: 10, returntype: 'Map',
+        parammaps: { pastureid: '', fttypeid: '' }
+      },
+      sourceList: [{ id: '0', name: '自定义' }, { id: '1', name: '集团下发未调整' }, { id: '2', name: '集团下发有调整' }]
+    }
+  },
+  computed: {
+    // 设置请求头
+    headers() {
+      return {
+        token: getToken()
+      }
+    },
+    uploadData() {
+      return {
+        name: 'checkfttype,checkbigcowclass,checkFeedtemplet,checkFeed,insertFTUpload,insertFTdetailUpload',
+        importParams: '配方名称,牲畜类别,配方类型,备注,饲料组,饲料名称,重量(kg),搅拌延时(min),是否锁定牛头数比例',
+        sheetname: 'Sheet1',
+        // 登录牧场
+        pastureid: Cookies.get('pastureid'),
+        // 日期参数
+        dateParams: '',
+        // 必填参数
+        requiredParams: '配方名称,牲畜类别,配方类型,饲料名称,重量(kg),搅拌延时(min),是否锁定牛头数比例',
+        // 为数值的参数
+        numParams: '重量(kg),搅拌延时(min)'
+      }
+    },
+    // 设置上传地址
+    uploadExcelUrl() {
+      return process.env.VUE_APP_BASE_API + 'authdata/ImportExcel'
+    }
+  },
+  mounted() {
+    document.addEventListener('click', (e) => {
+      if (this.$refs.selectInput !== undefined) {
+        if (!this.$refs.selectInput.contains(e.target)) {
+          this.arrowDown = true
+          this.arrowUp = false
+        } else {
+          this.arrowDown = false
+          this.arrowUp = true
+        }
+      }
+      if (this.$refs.selectInput2 !== undefined) {
+        if (!this.$refs.selectInput2.contains(e.target)) {
+          this.arrowDown2 = true
+          this.arrowUp2 = false
+        } else {
+          this.arrowDown2 = false
+          this.arrowUp2 = true
+        }
+      }
+    })
+  },
+  created() {
+    this.getList()
+    this.getButtons()
+    this.getDownList()
+    this.getIsLockCount()
+  },
+  methods: {
+    getButtons() {
+      const Edit = 'FormulationEvaluation'
+      const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
+      this.isRoleEdit = isRoleEdit
+    },
+    getSummaries(param) {
+      const { columns, data } = param
+      const sums = []
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计'
+          return
+        }
+        if (column.property !== undefined) {
+          // 加了prop属性的el-table-column 才能找到column.property
+          const values = data.map(item => Number(item[column.property]))
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr)
+              if (!isNaN(value)) {
+                return prev + curr // 多行相加
+              } else {
+                return prev
+              }
+            }, 0)
+            sums[index] = sums[index].toFixed(3) + '(干物质量:' + this.table2.dryweight + ')'
+          } else {
+            sums[index] = ''
+          }
+        }
+      })
+      // console.log(sums, 'sums[index]')
+      return sums
+    },
+    getDryWeight() {
+      GetDataByName(this.table2.getDryweightParm).then(response => {
+        console.log('干物质数据', response.data.list)
+        if (response.data.list[0].dryweight !== undefined) {
+          this.table2.dryweight = response.data.list[0].dryweight
+        } else {
+          this.table2.dryweight = ''
+        }
+      })
+    },
+    getTemplateTable2Summaries(param) {
+      const { columns, data } = param
+      const sums = []
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计'
+          return
+        }
+        const values = data.map(item => Number(item[column.property]))
+        if (!values.every(value => isNaN(value))) {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr)
+            if (!isNaN(value)) {
+              return prev + curr
+            } else {
+              return prev
+            }
+          }, 0)
+          // 后台待发
+          sums[index] += '(干物质量:' + this.template.table2.getdataListParm.parammaps.dryweight + ')'
+        } else {
+          sums[index] = ''
+        }
+      })
+      return sums
+    },
+    getDownList() {
+      GetDataByNames(this.requestParams).then(response => {
+        this.livestockTypeList = response.data.getDictByName.list
+        this.formulaTypeList = response.data.getDictByName2.list
+        this.feedNameList = response.data.getFeedAndPre.list
+      })
+    },
+    // -------------------模板-----------------------------
+    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], 'isCreate', false) // 新增操作
+            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
+            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
+          }
+          this.table.list = response.data.list
+          this.table.pageNum = response.data.pageNum
+          this.table.pageSize = response.data.pageSize
+          this.table.total = response.data.total
+        } else {
+          this.table.list = []
+          this.isDetail = false
+        }
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    getList3() {
+      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], 'isCreate', false) // 新增操作
+            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
+            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
+          }
+          this.table.list = response.data.list
+          this.table.pageNum = response.data.pageNum
+          this.table.pageSize = response.data.pageSize
+          this.table.total = response.data.total
+        } else {
+          this.table.list = []
+          this.isDetail = false
+        }
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleSearch() {
+      console.log('点击了查询')
+      this.table.getdataListParm.offset = 1
+      this.getList()
+      this.table.getdataListParm.parammaps.all = ''
+      var obj = {}
+      obj.tname = this.table.getdataListParm.parammaps.tname
+      obj.remark = this.table.getdataListParm.parammaps.remark
+      obj.source = this.table.getdataListParm.parammaps.source
+      Object.getOwnPropertyNames(obj).forEach((key) => {
+        console.log(key, obj[key])
+        if (obj[key] !== '') {
+          this.table.getdataListParm.parammaps.all += obj[key] + '/'
+        }
+      })
+      if (this.table.getdataListParm.parammaps.all.charAt(this.table.getdataListParm.parammaps.all.length - 1) == '/') {
+        this.table.getdataListParm.parammaps.all = this.table.getdataListParm.parammaps.all.slice(0, this.table.getdataListParm.parammaps.all.length - 1)
+      }
+      this.arrowDown = true
+      this.arrowUp = false
+    },
+    handleRefresh() {
+      console.log('点击了重置')
+      this.table.getdataListParm.offset = 1
+      this.table.getdataListParm.parammaps.ccid = ''
+      this.table.getdataListParm.parammaps.ccname = ''
+      this.table.getdataListParm.parammaps.fttype = ''
+      this.table.getdataListParm.parammaps.tname = ''
+      this.table.getdataListParm.parammaps.remark = ''
+      this.table.getdataListParm.parammaps.enable = ''
+      this.table.getdataListParm.parammaps.source = ''
+      this.table.getdataListParm.parammaps.all = ''
+      this.getList()
+    },
+
+    // 模板新增
+    handleCreate() {
+      // 编辑true/不可编辑false
+      // 新增操true,编辑false,编辑保存false
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit === true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'enable': 1, 'tname': '', tcode: '', 'tcolor': '#ccc', 'ccid': '', 'ccname': '', 'fttype': '', 'fttypeid': '', 'source': '自定义', 'remark': '' })
+      console.log('点击了新增this.table.list====>', this.table.list)
+      this.table.temp = this.table.list[0]
+      this.getTcodeList()
+    },
+    getTcodeList() {
+      this.getTcodeParm.parammaps.pastureid = Cookies.get('pastureid')
+      console.log(this.table.temp, 'this.table.temp')
+      GetDataByName(this.getTcodeParm).then(response => {
+        if (response.data.list !== null) {
+          this.table.temp.tcode = response.data.list[0].tcode
+        } else {
+          this.table.temp.tcode = ''
+        }
+      })
+    },
+    // 畜生类别
+    changeLivestockType(item) {
+      this.table.temp.ccname = this.livestockTypeList.find(obj => obj.value === item).label
+    },
+    // 配方类型
+    changeFormulaType(item) {
+      this.table.temp.fttype = this.formulaTypeList.find(obj => obj.value === item).label
+    },
+    createData(row) {
+      console.log('点击了新增保存', row)
+      this.table.temp.tname = row.tname
+      this.table.temp.tcode = row.tcode
+      this.table.temp.tcolor = row.tcolor
+      this.table.temp.ccid = row.ccid
+      this.table.temp.ccname = this.table.temp.ccname
+      this.table.temp.fttype = this.table.temp.fttype
+      this.table.temp.fttypeid = row.fttypeid
+      this.table.temp.source = row.source
+      this.table.temp.remark = row.remark
+      this.table.temp.enable = row.enable
+      this.table.temp.pastureid = Cookies.get('pastureid')
+      if (this.table.temp.tname == '' && this.table.temp.ccid == '' && this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '配方名称/牲畜类别/配方类型不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ccid == '' && this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '牲畜类别/配方类型不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.tname == '') {
+        this.$message({ type: 'error', message: '配方名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ccid == '') {
+        this.$message({ type: 'error', message: '牲畜类别不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '配方类型不能为空', duration: 2000 })
+        return false
+      }
+      const pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
+      // if (pattern.test(this.table.temp.tname)) {
+      //   this.$message({ type: 'error', message: '配方名称不可输入特殊字符', duration: 2000 })
+      //   return false
+      // }
+      if (pattern.test(this.table.temp.tcode)) {
+        this.$message({ type: 'error', message: '配方编码不可输入特殊字符', duration: 2000 })
+        return false
+      }
+      console.log(this.table.temp)
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam2.name = 'checkNumber'
+      this.requestParam2.parammaps = {}
+      this.requestParam2.parammaps.number = this.table.temp.tcode
+      GetDataByName(this.requestParam2).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list[0].vmsg !== '输入非法字符') {
+          this.saveCreateData()
+        } else {
+          this.$notify({ type: 'error', message: '配方编码不可输入特殊字符', duration: 2000 })
+        }
+      })
+    },
+    saveCreateData() {
+      this.requestParam.name = 'insertFT'
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+        } else {
+          const isRepeat = new RegExp('Duplicate entry :feedtemplet.tCode')
+          if (isRepeat.test(response.data)) {
+            this.$notify({ type: 'error', message: '配方编码不可重复,请重新录入', duration: 2000 })
+          } else {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          }
+        }
+      })
+    },
+    createCancel(row) {
+      console.log('点击了新增取消')
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (row.myId === this.table.list[i].myId) {
+          var listIndex = this.table.list.indexOf(this.table.list[i])
+        }
+        if (listIndex > -1) {
+          this.table.list.splice(listIndex, 1)
+          return
+        }
+      }
+    },
+
+    // 模板编辑
+    handleUpdate(row) {
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit == true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      // 编辑true,不可编辑false
+      row.Edit = true
+      row.NoEdit = false
+      // 新增false,编辑false,编辑保存true
+      row.isCreate = false
+      row.isUpdate = false
+      row.isUpdateSave = true
+      if (row.ccname !== undefined) {
+        row.ccid = String(row.ccid)
+      }
+      this.table.temp.ccname = row.ccname
+      row.fttypeid = String(row.fttypeid)
+      this.table.temp.fttype = row.fttype
+    },
+    updateData(row) {
+      console.log('点击了编辑保存', row)
+      this.table.temp.tname = row.tname
+      this.table.temp.tcode = row.tcode
+      this.table.temp.tcolor = row.tcolor
+      this.table.temp.ccid = row.ccid
+      this.table.temp.fttypeid = row.fttypeid
+      this.table.temp.source = row.source
+      this.table.temp.remark = row.remark
+      this.table.temp.enable = row.enable
+      this.table.temp.ccname = this.table.temp.ccname
+      this.table.temp.fttype = this.table.temp.fttype
+      this.table.temp.pastureid = row.pastureid
+      this.table.temp.id = row.id
+      if (this.table.temp.tname == '' && this.table.temp.ccid == '' && this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '配方名称/牲畜类别/配方类型不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ccid == '' && this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '牲畜类别/配方类型不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.tname == '') {
+        this.$message({ type: 'error', message: '配方名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.ccid == '') {
+        this.$message({ type: 'error', message: '牲畜类别不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.fttypeid == '') {
+        this.$message({ type: 'error', message: '配方类型不能为空', duration: 2000 })
+        return false
+      }
+      const pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
+      // if (pattern.test(this.table.temp.tname)) {
+      //   this.$message({ type: 'error', message: '配方名称不可输入特殊字符', duration: 2000 })
+      //   return false
+      // }
+      if (pattern.test(this.table.temp.tcode)) {
+        this.$message({ type: 'error', message: '配方编码不可输入特殊字符', duration: 2000 })
+        return false
+      }
+      console.log(this.table.temp)
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam2.name = 'checkNumber'
+      this.requestParam2.parammaps = {}
+      this.requestParam2.parammaps.number = this.table.temp.tcode
+      GetDataByName(this.requestParam2).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list[0].vmsg !== '输入非法字符') {
+          this.saveUpdateData()
+        } else {
+          this.$notify({ type: 'error', message: '配方编码不可输入特殊字符', duration: 2000 })
+        }
+      })
+    },
+    saveUpdateData() {
+      this.requestParam.name = 'updateFT'
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+        } else {
+          const isRepeat = new RegExp('Duplicate entry :feedtemplet.tCode')
+          if (isRepeat.test(response.data)) {
+            this.$notify({ type: 'error', message: '配方编码不可重复,请重新录入', duration: 2000 })
+          } else {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          }
+        }
+      })
+    },
+    updateCancel(row) {
+      console.log('点击了编辑取消')
+      // 编辑false,不可编辑true
+      row.Edit = false
+      row.NoEdit = true
+      // 新增false,编辑true,编辑保存false
+      row.isCreate = false
+      row.isUpdate = true
+      row.isUpdateSave = false
+      this.getList()
+    },
+
+    // 删除
+    handleRowDelete(row) {
+      console.log('点击了行内删除')
+      MessageBox.confirm('是否确认删除此信息?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'checkdeleteFT', 'type': 'v', 'parammaps': {
+          pastureid: row.pastureid,
+          id: row.id
+        }}
+        this.requestParam.data[1] = { 'name': 'deleteFT', 'type': 'e', 'parammaps': {
+          pastureid: row.pastureid,
+          id: row.id
+        }}
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('新增保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+          } else {
+            this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+            this.getList()
+            this.isDetail = false
+          }
+        })
+      }).catch(() => {
+        this.$message({ type: 'info', message: '已取消删除' })
+      })
+    },
+    handleSelectionChange(val) {
+      console.log('勾选数据', val)
+      this.selectList = val
+    },
+    handleDelete() {
+      console.log('点击了删除')
+      if (this.selectList.length == 0) {
+        this.$message({ type: 'error', message: '请选择配方', duration: 2000 })
+      } else {
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          console.log(this.selectList)
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList }}
+          this.requestParam.data[0].children = []
+          this.requestParam.data[0].children[0] = { 'name': 'checkdeleteFT', 'type': 'v', 'parammaps': {
+            id: '@insertSpotList.id',
+            pastureid: '@insertSpotList.pastureid'
+          }}
+          this.requestParam.data[0].children[1] = { 'name': 'deleteFT', 'type': 'e', 'parammaps': {
+            id: '@insertSpotList.id',
+            pastureid: '@insertSpotList.pastureid'
+          }}
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('删除保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+
+    // 复制
+    handleCopy() {
+      if (this.selectList.length == 0) {
+        this.$message({ type: 'error', message: '请选择配方', duration: 2000 })
+      } else {
+        MessageBox.confirm('是否确认复制此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          console.log(this.selectList)
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList }}
+          this.requestParam.data[0].children = []
+          this.requestParam.data[0].children[0] = { 'name': 'copyFT', 'type': 'e', 'parammaps': {
+            ftid: '@insertSpotList.id',
+            pastureid: '@insertSpotList.pastureid'
+          }}
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('复制保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '复制失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '复制成功', type: 'success', duration: 2000 })
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+
+    // 配方记录
+    handleRecipeRecord() {
+      console.log('点击了配方记录')
+      this.template.dialogStatus = 'RecipeRecord'
+      this.dialogFull = false
+      this.template.dialogFormVisible = true
+      this.template.table.getdataListParm.parammaps.ccname = ''
+      this.template.table.getdataListParm.parammaps.fttype = ''
+      this.template.table.getdataListParm.parammaps.enable = ''
+      this.template.table.getdataListParm.parammaps.tname = ''
+      this.template.table.getdataListParm.parammaps.remark = ''
+      this.template.table.getdataListParm.parammaps.source = ''
+      this.template.table.getdataListParm.offset = 1
+      this.getDateList()
+      this.isDetailDialog = false
+      this.myheight2 = document.documentElement.clientHeight - 85 - 265
+    },
+    // 历史时间
+    getDateList() {
+      GetDataByName(this.template.getdataDateParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.template.table.getdataListParm.parammaps.date = response.data.list[0].maxdate
+          this.getTemplateDialogList()
+        } else {
+          this.template.table.getdataListParm.parammaps.date = ''
+        }
+      })
+    },
+    // 配方记录-模板
+    getTemplateDialogList() {
+      this.template.table.listLoading = true
+      GetDataByName(this.template.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.template.table.list = response.data.list
+          this.template.table.pageNum = response.data.pageNum
+          this.template.table.pageSize = response.data.pageSize
+          this.template.table.total = response.data.total
+        } else {
+          this.template.table.list = []
+          this.template.table2.list = []
+        }
+        setTimeout(() => {
+          this.template.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleDialogSearch() {
+      this.template.table.getdataListParm.offset = 1
+      this.getTemplateDialogList()
+      this.arrowDown = true
+      this.arrowUp = false
+    },
+    handleDialogRefresh() {
+      this.template.table.getdataListParm.parammaps.ccname = ''
+      this.template.table.getdataListParm.parammaps.fttype = ''
+      this.template.table.getdataListParm.parammaps.enable = ''
+      this.template.table.getdataListParm.parammaps.tname = ''
+      this.template.table.getdataListParm.parammaps.remark = ''
+      this.template.table.getdataListParm.parammaps.source = ''
+      this.template.table.getdataListParm.offset = 1
+      this.getTemplateDialogList()
+    },
+
+    // 配方记录-模板行点击
+    tableRowClickDialog(row, column, event) {
+      console.log('配方记录-模板行点击')
+      this.isDetailDialog = true
+      this.template.table2.getdataListParm.parammaps.date = this.template.table.getdataListParm.parammaps.date
+      this.template.table2.getdataListParm.parammaps.version = row.version
+      this.template.table2.getdataListParm.parammaps.ftid = row.id
+      this.template.table2.getdataListParm.parammaps.dryweight = row.dryweight
+      this.myheight2 = document.documentElement.clientHeight - 85 - 265 - 185
+      this.getDialogList()
+      this.getDownList()
+      // aiaiaiai
+    },
+
+    getDialogList() {
+      this.template.table2.listLoading = true
+      GetDataByName(this.template.table2.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.template.table2.list = response.data.list
+          this.template.table2.pageNum = response.data.pageNum
+          this.template.table2.pageSize = response.data.pageSize
+          this.template.table2.total = response.data.total
+        } else {
+          this.template.table2.list = []
+        }
+        this.$nextTick(function() {
+          document.querySelector('#detailDialog2').scrollIntoView()
+          // window.scrollTo({
+          //   'top': this.$refs.detailDialog2.clientHeight
+          // })
+        })
+        setTimeout(() => {
+          this.template.table2.listLoading = false
+        }, 100)
+      })
+    },
+    handleDialogSearch2() {
+      console.log('点击了查询')
+      this.arrowDown2 = true
+      this.arrowUp2 = false
+      this.template.table2.getdataListParm.offset = 1
+      this.getDialogList2()
+    },
+    handleDialogRefresh2() {
+      console.log('点击了重置')
+      this.template.table2.getdataListParm.parammaps.fname = ''
+      this.template.table2.getdataListParm.parammaps.feedgroup = ''
+      this.template.table2.getdataListParm.parammaps.fweight = ''
+      this.template.table2.getdataListParm.parammaps.autosecondname = ''
+      this.template.table2.getdataListParm.parammaps.islockcount = '0'
+      this.template.table2.getdataListParm.parammaps.sort = ''
+      this.template.table2.getdataListParm.offset = 1
+      this.getDialogList2()
+    },
+    getDialogList2() {
+      this.template.table2.listLoading = true
+      GetDataByName(this.template.table2.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.template.table2.list = response.data.list
+          this.template.table2.pageNum = response.data.pageNum
+          this.template.table2.pageSize = response.data.pageSize
+          this.template.table2.total = response.data.total
+        } else {
+          this.template.table2.list = []
+        }
+        this.$nextTick(function() {
+          window.scrollTo({
+            'top': this.$refs.templateDialog.clientHeight
+          })
+        })
+        setTimeout(() => {
+          this.template.table2.listLoading = false
+        }, 100)
+      })
+    },
+    // 导出
+    handleExport(item) {
+      if (item == 1) {
+        console.log('点击了导出模板')
+        const requestParam = this.requestParam
+        const url = process.env.VUE_APP_BASE_API + 'file/导入导出模板/配方计划/配方模板导入模板.xlsx' // 请求下载文件的地址
+        console.log(url)
+        axios({
+          method: 'GET',
+          url: url,
+          data: requestParam,
+          headers: { token: getToken(), optname: 'insertcustomdoc' },
+          responseType: 'blob'
+        }).then(res => {
+          if (!res) return
+          this.percentage = 99
+          setTimeout(() => {
+            this.isPercentage = false
+          }, 2000)
+          const blob = new Blob([res.data], {
+            type: 'application/octet-stream;charset=utf-8'
+          })
+          const url = window.URL.createObjectURL(blob)
+          const aLink = document.createElement('a')
+          aLink.style.display = 'none'
+          aLink.href = url
+          const docname = '配方模板导入模板.xlsx'
+          aLink.setAttribute('download', docname) // 下载的文件
+          document.body.appendChild(aLink)
+          aLink.click()
+          document.body.removeChild(aLink)
+          window.URL.revokeObjectURL(url)
+        })
+      } else {
+        console.log('点击了导出数据')
+        this.download.getdataListParm.name = 'downloadFTList'
+        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].islockcount == 0) {
+                this.$set(response.data.list[i], 'islockcount', '否')
+              } else {
+                this.$set(response.data.list[i], 'islockcount', '是')
+              }
+              if (response.data.list[i].enable == 0) {
+                this.$set(response.data.list[i], 'enable', '否')
+              } else {
+                this.$set(response.data.list[i], 'enable', '是')
+              }
+            }
+            this.download.list = response.data.list
+          } else {
+            this.download.list = []
+          }
+          var excelDatas = [
+            {
+              tHeader: ['配方名称', '配方编码', '牲畜类别', '配方类型', '来源', '备注', '是否启用', '饲料组', '饲料名称', '重量(kg)', '搅拌延时(min)', '是否锁定牛头数比例', '顺序'],
+              filterVal: ['tname', 'tcode', 'ccname', 'fttype', 'source', 'remark', 'enable', 'feedgroup', 'fname', 'fweight', 'autosecond', 'islockcount', 'sort'],
+              tableDatas: this.download.list,
+              sheetName: 'Sheet1'
+            }
+          ]
+          json2excel(excelDatas, '配方模板', true, 'xlsx')
+        })
+      }
+    },
+
+    beforeImport(file) {
+      const isLt2M = file.size / 1024 / 1024 < 2
+      if (!isLt2M) {
+        this.$message.error('上传文件大小不能超过 2MB!')
+      }
+      return isLt2M
+    },
+    handleImportSuccess(res, file) {
+      this.getList()
+      if (res.msg === 'ok') {
+        this.$message({ title: '成功', message: '导入成功:' + res.data.success + '条!', type: 'success', duration: 2000 })
+        if (res.data.err_count > 0) {
+          this.$notify({ title: '失败', message: '导入失败:' + res.data.err_count + '条!', type: 'danger', duration: 2000 })
+           import('@/vendor/Export2Excel').then(excel => {
+             const list1 = res.data.result
+             const tHeader = [
+               '配方名称', '牲畜类别', '配方类型', '备注', '饲料组', '饲料名称', '重量(kg)', '搅拌延时(min)', '是否锁定牛头数比例', '错误信息'
+             ]
+             const filterVal = [
+               '配方名称', '牲畜类别', '配方类型', '备注', '饲料组', '饲料名称', '重量(kg)', '搅拌延时(min)', '是否锁定牛头数比例', 'error_msg'
+             ]
+             const data1 = this.formatJson(filterVal, list1)
+             excel.export_json_to_excel({ header: tHeader, data: data1, filename: '配方模板导入报错信息', autoWidth: true, bookType: 'xlsx' })
+           })
+        }
+      } else {
+        const isRepeat = new RegExp('Duplicate entry :feedtemplet_tname')
+        if (isRepeat.test(res.data)) {
+          this.$notify({ type: 'error', message: '配方名称不可重复,请重新录入', duration: 2000 })
+          return false
+        }
+        this.$notify({ title: '失败', message: '上传失败', 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]
+          }
+        })
+      )
+    },
+    changeDate() {
+      this.getTemplateDialogList()
+    },
+    // 应用
+    handleApplication() {
+      console.log('点击了应用')
+      MessageBox.confirm('是否确认将' + this.template.table.getdataListParm.parammaps.date + '的数据应用到当前?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        this.requestParam.name = 'applyFTdate'
+        this.requestParam.parammaps = {}
+        this.requestParam.parammaps.pastureid = Cookies.get('pastureid')
+        this.requestParam.parammaps.date = this.template.table.getdataListParm.parammaps.date
+        PostDataByName(this.requestParam).then(response => {
+          if (response.msg === 'fail') {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          } else {
+            this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+            this.getTemplateDialogList()
+            this.getList()
+          }
+        })
+      }).catch(() => {
+        this.$message({ type: 'info', message: '已取消应用' })
+      })
+    },
+    // 模板行点击
+    tableRowClick(row, column, event) {
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit == true) {
+          return false
+        }
+      }
+      if (this.isOrder == false) {
+        this.$message({ type: 'error', message: '请保存或取消当前更改顺序操作', duration: 2000 })
+      } else {
+        if (column.label !== '操作') {
+          this.isDetail = true // 点击行显示详情
+          this.table2.getdataListParm.parammaps.ftid = row.id
+          this.table2.getdataListParm.parammaps.fttypeid = row.fttypeid
+          this.table2.getdataListParm.parammaps.dryweight = row.dryweight
+          if (row.fttype == '预混配方') {
+            this.requestParams[2].parammaps.type = '1'
+          } else {
+            this.requestParams[2].parammaps.type = ''
+          }
+          this.myheight = document.documentElement.clientHeight - 85 - 265 - 185
+          this.getList2()
+          this.getDownList()
+        }
+      }
+    },
+    handleCloseTable2() {
+      this.isDetail = false
+      this.myheight = ''
+      this.isEnlarge = true
+    },
+    handleDialogCloseTable2() {
+      this.isDetailDialog = false
+      this.myheight2 = document.documentElement.clientHeight - 85 - 265
+    },
+    // -------------------详情-----------------------------
+    // 获取是否显示是否锁定牛头数
+    getIsLockCount() {
+      GetDataByName(this.lockCount.getdataListParm).then(response => {
+        console.log(response.data.list)
+        if (response.data.list[0].inforvalue == 0) {
+          this.lockCount.isLockCount = false
+        } else {
+          this.lockCount.isLockCount = true
+        }
+      })
+    },
+    // 详情
+    getList2() {
+      this.table2.listLoading = true
+      GetDataByName(this.table2.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], 'groupEdit', false) // 饲料组编辑
+            this.$set(response.data.list[i], 'isGroupDisabled', false) // 饲料组编辑禁止编辑
+            this.$set(response.data.list[i], 'groupNoEdit', true) // 饲料组不可编辑
+            this.$set(response.data.list[i], 'isCreate', false) // 新增操作
+            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
+            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
+          }
+          this.table2.getDryweightParm.parammaps = this.table2.getdataListParm.parammaps
+          this.getDryWeight()
+
+          // for (let i = 0; i < response.data.list.length; i++) {
+          //   console.log(response.data.list[i].fweight, '===12333')
+          // }
+          this.table2.list = response.data.list
+          this.table2.pageNum = response.data.pageNum
+          this.table2.pageSize = response.data.pageSize
+          this.table2.total = response.data.total
+        } else {
+          this.table2.list = []
+        }
+        setTimeout(() => {
+          this.table2.listLoading = false
+        }, 100)
+      })
+    },
+    // 行拖拽
+    rowDrop() {
+      console.log(document.querySelector('#table2 .el-table__body-wrapper tbody'))
+      const tbody = document.querySelector('#table2 .el-table__body-wrapper tbody')
+      // this.sorTable()
+      const that = this
+
+      // Sortable.create(tbody, {
+      var sortable = Sortable.create(tbody, {
+        disabled: that.dropState,
+        onChoose({ newIndex, oldIndex }) {
+          console.log(that.isOrder, 'that.isOrder == false')
+          console.log(that.dropState, 'that.dropState')
+          if (that.dropState == true || that.isOrder == true) {
+            sortable.destroy()
+          }
+        },
+        onEnd({ newIndex, oldIndex }) {
+          const currRow = that.table2.list.splice(oldIndex, 1)[0]
+          that.table2.list.splice(newIndex, 0, currRow)
+          console.log('索引', newIndex)
+          console.log('拖动数据', currRow)
+          console.log('上', that.table2.list[newIndex - 1])
+          console.log('下', that.table2.list[newIndex + 1])
+          if (that.table2.list[newIndex - 1] === undefined) { // 拖动至最上方无值 // 顺序等于0,其他+1 // 饲料组等于饲料名称
+            for (let i = 0; i < that.table2.list.length; i++) {
+              that.table2.list[i].sort = parseInt(that.table2.list[i].sort) + 1 // 其他的顺序+1
+            }
+            currRow.sort = 0
+            currRow.feedgroup = currRow.fname
+            console.log('拖动至最上方无值')
+          } else if (currRow.sort == that.table2.list[newIndex - 1].sort) { // 拖动值顺序等于上值顺序
+            currRow.sort = that.table2.list[newIndex - 1].sort
+            console.log('拖动值顺序等于上值顺序')
+          } else if (that.table2.list[newIndex + 1] == undefined) { // 拖动至最下方无值 // 顺序等于上方顺序+1 // 饲料组等于饲料名称
+            currRow.sort = parseInt(that.table2.list[newIndex - 1].sort) + 1
+            currRow.feedgroup = currRow.fname
+            console.log('拖动至最下方无值')
+          } else if (currRow.sort == that.table2.list[newIndex + 1].sort) { // 拖动值顺序等于下值顺序
+            currRow.sort == that.table2.list[newIndex + 1].sort
+            console.log('拖动值顺序等于下值顺序')
+          } else if (that.table2.list[newIndex - 1].sort == that.table2.list[newIndex + 1].sort) { // 拖动至上下顺序一致,顺序/饲料组与上下保持一致
+            currRow.sort = that.table2.list[newIndex - 1].sort
+            currRow.feedgroup = that.table2.list[newIndex - 1].feedgroup
+            console.log('拖动至上下顺序一致')
+          } else if (that.table2.list[newIndex - 1].sort !== undefined && that.table2.list[newIndex + 1].sort !== undefined) { // 拖动至上下都有值
+            console.log('上下')
+            if (parseInt(that.table2.list[newIndex - 1].sort) + 1 == that.table2.list[newIndex + 1].sort) {
+              console.log(newIndex)
+              for (let i = newIndex; i < that.table2.list.length; i++) {
+                that.table2.list[i].sort = parseInt(that.table2.list[i].sort) + 1
+              }
+            }
+            currRow.sort = parseInt(that.table2.list[newIndex - 1].sort) + 1
+            currRow.feedgroup = currRow.fname
+            console.log(that.table2.list[newIndex + 1].sort)
+          }
+        }
+      })
+      console.log(sortable.option('disabled'))
+    },
+    handleChangeOrder() {
+      this.isOrder = false
+      this.rowDrop()
+    },
+    saveChangeOrder() {
+      // 保存顺序
+      console.log(this.table2.list)
+      this.requestParam = {}
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.table2.list }}
+      this.requestParam.data[0].children = []
+      this.requestParam.data[0].children[0] = { 'name': 'updateFTdetailSort', 'type': 'e', 'parammaps': {
+        id: '@insertSpotList.id',
+        pastureid: '@insertSpotList.pastureid',
+        sort: '@insertSpotList.sort',
+        feedgroup: '@insertSpotList.feedgroup'
+      }}
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('顺序切换保存发送参数', this.requestParam)
+        if (response.msg === 'fail') {
+          this.$notify({ title: '顺序切换失败', message: response.data, type: 'warning', duration: 2000 })
+        } else {
+          this.$notify({ title: '', message: '顺序切换成功', type: 'success', duration: 2000 })
+          this.getList2()
+          this.getList3()
+          this.isOrder = true
+        }
+      })
+    },
+    cancelChangeOrder() {
+      // 取消顺序
+      this.getList2()
+      this.isOrder = true
+    },
+    handleSearch2() {
+      console.log('点击了查询')
+      this.arrowDown2 = true
+      this.arrowUp2 = false
+      this.table2.getdataListParm.offset = 1
+      // fname, feedgroup, fweight, autosecondname, islockcount, sort
+      // this.table2.getdataListParm.parammaps.all = this.table2.getdataListParm.parammaps.fname + ' ' + this.table2.getdataListParm.parammaps.feedgroup + ' ' + this.table2.getdataListParm.parammaps.fweight + ' ' + this.table2.getdataListParm.parammaps.autosecondname + ' ' + this.table2.getdataListParm.parammaps.islockcount + ' ' + this.table2.getdataListParm.parammaps.sort
+      this.table2.getdataListParm.parammaps.all = ''
+      var obj = {}
+      obj.fname = this.table2.getdataListParm.parammaps.fname
+      obj.feedgroup = this.table2.getdataListParm.parammaps.feedgroup
+      obj.fweight = this.table2.getdataListParm.parammaps.fweight
+      obj.autosecondname = this.table2.getdataListParm.parammaps.autosecondname
+      if (this.table2.getdataListParm.parammaps.islockcount !== '') {
+        if (this.table2.getdataListParm.parammaps.islockcount == 0) {
+          this.table2.getdataListParm.parammaps.islockcount = '否'
+        } else {
+          this.table2.getdataListParm.parammaps.islockcount = '是'
+        }
+      }
+      obj.islockcount = this.table2.getdataListParm.parammaps.islockcount
+      obj.sort = this.table2.getdataListParm.parammaps.sort
+      Object.getOwnPropertyNames(obj).forEach((key) => {
+        console.log(key, obj[key])
+        if (obj[key] !== '') {
+          this.table2.getdataListParm.parammaps.all += obj[key] + '/'
+        }
+      })
+      if (this.table2.getdataListParm.parammaps.all.charAt(this.table2.getdataListParm.parammaps.all.length - 1) == '/') {
+        this.table2.getdataListParm.parammaps.all = this.table2.getdataListParm.parammaps.all.slice(0, this.table2.getdataListParm.parammaps.all.length - 1)
+      }
+      this.getList2()
+    },
+    handleRefresh2() {
+      console.log('点击了重置')
+      this.table2.getdataListParm.parammaps.fname = ''
+      this.table2.getdataListParm.parammaps.feedgroup = ''
+      this.table2.getdataListParm.parammaps.fweight = ''
+      this.table2.getdataListParm.parammaps.autosecondname = ''
+      this.table2.getdataListParm.parammaps.islockcount = '0'
+      this.table2.getdataListParm.parammaps.sort = ''
+      this.table2.getdataListParm.parammaps.all = ''
+      this.table2.getdataListParm.offset = 1
+      this.getList2()
+    },
+
+    // 详情新增
+    handleCreate2() {
+      console.log('点击了详情新增', this.table2.list)
+      // 编辑true/不可编辑false
+      // 新增操true,编辑false,编辑保存false
+      console.log(11)
+      for (let i = 0; i < this.table2.list.length; i++) {
+        if (this.table2.list[i].Edit === true) {
+          console.log(123)
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      console.log(this.table2.list)
+      if (this.table2.list.length == 0) {
+        var mysort = 0
+      } else {
+        var mysort = parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1
+      }
+      this.table2.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'groupEdit': false, 'groupNoEdit': true, 'enable': 1, 'feedgroup': '', 'fid': '', 'fname': '', 'fweight': '', 'autosecond': '0', 'islockcount': '0', 'sort': mysort })
+      console.log(this.table2.list)
+    },
+    changeFname(item, row) {
+      console.log(item, row)
+      this.table2.temp.fname = this.feedNameList.find(obj => obj.id == item).fname
+      row.fname = this.feedNameList.find(obj => obj.id == item).fname
+      if (this.feedNameList.find(obj => obj.id == item).ispreft == '0') {
+        this.table2.temp.preftid = '0'
+      } else {
+        this.table2.temp.preftid = item
+      }
+      if (row.sort == '') {
+        row.feedgroup = this.table2.temp.fname
+      } else {
+        if (row.isCreate == true) { // 新增状态下
+          for (let i = 1; i < this.table2.list.length; i++) {
+            if (this.table2.list[i].sort == row.sort) {
+              console.log(this.table2.list[i])
+              row.feedgroup = this.table2.list[i].feedgroup
+              break
+            } else {
+              row.feedgroup = this.table2.temp.fname
+            }
+          }
+        } else if (row.isUpdateSave == true) { // 编辑状态下
+          var Arr = []
+          for (let i = 0; i < this.table2.list.length; i++) {
+            Arr.push(this.table2.list[i].sort)
+          }
+          var Count = 0
+          for (let i = 0; i < Arr.length; i++) {
+            if (Arr[i] == row.sort) {
+              Count++
+            }
+          }
+          for (let i = 0; i < this.table2.list.length; i++) {
+            if (Count > 1) {
+              row.feedgroup = this.table2.list[i].feedgroup
+              console.log(this.table2.list[i].feedgroup)
+              break
+            } else if (Count == 1) {
+              row.feedgroup = this.table2.temp.fname
+              console.log(222, this.table2.temp.fname)
+            }
+          }
+        }
+      }
+    },
+
+    bort(row) {
+      if (row.isCreate == true) {
+        if (row.sort !== '') {
+          for (let i = 1; i < this.table2.list.length; i++) {
+            if (this.table2.list[i].sort == parseInt(row.sort)) {
+              row.feedgroup = this.table2.list[i].feedgroup
+              return false
+            } else {
+              row.feedgroup = row.fname
+            }
+          }
+        } else {
+          row.feedgroup = row.fname
+        }
+      } else if (row.isUpdateSave == true) {
+        if (row.sort !== '') {
+          for (let i = 0; i < this.table2.list.length; i++) {
+            if (this.table2.list[i].sort == row.sort) {
+              console.log('失去焦点,行内顺序与表格某顺序相同时', this.table2.list[i])
+              if (this.table2.list[i].id !== row.id) {
+                row.isGroupDisabled = true
+                row.feedgroup = this.table2.list[i].feedgroup
+                break
+              }
+            } else {
+              console.log('失去焦点,行内顺序与表格某顺序不相同时')
+              row.isGroupDisabled = true
+              row.feedgroup = row.fname
+            }
+          }
+        } else {
+          row.feedgroup = row.fname
+        }
+      }
+    },
+    createData2(row) {
+      console.log('点击了详情新增保存1', row)
+      this.table2.temp.pastureid = Cookies.get('pastureid')
+      this.table2.temp.ftid = this.table2.getdataListParm.parammaps.ftid
+      this.table2.temp.fid = row.fid
+      this.table2.temp.fname = this.table2.temp.fname
+      this.table2.temp.fweight = row.fweight
+      this.table2.temp.islockcount = row.islockcount
+      this.table2.temp.sort = row.sort
+      this.table2.temp.feedgroup = row.feedgroup
+      this.table2.temp.preftid = this.table2.temp.preftid
+      this.table2.temp.autosecond = row.autosecond
+      if (this.table2.temp.fid == '' && this.table2.temp.fweight == '' && this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '饲料名称/重量/搅拌延时不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fweight == '' && this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '重量/搅拌延时不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fid == '') {
+        this.$message({ type: 'error', message: '饲料名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fweight == '') {
+        this.$message({ type: 'error', message: '重量不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '搅拌延时不能为空', duration: 2000 })
+        return false
+      }
+      if (this.table2.temp.sort !== '') {
+        this.table2.temp.sort = this.table2.temp.sort
+      } else {
+        console.log(this.table2.list.length)
+        if (this.table2.list.length == 1) {
+          this.table2.temp.sort = 0
+        } else {
+          this.table2.temp.sort = parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1
+          row.sort = parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1
+        }
+      }
+      if (this.table2.getdataListParm.parammaps.fttypeid == 2) {
+        if (parseInt(this.table2.temp.preftid) > 0) {
+          this.$message({ type: 'error', message: '饲料名称不能选择预混配方', duration: 2000 })
+          return false
+        }
+      }
+      // 校验顺序是否>=0
+      var ruleSort = /^\d+$/
+      if (!ruleSort.test(this.table2.temp.sort)) {
+        this.$message({ type: 'error', message: '饲料顺序不可为负数或小数', duration: 2000 })
+        return false
+      }
+      // 检验重量>0
+      this.table2.temp.fweight = formatNum(this.table2.temp.fweight, 3) // 根据默认参数设置小数位数
+      row.fweight = formatNum(row.fweight, 3)
+      // var ruleWeight = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/
+      if (this.table2.temp.fweight == 0) {
+        this.$message({ type: 'error', message: '重量请输入正数,最多保留三位小数', duration: 2000 })
+        return false
+      }
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'insertFTdetail', 'type': 'e', 'parammaps': {
+        pastureid: this.table2.temp.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        fid: row.fid,
+        fname: this.table2.temp.fname,
+        fweight: String(row.fweight),
+        islockcount: row.islockcount,
+        sort: row.sort,
+        feedgroup: row.feedgroup,
+        preftid: this.table2.temp.preftid,
+        autosecond: row.autosecond
+      }}
+      this.requestParam.data[1] = { 'name': 'updateFPbyFTChange', 'type': 'e', 'parammaps': {
+        pastureid: this.table2.temp.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        type: this.table2.getdataListParm.parammaps.fttypeid,
+        status: 0
+      }}
+      this.requestParam.data[2] = { 'name': 'updateftversion', 'type': 'e', 'parammaps': {
+        pastureid: this.table2.getdataListParm.parammaps.pastureid,
+        id: this.table2.getdataListParm.parammaps.ftid
+      }}
+      this.requestParam.data[3] = { 'name': 'insertFitHistory', 'type': 'e', 'parammaps': {
+        weight: row.fweight,
+        preftid: this.table2.temp.preftid,
+        pastureid: this.table2.getdataListParm.parammaps.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        dateTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'),
+        slid: 0,
+        fid: row.fid
+      }}
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList2()
+          this.getList3()
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    createCancel2(row) {
+      console.log('点击了详情新增取消')
+      for (let i = 0; i < this.table2.list.length; i++) {
+        if (row.myId === this.table2.list[i].myId) {
+          var listIndex = this.table2.list.indexOf(this.table2.list[i])
+        }
+        if (listIndex > -1) {
+          this.table2.list.splice(listIndex, 1)
+          return
+        }
+      }
+      this.getDialogList()
+    },
+
+    // 详情编辑
+    handleUpdate2(row) {
+      console.log('详情编辑', row)
+      this.dropState = true
+      row.isGroupDisabled = false
+      row.islockcount = String(row.islockcount)
+      row.fid = String(row.fid)
+      row.autosecond = String(row.autosecond)
+      this.table2.temp.fname = row.fname
+      this.table2.temp.preftid = row.preftid
+      const rowArr = []
+      for (let i = 0; i < this.table2.list.length; i++) {
+        if (this.table2.list[i].Edit == true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+        rowArr.push(this.table2.list[i].sort)
+      }
+      var count = 0
+      for (let i = 0; i < rowArr.length; i++) {
+        if (rowArr[i] == row.sort) {
+          count++
+        }
+      }
+      // 判断是否有相同顺序,如果没有饲料组不可编辑,若有饲料组可编辑
+      if (count == 1) {
+        // 饲料组编辑false,不可编辑true
+        row.groupEdit = false
+        row.groupNoEdit = true
+        // 编辑true,不可编辑false
+        row.Edit = true
+        row.NoEdit = false
+        // 新增false,编辑false,编辑保存true
+        row.isCreate = false
+        row.isUpdate = false
+        row.isUpdateSave = true
+      } else if (count > 1) {
+        // 饲料组编辑true,不可编辑false
+        row.groupEdit = true
+        row.groupNoEdit = false
+        console.log(222)
+        // 编辑true,不可编辑false
+        row.Edit = true
+        row.NoEdit = false
+        // 新增false,编辑false,编辑保存true
+        row.isCreate = false
+        row.isUpdate = false
+        row.isUpdateSave = true
+        return false
+      }
+      this.table2.updateList = Object.assign({}, row)
+    },
+    updateData2(row) {
+      console.log('点击了详情编辑保存', row)
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.table2.temp.pastureid = row.pastureid
+      this.table2.temp.ftid = this.table2.getdataListParm.parammaps.ftid
+      this.table2.temp.fid = row.fid
+      this.table2.temp.fname = this.table2.temp.fname
+      this.table2.temp.fweight = row.fweight
+      this.table2.temp.islockcount = row.islockcount
+      this.table2.temp.sort = row.sort
+      this.table2.temp.feedgroup = row.feedgroup
+      this.table2.temp.preftid = this.table2.temp.preftid
+      this.table2.temp.autosecond = row.autosecond
+      this.table2.temp.id = row.id
+      console.log('this.table2.updateList', this.table2.updateList)
+      console.log('temp', this.table2.temp)
+      var status = ''
+      if (parseFloat(this.table2.temp.fweight) > parseFloat(this.table2.updateList.fweight)) {
+        status = 0
+      } else {
+        status = 1
+      }
+      if (this.table2.temp.fid == '' && this.table2.temp.fweight == '' && this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '饲料名称/重量/搅拌延时不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fweight == '' && this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '重量/搅拌延时不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fid == '') {
+        this.$message({ type: 'error', message: '饲料名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.fweight == '') {
+        this.$message({ type: 'error', message: '重量不能为空', duration: 2000 })
+        return false
+      } else if (this.table2.temp.autosecond == '') {
+        this.$message({ type: 'error', message: '搅拌延时不能为空', duration: 2000 })
+        return false
+      }
+      if (this.table2.temp.sort !== '') {
+        this.table2.temp.sort = this.table2.temp.sort
+      } else {
+        this.table2.temp.sort = parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1
+      }
+      if (this.table2.getdataListParm.parammaps.fttypeid == 2) {
+        if (parseInt(this.table2.temp.preftid) > 0) {
+          this.$message({ type: 'error', message: '饲料名称不能选择预混配方', duration: 2000 })
+          return false
+        }
+      }
+      // 校验顺序是否>=0
+      var ruleSort = /^\d+$/
+      if (!ruleSort.test(this.table2.temp.sort)) {
+        this.$message({ type: 'error', message: '饲料顺序不可为负数或小数', duration: 2000 })
+        return false
+      }
+      this.table2.temp.fweight = formatNum(this.table2.temp.fweight, 3) // 根据默认参数设置小数位数
+      row.fweight = formatNum(row.fweight, 3)
+      // 检验重量>0
+      // var ruleWeight = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/
+      if (this.table2.temp.fweight == 0) {
+        this.$message({ type: 'error', message: '重量请输入正数,最多保留三位小数', duration: 2000 })
+        return false
+      }
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'insertFitHistory', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        weight: String(row.fweight),
+        preftid: this.table2.temp.preftid,
+        dateTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'),
+        slid: this.table2.temp.id,
+        fid: row.fid
+      }}
+      this.requestParam.data[1] = { 'name': 'updateFTdetail', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        fid: row.fid,
+        fname: this.table2.temp.fname,
+        fweight: String(row.fweight),
+        islockcount: row.islockcount,
+        sort: row.sort,
+        feedgroup: row.feedgroup,
+        preftid: this.table2.temp.preftid,
+        autosecond: row.autosecond,
+        id: row.id
+      }}
+      this.requestParam.data[2] = { 'name': 'updateFPbyFTChange', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        type: this.table2.getdataListParm.parammaps.fttypeid,
+        status: status
+      }}
+      this.requestParam.data[3] = { 'name': 'updateFTdetailbySort', 'type': 'e', 'parammaps': {
+        pastureid: row.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid,
+        sort: row.sort,
+        feedgroup: row.feedgroup
+      }}
+      this.requestParam.data[4] = { 'name': 'updateFTdetailGroup', 'type': 'e', 'parammaps': {
+        pastureid: this.table2.getdataListParm.parammaps.pastureid,
+        ftid: this.table2.getdataListParm.parammaps.ftid
+      }}
+      ExecDataByConfig(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList2()
+          this.getList3()
+          this.dropState = false
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    updateCancel2(row) {
+      console.log('点击了详情编辑取消')
+      // 饲料组编辑false,不可编辑true
+      row.groupEdit = false
+      row.groupNoEdit = true
+      // 编辑false,不可编辑true
+      row.Edit = false
+      row.NoEdit = true
+      // 新增false,编辑true,编辑保存false
+      row.isCreate = false
+      row.isUpdate = true
+      row.isUpdateSave = false
+      this.getList2()
+      this.dropState = false
+    },
+
+    // 详情删除
+    handleRowDelete2(row) {
+      console.log('点击了行内删除')
+      MessageBox.confirm('是否确认删除此信息?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        console.log(this.table2.list.length)
+        if (this.table2.list.length > 1) {
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertFitHistory', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            ftid: this.table2.getdataListParm.parammaps.ftid,
+            weight: 0,
+            preftid: row.preftid,
+            dateTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'),
+            slid: row.id,
+            fid: row.fid
+          }}
+          this.requestParam.data[1] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            id: row.id
+          }}
+          this.requestParam.data[2] = { 'name': 'updateFPbyFTChange', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            ftid: this.table2.getdataListParm.parammaps.ftid,
+            type: this.table2.getdataListParm.parammaps.fttypeid,
+            status: 1
+          }}
+          this.requestParam.data[3] = { 'name': 'updateftversion', 'type': 'e', 'parammaps': {
+            pastureid: this.table2.getdataListParm.parammaps.pastureid,
+            id: this.table2.getdataListParm.parammaps.ftid
+          }}
+        } else {
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertFitHistory', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            ftid: this.table2.getdataListParm.parammaps.ftid,
+            weight: 0,
+            preftid: row.preftid,
+            dateTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'),
+            slid: row.id,
+            fid: row.fid
+          }}
+          this.requestParam.data[1] = { 'name': 'checkdeleteFT', 'type': 'v', 'parammaps': {
+            pastureid: this.table2.getdataListParm.parammaps.pastureid,
+            id: this.table2.getdataListParm.parammaps.ftid
+          }}
+          this.requestParam.data[2] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            id: row.id
+          }}
+          this.requestParam.data[3] = { 'name': 'updateFPbyFTChange', 'type': 'e', 'parammaps': {
+            pastureid: row.pastureid,
+            ftid: this.table2.getdataListParm.parammaps.ftid,
+            type: this.table2.getdataListParm.parammaps.fttypeid,
+            status: 1
+          }}
+          this.requestParam.data[4] = { 'name': 'updateftversion', 'type': 'e', 'parammaps': {
+            pastureid: this.table2.getdataListParm.parammaps.pastureid,
+            id: this.table2.getdataListParm.parammaps.ftid
+          }}
+        }
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('新增保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+          } else {
+            this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+            this.getList2()
+            this.getList3()
+          }
+        })
+      }).catch(() => {
+        this.$message({ type: 'info', message: '已取消删除' })
+      })
+    },
+    handleSelectionChange2(val) {
+      console.log('勾选数据', val)
+      this.selectList2 = val
+    },
+    celldblclick(row, column, cell, event) {
+      console.log(row, '=====')
+      this.handleUpdate2(row)
+    },
+    handleDelete2() {
+      console.log('点击了删除')
+      if (this.selectList2.length == 0) {
+        this.$message({ type: 'error', message: '请选择配方详情', duration: 2000 })
+      } else {
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          console.log(this.table2.list.length - this.selectList2.length)
+          if (this.table2.list.length - this.selectList2.length > 0) {
+            this.requestParam.common = { 'returnmap': '0' }
+            this.requestParam.data = []
+            this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList2 }}
+            this.requestParam.data[0].children = []
+            this.requestParam.data[0].children[0] = { 'name': 'insertFitHistory', 'type': 'e', 'parammaps': {
+              pastureid: '@insertSpotList.pastureid',
+              ftid: '@insertSpotList.ftid',
+              weight: 0,
+              preftid: '@insertSpotList.preftid',
+              dateTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'),
+              slid: '@insertSpotList.id',
+              fid: '@insertSpotList.fid'
+            }}
+            this.requestParam.data[0].children[1] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+              id: '@insertSpotList.id',
+              pastureid: '@insertSpotList.pastureid'
+            }}
+            this.requestParam.data[1] = { 'name': 'updateftversion', 'type': 'e', 'parammaps': {
+              pastureid: this.table2.getdataListParm.parammaps.pastureid,
+              id: this.table2.getdataListParm.parammaps.ftid
+            }}
+          } else {
+            this.requestParam.common = { 'returnmap': '0' }
+            this.requestParam.data = []
+            this.requestParam.data[0] = { 'name': 'checkdeleteFT', 'type': 'v', 'parammaps': {
+              pastureid: this.table2.getdataListParm.parammaps.pastureid,
+              id: this.table2.getdataListParm.parammaps.ftid
+            }}
+            this.requestParam.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList2 }}
+            this.requestParam.data[1].children = []
+            this.requestParam.data[1].children[0] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+              id: '@insertSpotList.id',
+              pastureid: '@insertSpotList.pastureid'
+            }}
+            this.requestParam.data[2] = { 'name': 'updateftversion', 'type': 'e', 'parammaps': {
+              pastureid: this.table2.getdataListParm.parammaps.pastureid,
+              id: this.table2.getdataListParm.parammaps.ftid
+            }}
+          }
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('删除保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
+              this.getList2()
+              this.getList3()
+            }
+          })
+        })
+      }
+    },
+
+    // 拆分预混料
+    handleSplitPremix(row) {
+      console.log('点击了拆分预混料')
+      MessageBox.confirm('是否确认拆分当前预混料?', {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.requestParam.name = 'splitFTpre'
+        this.requestParam.parammaps = {}
+        this.requestParam.parammaps.ftid = this.table2.getdataListParm.parammaps.ftid
+        this.requestParam.parammaps.preftid = row.preftid
+        this.requestParam.parammaps.ftdid = row.id
+        this.requestParam.parammaps.pastureid = row.pastureid
+        this.requestParam.parammaps.feedgroup = row.feedgroup
+        this.requestParam.parammaps.sort = row.sort
+        this.requestParam.parammaps.fweight = row.fweight
+        PostDataByName(this.requestParam).then(response => {
+          if (response.msg === 'fail') {
+            this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+          } else {
+            this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+            this.getList2()
+            this.getList3()
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        })
+      })
+    },
+
+    // 合成预混料
+    handleSyntheticPremix() {
+      console.log('点击了合成预混料', this.selectList2)
+      this.dialogFull = false
+      if (this.table2.getdataListParm.parammaps.fttypeid == 2) {
+        this.$message({ type: 'error', message: '预混配方不可合成预混料', duration: 2000 })
+        return false
+      } else {
+        if (this.selectList2.length > 1) {
+          for (let i = 0; i < this.selectList2.length; i++) {
+            if (parseInt(this.selectList2[i].preftid) > 0) {
+              this.$message({ type: 'error', message: '不可选择预混料', duration: 2000 })
+              return false
+            }
+          }
+
+          if (this.selectList2[0].splitftpreid !== undefined) {
+            this.detail.getdataListParm.parammaps.ftid = this.selectList2[0].splitftpreid
+            this.detail.getdataListParm.parammaps.pastureid = this.selectList2[0].pastureid
+            GetDataByName(this.detail.getdataListParm).then(response => {
+              if (response.data.list !== null) { // 不为空时得到比对数据
+                this.detail.list3 = response.data.list
+                const sortList = [] // 声明排序数组
+                var fweightSum = 0 // 总重量
+                for (let i = 0; i < this.selectList2.length; i++) {
+                  const obj = {}
+                  obj.fid = this.selectList2[i].fid
+                  obj.fweight = this.selectList2[i].fweight
+                  fweightSum = fweightSum + parseFloat(this.selectList2[i].fweight)
+                  sortList.push(obj)
+                }
+                // 排序
+                sortList.sort(function(a, b) {
+                  return a.fid.localeCompare(b.fid)
+                })
+                var a = 0
+                if (this.detail.list3.length == sortList.length) {
+                  for (let i = 0; i < this.detail.list3.length; i++) {
+                    if (this.detail.list3[i].fid == sortList[i].fid && (this.detail.list3[i].fweight / this.detail.list3[i].sumWeight).toFixed(3) == (sortList[i].fweight / fweightSum).toFixed(3)) {
+                      a++
+                    }
+                  }
+                  if (a == this.detail.list3.length) { // 如果相等,则该配方为原预混配方
+                    this.detail.getdataListParm2.parammaps.ftid = this.selectList2[0].splitftpreid
+                    this.detail.getdataListParm2.parammaps.pastureid = this.selectList2[0].pastureid
+                    GetDataByName(this.detail.getdataListParm2).then(response => {
+                      if (response.data.list !== null) {
+                        this.detail.dialogStatus = 'SyntheticPremix'
+                        this.detail.dialogFormVisible = true
+                        this.detail.list = this.selectList2
+                        this.detail.list2 = response.data.list
+                        this.detail.disabled = true
+                        setTimeout(() => {
+                          this.detail.listLoading = false
+                        }, 100)
+                      } else {
+                        this.detail.list2 = []
+                      }
+                    })
+                  } else {
+                    this.detail.dialogStatus = 'SyntheticPremix'
+                    this.detail.dialogFormVisible = true
+                    this.detail.list = this.selectList2
+                    this.detail.disabled = false
+                    this.detail.list2 = [{ tname: '', tcolor: '#ccc', ccid: '', fttype: '预混配方', fttypeid: '2', source: '自定义', remark: '', 'enable': 1 }]
+                    setTimeout(() => {
+                      this.detail.listLoading = false
+                    }, 100)
+                  }
+                } else {
+                  this.detail.dialogStatus = 'SyntheticPremix'
+                  this.detail.dialogFormVisible = true
+                  this.detail.list = this.selectList2
+                  this.detail.disabled = false
+                  this.detail.list2 = [{ tname: '', tcolor: '#ccc', ccid: '', fttype: '预混配方', fttypeid: '2', source: '自定义', remark: '', 'enable': 1 }]
+                  setTimeout(() => {
+                    this.detail.listLoading = false
+                  }, 100)
+                }
+              } else {
+                this.detail.list3 = []
+                this.detail.dialogStatus = 'SyntheticPremix'
+                this.detail.dialogFormVisible = true
+                this.detail.list = this.selectList2
+                this.detail.disabled = false
+                this.detail.list2 = [{ tname: '', tcolor: '#ccc', ccid: '', fttype: '预混配方', fttypeid: '2', source: '自定义', remark: '', 'enable': 1 }]
+                setTimeout(() => {
+                  this.detail.listLoading = false
+                }, 100)
+              }
+            })
+          } else {
+            this.detail.dialogStatus = 'SyntheticPremix'
+            this.detail.dialogFormVisible = true
+            this.detail.list = this.selectList2
+            this.detail.disabled = false
+            this.detail.list2 = [{ tname: '', tcolor: '#ccc', ccid: '', fttype: '预混配方', fttypeid: '2', source: '自定义', remark: '', 'enable': 1 }]
+            setTimeout(() => {
+              this.detail.listLoading = false
+            }, 100)
+          }
+        } else {
+          this.$message({ type: 'error', message: '请选择俩条及以上饲料进行合成', duration: 2000 })
+          return false
+        }
+      }
+    },
+    // 畜生类别
+    changeLivestockType2(item) {
+      this.detail.list2[0].ccname = this.livestockTypeList.find(obj => obj.value === item).label
+    },
+    syntheticPremixData() {
+      console.log('点击了合成预混料确认')
+      if (this.detail.disabled == true) { // 原预混料
+        let sumFweight = 0
+        for (let i = 0; i < this.detail.list.length; i++) {
+          sumFweight += parseFloat(this.detail.list[i].fweight)
+        }
+        sumFweight = sumFweight.toFixed(3)
+        this.isokDisable = true
+        setTimeout(() => {
+          this.isokDisable = false
+        }, 1000)
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.detail.list }}
+        this.requestParam.data[0].children = []
+        this.requestParam.data[0].children[0] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList.pastureid',
+          id: '@insertSpotList.id'
+        }}
+        this.requestParam.data[1] = { 'name': 'insertSpotList2', 'resultmaps': { 'list': this.detail.list2 }}
+        this.requestParam.data[1].children = []
+        this.requestParam.data[1].children[0] = { 'name': 'insertFTdetail', 'type': 'e', 'parammaps': {
+          pastureid: Cookies.get('pastureid'),
+          ftid: this.table2.getdataListParm.parammaps.ftid,
+          fid: this.detail.list2[0].id,
+          fname: '@insertSpotList2.tname',
+          fweight: sumFweight,
+          islockcount: '0',
+          sort: parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1,
+          feedgroup: '@insertSpotList2.tname',
+          preftid: this.detail.list2[0].id,
+          autosecond: this.detail.list[0].autosecond
+        }}
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('合成预混料保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            const tname = new RegExp("key 'tname'")
+            if (tname.test(response.data)) {
+              this.$message({ type: 'error', message: '预混配方已存在,不可重复生成', duration: 2000 })
+            } else {
+              this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+            }
+          } else {
+            this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+            this.detail.dialogFormVisible = false
+            this.getList3()
+            this.getList2()
+            this.getDownList()
+          }
+        })
+      } else { // 现生成预混料
+        if (this.detail.list2[0].tname == '' && this.detail.list2[0].ccid == '') {
+          this.$message({ type: 'error', message: '配方名称/牲畜类别/不能为空', duration: 2000 })
+          return false
+        } else if (this.detail.list2[0].tname == '') {
+          this.$message({ type: 'error', message: '配方名称不能为空', duration: 2000 })
+          return false
+        } else if (this.detail.list2[0].ccid == '') {
+          this.$message({ type: 'error', message: '牲畜类别不能为空', duration: 2000 })
+          return false
+        }
+        const pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
+        if (pattern.test(this.detail.list2[0].tname)) {
+          this.$message({ type: 'error', message: '配方名称不可输入特殊字符', duration: 2000 })
+          return false
+        }
+        let sumFweight = 0
+        for (let i = 0; i < this.detail.list.length; i++) {
+          sumFweight += parseFloat(this.detail.list[i].fweight)
+        }
+        sumFweight = sumFweight.toFixed(3)
+        console.log(sumFweight)
+        this.isokDisable = true
+        setTimeout(() => {
+          this.isokDisable = false
+        }, 1000)
+        if (this.detail.list2[0].tcolor == null) {
+          this.detail.list2[0].tcolor = '#CCCCCC'
+        }
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'insertFT', 'type': 'e', 'parammaps': {
+          pastureid: Cookies.get('pastureid'),
+          tcode: this.detail.list2[0].tcode,
+          tname: this.detail.list2[0].tname,
+          tcolor: this.detail.list2[0].tcolor,
+          ccid: this.detail.list2[0].ccid,
+          ccname: this.detail.list2[0].ccname,
+          fttype: this.detail.list2[0].fttype,
+          fttypeid: this.detail.list2[0].fttypeid,
+          source: this.detail.list2[0].source,
+          remark: this.detail.list2[0].remark,
+          enable: this.detail.list2[0].enable
+        }}
+        this.requestParam.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.detail.list }}
+        this.requestParam.data[1].children = []
+        this.requestParam.data[1].children[0] = { 'name': 'insertFTdetail', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList.pastureid',
+          ftid: '@insertFT.LastInsertId',
+          fid: '@insertSpotList.fid',
+          fname: '@insertSpotList.fname',
+          fweight: '@insertSpotList.fweight',
+          islockcount: '@insertSpotList.islockcount',
+          sort: '@insertSpotList.sort',
+          feedgroup: '@insertSpotList.feedgroup',
+          preftid: '@insertSpotList.preftid',
+          autosecond: '@insertSpotList.autosecond'
+        }}
+        this.requestParam.data[1].children[1] = { 'name': 'deleteFTdetail', 'type': 'e', 'parammaps': {
+          pastureid: '@insertSpotList.pastureid',
+          id: '@insertSpotList.id'
+        }}
+        this.requestParam.data[2] = { 'name': 'insertSpotList2', 'resultmaps': { 'list': this.detail.list2 }}
+        this.requestParam.data[2].children = []
+        this.requestParam.data[2].children[0] = { 'name': 'insertFTdetail', 'type': 'e', 'parammaps': {
+          pastureid: Cookies.get('pastureid'),
+          ftid: this.table2.getdataListParm.parammaps.ftid,
+          fid: '@insertFT.LastInsertId',
+          fname: '@insertSpotList2.tname',
+          fweight: sumFweight,
+          islockcount: '0',
+          sort: parseInt(this.table2.list[this.table2.list.length - 1].sort) + 1,
+          feedgroup: '@insertSpotList2.tname',
+          preftid: '@insertFT.LastInsertId',
+          autosecond: this.detail.list[0].autosecond
+        }}
+        ExecDataByConfig(this.requestParam).then(response => {
+          console.log('合成预混料保存发送参数', this.requestParam)
+          if (response.msg === 'fail') {
+            const tname = new RegExp("key 'tname'")
+            if (tname.test(response.data)) {
+              this.$message({ type: 'error', message: '预混配方已存在,不可重复生成', duration: 2000 })
+            } else {
+              this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+            }
+          } else {
+            this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+            this.detail.dialogFormVisible = false
+            this.getList3()
+            this.getList2()
+            this.getDownList()
+          }
+        })
+      }
+    },
+    handleFormulationEvaluation(row) {
+      console.log(row)
+      // this.$router.push({ path: '/statisticalAnalysis/FormulationEvaluation', query: { tname: row.tname }})
+      this.$router.push({
+        name: 'FormulationEvaluation',
+        params: {
+          tname: row.tname,
+          ftid: row.id,
+          pastureid: row.pastureid,
+          startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+          inputDatetime: [new Date('startTime'), new Date('startTime')], // 日期后台待传
+          stopTime: parseTime(new Date(), '{y}-{m}-{d}')
+        }
+      })
+    },
+    // 配方记录
+    handleRowRecipeRecord(row) {
+      console.log(row)
+      this.rowRecipeRecord.temp = Object.assign({}, row)
+      this.rowRecipeRecord.dialogFormVisible = true
+      this.textMap.rowRecipeRecordTxt = '配方修改记录——配方:' + row.tname
+      this.rowRecipeRecord.dialogStatus = 'rowRecipeRecordTxt'
+      this.rowRecipeRecord.getdataListParm.parammaps.pastureid = row.pastureid
+      this.rowRecipeRecord.getdataListParm.parammaps.fitid = row.id
+      this.rowRecipeRecord.getdataListParm.parammaps.inputDatetime = []
+      this.getRowRecipeRecordList()
+    },
+    getRowRecipeRecordList() {
+      this.rowRecipeRecord.listLoading = true
+      this.rowRecipeRecord.getdataListParm.parammaps.fitid = this.rowRecipeRecord.temp.id
+      if (this.rowRecipeRecord.getdataListParm.parammaps.inputDatetime == null) {
+        this.rowRecipeRecord.getdataListParm.parammaps.inputDatetime = ''
+        this.rowRecipeRecord.getdataListParm.parammaps.startTime = ''
+        this.rowRecipeRecord.getdataListParm.parammaps.stopTime = ''
+      } else {
+        this.rowRecipeRecord.getdataListParm.parammaps.startTime = this.rowRecipeRecord.getdataListParm.parammaps.inputDatetime[0]
+        this.rowRecipeRecord.getdataListParm.parammaps.stopTime = this.rowRecipeRecord.getdataListParm.parammaps.inputDatetime[1]
+      }
+      const url = 'authdata/GetArrList'
+      const data = this.rowRecipeRecord.getdataListParm
+      postJson(url, data).then(response => {
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            if (response.data.list[i].arrList == null) {
+              this.$set(response.data.list[i], 'arrList', [])
+            }
+          }
+          this.rowRecipeRecord.list = response.data.list
+          this.rowRecipeRecord.pageNum = response.data.pageNum
+          this.rowRecipeRecord.pageSize = response.data.pageSize
+          this.rowRecipeRecord.total = response.data.total
+        } else {
+          this.rowRecipeRecord.list = []
+          this.rowRecipeRecord.total = 0
+        }
+        console.log(response.data, 'response.data')
+        setTimeout(() => {
+          this.rowRecipeRecord.listLoading = false
+        }, 100)
+      })
+    },
+    handleRowRecipeRecordSearch() {
+      this.getRowRecipeRecordList()
+    },
+    handleEnlarge() {
+      var height = (document.documentElement.clientHeight - 165 + 50).toString() + 'px'
+      // var height = (document.documentElement.clientHeight - 165 + 80).toString() + 'px'
+      // var height2 = '-' + (document.documentElement.clientHeight - 400).toString() + 'px'
+      var height2 = '-' + (this.$refs.template.offsetHeight).toString() + 'px'
+      console.log(this.$refs.detail.offsetHeight)
+      console.log(height2, 'height2')
+      this.isEnlarge = false
+      this.$refs.detail.style.top = height2
+      this.$refs.detail.style.height = height
+      this.$refs.appContainer.style.height = height
+      this.$refs.table2.style.height = 0
+      this.$refs.myContainer.style.posiiton = 'relative'
+      this.$refs.detail.style.posiiton = 'absolute'
+    },
+    handleNarrow() {
+      this.isEnlarge = true
+      this.$refs.detail.style.top = 0
+      this.$refs.detail.style.height = '300px'
+      this.$refs.myContainer.style.posiiton = ''
+      this.$refs.detail.style.posiiton = ''
+      this.$refs.detail.style.zIndex = ''
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .search{margin-top:10px;height: 40px;}
+  .operation{height: 50px;}
+  .table{margin-top:5px;}
+  .table2{margin-top:10px;}
+  $width:350px;
+  $left:325px;
+  .selectInput{
+    position: relative;
+    display: inline-block;
+    .Input{width: $width;position: relative;}
+    .el-icon-arrow-down{width: 30px;height: 30px;position: absolute;left: $left;top:10px;color:#C0C4CC;}
+    .el-icon-arrow-up{width: 30px;height: 30px;position: absolute;left: $left;top:10px;color:#C0C4CC;}
+    .selectUl{
+      height:220px;overflow-y: auto;z-index: 111;width: $width;background: #fff;border: 1px solid #E4E7ED;box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);margin: -1px 0 0 0;padding: 6px 0; margin: 0;box-sizing: border-box;position: absolute;
+      li{
+        list-style: none;font-size: 14px; padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #606266; height: 50px; line-height: 50px; box-sizing: border-box; cursor: pointer;
+        a{float:left;width: 80px;}
+        a:hover{color: rgba(0, 204, 102, 0.71); font-weight: 700;}
+      }
+    }
+  }
+  .template{
+    background: #fff;
+    position: relative;
+  }
+  .app-container{background: #fff;}
+  .detail{
+    background: #fff;
+    overflow-y: hidden;
+    overflow-x: hidden;
+    // position: fixed;
+    // bottom: 0;
+    // right:0;
+    z-index: 3;
+    // width: calc(100% - 210px);
+    position: relative;
+  }
+  .hide2{float: right;right:0;}
+  .templateDialog{
+    background: #fff;
+    position: relative;
+  }
+ .detailDialog{
+    background: #fff;
+    position: relative;
+  }
+  .hide{float: right;margin-right: 60px;}
+ </style>
+ <style>
+  .el-color-dropdown__main-wrapper{display: none !important;}
+  .el-color-dropdown__value{display: none !important;}
+  .el-color-dropdown__btns .el-button--text{display: none !important;}
+ </style>

+ 7 - 1
src/views/shedProduction/formulaDryMatter/historyRecord.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-table">
     <div class="search">
-      <el-date-picker v-model="table.getdataListParm.parammaps.changeTime" class="filter-item" type="date" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="年/月/日" />
+      <el-date-picker v-model="table.getdataListParm.parammaps.changeTime" :clearable="true" class="filter-item" type="date" style="width: 250px;top:-3px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="年/月/日" @change="changeTime" />
       <el-button class="successBorder" @click="handleSearch">查询</el-button>
       <el-button class="successBorder" @click="handleRefresh">重置</el-button>
     </div>
@@ -138,6 +138,12 @@ export default {
     this.getList()
   },
   methods: {
+    changeTime(item){
+      console.log(item)
+      if(item == null){
+        this.table.getdataListParm.parammaps.changeTime = ''
+      }
+    },
     changeDate() {
       this.getList()
     },

+ 126 - 63
src/views/statisticalAnalysis/errorAnalysis/group/tab1.vue

@@ -338,11 +338,11 @@
       <div class="app-pasture">
         <div class="search">
           <span style="margin-left: 10px;">统计类型:</span>
-          <el-radio v-model="pasture.radio" label="1" @change="changeRadio">配方名称</el-radio>
-          <el-radio v-model="pasture.radio" label="2" @change="changeRadio">栏舍名称</el-radio>
-          <el-radio v-model="pasture.radio" label="3" @change="changeRadio">牲畜类别</el-radio>
-          <el-radio v-model="pasture.radio" label="4" @change="changeRadio">车次</el-radio>
+          <el-select v-model="pasture.radio" placeholder="统计类型" class="filter-item" style="width: 120px;" @change="changeRadio">
+            <el-option v-for="item in statisticalTypeList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
           <el-checkbox v-model="pasture.checked" style="margin-right: 10px;" @change="changeChecked">按日期统计</el-checkbox>
+          <el-input v-if="pasture.isDriver" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="驾驶员" />
           <el-input v-if="pasture.isFormulaName" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="配方名称" />
           <el-input v-if="pasture.isHouseName" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="栏舍名称" />
           <el-input v-if="pasture.isLivestockType" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="牲畜名称" />
@@ -368,26 +368,27 @@
           >
 
             <el-table-column v-if="pasture.checked" :key="0" sortable label="日期" min-width="110px" align="center" prop="计划时间" />
-            <el-table-column v-if="pasture.isFormulaName" :key="1" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
-            <el-table-column v-if="pasture.isHouseName" :key="2" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
-            <el-table-column v-if="pasture.isLivestockType" :key="3" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="4" sortable label="车次" min-width="110px" align="center" prop="车次" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="班次" min-width="110px" align="center" prop="班次" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
-            <el-table-column :key="8" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
-            <el-table-column :key="9" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
-            <el-table-column :key="10" sortable label="计划混料操作数" min-width="110px" align="center" prop="计划混料操作数" />
-            <el-table-column :key="11" sortable label="已混料操作数" min-width="110px" align="center" prop="已混料操作数" />
-            <el-table-column :key="12" sortable label="混料操作率" min-width="110px" align="center" prop="混料操作率" />
-            <el-table-column :key="13" sortable label="混料误差值" min-width="110px" align="center" prop="混料误差值" />
-            <el-table-column :key="14" sortable label="混料准确率" min-width="110px" align="center" prop="混料准确率" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="15" sortable label="混料时间" min-width="100px" align="center" prop="混料时间" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
-            <el-table-column :key="17" sortable label="混料自动跳转次数" min-width="110px" align="center" prop="混料自动跳转次数" />
-            <el-table-column :key="18" sortable label="混料手动跳转次数" min-width="110px" align="center" prop="混料手动跳转次数" />
-            <el-table-column :key="19" sortable label="取消次数" min-width="110px" align="center" prop="取消次数" />
-            <el-table-column :key="20" sortable label="方差" min-width="110px" align="center" prop="方差" />
+            <el-table-column v-if="pasture.isDriver" :key="1" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column v-if="pasture.isFormulaName" :key="2" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
+            <el-table-column v-if="pasture.isHouseName" :key="3" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="pasture.isLivestockType" :key="4" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="车次" min-width="110px" align="center" prop="车次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="班次" min-width="110px" align="center" prop="班次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="8" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column :key="9" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
+            <el-table-column :key="10" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
+            <el-table-column :key="11" sortable label="计划混料操作数" min-width="110px" align="center" prop="计划混料操作数" />
+            <el-table-column :key="12" sortable label="已混料操作数" min-width="110px" align="center" prop="已混料操作数" />
+            <el-table-column :key="13" sortable label="混料操作率" min-width="110px" align="center" prop="混料操作率" />
+            <el-table-column :key="14" sortable label="混料误差值" min-width="110px" align="center" prop="混料误差值" />
+            <el-table-column :key="15" sortable label="混料准确率" min-width="110px" align="center" prop="混料准确率" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="混料时间" min-width="100px" align="center" prop="混料时间" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="17" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
+            <el-table-column :key="18" sortable label="混料自动跳转次数" min-width="110px" align="center" prop="混料自动跳转次数" />
+            <el-table-column :key="19" sortable label="混料手动跳转次数" min-width="110px" align="center" prop="混料手动跳转次数" />
+            <el-table-column :key="20" sortable label="取消次数" min-width="110px" align="center" prop="取消次数" />
+            <el-table-column :key="21" sortable label="方差" min-width="110px" align="center" prop="方差" />
           </el-table>
           <h4>撒料</h4>
           <el-table
@@ -404,24 +405,25 @@
             class="elTable table-fixed"
           >
             <el-table-column v-if="pasture.checked" :key="0" sortable label="日期" min-width="110px" align="center" prop="计划时间" />
-            <el-table-column v-if="pasture.isFormulaName" :key="1" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
-            <el-table-column v-if="pasture.isHouseName" :key="2" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
-            <el-table-column v-if="pasture.isLivestockType" :key="3" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="4" sortable label="车次" min-width="110px" align="center" prop="车次" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="班次" min-width="110px" align="center" prop="班次" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="TMR名称" min-width="110px" align="center" prop="TMR" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
-            <el-table-column :key="8" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
-            <el-table-column :key="9" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
-            <el-table-column :key="10" sortable label="计划撒料操作数" min-width="110px" align="center" prop="计划撒料操作数" />
-            <el-table-column :key="11" sortable label="已撒料操作数" min-width="110px" align="center" prop="已撒料操作数" />
-            <el-table-column :key="12" sortable label="撒料操作率" min-width="110px" align="center" prop="撒料操作率" />
-            <el-table-column :key="13" sortable label="撒料误差值" min-width="110px" align="center" prop="撒料误差值" />
-            <el-table-column :key="14" sortable label="撒料准确率" min-width="110px" align="center" prop="撒料准确率" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="15" sortable label="撒料时间" min-width="100px" align="center" prop="撒料时间" />
-            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
-            <el-table-column :key="17" sortable label="撒料自动跳转次数" min-width="110px" align="center" prop="撒料自动跳转次数" />
-            <el-table-column :key="18" sortable label="撒料手动跳转次数" min-width="110px" align="center" prop="撒料手动跳转次数" />
+            <el-table-column v-if="pasture.isDriver" :key="1" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column v-if="pasture.isFormulaName" :key="2" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
+            <el-table-column v-if="pasture.isHouseName" :key="3" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="pasture.isLivestockType" :key="4" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="车次" min-width="110px" align="center" prop="车次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="班次" min-width="110px" align="center" prop="班次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="TMR名称" min-width="110px" align="center" prop="TMR" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="8" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column :key="9" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
+            <el-table-column :key="10" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
+            <el-table-column :key="11" sortable label="计划撒料操作数" min-width="110px" align="center" prop="计划撒料操作数" />
+            <el-table-column :key="12" sortable label="已撒料操作数" min-width="110px" align="center" prop="已撒料操作数" />
+            <el-table-column :key="13" sortable label="撒料操作率" min-width="110px" align="center" prop="撒料操作率" />
+            <el-table-column :key="14" sortable label="撒料误差值" min-width="110px" align="center" prop="撒料误差值" />
+            <el-table-column :key="15" sortable label="撒料准确率" min-width="110px" align="center" prop="撒料准确率" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="撒料时间" min-width="100px" align="center" prop="撒料时间" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="17" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
+            <el-table-column :key="18" sortable label="撒料自动跳转次数" min-width="110px" align="center" prop="撒料自动跳转次数" />
+            <el-table-column :key="19" sortable label="撒料手动跳转次数" min-width="110px" align="center" prop="撒料手动跳转次数" />
           </el-table>
         </div>
       </div>
@@ -709,8 +711,9 @@ export default {
       pasture: {
         dialogFormVisible: false,
         dialogStatus: '',
-        radio: '1',
-        isFormulaName: true, // 配方名称
+        radio: '0',
+        isDriver: true, // 驾驶员
+        isFormulaName: false, // 配方名称
         isHouseName: false, // 栏舍名称
         isLivestockType: false, // 牲畜类别
         isTrainNumber: false, // 车次
@@ -764,6 +767,7 @@ export default {
       textMap: {
         pasture: '牧场'
       },
+      statisticalTypeList: [{ id: '0', name: '驾驶员' }, { id: '1', name: '配方名称' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '牲畜类别' }, { id: '4', name: '车次' }],
       rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
       cellStyle: { padding: 0 + 'px' }
     }
@@ -941,8 +945,23 @@ export default {
       this.pasture.table2.getdataListParm.parammaps.times = ''
       this.pasture.table2.getdataListParm.parammaps.fname = ''
       if (this.pasture.checked == true) {
-        if (this.pasture.radio == '1') {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员')
+          this.pasture.isDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
           console.log('配方名称')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = true
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
@@ -956,12 +975,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '2') {
           console.log('栏舍名称')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = true
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHNSDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySNSDate'
@@ -970,12 +989,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '3') {
           console.log(' 牲畜类别')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = true
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHSCDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySSCDate'
@@ -985,12 +1004,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '4') {
           console.log('车次')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = true
           this.pasture.table.getdataListParm.name = 'getAccuracyHCCDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySCCDate'
@@ -1000,14 +1019,28 @@ export default {
           this.getTabList2()
         }
       } else {
-        if (this.pasture.radio == '1') {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员')
+          this.pasture.isDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
           console.log('配方名称')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = true
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
@@ -1016,12 +1049,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '2') {
           console.log('栏舍名称')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = true
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHNS'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySNS'
@@ -1030,12 +1063,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '3') {
           console.log(' 牲畜类别')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = true
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHSC'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySSC'
@@ -1045,12 +1078,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '4') {
           console.log('车次')
+          this.pasture.isDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = true
           this.pasture.table.getdataListParm.name = 'getAccuracyHCC'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySCC'
@@ -1066,14 +1099,29 @@ export default {
     },
     handleSearch() {
       if (this.pasture.checked == true) {
-        if (this.pasture.radio == '1') {
+        if (this.pasture.radio == '0') {
+          console.log('配方名称/查询111')
+          this.pasture.idDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
           console.log('配方名称/查询111')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = true
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
@@ -1083,12 +1131,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '2') {
           console.log('栏舍名称/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = true
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHNSDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySNSDate'
@@ -1098,12 +1146,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '3') {
           console.log(' 牲畜类别/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = true
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHSCDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySSCDate'
@@ -1113,12 +1161,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '4') {
           console.log('车次/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = true
           this.pasture.table.getdataListParm.name = 'getAccuracyHCCDate'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySCCDate'
@@ -1131,14 +1179,29 @@ export default {
           this.getTabList2()
         }
       } else {
-        if (this.pasture.radio == '1') {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员/查询')
+          this.pasture.idDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
           console.log('配方名称/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = true
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
@@ -1148,12 +1211,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '2') {
           console.log('栏舍名称/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = true
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHNS'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySNS'
@@ -1163,12 +1226,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '3') {
           console.log(' 牲畜类别/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = true
           this.pasture.isTrainNumber = false
           this.pasture.table.getdataListParm.name = 'getAccuracyHSC'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySSC'
@@ -1178,12 +1241,12 @@ export default {
           this.getTabList2()
         } else if (this.pasture.radio == '4') {
           console.log('车次/查询')
+          this.pasture.idDriver = false
           this.pasture.isFormulaName = false
           this.pasture.isHouseName = false
           this.pasture.isLivestockType = false
           this.pasture.isTrainNumber = true
           this.pasture.table.getdataListParm.name = 'getAccuracyHCC'
-
           this.pasture.table.getdataListParm.offset = 1
           this.getTabList()
           this.pasture.table2.getdataListParm.name = 'getAccuracySCC'

+ 2802 - 0
src/views/statisticalAnalysis/errorAnalysis/group/tab1改.vue

@@ -0,0 +1,2802 @@
+<template>
+  <div class="app-container1">
+    <div class="search">
+      <el-date-picker
+        ref="inputDatetime"
+        v-model="table.getdataListParm.parammaps.inputDatetime"
+        :clearable="false"
+        class="inputDatetime filter-item"
+        type="daterange"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        style="width: 250px;"
+        :picker-options="pickerOptions"
+        @change="changeDate"
+      />
+      <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />
+      <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />
+      <el-button class="export" @click="handleDownload">导出</el-button>
+      <svg-icon icon-class="Up" class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
+    </div>
+    <div id="table" class="table">
+      <h4>混料</h4>
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="tableCellStyle"
+        class="elTable table-fixed"
+      >
+        <el-table-column sortable label="牧场" min-width="90px" align="center">
+          <template slot-scope="{row}">
+            <a @click="clickPasture(row)">{{ row.pasturename }}</a>
+          </template>
+        </el-table-column>
+        <el-table-column sortable label="理论重量" min-width="90px" align="center" prop="理论重量" />
+        <el-table-column sortable label="实际重量" min-width="90px" align="center" prop="实际重量" />
+        <el-table-column sortable label="计划混料操作数" min-width="100px" align="center" prop="计划混料操作数" />
+        <el-table-column sortable label="已混料操作数" min-width="90px" align="center" prop="已混料操作数" />
+        <el-table-column sortable label="混料操作率" min-width="90px" align="center" prop="混料操作率" />
+        <el-table-column sortable label="混料误差值" min-width="90px" align="center" prop="混料误差值" />
+        <el-table-column sortable label="混料准确率" min-width="90px" align="center" prop="混料准确率" />
+        <el-table-column sortable label="取消次数" min-width="90px" align="center" prop="取消次数" />
+        <el-table-column :key="20" sortable label="混料正确数" min-width="90px" align="center" prop="混料正确数" />
+        <el-table-column :key="21" sortable label="混料正确率" min-width="90px" align="center" prop="混料正确率" />
+        <el-table-column :key="22" sortable label="去除取消正确率" min-width="90px" align="center" prop="去除取消正确率" />
+        <el-table-column sortable label="标准差" min-width="90px" align="center" prop="方差" />
+      </el-table>
+      <h4>撒料</h4>
+      <el-table
+        :key="table2.tableKey"
+        v-loading="table2.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table2.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="tableCellStyle"
+        class="elTable table-fixed"
+      >
+        <el-table-column sortable label="牧场" min-width="90px" align="center">
+          <template slot-scope="{row}">
+            <a @click="clickPasture(row)">{{ row.pasturename }}</a>
+          </template>
+        </el-table-column>
+        <el-table-column sortable label="理论重量" min-width="90px" align="center" prop="理论重量" />
+        <el-table-column sortable label="实际重量" min-width="90px" align="center" prop="实际重量" />
+        <el-table-column sortable label="计划撒料操作数" min-width="100px" align="center" prop="计划撒料操作数" />
+        <el-table-column sortable label="已撒料操作数" min-width="90px" align="center" prop="已撒料操作数" />
+        <el-table-column sortable label="撒料操作率" min-width="90px" align="center" prop="撒料操作率" />
+        <el-table-column sortable label="撒料误差值" min-width="90px" align="center" prop="撒料误差值" />
+        <el-table-column sortable label="撒料准确率" min-width="90px" align="center" prop="撒料准确率" />
+        <el-table-column sortable label="撒料自动跳转次数" min-width="90px" align="center" prop="撒料自动跳转次数" />
+        <el-table-column sortable label="撒料手动跳转次数" min-width="90px" align="center" prop="撒料手动跳转次数" />
+        <el-table-column :key="20" sortable label="撒料正确数" min-width="90px" align="center" prop="撒料正确数" />
+        <el-table-column :key="21" sortable label="撒料正确率" min-width="90px" align="center" prop="撒料正确率" />
+        <el-table-column :key="22" sortable label="去除取消正确率" min-width="90px" align="center" prop="去除取消正确率" />
+        <el-table-column sortable label="标准差" min-width="90px" align="center" prop="方差" />
+      </el-table>
+    </div>
+    <div class="AnalysisChart">
+      <el-row :gutter="10">
+        <el-col :span="24" style="margin-bottom: 10px;margin-top: 10px;">
+          <span>图表查询时间:</span>
+          <el-radio-group v-model="specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeAllSpecificDate">
+            <el-radio-button label="1" border>日</el-radio-button>
+            <el-radio-button label="2" border>周</el-radio-button>
+            <el-radio-button label="3" border>月</el-radio-button>
+          </el-radio-group>
+          <div v-show="specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+            <el-date-picker v-model="chartDate" :clearable="false" class="inputDatetime filter-item" style="width:250px;" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+          </div>
+          <div v-show="specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+            <el-select v-model="selectYear" class="filter-item" style="width:130px;margin-right:10px;" placeholder="请选择年份" @change="changeAllYear">
+              <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+            </el-select>
+            <el-select v-model="selectWeek" class="filter-item" style="width:170px;" multiple :multiple-limit="2" placeholder="请选择周">
+              <el-option v-for="(item,index) in weekList" :key="index" :label="item.name" :value="item.id" />
+            </el-select>
+          </div>
+          <div v-show="specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+            <el-date-picker v-model="chartMonth" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" style="width:250px;" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+          </div>
+          <el-button class="successBorder" style="margin-left:10px;" @click="handleAllDate">确认</el-button>
+          <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
+        </el-col>
+      </el-row>
+      <el-row :gutter="10" class="dashboard-editor-container">
+        <!-- 计划统计 -->
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>计划统计</h4>
+            <div v-if="chart1.isChart" class="button">
+              <div class="chartButton">
+                <el-radio-group v-model="chart1.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart1')">
+                  <el-radio-button label="1" border>日</el-radio-button>
+                  <el-radio-button label="2" border>周</el-radio-button>
+                  <el-radio-button label="3" border>月</el-radio-button>
+                </el-radio-group>
+                <div v-show="chart1.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart1.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                </div>
+                <div v-show="chart1.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                  <el-select v-model="chart1.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart1')">
+                    <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+                  </el-select>
+                  <el-select v-model="chart1.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                    <el-option v-for="(item,index) in chart1.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </div>
+                <div v-show="chart1.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart1.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                </div>
+                <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart1')">确认</el-button>
+              </div>
+              <div>
+                <div class="exportTable2" @click="handleExport('chart1')">导出</div>
+                <div class="exportTable2" @click="handleTable('chart1')">切换表格</div>
+              </div>
+            </div>
+            <div v-if="chart1.isChart" id="chartLine1" v-loading="chart1.listLoading" style="width:100%;height:400px;background: #fff;" />
+            <div v-if="chart1.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart1')">导出</div>
+                <div class="exportTable" @click="handleChart('chart1')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart1.table.tableKey"
+                v-loading="chart1.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart1.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column label="牧场" sortable min-width="85px" align="center" prop="牧场" />
+                <el-table-column label="计划执行重量(kg)" sortable min-width="85px" align="center" prop="实际量" />
+                <el-table-column label="配方理论重量(kg)" sortable min-width="85px" align="center" prop="理论量" />
+                <el-table-column label="计划准确率" sortable min-width="80px" align="center" prop="field1" />
+                <el-table-column label="计划取消重量(kg)" sortable min-width="85px" align="center" prop="计划取消重量" />
+                <el-table-column label="计划准确率(去除取消重量)" sortable min-width="110px" align="center" prop="field3" />
+                <el-table-column label="计划正确数" sortable min-width="80px" align="center" prop="正确数" />
+                <el-table-column label="计划数" sortable min-width="70px" align="center" prop="计划数" />
+                <el-table-column label="计划正确率" sortable min-width="80px" align="center" prop="field2" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+        <!-- 牛群准确率 -->
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>牛群准确率</h4>
+            <div v-if="chart2.isChart" class="button">
+              <div class="chartButton">
+                <el-radio-group v-model="chart2.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart2')">
+                  <el-radio-button label="1" border>日</el-radio-button>
+                  <el-radio-button label="2" border>周</el-radio-button>
+                  <el-radio-button label="3" border>月</el-radio-button>
+                </el-radio-group>
+                <div v-show="chart2.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart2.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                </div>
+                <div v-show="chart2.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                  <el-select v-model="chart2.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart2')">
+                    <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+                  </el-select>
+                  <el-select v-model="chart2.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                    <el-option v-for="(item,index) in chart2.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </div>
+                <div v-show="chart2.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart2.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                </div>
+                <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart2')">确认</el-button>
+              </div>
+              <div>
+                <div class="exportTable2" @click="handleExport('chart2')">导出</div>
+                <div class="exportTable2" @click="handleTable('chart2')">切换表格</div>
+              </div>
+            </div>
+            <div v-if="chart2.isChart" id="chartLine2" style="width:100%;height:400px;" />
+            <div v-if="chart2.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart2')">导出</div>
+                <div class="exportTable" @click="handleChart('chart2')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart2.table.tableKey"
+                v-loading="chart2.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart2.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column label="牧场" sortable min-width="90px" align="center" prop="牧场" />
+                <el-table-column label="牲畜类别" sortable min-width="90px" align="center" prop="field5" />
+                <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
+                <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
+                <el-table-column label="准确率" sortable min-width="90px" align="center" prop="field1" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10" class="dashboard-editor-container">
+        <!-- 混料次数统计 -->
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>混料次数统计</h4>
+            <div v-if="chart3.isChart" class="button">
+              <div class="chartButton">
+                <el-radio-group v-model="chart3.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart3')">
+                  <el-radio-button label="1" border>日</el-radio-button>
+                  <el-radio-button label="2" border>周</el-radio-button>
+                  <el-radio-button label="3" border>月</el-radio-button>
+                </el-radio-group>
+                <div v-show="chart3.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart3.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                </div>
+                <div v-show="chart3.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                  <el-select v-model="chart3.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart3')">
+                    <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+                  </el-select>
+                  <el-select v-model="chart3.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                    <el-option v-for="(item,index) in chart3.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </div>
+                <div v-show="chart3.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart3.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                </div>
+                <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart3')">确认</el-button>
+              </div>
+              <div>
+                <div class="exportTable2" @click="handleExport('chart3')">导出</div>
+                <div class="exportTable2" @click="handleTable('chart3')">切换表格</div>
+              </div>
+            </div>
+            <div v-if="chart3.isChart" id="chartLine3" style="width:100%;height:400px;" />
+            <div v-if="chart3.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart3')">导出</div>
+                <div class="exportTable" @click="handleChart('chart3')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart3.table.tableKey"
+                v-loading="chart3.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart3.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column label="牧场" sortable min-width="90px" align="center" prop="牧场" />
+                <el-table-column label="自动跳转次数" sortable min-width="90px" align="center" prop="field1" />
+                <el-table-column label="手动跳转次数" sortable min-width="100px" align="center" prop="field2" />
+                <el-table-column label="混料取消次数" sortable min-width="100px" align="center" prop="field5" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+        <!-- 混料准确率统计 -->
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>混料准确率统计</h4>
+            <div v-if="chart4.isChart" class="button">
+              <div class="chartButton">
+                <el-radio-group v-model="chart4.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart4')">
+                  <el-radio-button label="1" border>日</el-radio-button>
+                  <el-radio-button label="2" border>周</el-radio-button>
+                  <el-radio-button label="3" border>月</el-radio-button>
+                </el-radio-group>
+                <div v-show="chart4.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart4.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                </div>
+                <div v-show="chart4.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                  <el-select v-model="chart4.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart4')">
+                    <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+                  </el-select>
+                  <el-select v-model="chart4.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                    <el-option v-for="(item,index) in chart4.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </div>
+                <div v-show="chart4.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart4.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                </div>
+                <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart4')">确认</el-button>
+              </div>
+              <div>
+                <div class="exportTable2" @click="handleExport('chart4')">导出</div>
+                <div class="exportTable2" @click="handleTable('chart4')">切换表格</div>
+              </div>
+            </div>
+            <div v-if="chart4.isChart" id="chartLine4" style="width:100%;height:400px;" />
+            <div v-if="chart4.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart4')">导出</div>
+                <div class="exportTable" @click="handleChart('chart4')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart4.table.tableKey"
+                v-loading="chart4.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart4.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column sortable label="牧场" sortable min-width="90px" align="center" prop="牧场" />
+                <el-table-column label="自动跳转次数" sortable min-width="80px" align="center" prop="field3" />
+                <el-table-column label="手动跳转次数" sortable min-width="80px" align="center" prop="field4" />
+                <el-table-column label="自动跳转理论重量" sortable min-width="85px" align="center" prop="理论自动" />
+                <el-table-column label="自动跳转实际重量" sortable min-width="85px" align="center" prop="实际自动" />
+                <el-table-column label="自动跳转准确率" sortable min-width="85px" align="center" prop="field1" />
+                <el-table-column label="手动跳转理论重量" sortable min-width="85px" align="center" prop="理论手动" />
+                <el-table-column label="手动跳转实际重量" sortable min-width="85px" align="center" prop="实际手动" />
+                <el-table-column label="手动跳转准确率" sortable min-width="85px" align="center" prop="field2" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+
+      <el-row :gutter="10" class="dashboard-editor-container">
+        <!-- 栏舍平均撒料时间统计 -->
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>栏舍平均撒料时间统计</h4>
+            <div v-if="chart5.isChart" class="button">
+              <div class="chartButton">
+                <el-radio-group v-model="chart5.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart5')">
+                  <el-radio-button label="1" border>日</el-radio-button>
+                  <el-radio-button label="2" border>周</el-radio-button>
+                  <el-radio-button label="3" border>月</el-radio-button>
+                </el-radio-group>
+                <div v-show="chart5.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart5.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                </div>
+                <div v-show="chart5.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                  <el-select v-model="chart5.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart5')">
+                    <el-option v-for="item in yearList" :key="item" :label="item" :value="item" />
+                  </el-select>
+                  <el-select v-model="chart5.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                    <el-option v-for="(item,index) in chart5.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </div>
+                <div v-show="chart5.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                  <el-date-picker v-model="chart5.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                </div>
+                <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart5')">确认</el-button>
+              </div>
+              <div>
+                <div class="exportTable2" @click="handleExport('chart5')">导出</div>
+                <div class="exportTable2" @click="handleTable('chart5')">切换表格</div>
+              </div>
+            </div>
+            <div v-if="chart5.isChart" id="chartLine5" style="width:100%;height:400px;" />
+            <div v-if="chart5.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart5')">导出</div>
+                <div class="exportTable" @click="handleChart('chart5')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart5.table.tableKey"
+                v-loading="chart5.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart5.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column label="日期" sortable min-width="85px" align="center" prop="日期" />
+                <el-table-column label="牧场" sortable min-width="80px" align="center" prop="名称" />
+                <el-table-column label="平均撒料时间" sortable min-width="80px" align="center" prop="准确率" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="12">
+          <div class="grid-content">
+            <h4>混料计划取消次数</h4>
+            <div v-if="chart6.isChart" class="button">
+              <el-date-picker v-model="chart6.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime" type="daterange" range-separator="至" start-placeholder="开始日期" :picker-options="pickerOptions" end-placeholder="结束日期" @change="changeChartDate('chart6')" />
+              <div class="exportTable" @click="handleExport('chart6')">导出</div>
+              <div class="exportTable" @click="handleTable('chart6')">切换表格</div>
+            </div>
+            <div v-if="chart6.isChart" id="chartLine6" style="width:100%;height:400px;" />
+            <div v-if="chart6.isTable" class="table">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('chart6')">导出</div>
+                <div class="exportTable" @click="handleChart('chart6')">切换图表</div>
+              </div>
+              <el-table
+                :key="chart6.table.tableKey"
+                v-loading="chart6.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="chart6.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                height="400"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column label="牧场" sortable min-width="85px" align="center" prop="牧场" />
+                <el-table-column label="日期" sortable min-width="80px" align="center" prop="日期" />
+                <el-table-column label="取消次数" sortable min-width="80px" align="center" prop="field1" />
+              </el-table>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+
+    <el-dialog :title="textMap[pasture.dialogStatus]" :destroy-on-close="true" :visible.sync="pasture.dialogFormVisible" :close-on-click-modal="false" width="90%">
+      <div class="app-pasture">
+        <div class="search">
+          <span style="margin-left: 10px;">统计类型:</span>
+          <el-select v-model="pasture.radio" placeholder="统计类型" class="filter-item" style="width: 120px;" @change="changeRadio">
+            <el-option v-for="item in statisticalTypeList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-checkbox v-model="pasture.checked" style="margin-right: 10px;" @change="changeChecked">按日期统计</el-checkbox>
+          <el-input v-if="pasture.isDriver" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="驾驶员" />
+          <el-input v-if="pasture.isFormulaName" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="配方名称" />
+          <el-input v-if="pasture.isHouseName" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="栏舍名称" />
+          <el-input v-if="pasture.isLivestockType" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 245px;" placeholder="牲畜名称" />
+          <el-input v-if="pasture.isTrainNumber" v-model="pasture.table.getdataListParm.parammaps.sort" class="filter-item" style="width: 150px;" placeholder="车次" />
+          <el-input v-if="pasture.isTrainNumber" v-model="pasture.table.getdataListParm.parammaps.times" class="filter-item" style="width: 150px;" placeholder="班次" />
+          <el-input v-if="pasture.isTrainNumber" v-model="pasture.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 150px;" placeholder="TMR名称" />
+          <el-button class="successBorder" @click="handleSearch">查询</el-button>
+        </div>
+        <div class="table">
+          <h4>混料</h4>
+          <el-table
+            :key="pasture.table.tableKey"
+            v-loading="pasture.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="pasture.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+
+            <el-table-column v-if="pasture.checked" :key="0" sortable label="日期" min-width="110px" align="center" prop="计划时间" />
+            <el-table-column v-if="pasture.isDriver" :key="1" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column v-if="pasture.isFormulaName" :key="2" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
+            <el-table-column v-if="pasture.isHouseName" :key="3" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="pasture.isLivestockType" :key="4" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="车次" min-width="110px" align="center" prop="车次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="班次" min-width="110px" align="center" prop="班次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="TMR名称" min-width="110px" align="center" prop="TMR名称" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="8" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column :key="9" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
+            <el-table-column :key="10" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
+            <el-table-column :key="11" sortable label="计划混料操作数" min-width="110px" align="center" prop="计划混料操作数" />
+            <el-table-column :key="12" sortable label="已混料操作数" min-width="110px" align="center" prop="已混料操作数" />
+            <el-table-column :key="13" sortable label="混料操作率" min-width="110px" align="center" prop="混料操作率" />
+            <el-table-column :key="14" sortable label="混料误差值" min-width="110px" align="center" prop="混料误差值" />
+            <el-table-column :key="15" sortable label="混料准确率" min-width="110px" align="center" prop="混料准确率" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="混料时间" min-width="100px" align="center" prop="混料时间" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="17" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
+            <el-table-column :key="18" sortable label="混料自动跳转次数" min-width="110px" align="center" prop="混料自动跳转次数" />
+            <el-table-column :key="19" sortable label="混料手动跳转次数" min-width="110px" align="center" prop="混料手动跳转次数" />
+            <el-table-column :key="20" sortable label="取消次数" min-width="110px" align="center" prop="取消次数" />
+            <el-table-column :key="21" sortable label="方差" min-width="110px" align="center" prop="方差" />
+          </el-table>
+          <h4>撒料</h4>
+          <el-table
+            :key="pasture.table2.tableKey"
+            v-loading="pasture.table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="pasture.table2.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column v-if="pasture.checked" :key="0" sortable label="日期" min-width="110px" align="center" prop="计划时间" />
+            <el-table-column v-if="pasture.isDriver" :key="1" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column v-if="pasture.isFormulaName" :key="2" sortable label="配方名称" min-width="110px" align="center" prop="配方名称" />
+            <el-table-column v-if="pasture.isHouseName" :key="3" sortable label="栏舍名称" min-width="110px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="pasture.isLivestockType" :key="4" sortable label="牲畜类别" min-width="110px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="5" sortable label="车次" min-width="110px" align="center" prop="车次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="6" sortable label="班次" min-width="110px" align="center" prop="班次" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="7" sortable label="TMR名称" min-width="110px" align="center" prop="TMR" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="8" sortable label="驾驶员" min-width="110px" align="center" prop="驾驶员" />
+            <el-table-column :key="9" sortable label="理论重量" min-width="110px" align="center" prop="理论重量" />
+            <el-table-column :key="10" sortable label="实际重量" min-width="110px" align="center" prop="实际重量" />
+            <el-table-column :key="11" sortable label="计划撒料操作数" min-width="110px" align="center" prop="计划撒料操作数" />
+            <el-table-column :key="12" sortable label="已撒料操作数" min-width="110px" align="center" prop="已撒料操作数" />
+            <el-table-column :key="13" sortable label="撒料操作率" min-width="110px" align="center" prop="撒料操作率" />
+            <el-table-column :key="14" sortable label="撒料误差值" min-width="110px" align="center" prop="撒料误差值" />
+            <el-table-column :key="15" sortable label="撒料准确率" min-width="110px" align="center" prop="撒料准确率" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="16" sortable label="撒料时间" min-width="100px" align="center" prop="撒料时间" />
+            <el-table-column v-if="pasture.isTrainNumber" :key="17" sortable label="等待时间" min-width="100px" align="center" prop="等待时间" />
+            <el-table-column :key="18" sortable label="撒料自动跳转次数" min-width="110px" align="center" prop="撒料自动跳转次数" />
+            <el-table-column :key="19" sortable label="撒料手动跳转次数" min-width="110px" align="center" prop="撒料手动跳转次数" />
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose1" @click="pasture.dialogFormVisible = false; ">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import echarts from 'echarts'
+require('echarts/theme/macarons')
+import { GetDataByName, GetReportform, whichWeek } from '@/api/common'
+import Cookies from 'js-cookie'
+import { parseTime } from '@/utils/index.js'
+import { json2excel } from '@/utils/index.js'
+import { MessageBox } from 'element-ui'
+export default {
+  name: 'Tab1',
+  data() {
+    return {
+      Beforedisabled: false,
+      Nextdisabled: false,
+      pickerMinMonth: '',
+      pickerOptionsMonth: {
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinMonth = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinMonth = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinMonth !== '') {
+            const one = 24 * 3600 * 1000 * 365 * 5
+            const minTime = this.pickerMinMonth - 0
+            let maxTime = this.pickerMinMonth + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() >= Date.now()
+        }
+      },
+      pickerMinDate: '',
+      pickerOptionsDate: {
+        showWeekNumber: false,
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinDate = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinDate = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinDate !== '') {
+            const one = 31 * 24 * 3600 * 1000
+            const minTime = this.pickerMinDate - one
+            let maxTime = this.pickerMinDate + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() > Date.now()
+        }
+      },
+      pickerMinDate: '',
+      pickerOptions: {
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinDate = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinDate = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinDate !== '') {
+            const one = 31 * 24 * 3600 * 1000
+            const minTime = this.pickerMinDate - one
+            let maxTime = this.pickerMinDate + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() > Date.now()
+        }
+      },
+      chartDate: [],
+      selectWeek: [],
+      chartMonth: [],
+      specificDate: '1',
+      selectYear: parseTime(new Date(), '{y}'),
+      yearList: [],
+      weekList: [],
+      table: {
+        getdataListParm: {
+          name: 'getAccuracyJTHALL',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            fname: '',
+            sort: '',
+            times: ''
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      table2: {
+        getdataListParm: {
+          name: 'getAccuracyJTSALL',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            fname: '',
+            sort: '',
+            times: ''
+          }
+        },
+        tableKey: 2,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      // 计划统计
+      chart1: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getJT1AccuracyAllJH',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        statisticsList: [],
+        chart1Data3: [],
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+
+      // 牛群准确率
+      chart2: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getJT1AccuracyAllNQ',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+      // 混料次数统计
+      chart3: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getJT1AccuracyAllHL',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        statisticsList: [],
+        chart1Data3: [],
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+      // 混料准确率统计
+      chart4: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getJT1AccuracyAllHLRate',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        statisticsList: [],
+        chart4Data3: [],
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+      // 栏舍平均撒料时间统计
+      chart5: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getAccuracyAllLSJT',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+      // 混料准确率统计
+      chart6: {
+        chartLine: null,
+        chartLine_data: {},
+        getdataListParm: {
+          name: 'getJT1AccuracyAllQX',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            chartDate: [],
+            selectWeek: [],
+            chartMonth: [],
+            specificDate: '1',
+            selectYear: parseTime(new Date(), '{y}'),
+            yearList: [],
+            weekList: []
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        statisticsList: [],
+        chart4Data3: [],
+        isChart: true,
+        isTable: false,
+        table: {
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false
+        }
+      },
+      pasture: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        radio: '0',
+        isDriver: true, // 驾驶员
+        isFormulaName: false, // 配方名称
+        isHouseName: false, // 栏舍名称
+        isLivestockType: false, // 牲畜类别
+        isTrainNumber: false, // 车次
+        checked: false, // 按日期统计
+        table: {
+          getdataListParm: {
+            name: 'getAccuracyHFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              startTime: '',
+              stopTime: '',
+              fname: '',
+              sort: '',
+              times: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+
+        table2: {
+          getdataListParm: {
+            name: 'getAccuracySFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              startTime: '',
+              stopTime: '',
+              fname: '',
+              sort: '',
+              times: ''
+            }
+          },
+          tableKey: 2,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        }
+      },
+      textMap: {
+        pasture: '牧场'
+      },
+      statisticalTypeList: [{ id: '0', name: '驾驶员' }, { id: '1', name: '配方名称' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '牲畜类别' }, { id: '4', name: '车次' }],
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' }
+    }
+  },
+  created() {
+    this.getTimeFn()
+    this.getAllYear()
+    this.getList()
+    this.getList2()
+    this.getChart1()
+    this.getChart2()
+    this.getChart3()
+    this.getChart4()
+    this.getChart5()
+    this.getChart6()
+  },
+  methods: {
+    getAllYear() {
+      var myDate = new Date()
+      var thisYear = myDate.getFullYear() // 获取当年年份
+      var Section = thisYear - 2001 // 声明一个变量 获得当前年份至想获取年份差 eg.2008
+      this.yearList = [] // 声明一个空数组 把遍历出的年份添加到数组里
+      for (var i = 0; i <= Section; i++) {
+        this.yearList.push(thisYear--)
+      }
+      console.log(this.yearList)
+    },
+    changeAllYear() {
+      console.log('this.selectYear==>', this.selectYear)
+      this.weekList = []
+      this.selectWeek = []
+      var myWeekList = whichWeek(this.selectYear)
+      console.log(myWeekList)
+      for (let i = 0; i <= myWeekList.length; i++) {
+        var obj = {}
+        var a = i + 1
+        obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+        obj.id = i
+        this.weekList.push(obj)
+      }
+    },
+    changeAllSpecificDate() {
+      var start = ''
+      var end = ''
+      if (this.specificDate == '2') {
+        this.selectYear = parseTime(new Date(), '{y}')
+        this.changeAllYear()
+      } else if (this.specificDate == '3') {
+        start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+        end = parseTime(new Date(), '{y}-{m}-{d}')
+        this.chartMonth = []
+        this.chartMonth.push(start, end)
+      }
+    },
+    handleAllDate() {
+      console.log('点击了确认时间')
+      MessageBox.confirm('是否调整以下所有图表查询时间?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        var startDate = ''
+        var endDate = ''
+        var status = ''
+        if (this.specificDate == '1') {
+          startDate = parseTime(this.chartDate[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chartDate[1], '{y}-{m}-{d}')
+          this.chart1.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.chart2.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.chart3.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.chart4.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.chart5.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.chart6.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          status = 0
+          console.log('开始日时==>', startDate)
+          console.log('结束日时==>', endDate)
+        } else if (this.specificDate == '2') {
+          if (this.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.selectYear + '-' + whichWeek(this.selectYear)[this.selectWeek[0]].month + '-' + whichWeek(this.selectYear)[this.selectWeek[0]].date
+          endDate = this.selectYear + '-' + whichWeek(this.selectYear)[this.selectWeek[1]].last.month + '-' + whichWeek(this.selectYear)[this.selectWeek[1]].last.date
+          status = 1
+          this.chart1.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart1.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart1.getdataListParm.parammaps.weekList = this.weekList
+          this.chart2.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart2.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart2.getdataListParm.parammaps.weekList = this.weekList
+          this.chart3.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart3.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart3.getdataListParm.parammaps.weekList = this.weekList
+          this.chart4.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart4.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart4.getdataListParm.parammaps.weekList = this.weekList
+          this.chart5.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart5.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart5.getdataListParm.parammaps.weekList = this.weekList
+          this.chart6.getdataListParm.parammaps.selectYear = this.selectYear
+          this.chart6.getdataListParm.parammaps.selectWeek = this.selectWeek
+          this.chart6.getdataListParm.parammaps.weekList = this.weekList
+          console.log('开始周时间==>', startDate)
+          console.log('结束周时间==>', endDate)
+        } else if (this.specificDate == '3') {
+          if (this.chartMonth.length > 0) {
+            startDate = this.chartMonth[0]
+            endDate = this.chartMonth[1].substring(0, 8) + '31'
+            status = 2
+            this.chart1.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.chart2.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.chart3.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.chart4.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.chart5.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.chart6.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            console.log('开始月时间==>', startDate)
+            console.log('结束月时间==>', endDate)
+          } else {
+            this.$message({ type: 'error', message: '请输入月', duration: 2000 })
+          }
+        }
+        this.chart1.getdataListParm.parammaps.specificDate = this.specificDate
+        this.chart1.getdataListParm.parammaps.startTime = startDate
+        this.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.chart1.getdataListParm.parammaps.status = status
+        this.chart2.getdataListParm.parammaps.startTime = startDate
+        this.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.chart2.getdataListParm.parammaps.status = status
+        this.chart2.getdataListParm.parammaps.specificDate = this.specificDate
+        this.chart3.getdataListParm.parammaps.startTime = startDate
+        this.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.chart3.getdataListParm.parammaps.status = status
+        this.chart3.getdataListParm.parammaps.specificDate = this.specificDate
+        this.chart4.getdataListParm.parammaps.startTime = startDate
+        this.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.chart4.getdataListParm.parammaps.status = status
+        this.chart4.getdataListParm.parammaps.specificDate = this.specificDate
+        this.chart5.getdataListParm.parammaps.startTime = startDate
+        this.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.chart5.getdataListParm.parammaps.status = status
+        this.chart5.getdataListParm.parammaps.specificDate = this.specificDate
+        this.chart6.getdataListParm.parammaps.startTime = startDate
+        this.chart6.getdataListParm.parammaps.stopTime = endDate
+        this.chart6.getdataListParm.parammaps.status = status
+        this.chart6.getdataListParm.parammaps.specificDate = this.specificDate
+        this.getChart1()
+        this.getChart2()
+        this.getChart3()
+        this.getChart4()
+        this.getChart5()
+        this.getChart6()
+      })
+    },
+    getTimeFn() {
+      const that = this
+      const start = new Date()
+      const end = new Date()
+      const start2 = new Date()
+      const end2 = new Date()
+      start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+      end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
+      that.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
+      that.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
+      that.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
+      that.table2.getdataListParm.parammaps.inputDatetime = that.table.getdataListParm.parammaps.inputDatetime
+      that.table2.getdataListParm.parammaps.startTime = that.table.getdataListParm.parammaps.startTime
+      that.table2.getdataListParm.parammaps.stopTime = that.table.getdataListParm.parammaps.stopTime
+
+      // start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      that.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart1.getdataListParm.parammaps.inputDatetime = [start, end]
+      that.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+      that.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.chart6.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.chart6.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.chart6.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.chart6.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+    },
+    getList() {
+      this.table.listLoading = true
+      GetDataByName(this.table.getdataListParm).then(response => {
+        console.log('汇总统计/混料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.table.list = response.data.list
+        } else {
+          this.table.list = []
+        }
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    // 汇总统计/撒料
+    getList2() {
+      this.table2.listLoading = true
+      GetDataByName(this.table2.getdataListParm).then(response => {
+        console.log('汇总统计/撒料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.table2.list = response.data.list
+        } else {
+          this.table2.list = []
+        }
+        setTimeout(() => {
+          this.table2.listLoading = false
+        }, 100)
+      })
+    },
+    changeDate() {
+      console.log(this.$refs.inputDatetime.value)
+      const startTime = this.$refs.inputDatetime.value[0]
+      const stopTime = this.$refs.inputDatetime.value[1]
+      this.table.getdataListParm.parammaps.startTime = parseTime(startTime, '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(stopTime, '{y}-{m}-{d}')
+      this.table2.getdataListParm.parammaps.startTime = parseTime(startTime, '{y}-{m}-{d}')
+      this.table2.getdataListParm.parammaps.stopTime = parseTime(stopTime, '{y}-{m}-{d}')
+      this.getList()
+      this.getList2()
+    },
+    handleBefore() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        if (stop > Date.now() - 8.64e7) {
+          this.Nextdisabled = true
+          this.Beforedisabled = false
+        } else {
+          this.Nextdisabled = false
+          this.Beforedisabled = false
+        }
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+      this.table2.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.table2.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getList2()
+    },
+    handleNext() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        if (stop2 > Date.now() - 8.64e7) {
+          this.Nextdisabled = true
+          this.Beforedisabled = false
+        } else {
+          this.Nextdisabled = false
+          this.Beforedisabled = false
+        }
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+      this.table2.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.table2.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getList2()
+    },
+    tableCellStyle({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0 && row.pastureid !== '-1') {
+        return {
+          textDecoration: 'underline'
+        }
+      }
+      return {
+        textDecoration: 'none'
+      }
+    },
+    clickPasture(row) {
+      console.log(row)
+      if (row.pastureid !== '-1') {
+        this.pasture.dialogStatus = 'pasture'
+        this.pasture.dialogFormVisible = true
+        this.pasture.table.getdataListParm.parammaps.pastureid = row.pastureid
+        this.pasture.table2.getdataListParm.parammaps.pastureid = row.pastureid
+        this.getTabList()
+        this.getTabList2()
+      }
+    },
+    // 切换统计类型
+    changeRadio() {
+      console.log(this.pasture.radio)
+      this.pasture.table.getdataListParm.parammaps.sort = ''
+      this.pasture.table.getdataListParm.parammaps.times = ''
+      this.pasture.table.getdataListParm.parammaps.fname = ''
+      this.pasture.table2.getdataListParm.parammaps.sort = ''
+      this.pasture.table2.getdataListParm.parammaps.times = ''
+      this.pasture.table2.getdataListParm.parammaps.fname = ''
+      if (this.pasture.checked == true) {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员')
+          this.pasture.isDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
+          console.log('配方名称')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = true
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '2') {
+          console.log('栏舍名称')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = true
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHNSDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySNSDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '3') {
+          console.log(' 牲畜类别')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = true
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHSCDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySSCDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '4') {
+          console.log('车次')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = true
+          this.pasture.table.getdataListParm.name = 'getAccuracyHCCDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySCCDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      } else {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员')
+          this.pasture.isDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
+          console.log('配方名称')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = true
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '2') {
+          console.log('栏舍名称')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = true
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHNS'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySNS'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.pasture.radio == '3') {
+          console.log(' 牲畜类别')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = true
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHSC'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySSC'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '4') {
+          console.log('车次')
+          this.pasture.isDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = true
+          this.pasture.table.getdataListParm.name = 'getAccuracyHCC'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySCC'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      }
+    },
+    changeChecked() {
+      this.handleSearch()
+    },
+    handleSearch() {
+      if (this.pasture.checked == true) {
+        if (this.pasture.radio == '0') {
+          console.log('配方名称/查询111')
+          this.pasture.idDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
+          console.log('配方名称/查询111')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = true
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFTDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '2') {
+          console.log('栏舍名称/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = true
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHNSDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySNSDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '3') {
+          console.log(' 牲畜类别/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = true
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHSCDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySSCDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '4') {
+          console.log('车次/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = true
+          this.pasture.table.getdataListParm.name = 'getAccuracyHCCDate'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySCCDate'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.parammaps.fname = this.pasture.table.getdataListParm.parammaps.fname
+          this.pasture.table2.getdataListParm.parammaps.times = this.pasture.table.getdataListParm.parammaps.times
+          this.pasture.table2.getdataListParm.parammaps.projname = this.pasture.table.getdataListParm.parammaps.projname
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      } else {
+        if (this.pasture.radio == '0') {
+          console.log('驾驶员/查询')
+          this.pasture.idDriver = true
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '1') {
+          console.log('配方名称/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = true
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHFT'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySFT'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '2') {
+          console.log('栏舍名称/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = true
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHNS'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySNS'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '3') {
+          console.log(' 牲畜类别/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = true
+          this.pasture.isTrainNumber = false
+          this.pasture.table.getdataListParm.name = 'getAccuracyHSC'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySSC'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.pasture.radio == '4') {
+          console.log('车次/查询')
+          this.pasture.idDriver = false
+          this.pasture.isFormulaName = false
+          this.pasture.isHouseName = false
+          this.pasture.isLivestockType = false
+          this.pasture.isTrainNumber = true
+          this.pasture.table.getdataListParm.name = 'getAccuracyHCC'
+          this.pasture.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.pasture.table2.getdataListParm.name = 'getAccuracySCC'
+          this.pasture.table2.getdataListParm.parammaps.startTime = this.pasture.table.getdataListParm.parammaps.startTime
+          this.pasture.table2.getdataListParm.parammaps.stopTime = this.pasture.table.getdataListParm.parammaps.stopTime
+          this.pasture.table2.getdataListParm.parammaps.fname = this.pasture.table.getdataListParm.parammaps.fname
+          this.pasture.table2.getdataListParm.parammaps.times = this.pasture.table.getdataListParm.parammaps.times
+          this.pasture.table2.getdataListParm.parammaps.projname = this.pasture.table.getdataListParm.parammaps.projname
+          this.pasture.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      }
+      this.pasture.table2.getdataListParm.parammaps.fname = this.pasture.table.getdataListParm.parammaps.fname
+    },
+    // 汇总统计/混料
+    getTabList() {
+      this.pasture.table.listLoading = true
+      this.pasture.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.pasture.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      GetDataByName(this.pasture.table.getdataListParm).then(response => {
+        console.log('汇总统计/混料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.pasture.table.list = response.data.list
+        } else {
+          this.pasture.table.list = []
+        }
+        setTimeout(() => {
+          this.pasture.table.listLoading = false
+        }, 100)
+      })
+    },
+
+    // 汇总统计/撒料
+    getTabList2() {
+      this.pasture.table2.listLoading = true
+      this.pasture.table2.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.pasture.table2.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      GetDataByName(this.pasture.table2.getdataListParm).then(response => {
+        console.log('汇总统计/撒料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.pasture.table2.list = response.data.list
+        } else {
+          this.pasture.table2.list = []
+        }
+        setTimeout(() => {
+          this.pasture.table2.listLoading = false
+        }, 100)
+      })
+    },
+    // 快速跳转到图表
+    handleQuickJumpChart() {
+      var myHeight = document.getElementById('table').offsetHeight + 120
+      window.scrollTo(myHeight, myHeight)
+    },
+    // 快速回到顶部
+    handleQuickJumpTop() {
+      window.scrollTo(0, 0)
+    },
+    handleChartDate(item) {
+      console.log(item)
+      var startDate = ''
+      var endDate = ''
+      if (item == 'chart1') {
+        if (this.chart1.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          console.log('计划统计开始日期==>', startDate)
+          console.log('计划统计结束日期==>', endDate)
+          this.chart1.getdataListParm.parammaps.status = 0
+        } else if (this.chart1.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart1.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart1.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart1.getdataListParm.parammaps.selectYear)[this.chart1.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart1.getdataListParm.parammaps.selectYear)[this.chart1.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart1.getdataListParm.parammaps.selectYear)[this.chart1.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart1.getdataListParm.parammaps.selectYear)[this.chart1.getdataListParm.parammaps.selectWeek[1]].last.date
+          console.log('计划统计开始周日期==>', startDate)
+          console.log('计划统计结束周日期==>', endDate)
+          this.chart1.getdataListParm.parammaps.status = 1
+        } else if (this.chart1.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.chart1.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart1.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          console.log('计划统计开始月日期==>', startDate)
+          console.log('计划统计结束月日期==>', endDate)
+          this.chart1.getdataListParm.parammaps.status = 2
+        }
+        this.chart1.getdataListParm.parammaps.startTime = startDate
+        this.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.getChart1()
+      } else if (item == 'chart2') {
+        if (this.chart2.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.chart2.getdataListParm.parammaps.status = 0
+          console.log('牛群准确率开始日期==>', startDate)
+          console.log('牛群准确率结束日期==>', endDate)
+        } else if (this.chart2.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart2.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart2.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart2.getdataListParm.parammaps.selectYear)[this.chart2.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart2.getdataListParm.parammaps.selectYear)[this.chart2.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart2.getdataListParm.parammaps.selectYear)[this.chart2.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart2.getdataListParm.parammaps.selectYear)[this.chart2.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.chart2.getdataListParm.parammaps.status = 1
+          console.log('牛群准确率开始周日期==>', startDate)
+          console.log('牛群准确率结束周日期==>', endDate)
+        } else if (this.chart2.getdataListParm.parammaps.specificDate == '3') {
+          console.log('牛群准确率开始月日期==>', this.chart2.getdataListParm.parammaps.chartMonth)
+          startDate = this.chart2.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart2.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.chart2.getdataListParm.parammaps.status = 2
+          console.log('牛群准确率开始月日期==>', startDate)
+          console.log('牛群准确率结束月日期==>', endDate)
+        }
+        this.chart2.getdataListParm.parammaps.startTime = startDate
+        this.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.getChart2()
+      } else if (item == 'chart3') {
+        if (this.chart3.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.chart3.getdataListParm.parammaps.status = 0
+          console.log('混料次数统计开始日期==>', startDate)
+          console.log('混料次数统计结束日期==>', endDate)
+        } else if (this.chart3.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart3.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart3.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart3.getdataListParm.parammaps.selectYear)[this.chart3.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart3.getdataListParm.parammaps.selectYear)[this.chart3.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart3.getdataListParm.parammaps.selectYear)[this.chart3.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart3.getdataListParm.parammaps.selectYear)[this.chart3.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.chart3.getdataListParm.parammaps.status = 1
+          console.log('混料次数统计开始周日期==>', startDate)
+          console.log('混料次数统计结束周日期==>', endDate)
+        } else if (this.chart3.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.chart3.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart3.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.chart3.getdataListParm.parammaps.status = 2
+          console.log('混料次数统计开始月日期==>', startDate)
+          console.log('混料次数统计结束月日期==>', endDate)
+        }
+        this.chart3.getdataListParm.parammaps.startTime = startDate
+        this.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.getChart3()
+      } else if (item == 'chart4') {
+        if (this.chart4.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.chart4.getdataListParm.parammaps.status = 0
+          console.log('混料准确率统计开始日期==>', startDate)
+          console.log('混料准确率统计结束日期==>', endDate)
+        } else if (this.chart4.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart4.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart4.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart4.getdataListParm.parammaps.selectYear)[this.chart4.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart4.getdataListParm.parammaps.selectYear)[this.chart4.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart4.getdataListParm.parammaps.selectYear)[this.chart4.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart4.getdataListParm.parammaps.selectYear)[this.chart4.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.chart4.getdataListParm.parammaps.status = 1
+          console.log('混料准确率统计开始周日期==>', startDate)
+          console.log('混料准确率统计结束周日期==>', endDate)
+        } else if (this.chart4.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.chart4.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart4.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.chart4.getdataListParm.parammaps.status = 2
+          console.log('混料准确率统计开始月日期==>', startDate)
+          console.log('混料准确率统计结束月日期==>', endDate)
+        }
+        this.chart4.getdataListParm.parammaps.startTime = startDate
+        this.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.getChart4()
+      } else if (item == 'chart5') {
+        if (this.chart5.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.chart5.getdataListParm.parammaps.status = 0
+          console.log('栏舍平均撒料时间统计开始日期==>', startDate)
+          console.log('栏舍平均撒料时间统计结束日期==>', endDate)
+        } else if (this.chart5.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart5.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart5.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart5.getdataListParm.parammaps.selectYear)[this.chart5.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart5.getdataListParm.parammaps.selectYear)[this.chart5.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart5.getdataListParm.parammaps.selectYear)[this.chart5.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart5.getdataListParm.parammaps.selectYear)[this.chart5.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.chart5.getdataListParm.parammaps.status = 1
+          console.log('栏舍平均撒料时间统计开始周日期==>', startDate)
+          console.log('栏舍平均撒料时间统计结束周日期==>', endDate)
+        } else if (this.chart5.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.chart5.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart5.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.chart5.getdataListParm.parammaps.status = 2
+          console.log('栏舍平均撒料时间统计开始月日期==>', startDate)
+          console.log('栏舍平均撒料时间统计结束月日期==>', endDate)
+        }
+        this.chart5.getdataListParm.parammaps.startTime = startDate
+        this.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.getChart5()
+      } else if (item == 'chart6') {
+        if (this.chart6.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.chart6.getdataListParm.parammaps.status = 0
+          console.log('混料计划取消次数开始日期==>', startDate)
+          console.log('混料计划取消次数结束日期==>', endDate)
+        } else if (this.chart6.getdataListParm.parammaps.specificDate == '2') {
+          if (this.chart6.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.chart6.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart6.getdataListParm.parammaps.selectYear)[this.chart6.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.chart6.getdataListParm.parammaps.selectYear)[this.chart6.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.chart6.getdataListParm.parammaps.selectYear)[this.chart6.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.chart6.getdataListParm.parammaps.selectYear)[this.chart6.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.chart6.getdataListParm.parammaps.status = 1
+          console.log('混料计划取消次数开始周日期==>', startDate)
+          console.log('混料计划取消次数结束周日期==>', endDate)
+        } else if (this.chart6.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.chart6.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.chart6.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.chart6.getdataListParm.parammaps.status = 2
+          console.log('混料计划取消次数开始月日期==>', startDate)
+          console.log('混料计划取消次数结束月日期==>', endDate)
+        }
+        this.chart6.getdataListParm.parammaps.startTime = startDate
+        this.chart6.getdataListParm.parammaps.stopTime = endDate
+        this.getChart6()
+      }
+    },
+    changeChartSpecificDate(item) {
+      var start = ''
+      var end = ''
+      if (item == 'chart1') {
+        if (this.chart1.getdataListParm.parammaps.specificDate == '2') {
+          this.chart1.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart1.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart1.getdataListParm.parammaps.weekList = []
+          this.chart1.getdataListParm.parammaps.chartMonth = []
+          this.chart1.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart2') {
+        if (this.chart2.getdataListParm.parammaps.specificDate == '2') {
+          this.chart2.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart2.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart2.getdataListParm.parammaps.weekList = []
+          this.chart2.getdataListParm.parammaps.chartMonth = []
+          this.chart2.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart3') {
+        if (this.chart3.getdataListParm.parammaps.specificDate == '2') {
+          this.chart3.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart3.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart3.getdataListParm.parammaps.weekList = []
+          this.chart3.getdataListParm.parammaps.chartMonth = []
+          this.chart3.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart4') {
+        if (this.chart4.getdataListParm.parammaps.specificDate == '2') {
+          this.chart4.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart4.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart4.getdataListParm.parammaps.weekList = []
+          this.chart4.getdataListParm.parammaps.chartMonth = []
+          this.chart4.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart5') {
+        if (this.chart5.getdataListParm.parammaps.specificDate == '2') {
+          this.chart5.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart5.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart5.getdataListParm.parammaps.weekList = []
+          this.chart5.getdataListParm.parammaps.chartMonth = []
+          this.chart5.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart6') {
+        if (this.chart6.getdataListParm.parammaps.specificDate == '2') {
+          this.chart6.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.chart6.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.chart6.getdataListParm.parammaps.weekList = []
+          this.chart6.getdataListParm.parammaps.chartMonth = []
+          this.chart6.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      }
+    },
+    changeChartYear(item) {
+      var myWeekList = ''
+      if (item == 'chart1') {
+        this.chart1.getdataListParm.parammaps.weekList = []
+        this.chart1.getdataListParm.parammaps.selectWeek = []
+        myWeekList = whichWeek(this.chart1.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart1.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart2') {
+        this.chart2.getdataListParm.parammaps.selectWeek = []
+        this.chart2.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.chart2.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart2.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart3') {
+        this.chart3.getdataListParm.parammaps.selectWeek = []
+        this.chart3.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.chart3.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart3.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart4') {
+        this.chart4.getdataListParm.parammaps.selectWeek = []
+        this.chart4.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.chart4.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart4.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart5') {
+        this.chart5.getdataListParm.parammaps.selectWeek = []
+        this.chart5.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.chart5.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart5.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart6') {
+        this.chart6.getdataListParm.parammaps.selectWeek = []
+        this.chart6.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.chart6.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.chart6.getdataListParm.parammaps.weekList.push(obj)
+        }
+      }
+    },
+    // 计划统计
+    getChart1() {
+      this.chart1.listLoading = true
+      console.log(this.chart1.getdataListParm.name, '计划统计接口')
+      GetReportform(this.chart1.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          this.chart1.table.list = response.data.data
+          this.chart1.total = response.data.total
+          this.chart1.chartLine_data = response.data.list
+          console.log('计划统计图数据', this.chart1.chartLine_data)
+          console.log('计划统计表数据', this.chart1.table.list)
+          this.roadChartLine1(this.chart1.chartLine_data)
+        } else {
+          this.chart1.list = []
+          this.chart1.chartLine_data = {}
+          this.roadChartLine1(this.chart1.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart1.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine1(chartLine_data) {
+      if (this.chart1.chartLine != null) {
+        this.chart1.chartLine.dispose()
+      }
+      this.chart1.chartLine = echarts.init(document.getElementById('chartLine1'))
+      var option = {
+        tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: { color: '#999' }}},
+        legend: { data: ['计划准确率', '计划正确率', '计划准确率(去除取消重量)'] },
+        xAxis: [{ type: 'category', data: chartLine_data.data1, axisPointer: { type: 'shadow' }}],
+        yAxis: [{ type: 'value', name: '百分比', min: 0, max: 100, interval: 20, axisLabel: { formatter: '{value}' }}],
+        series: [
+          { name: '计划准确率', type: 'bar', itemStyle: { normal: { color: '#7ecf51' }}, data: chartLine_data.data2, markLine: { data: [{ type: 'average' }], symbol: ['none', 'none'], position: 'insideTopCenter', itemStyle: { normal: { lineStyle: { type: 'dotted', width: 3 }, label: { show: true, position: 'middle', formatter: '' }}}, large: true, effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }}},
+          { name: '计划正确率', type: 'bar', itemStyle: { normal: { color: '#ff6600' }}, data: chartLine_data.data3, markLine: { data: [{ type: 'average' }], symbol: ['none', 'none'], position: 'insideTopCenter', itemStyle: { normal: { lineStyle: { type: 'dotted', width: 3 }, label: { show: true, position: 'middle', formatter: '' }}}, large: true, effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }}},
+          { name: '计划准确率(去除取消重量)', type: 'bar', itemStyle: { normal: { color: '#61a5e8' }}, data: chartLine_data.data4, markLine: { data: [{ type: 'average' }], symbol: ['none', 'none'], position: 'insideTopCenter', itemStyle: { normal: { lineStyle: { type: 'dotted', width: 3 }, label: { show: true, position: 'middle', formatter: '' }}}, large: true, effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }}}
+        ]
+      }
+      this.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart1.chartLine.resize()
+      }
+    },
+    // 牛群准确率
+    getChart2() {
+      this.chart2.listLoading = true
+      GetReportform(this.chart2.getdataListParm).then(response => {
+        console.log('牛群准确率图数据', this.chart2.chartLine_data)
+        if (response.data !== null && response.data.list !== null) {
+          // for (let i = 0; i < response.data.data.length; i++) {
+          //   response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
+          // }
+          this.chart2.table.list = response.data.data
+          this.chart2.chartLine_data = response.data.list
+          this.chart2.total = response.data.total
+          this.chart2.chart3Data3 = response.data.list.data3
+          this.chart2.total = response.data.total
+          console.log('牛群准确率图数据', this.chart2.chartLine_data)
+          console.log('牛群准确率表数据', this.chart2.table.list)
+          this.roadChartLine2(this.chart2.chartLine_data)
+        } else {
+          this.chart2.list = []
+          this.chart2.chartLine_data = {}
+          this.roadChartLine2(this.chart2.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart2.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine2(chartLine_data) {
+      if (this.chart2.chartLine != null) {
+        this.chart2.chartLine.dispose()
+      }
+      this.chart2.chartLine = echarts.init(document.getElementById('chartLine2'))
+      var option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
+          }
+        },
+        legend: {
+          data: ['泌乳牛', '后备牛', '干奶牛', '围产牛']
+        },
+        xAxis: [{ type: 'category', data: chartLine_data.data1, axisPointer: { type: 'shadow' }}],
+        yAxis: [{ type: 'value', name: '准确率', min: 0, max: 100, interval: 20, axisLabel: { formatter: '{value}%' }}],
+        series: [{ name: '泌乳牛', type: 'bar', itemStyle: { normal: { color: '#7ecf51' }},
+          data: chartLine_data.data2,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        },
+        {
+          name: '后备牛',
+          type: 'bar',
+          itemStyle: {
+            normal: {
+              color: '#ff6600'
+            }
+          },
+          data: chartLine_data.data3,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        },
+        {
+          name: '干奶牛',
+          type: 'bar',
+          itemStyle: {
+            normal: {
+              color: '#61a5e8'
+            }
+          },
+          data: chartLine_data.data4,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        },
+        {
+          name: '围产牛',
+          type: 'bar',
+          itemStyle: {
+            normal: {
+              color: '#ffff00'
+            }
+          },
+          data: chartLine_data.data5,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        }
+        ]
+      }
+      this.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart2.chartLine.resize()
+      }
+    },
+    // 混料次数统计
+    getChart3() {
+      this.chart3.listLoading = true
+      GetReportform(this.chart3.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          // for (let i = 0; i < response.data.data.length; i++) {
+          //   response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
+          // }
+          this.chart3.table.list = response.data.data
+          this.chart3.chartLine_data = response.data.list
+          this.chart3.total = response.data.total
+
+          this.chart3.total = response.data.total
+          console.log('混料次数统计图', this.chart3.chartLine_data)
+          console.log('混料次数统计表', this.chart3.table.list)
+          this.roadChartLine3(this.chart3.chartLine_data)
+        } else {
+          this.chart3.list = []
+          this.chart3.chartLine_data = {}
+          this.roadChartLine3(this.chart3.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart3.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine3(chartLine_data) {
+      if (this.chart3.chartLine != null) {
+        this.chart3.chartLine.dispose()
+      }
+      this.chart3.chartLine = echarts.init(document.getElementById('chartLine3'))
+      var option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
+          }
+        },
+        legend: {
+          data: ['自动跳转', '手动跳转', '取消次数']
+        },
+        xAxis: [{ type: 'category', data: chartLine_data.data1, axisPointer: { type: 'shadow' }}],
+        yAxis: [{ type: 'value', name: '次数', min: 0, max: 100, interval: 20, axisLabel: { formatter: '{value}' }}],
+        series: [{ name: '自动跳转', type: 'bar', itemStyle: { normal: { color: '#7ecf51' }},
+          data: chartLine_data.data2,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        },
+        {
+          name: '手动跳转',
+          type: 'bar',
+          itemStyle: {
+            normal: {
+              color: '#ff6600'
+            }
+          },
+          data: chartLine_data.data3,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        }]
+      }
+      this.chart3.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart3.chartLine.resize()
+      }
+    },
+    // 混料准确率统计
+    getChart4() {
+      this.chart4.listLoading = true
+      GetReportform(this.chart4.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          // for (let i = 0; i < response.data.data.length; i++) {
+          //   response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
+          // }
+          this.chart4.table.list = response.data.data
+          this.chart4.chartLine_data = response.data.list
+          // this.chart4.chartLine_data = {
+          //   'data1': ['1牧', '2牧', '3牧', '4牧', '5牧', '6牧', '7牧', '8牧', '9牧', '10牧', '11牧', '12牧'], // x轴
+          //   'data2': [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], // 自动跳转准确率
+          //   'data3': [2.6, 5.9, 9.0, 30, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] // 手动跳转准确率
+          // }
+          this.chart4.total = response.data.total
+          console.log('混料准确率统计图', this.chart4.chartLine_data)
+          console.log('混料准确率统计表', this.chart4.table.list)
+          this.roadChartLine4(this.chart4.chartLine_data)
+        } else {
+          this.chart4.list = []
+          this.chart4.chartLine_data = {}
+          this.roadChartLine4(this.chart4.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart4.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine4(chartLine_data) {
+      if (this.chart4.chartLine != null) {
+        this.chart4.chartLine.dispose()
+      }
+      this.chart4.chartLine = echarts.init(document.getElementById('chartLine4'))
+      var option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
+          }
+        },
+        legend: {
+          data: ['自动跳转准确率', '手动跳转准确率']
+        },
+        xAxis: [{ type: 'category', data: chartLine_data.data1, axisPointer: { type: 'shadow' }}],
+        yAxis: [{ type: 'value', name: '混料准确率', min: 0, max: 100, interval: 20, axisLabel: { formatter: '{value}%' }}],
+        series: [{ name: '自动跳转准确率', type: 'bar', itemStyle: { normal: { color: '#7ecf51' }},
+          data: chartLine_data.data2,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        },
+        {
+          name: '手动跳转准确率',
+          type: 'bar',
+          itemStyle: {
+            normal: {
+              color: '#ff6600'
+            }
+          },
+          data: chartLine_data.data3,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        }]
+      }
+      this.chart4.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart4.chartLine.resize()
+      }
+    },
+    // 栏舍平均撒料时间统计
+    getChart5() {
+      this.chart5.listLoading = true
+      GetReportform(this.chart5.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          this.chart5.table.list = response.data.data
+          this.chart5.chartLine_data = response.data.list
+          this.chart5.total = response.data.total
+          console.log('栏舍平均撒料时间统计图', this.chart5.chartLine_data)
+          console.log('栏舍平均撒料时间统计表', this.chart5.table.list)
+          this.roadChartLine5(this.chart5.chartLine_data)
+        } else {
+          this.chart5.list = []
+          this.chart5.chartLine_data = {}
+          this.roadChartLine5(this.chart5.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart5.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine5(chartLine_data) {
+      if (this.chart5.chartLine != null) {
+        this.chart5.chartLine.dispose()
+      }
+      this.chart5.chartLine = echarts.init(document.getElementById('chartLine5'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis',
+          formatter: function(params) {
+            // console.log(params)
+            if (params.length > 0) {
+              var tip = params[0].name
+              for (let i = 0; i < params.length; i++) {
+                var b = []
+                // var str = params[i].value
+                for (let j = 0; j <= params[i].value.length; j++) {
+                  if (params[i].value !== '') {
+                    if (params[i].value.charAt(j) == '.') {
+                      b[j] = params[i].value.replace('.', ':')
+                    }
+                  } else {
+                    b[j] = ''
+                  }
+                }
+                tip += '<br>' + params[i].seriesName + ': ' + b[b.length - 1]
+              }
+              return tip
+            }
+          }
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: [{
+          type: '',
+          name: '时间',
+          mix: 0,
+          max: 24,
+          interval: 2,
+          axisLabel: {
+            formatter: function(value) {
+              var texts = []
+              if (value < 10) {
+                texts.push('0' + value + ':00')
+              } else {
+                texts.push(value + ':00')
+              }
+              return texts
+            }
+          }
+        }],
+        series: (function() {
+          if (chartLine_data.data3 !== undefined) {
+            var serie = []
+            for (var i = 0; i < chartLine_data.data3.length; i++) {
+              var item = {
+                name: chartLine_data.data1[i],
+                type: 'line',
+                data: chartLine_data.data3[i].data
+              }
+              serie.push(item)
+            }
+            return serie
+          }
+        }())
+      }
+      this.chart5.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart5.chartLine.resize()
+      }
+    },
+
+    // 混料计划取消次数
+    getChart6() {
+      this.chart6.listLoading = true
+      GetReportform(this.chart6.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          // for (let i = 0; i < response.data.data.length; i++) {
+          //   response.data.data[i].准确率 = response.data.data[i].准确率 + '%'
+          // }
+          this.chart6.table.list = response.data.data
+          this.chart6.chartLine_data = response.data.list
+          // this.chart6.chartLine_data = {
+          //   'data1': ['1牧', '2牧', '3牧', '4牧', '5牧', '6牧', '7牧', '8牧', '9牧', '10牧', '11牧', '12牧'], // x轴
+          //   'data2': [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], // 自动跳转准确率
+          //   'data3': [2.6, 5.9, 9.0, 30, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] // 手动跳转准确率
+          // }
+          this.chart6.total = response.data.total
+          console.log('混料计划取消次数图', this.chart6.chartLine_data)
+          console.log('混料计划取消次数表', this.chart6.table.list)
+          this.roadChartLine6(this.chart6.chartLine_data)
+        } else {
+          this.chart6.list = []
+          this.chart6.chartLine_data = {}
+          this.roadChartLine6(this.chart6.chartLine_data)
+        }
+        setTimeout(() => {
+          this.chart6.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine6(chartLine_data) {
+      if (this.chart6.chartLine != null) {
+        this.chart6.chartLine.dispose()
+      }
+      this.chart6.chartLine = echarts.init(document.getElementById('chartLine6'))
+      var option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
+          }
+        },
+        legend: {
+          data: ['混料计划取消次数']
+        },
+        xAxis: [{ type: 'category', data: chartLine_data.data1, axisPointer: { type: 'shadow' }}],
+        yAxis: [{ type: 'value', name: '次数', min: 0, max: 100, interval: 20, axisLabel: { formatter: '{value}%' }}],
+        series: [{ name: '混料计划取消次数', type: 'bar', itemStyle: { normal: { color: '#7ecf51' }},
+          data: chartLine_data.data2,
+          markLine: {
+            data: [{ type: 'average' }],
+            symbol: ['none', 'none'],
+            position: 'insideTopCenter',
+            itemStyle: {
+              normal: {
+                lineStyle: { type: 'dotted', width: 3 },
+                label: { show: true, position: 'middle', formatter: '' }
+              }
+            },
+            large: true,
+            effect: { show: false, loop: true, period: 0, scaleSize: 2, color: null, shadowColor: null, shadowBlur: null }
+          }
+        }]
+      }
+      this.chart6.chartLine.setOption(option)
+      window.onresize = function() {
+        this.chart6.chartLine.resize()
+      }
+    },
+
+    handleDownload() {
+      var excelDatas = [
+        {
+          tHeader: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
+          filterVal: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
+          tableDatas: this.table.list,
+          sheetName: '混料'
+        },
+        {
+          tHeader: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
+          filterVal: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
+          tableDatas: this.table2.list,
+          sheetName: '撒料'
+        }
+      ]
+      json2excel(excelDatas, '汇总统计-配方名称', true, 'xlsx')
+    },
+    // 时间
+    changeChartDate(item) {
+      console.log(item)
+      if (item == 'chart1') {
+        if (this.chart1.getdataListParm.parammaps.inputDatetime !== '' && this.chart1.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart1.getdataListParm.parammaps.startTime = parseTime(this.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart1.getdataListParm.parammaps.stopTime = parseTime(this.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart1()
+        } else {
+          this.chart1.getdataListParm.parammaps.inputDatetime = ''
+          this.chart1.getdataListParm.parammaps.startTime = ''
+          this.chart1.getdataListParm.parammaps.stopTime = ''
+          this.getChart1()
+        }
+      } else if (item == 'chart2') {
+        if (this.chart2.getdataListParm.parammaps.inputDatetime !== '' && this.chart2.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart2.getdataListParm.parammaps.startTime = parseTime(this.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart2.getdataListParm.parammaps.stopTime = parseTime(this.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart2()
+        } else {
+          this.chart2.getdataListParm.parammaps.inputDatetime = ''
+          this.chart2.getdataListParm.parammaps.startTime = ''
+          this.chart2.getdataListParm.parammaps.stopTime = ''
+          this.getChart2()
+        }
+      } else if (item == 'chart3') {
+        if (this.chart3.getdataListParm.parammaps.inputDatetime !== '' && this.chart3.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart3.getdataListParm.parammaps.startTime = parseTime(this.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart3.getdataListParm.parammaps.stopTime = parseTime(this.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart3()
+        } else {
+          this.chart3.getdataListParm.parammaps.inputDatetime = ''
+          this.chart3.getdataListParm.parammaps.startTime = ''
+          this.chart3.getdataListParm.parammaps.stopTime = ''
+          this.getChart3()
+        }
+      } else if (item == 'chart4') {
+        if (this.chart4.getdataListParm.parammaps.inputDatetime !== '' && this.chart4.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart4.getdataListParm.parammaps.startTime = parseTime(this.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart4.getdataListParm.parammaps.stopTime = parseTime(this.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart4()
+        } else {
+          this.chart4.getdataListParm.parammaps.inputDatetime = ''
+          this.chart4.getdataListParm.parammaps.startTime = ''
+          this.chart4.getdataListParm.parammaps.stopTime = ''
+          this.getChart4()
+        }
+      } else if (item == 'chart5') {
+        if (this.chart5.getdataListParm.parammaps.inputDatetime !== '' && this.chart5.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart5.getdataListParm.parammaps.startTime = parseTime(this.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart5.getdataListParm.parammaps.stopTime = parseTime(this.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart5()
+        } else {
+          this.chart5.getdataListParm.parammaps.inputDatetime = ''
+          this.chart5.getdataListParm.parammaps.startTime = ''
+          this.chart5.getdataListParm.parammaps.stopTime = ''
+          this.getChart5()
+        }
+      } else if (item == 'chart6') {
+        if (this.chart6.getdataListParm.parammaps.inputDatetime !== '' && this.chart6.getdataListParm.parammaps.inputDatetime !== null) {
+          this.chart6.getdataListParm.parammaps.startTime = parseTime(this.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          this.chart6.getdataListParm.parammaps.stopTime = parseTime(this.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.getChart6()
+        } else {
+          this.chart6.getdataListParm.parammaps.inputDatetime = ''
+          this.chart6.getdataListParm.parammaps.startTime = ''
+          this.chart6.getdataListParm.parammaps.stopTime = ''
+          this.getChart6()
+        }
+      }
+    },
+
+    handleExport(item) {
+      if (item == 'chart1') {
+        console.log('计划统计导出')
+        var excelDatasTabChart1 = [
+          {
+            tHeader: ['日期', '配方名称', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.chart1.table.list,
+            sheetName: '计划统计'
+          }
+        ]
+        json2excel(excelDatasTabChart1, '计划统计', true, 'xlsx')
+      } else if (item == 'chart2') {
+        console.log('计划统计导出')
+        var excelDatasTabChart2 = [
+          {
+            tHeader: ['日期', '计划执行重量(kg)', '配方理论重量(kg)', '计划准确率', '计划取消重量(kg)', '计划准确率(去除取消重量)', '计划正确数', '计划数', '计划正确率'],
+            filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
+            tableDatas: this.chart2.table.list,
+            sheetName: '计划统计'
+          }
+        ]
+        json2excel(excelDatasTabChart2, '计划统计', true, 'xlsx')
+      } else if (item == 'chart3') {
+        console.log('牛群准确率导出')
+        var excelDatasTabChart3 = [
+          {
+            tHeader: ['日期', '牲畜类别', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.chart3.table.list,
+            sheetName: '牛群准确率'
+          }
+        ]
+        json2excel(excelDatasTabChart3, '牛群准确率', true, 'xlsx')
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)导出')
+        var excelDatasTabChart4 = [
+          {
+            tHeader: ['日期', '车次', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.chart4.table.list,
+            sheetName: '车辆准确率(重量)'
+          }
+        ]
+        json2excel(excelDatasTabChart4, '车辆准确率(重量)', true, 'xlsx')
+      } else if (item == 'chart5') {
+        console.log('混料统计导出')
+        var excelDatasTabChart5 = [
+          {
+            tHeader: ['日期', '自动跳转次数', '手动跳转次数', '自动跳转理论重量', '自动跳转实际重量', '自动跳转准确率', '手动跳转理论重量', '手动跳转实际重量', '手动跳转准确率'],
+            filterVal: ['日期', 'field1', 'field2', '理论自动', '实际自动', 'field3', '理论手动', '实际手动', 'field4'],
+            tableDatas: this.chart5.table.list,
+            sheetName: '混料统计'
+          }
+        ]
+        json2excel(excelDatasTabChart5, '混料统计', true, 'xlsx')
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数导出')
+        var excelDatasTabChart5 = [
+          {
+            tHeader: ['日期', '自动跳转次数', '手动跳转次数', '自动跳转理论重量', '自动跳转实际重量', '自动跳转准确率', '手动跳转理论重量', '手动跳转实际重量', '手动跳转准确率'],
+            filterVal: ['日期', 'field1', 'field2', '理论自动', '实际自动', 'field3', '理论手动', '实际手动', 'field4'],
+            tableDatas: this.chart5.table.list,
+            sheetName: '混料计划取消次数'
+          }
+        ]
+        json2excel(excelDatasTabChart5, '混料计划取消次数', true, 'xlsx')
+      }
+    },
+    handleTable(item) {
+      // 显示切换表格
+      if (item == 'chart1') {
+        console.log('计划统计表格')
+        this.chart1.isTable = true
+        this.chart1.isChart = false
+      } else if (item == 'chart2') {
+        console.log('计划统计表格')
+        this.chart2.isTable = true
+        this.chart2.isChart = false
+      } else if (item == 'chart3') {
+        console.log('牛群准确率表格')
+        this.chart3.isTable = true
+        this.chart3.isChart = false
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)表格')
+        this.chart4.isTable = true
+        this.chart4.isChart = false
+      } else if (item == 'chart5') {
+        console.log('混料统计表格')
+        this.chart5.isTable = true
+        this.chart5.isChart = false
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数表格')
+        this.chart6.isTable = true
+        this.chart6.isChart = false
+      }
+    },
+    // 切换图表
+    handleChart(item) {
+      // 显示切换图表
+      if (item == 'chart1') {
+        console.log('计划统计图表')
+        this.chart1.isTable = false
+        this.chart1.isChart = true
+        this.getChart1()
+      } else if (item == 'chart2') {
+        console.log('计划统计图表')
+        this.chart2.isTable = false
+        this.chart2.isChart = true
+        this.getChart2()
+      } else if (item == 'chart3') {
+        console.log('牛群准确率图表')
+        this.chart3.isTable = false
+        this.chart3.isChart = true
+        this.getChart3()
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)图表')
+        this.chart4.isTable = false
+        this.chart4.isChart = true
+        this.getChart4()
+      } else if (item == 'chart5') {
+        console.log('混料统计图表')
+        this.chart5.isTable = false
+        this.chart5.isChart = true
+        this.getChart5()
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数图表')
+        this.chart6.isTable = false
+        this.chart6.isChart = true
+        this.getChart6()
+      }
+    }
+  }
+}
+
+</script>
+
+<style lang="scss" scoped>
+  .button{
+    height: 95px;
+    .exportTable2{float: right;margin-right: 5px;margin-top: 5px;}
+  }
+  .app-container1{padding-left: 10px;background-color: #F4F4F4;}
+  .dashboard-editor-container {
+    background-color: #F4F4F4;
+    .grid-content{
+      background-color:#fff;padding: 0 10px;
+      h4{text-align: center;line-height: 50px;}
+    }
+  }
+  .table{margin-bottom: 50px;}
+  /deep/ .specificDate .el-radio{margin-right: 0px;}
+  /deep/ .el-radio-button__inner{padding: 7px 7px ;}
+  /deep/ .el-range-editor.el-input__inner .el-input__icon{width: 0;}
+</style>

+ 26 - 22
src/views/statisticalAnalysis/errorAnalysis/group/tab2.vue

@@ -1,27 +1,31 @@
 <template>
   <div class="app-container">
     <div class="search">
-      <el-select v-model="table.getdataListParm.parammaps.pastureid" placeholder="牧场" class="filter-item" style="width: 120px;">
-        <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />
-      </el-select>
-      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
-      <el-button style="float: left;" class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />
-      <el-button style="float: left;" class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />
-      <el-input v-model="table.getdataListParm.parammaps.tmrtname" style="width: 130px;" placeholder="TMR名称" class="filter-item" clearable />
-      <el-input v-model="table.getdataListParm.parammaps.projname" style="width: 130px;" placeholder="车次" class="filter-item" clearable />
-      <el-select v-model="table.getdataListParm.parammaps.times" style="width: 150px;" filterable placeholder="班次" class="filter-item" clearable>
-        <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-input v-model="table.getdataListParm.parammaps.templetname" style="width: 130px;" placeholder="配方名称" class="filter-item" clearable />
-      <el-select v-model="table.getdataListParm.parammaps.buttontype" filterable placeholder="跳转方式" class="filter-item" clearable>
-        <el-option v-for="item in jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-select v-model="table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
-        <el-option v-for="item in isuseList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-button class="successBorder" @click="handleSearch">查询</el-button>
-      <el-button class="successBorder" @click="handleRefresh">重置</el-button>
-      <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="handleExport">导出</el-button>
+      <div>
+        <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;float: left;margin-bottom: 10px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
+        <el-button style="float: left;margin-bottom: 10px;" class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />
+        <el-button style="float: left;margin-bottom: 10px;" class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />
+      </div>
+      <div style="clear: both;">
+        <el-select v-model="table.getdataListParm.parammaps.pastureid" placeholder="牧场" class="filter-item" style="width: 120px;float: left;">
+          <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />
+        </el-select>
+        <el-input v-model="table.getdataListParm.parammaps.tmrtname" style="width: 110px;float: left;" placeholder="TMR名称" class="filter-item" clearable />
+        <el-input v-model="table.getdataListParm.parammaps.projname" style="width: 100px;float: left;" placeholder="车次" class="filter-item" clearable />
+        <el-select v-model="table.getdataListParm.parammaps.times" style="width: 100px;float: left;" filterable placeholder="班次" class="filter-item" clearable>
+          <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-input v-model="table.getdataListParm.parammaps.templetname" style="width: 120px;float: left;" placeholder="配方名称" class="filter-item" clearable />
+        <el-select v-model="table.getdataListParm.parammaps.buttontype" style="width: 120px;float: left;" filterable placeholder="跳转方式" class="filter-item" clearable>
+          <el-option v-for="item in jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-select v-model="table.getdataListParm.parammaps.isuse" style="width: 120px;float: left;" filterable placeholder="上传状态" class="filter-item" clearable>
+          <el-option v-for="item in isuseList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-button class="successBorder" @click="handleSearch">查询</el-button>
+        <el-button class="successBorder" @click="handleRefresh">重置</el-button>
+        <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="handleExport">导出</el-button>
+      </div>
     </div>
 
     <div class="table">
@@ -150,7 +154,7 @@ export default {
 
       rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
       cellStyle: { padding: 0 + 'px' },
-      myHeight2:document.documentElement.clientHeight - 85-210
+      myHeight2: document.documentElement.clientHeight - 85 - 210
     }
   },
   created() {

+ 27 - 23
src/views/statisticalAnalysis/errorAnalysis/group/tab3.vue

@@ -1,28 +1,32 @@
 <template>
   <div class="app-content">
     <div class="search">
-      <el-select v-model="table.getdataListParm.parammaps.pastureid" placeholder="牧场" class="filter-item" style="width: 120px;">
-        <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />
-      </el-select>
-      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
-      <el-button style="float: left;" :disabled="Beforedisabled" class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
-      <el-button style="float: left;" :disabled="Nextdisabled" class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
-      <el-input v-model="table.getdataListParm.parammaps.tmrtname" style="width: 110px;" placeholder="TMR名称" class="filter-item" clearable />
-      <el-input v-model="table.getdataListParm.parammaps.projname" style="width: 110px;" placeholder="车次" class="filter-item" clearable />
-      <el-select v-model="table.getdataListParm.parammaps.times" style="width: 100px;" filterable placeholder="班次" class="filter-item" clearable>
-        <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-input v-model="table.getdataListParm.parammaps.templetname" style="width: 110px;" placeholder="配方名称" class="filter-item" clearable />
-      <el-input v-model="table.getdataListParm.parammaps.fname" style="width: 110px;" placeholder="栏舍名称" class="filter-item" clearable />
-      <el-select v-model="table.getdataListParm.parammaps.buttontype" style="width: 110px;" filterable placeholder="跳转方式" class="filter-item" clearable>
-        <el-option v-for="item in jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-select v-model="table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
-        <el-option v-for="item in isuseList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-button class="successBorder" @click="handleSearch">查询</el-button>
-      <el-button class="successBorder" @click="handleRefresh">重置</el-button>
-      <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="handleExport">导出</el-button>
+      <div>
+        <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 250px;float: left;margin-bottom: 10px;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
+        <el-button style="float: left;margin-bottom: 10px;" :disabled="Beforedisabled" class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
+        <el-button style="float: left;margin-bottom: 10px;" :disabled="Nextdisabled" class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
+      </div>
+      <div style="clear: both; margin-top: 10px;">
+        <el-select v-model="table.getdataListParm.parammaps.pastureid" placeholder="牧场" class="filter-item" style="width: 110px;float: left;">
+          <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />
+        </el-select>
+        <el-input v-model="table.getdataListParm.parammaps.tmrtname" style="width: 110px;float: left;" placeholder="TMR名称" class="filter-item" clearable />
+        <el-input v-model="table.getdataListParm.parammaps.projname" style="width: 110px;float: left;" placeholder="车次" class="filter-item" clearable />
+        <el-select v-model="table.getdataListParm.parammaps.times" style="width: 110px;float: left;" filterable placeholder="班次" class="filter-item" clearable>
+          <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-input v-model="table.getdataListParm.parammaps.templetname" style="width: 110px;float: left;" placeholder="配方名称" class="filter-item" clearable />
+        <el-input v-model="table.getdataListParm.parammaps.fname" style="width: 110px;float: left;" placeholder="栏舍名称" class="filter-item" clearable />
+        <el-select v-model="table.getdataListParm.parammaps.buttontype" style="width: 110px;float: left;" filterable placeholder="跳转方式" class="filter-item" clearable>
+          <el-option v-for="item in jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-select v-model="table.getdataListParm.parammaps.isuse" style="width: 110px;float: left;" filterable placeholder="上传状态" class="filter-item" clearable>
+          <el-option v-for="item in isuseList" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+        <el-button class="successBorder" style="float:left;" @click="handleSearch">查询</el-button>
+        <el-button class="successBorder" style="float:left;" @click="handleRefresh">重置</el-button>
+        <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="handleExport">导出</el-button>
+      </div>
     </div>
     <div class="table">
       <el-table
@@ -151,7 +155,7 @@ export default {
       },
       rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
       cellStyle: { padding: 0 + 'px' },
-      myHeight2:document.documentElement.clientHeight - 85-210
+      myHeight2: document.documentElement.clientHeight - 85 - 210
     }
   },
   create() {

+ 10 - 10
src/views/statisticalAnalysis/errorAnalysis/pasture/index.vue

@@ -432,9 +432,9 @@
           <el-input v-model="tab2.table.getdataListParm.parammaps.templetname" style="width: 130px;" placeholder="配方名称" class="filter-item" clearable />
           <el-select v-model="tab2.table.getdataListParm.parammaps.buttontype" style="width: 130px;" filterable placeholder="跳转方式" class="filter-item" clearable>
             <el-option v-for="item in tab2.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
-          </el-select>
-          <el-select v-model="tab2.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
-            <el-option v-for="item in tab2.isuseList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-select v-model="tab2.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
+            <el-option v-for="item in tab2.isuseList" :key="item.id" :label="item.name" :value="item.id" />
           </el-select>
           <el-button class="successBorder" @click="handleSearch2">查询</el-button>
           <el-button class="successBorder" @click="handleRefresh2">重置</el-button>
@@ -492,9 +492,9 @@
           <el-input v-model="tab3.table.getdataListParm.parammaps.fname" style="width: 110px;" placeholder="栏舍名称" class="filter-item" clearable />
           <el-select v-model="tab3.table.getdataListParm.parammaps.buttontype" style="width: 110px;" filterable placeholder="跳转方式" class="filter-item" clearable>
             <el-option v-for="item in tab3.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
-          </el-select>
-          <el-select v-model="tab3.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
-            <el-option v-for="item in tab3.isuseList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-select v-model="tab3.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
+            <el-option v-for="item in tab3.isuseList" :key="item.id" :label="item.name" :value="item.id" />
           </el-select>
           <el-button class="successBorder" @click="handleSearch3">查询</el-button>
           <el-button class="successBorder" @click="handleRefresh3">重置</el-button>
@@ -894,7 +894,7 @@ export default {
               projname: '',
               times: '',
               buttontype: '',
-              templetname: '',
+              templetname: '',
               isuse: ''
             }
           },
@@ -905,7 +905,7 @@ export default {
           temp: {}
         },
         frequencyList: [],
-        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
+        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
         isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
       },
       tab3: {
@@ -926,7 +926,7 @@ export default {
               times: '',
               templetname: '',
               fname: '',
-              buttontype: '',
+              buttontype: '',
               isuse: ''
             }
           },
@@ -937,7 +937,7 @@ export default {
           temp: {}
         },
         frequencyList: [],
-        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
+        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
         isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
       },
       titlefname: '',

+ 4121 - 0
src/views/statisticalAnalysis/errorAnalysis/pasture/index改.vue

@@ -0,0 +1,4121 @@
+<template>
+  <div class="app-container1">
+    <el-tabs v-model="activeName" @tab-click="handleTabClick">
+      <el-tab-pane label="汇总统计" name="first">
+        <div class="search">
+          <el-date-picker v-model="tab.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions" />
+          <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />
+          <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />
+          <span style="margin-left: 10px;">统计类型:</span>
+          <el-select v-model="tab.radio" placeholder="统计类型" class="filter-item" style="width: 120px;" @change="changeRadio">
+            <el-option v-for="item in statisticalTypeList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-checkbox v-model="tab.checked" style="margin-right: 10px;" @change="changeChecked">按日期统计</el-checkbox>
+          <el-input v-if="tab.isDriver" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="驾驶员" />
+          <el-input v-if="tab.isFormulaName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="配方名称" />
+          <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="栏舍名称" />
+          <el-input v-if="tab.isLivestockType" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 140px;" placeholder="牲畜名称" />
+          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.projname" class="filter-item" style="width: 100px;" placeholder="车次" />
+          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.times" class="filter-item" style="width: 100px;" placeholder="班次" />
+          <el-input v-if="tab.isTrainNumber" v-model="tab.table.getdataListParm.parammaps.fname" class="filter-item" style="width: 100px;" placeholder="TMR名称" />
+          <el-button class="successBorder" @click="handleSearch">查询</el-button>
+          <el-button class="export" icon="el-icon-upload2" @click="handleDownload">导出</el-button>
+          <svg-icon icon-class="Up" class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
+        </div>
+        <div id="table" class="table">
+          <h4>混料</h4>
+          <el-table
+            :key="tab.table.tableKey"
+            v-loading="tab.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="tab.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :max-height="myHeight2"
+          >
+            <el-table-column v-if="tab.checked" :key="0" sortable label="日期" min-width="70px" align="center" prop="计划时间" />
+            <el-table-column v-if="tab.isDriver" :key="1" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column v-if="tab.isFormulaName" :key="2" sortable label="配方名称" min-width="70px" align="center" prop="配方名称" />
+            <el-table-column v-if="tab.isHouseName" :key="3" sortable label="栏舍名称" min-width="70px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="tab.isLivestockType" :key="4" sortable label="牲畜类别" min-width="70px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="tab.isTrainNumber" :key="5" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column v-if="tab.isTrainNumber" :key="6" sortable label="车次" min-width="70px" align="center" prop="车次" />
+            <el-table-column v-if="tab.isTrainNumber" :key="7" sortable label="班次" min-width="70px" align="center" prop="班次" />
+            <el-table-column v-if="tab.isTrainNumber" :key="8" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column v-if="tab.isTMRName" :key="9" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column v-if="tab.isTMRName" :key="10" sortable label="班次" min-width="70px" align="center" prop="班次" />
+            <el-table-column v-if="tab.isTMRName" :key="11" sortable label="车次" min-width="70px" align="center" prop="车次" />
+            <el-table-column v-if="tab.isTMRName" :key="12" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column :key="13" sortable label="理论重量" min-width="60px" align="center" prop="理论重量" />
+            <el-table-column :key="14" sortable label="实际重量" min-width="60px" align="center" prop="实际重量" />
+            <el-table-column :key="15" sortable label="计划混料操作数" min-width="60px" align="center" prop="计划混料操作数" />
+            <el-table-column :key="16" sortable label="已混料操作数" min-width="50px" align="center" prop="已混料操作数" />
+            <el-table-column :key="17" sortable label="混料操作率" min-width="60px" align="center" prop="混料操作率" />
+            <el-table-column :key="18" sortable label="混料误差值" min-width="60px" align="center" prop="混料误差值" />
+            <el-table-column :key="19" sortable label="混料准确率" min-width="60px" align="center" prop="混料准确率" />
+            <el-table-column v-if="tab.isTrainNumber" :key="20" sortable label="混料时间" min-width="70px" align="center" prop="混料时间" />
+            <el-table-column v-if="tab.isTrainNumber" :key="21" sortable label="等待时间" min-width="70px" align="center" prop="等待时间" />
+            <el-table-column :key="22" sortable label="混料自动跳转次数" min-width="65px" align="center" prop="混料自动跳转次数" />
+            <el-table-column :key="23" sortable label="混料手动跳转次数" min-width="65px" align="center" prop="混料手动跳转次数" />
+            <el-table-column :key="24" sortable label="取消次数" min-width="70px" align="center" prop="取消次数" />
+            <el-table-column :key="25" sortable label="混料正确数" min-width="70px" align="center" prop="混料正确数" />
+            <el-table-column :key="26" sortable label="混料正确率" min-width="70px" align="center" prop="混料正确率" />
+            <el-table-column :key="27" sortable label="去除取消正确率" min-width="60px" align="center" prop="去除取消正确率" />
+            <el-table-column :key="28" sortable label="标准差" min-width="60px" align="center" prop="方差" />
+            <el-table-column :key="29" align="center" width="70" label="操作" class-name="small-padding fixed-width" fixed="right">
+              <template slot-scope="{row}">
+                <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+          <span v-if="tab.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab.table.total }}条</span>
+          <h4>撒料</h4>
+          <el-table
+            :key="tab.table2.tableKey"
+            v-loading="tab.table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="tab.table2.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :max-height="myHeight2"
+          >
+            <el-table-column v-if="tab.checked" :key="0" sortable label="日期" min-width="70px" align="center" prop="计划时间" />
+            <el-table-column v-if="tab.isDriver" :key="1" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column v-if="tab.isFormulaName" :key="2" sortable label="配方名称" min-width="70px" align="center" prop="配方名称" />
+            <el-table-column v-if="tab.isHouseName" :key="3" sortable label="栏舍名称" min-width="70px" align="center" prop="栏舍名称" />
+            <el-table-column v-if="tab.isLivestockType" :key="4" sortable label="牲畜类别" min-width="70px" align="center" prop="牲畜类别" />
+            <el-table-column v-if="tab.isTrainNumber" :key="5" sortable label="车次" min-width="70px" align="center" prop="车次" />
+            <el-table-column v-if="tab.isTrainNumber" :key="6" sortable label="班次" min-width="70px" align="center" prop="班次" />
+            <el-table-column v-if="tab.isTrainNumber" :key="7" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column v-if="tab.isTrainNumber" :key="8" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column v-if="tab.isTMRName" :key="9" sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column v-if="tab.isTMRName" :key="10" sortable label="班次" min-width="70px" align="center" prop="班次" />
+            <el-table-column v-if="tab.isTMRName" :key="11" sortable label="车次" min-width="70px" align="center" prop="车次" />
+            <el-table-column v-if="tab.isTMRName" :key="12" sortable label="驾驶员" min-width="70px" align="center" prop="驾驶员" />
+            <el-table-column :key="13" sortable label="理论重量" min-width="60px" align="center" prop="理论重量" />
+            <el-table-column :key="14" sortable label="实际重量" min-width="60px" align="center" prop="实际重量" />
+            <el-table-column :key="15" sortable label="计划撒料操作数" min-width="60px" align="center" prop="计划撒料操作数" />
+            <el-table-column :key="16" sortable label="已撒料操作数" min-width="50px" align="center" prop="已撒料操作数" />
+            <el-table-column :key="17" sortable label="撒料操作率" min-width="60px" align="center" prop="撒料操作率" />
+            <el-table-column :key="18" sortable label="撒料误差值" min-width="60px" align="center" prop="撒料误差值" />
+            <el-table-column :key="19" sortable label="撒料准确率" min-width="60px" align="center" prop="撒料准确率" />
+            <el-table-column v-if="tab.isTrainNumber" :key="20" sortable label="撒料时间" min-width="70px" align="center" prop="撒料时间" />
+            <el-table-column v-if="tab.isTrainNumber" :key="21" sortable label="等待时间" min-width="70px" align="center" prop="等待时间" />
+            <el-table-column :key="22" sortable label="撒料自动跳转次数" width="65px" align="center" prop="撒料自动跳转次数" />
+            <el-table-column :key="23" sortable label="撒料手动跳转次数" width="65px" align="center" prop="撒料手动跳转次数" />
+            <el-table-column :key="24" sortable label="取消次数" min-width="70px" align="center" prop="取消次数" />
+            <el-table-column :key="25" sortable label="撒料正确数" min-width="70px" align="center" prop="撒料正确数" />
+            <el-table-column :key="26" sortable label="撒料正确率" min-width="70px" align="center" prop="撒料正确率" />
+            <el-table-column :key="27" sortable label="去除取消正确率" min-width="65px" align="center" prop="去除取消正确率" />
+            <el-table-column :key="28" sortable label="标准差" min-width="60px" align="center" prop="方差" />
+            <el-table-column :key="29" align="center" width="70" label="操作" class-name="small-padding fixed-width" fixed="right">
+              <template slot-scope="{row}">
+                <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(row)" />
+              </template>
+            </el-table-column>
+          </el-table>
+          <span v-if="tab.table2.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab.table2.total }}条</span>
+        </div>
+        <div id="AnalysisChart" class="AnalysisChart">
+          <el-row :gutter="10">
+            <el-col :span="24" style="margin-bottom: 10px;margin-top: 10px;">
+              <span>图表查询时间:</span>
+              <el-radio-group v-model="tab.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeAllSpecificDate">
+                <el-radio-button label="1" border>日</el-radio-button>
+                <el-radio-button label="2" border>周</el-radio-button>
+                <el-radio-button label="3" border>月</el-radio-button>
+              </el-radio-group>
+              <div v-show="tab.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                <el-date-picker v-model="tab.chartDate" :clearable="false" class="inputDatetime filter-item" style="width:250px;" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+              </div>
+              <div v-show="tab.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                <el-select v-model="tab.selectYear" class="filter-item" style="width:130px;margin-right:10px;" placeholder="请选择年份" @change="changeAllYear">
+                  <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                </el-select>
+                <el-select v-model="tab.selectWeek" class="filter-item" style="width:170px;" multiple :multiple-limit="2" placeholder="请选择周">
+                  <el-option v-for="(item,index) in tab.weekList" :key="index" :label="item.name" :value="item.id" />
+                </el-select>
+              </div>
+              <div v-show="tab.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                <el-date-picker v-model="tab.chartMonth" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" style="width:250px;" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+              </div>
+              <el-button class="successBorder" style="margin-left:10px;" @click="handleAllDate">确认</el-button>
+              <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
+            </el-col>
+          </el-row>
+          <el-row :gutter="10" class="dashboard-editor-container">
+            <!-- 计划统计 -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>计划统计</h4>
+                <div v-if="tab.chart2.isChart" class="button">
+                  <div class="chartButton">
+                    <el-radio-group v-model="tab.chart2.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart2')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart2.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart2')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart2.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart2.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart2')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart2')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart2')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart2.isChart" id="chartLine2" style="width:100%;height:385px;background: #fff;" />
+                <div v-if="tab.chart2.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart2')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart2')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart2.table.tableKey"
+                    v-loading="tab.chart2.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart2.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="85px" align="center" prop="日期" />
+                    <el-table-column label="计划执行重量(kg)" sortable min-width="80px" align="center" prop="实际量" />
+                    <el-table-column label="配方理论重量(kg)" sortable min-width="80px" align="center" prop="理论量" />
+                    <el-table-column label="计划准确率" sortable min-width="85px" align="center" prop="field1" />
+                    <el-table-column label="计划取消重量(kg)" sortable min-width="80px" align="center" prop="计划取消重量" />
+                    <el-table-column label="计划准确率(去除取消重量)" sortable min-width="100px" align="center" prop="field3" />
+                    <el-table-column label="计划正确数" sortable min-width="85px" align="center" prop="正确数" />
+                    <el-table-column label="计划数" sortable min-width="60px" align="center" prop="计划数" />
+                    <el-table-column label="计划正确率" sortable min-width="75px" align="center" prop="field2" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+            <!-- 配方准确率 -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>配方准确率</h4>
+                <div v-if="tab.chart1.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart1.getdataListParm.parammaps.statisticsList" :option="tab.chart1.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart1" />
+                    <el-radio-group v-model="tab.chart1.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart1')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart1.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart1')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart1.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart1.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart1')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart1')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart1')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart1.isChart" id="chartLine1" style="width:100%;height:385px;" />
+                <div v-if="tab.chart1.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart1')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart1')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart1.table.tableKey"
+                    v-loading="tab.chart1.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart1.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
+                    <el-table-column label="配方名称" sortable min-width="90px" align="center" prop="名称" />
+                    <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
+                    <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
+                    <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+          <el-row :gutter="10" class="dashboard-editor-container">
+            <!-- 牛群准确率 -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>牛群准确率</h4>
+                <div v-if="tab.chart3.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart3.getdataListParm.parammaps.statisticsList" :option="tab.chart3.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart3" />
+                    <el-radio-group v-model="tab.chart3.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart3')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart3.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart3')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart3.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart3.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart3')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart3')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart3')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart3.isChart" id="chartLine3" style="width:100%;height:385px;" />
+                <div v-if="tab.chart3.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart3')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart3')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart3.table.tableKey"
+                    v-loading="tab.chart3.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart3.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
+                    <el-table-column label="牲畜类别" sortable min-width="90px" align="center" prop="名称" />
+                    <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
+                    <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
+                    <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+            <!-- 车辆准确率(重量) -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>车辆准确率(重量)</h4>
+                <div v-if="tab.chart4.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart4.getdataListParm.parammaps.statisticsList" :option="tab.chart4.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart4" />
+                    <el-radio-group v-model="tab.chart4.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart4')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart4.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart4')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart4.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart4.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart4')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart4')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart4')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart4.isChart" id="chartLine4" style="width:100%;height:385px;" />
+                <div v-if="tab.chart4.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart4')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart4')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart4.table.tableKey"
+                    v-loading="tab.chart4.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart4.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="90px" align="center" prop="日期" />
+                    <el-table-column label="车次" sortable min-width="90px" align="center" prop="名称" />
+                    <el-table-column label="计划重量(kg)" sortable min-width="100px" align="center" prop="理论量" />
+                    <el-table-column label="实际重量(kg)" sortable min-width="100px" align="center" prop="实际量" />
+                    <el-table-column label="准确率" sortable min-width="90px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="10" class="dashboard-editor-container">
+            <!-- 混料统计 -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>混料统计</h4>
+                <div v-if="tab.chart5.isChart" class="button">
+                  <div class="chartButton">
+                    <el-radio-group v-model="tab.chart5.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart5')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart5.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart5')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart5.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart5.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart5')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart5')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart5')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart5.isChart" id="chartLine5" class="button" style="width:100%;height:385px;" />
+                <div v-if="tab.chart5.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart5')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart5')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart5.table.tableKey"
+                    v-loading="tab.chart5.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart5.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="100px" align="center" prop="日期" />
+                    <el-table-column label="自动跳转次数" sortable min-width="130px" align="center" prop="field1" />
+                    <el-table-column label="手动跳转次数" sortable min-width="130px" align="center" prop="field2" />
+                    <el-table-column label="自动跳转理论重量" sortable min-width="110px" align="center" prop="理论自动" />
+                    <el-table-column label="自动跳转实际重量" sortable min-width="110px" align="center" prop="实际自动" />
+                    <el-table-column label="自动跳转准确率" sortable min-width="110px" align="center" prop="field3" />
+                    <el-table-column label="手动跳转理论重量" sortable min-width="110px" align="center" prop="理论手动" />
+                    <el-table-column label="手动跳转实际重量" sortable min-width="110px" align="center" prop="实际手动" />
+                    <el-table-column label="手动跳转准确率" sortable min-width="110px" align="center" prop="field4" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+            <!-- 混料计划取消次数 -->
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4>混料计划取消次数</h4>
+                <div v-if="tab.chart6.isChart" class="button">
+                  <div class="chartButton">
+                    <el-radio-group v-model="tab.chart6.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart6')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart6.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart6.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart6')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart6.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart6.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart6.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart6.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart6')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart6')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart6')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart6.isChart" id="chartLine6" style="width:100%;height:385px;" />
+                <div v-if="tab.chart6.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart6')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart6')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart6.table.tableKey"
+                    v-loading="tab.chart6.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart6.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
+                    <el-table-column label="混料计划取消次数" sortable min-width="110px" align="center" prop="field1" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="10" class="dashboard-editor-container" style="margin-bottom: 30px;">
+            <!-- 栏舍撒料时间统计 -->
+            <el-col :span="24">
+              <div class="grid-content">
+                <h4>栏舍撒料时间统计</h4>
+                <div v-if="tab.chart7.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart7.getdataListParm.parammaps.statisticsLis" :option="tab.chart7.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart7" />
+                    <el-radio-group v-model="tab.chart7.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart7')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart7.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart7.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart7')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart7.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart7.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart7.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart7.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart7')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart7')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart7')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart7.isChart" id="chartLine7" style="width:100%;height:385px;" />
+                <div v-if="tab.chart7.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart7')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart7')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart7.table.tableKey"
+                    v-loading="tab.chart7.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart7.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
+                    <el-table-column label="栏舍" sortable min-width="110px" align="center" prop="fname" />
+                    <el-table-column label="撒料时间" sortable min-width="110px" align="center" prop="撒料时间" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+      </el-tab-pane>
+      <el-tab-pane label="混料统计" name="second">
+        <div class="search">
+          <el-date-picker v-model="tab2.table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 230px;float: left;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
+          <el-button class="el-icon-arrow-left elIconArrowLeft" style="float: left;" :disabled="Beforedisabled2" @click="handleBefore2" />
+          <el-button class="el-icon-arrow-right elIconArrowRight" style="float: left;" :disabled="Nextdisabled2" @click="handleNext2" />
+          <el-input v-model="tab2.table.getdataListParm.parammaps.tmrtname" style="width: 110px;" placeholder="TMR名称" class="filter-item" clearable />
+          <el-input v-model="tab2.table.getdataListParm.parammaps.projname" style="width: 110px;" placeholder="车次" class="filter-item" clearable />
+          <el-select v-model="tab2.table.getdataListParm.parammaps.times" style="width: 110px;" filterable placeholder="班次" class="filter-item" clearable>
+            <el-option v-for="item in tab2.frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-input v-model="tab2.table.getdataListParm.parammaps.templetname" style="width: 110px;" placeholder="配方名称" class="filter-item" clearable />
+          <el-select v-model="tab2.table.getdataListParm.parammaps.buttontype" style="width: 130px;" filterable placeholder="跳转方式" class="filter-item" clearable>
+            <el-option v-for="item in tab2.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-select v-model="tab2.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
+            <el-option v-for="item in tab2.isuseList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-button class="successBorder" @click="handleSearch2">查询</el-button>
+          <el-button class="successBorder" @click="handleRefresh2">重置</el-button>
+          <el-button style="float: right;margin-right: 10px;margin-bottom:10px;" class="export" icon="el-icon-upload2" @click="handleExport2">导出</el-button>
+        </div>
+        <div class="table">
+          <el-table
+            :key="tab2.table.tableKey"
+            v-loading="tab2.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="tab2.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :max-height="myHeight2"
+          >
+            <el-table-column sortable label="日期" min-width="70px" align="center" prop="日期" />
+            <el-table-column sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column sortable label="车次" min-width="50px" align="center" prop="车次" />
+            <el-table-column sortable label="班次" min-width="50px" align="center" prop="班次" />
+            <el-table-column sortable label="配方名称" min-width="90px" align="center" prop="配方名称" />
+            <el-table-column sortable label="饲料" min-width="70px" align="center" prop="饲料" />
+            <el-table-column sortable label="理论重量" min-width="55px" align="center" prop="理论重量" />
+            <el-table-column sortable label="实际重量" min-width="55px" align="center" prop="实际重量" />
+            <el-table-column sortable label="误差值" min-width="45px" align="center" prop="误差值" />
+            <el-table-column sortable label="准确率" min-width="45px" align="center" prop="准确率" />
+            <el-table-column sortable label="计划时间" min-width="55px" align="center" prop="计划时间" />
+            <el-table-column sortable label="开始时间" min-width="55px" align="center" prop="开始时间" />
+            <el-table-column sortable label="结束时间" min-width="55px" align="center" prop="结束时间" />
+            <el-table-column sortable label="搅拌时间" min-width="55px" align="center" prop="搅拌时间" />
+            <el-table-column sortable label="跳转方式" min-width="55px" align="center" prop="跳转方式" />
+            <el-table-column sortable label="开始重量" min-width="55px" align="center" prop="开始重量" />
+            <el-table-column sortable label="结束重量" min-width="55px" align="center" prop="结束重量" />
+          </el-table>
+          <span v-if="tab2.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab2.table.total }}条</span>
+          <pagination v-show="tab2.table.total>0" :total="tab2.table.total" :page.sync="tab2.table.getdataListParm.offset" :limit.sync="tab2.table.getdataListParm.pagecount" @pagination="getTab2List" />
+        </div>
+      </el-tab-pane>
+      <el-tab-pane label="撒料统计" name="third">
+        <div class="search">
+          <el-date-picker v-model="tab3.table.getdataListParm.parammaps.inputDatetime" :clearable="false" style="width: 230px;float: left;" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
+          <el-button class="el-icon-arrow-left elIconArrowLeft" style="float: left;" :disabled="Beforedisabled3" @click="handleBefore3" />
+          <el-button class="el-icon-arrow-right elIconArrowRight" style="float: left;" :disabled="Nextdisabled3" @click="handleNext3" />
+          <el-input v-model="tab3.table.getdataListParm.parammaps.tmrtname" style="width: 110px;" placeholder="TMR名称" class="filter-item" clearable />
+          <el-input v-model="tab3.table.getdataListParm.parammaps.projname" style="width: 110px;" placeholder="车次" class="filter-item" clearable />
+          <el-select v-model="tab3.table.getdataListParm.parammaps.times" style="width: 100px;" filterable placeholder="班次" class="filter-item" clearable>
+            <el-option v-for="item in tab3.frequencyList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-input v-model="tab3.table.getdataListParm.parammaps.templetname" style="width: 110px;" placeholder="配方名称" class="filter-item" clearable />
+          <el-input v-model="tab3.table.getdataListParm.parammaps.fname" style="width: 110px;" placeholder="栏舍名称" class="filter-item" clearable />
+          <el-select v-model="tab3.table.getdataListParm.parammaps.buttontype" style="width: 110px;" filterable placeholder="跳转方式" class="filter-item" clearable>
+            <el-option v-for="item in tab3.jumpModeList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-select v-model="tab3.table.getdataListParm.parammaps.isuse" style="width: 130px;" filterable placeholder="上传状态" class="filter-item" clearable>
+            <el-option v-for="item in tab3.isuseList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+          <el-button class="successBorder" @click="handleSearch3">查询</el-button>
+          <el-button class="successBorder" @click="handleRefresh3">重置</el-button>
+          <el-button style="float: right;margin-right: 10px;margin-bottom:10px;" class="export" icon="el-icon-upload2" @click="handleExport3">导出</el-button>
+        </div>
+        <div class="table">
+          <el-table
+            :key="tab3.table.tableKey"
+            v-loading="tab3.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="tab3.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :max-height="myHeight2"
+          >
+            <el-table-column sortable label="日期" min-width="70px" align="center" prop="日期" />
+            <el-table-column sortable label="TMR名称" min-width="70px" align="center" prop="TMR名称" />
+            <el-table-column sortable label="车次" min-width="45px" align="center" prop="车次" />
+            <el-table-column sortable label="班次" min-width="45px" align="center" prop="班次" />
+            <el-table-column sortable label="配方名称" min-width="90px" align="center" prop="配方名称" />
+            <el-table-column sortable label="栏舍" min-width="90px" align="center" prop="栏舍" />
+            <el-table-column sortable label="理论重量" min-width="55px" align="center" prop="理论重量" />
+            <el-table-column sortable label="实际重量" min-width="55px" align="center" prop="实际重量" />
+            <el-table-column sortable label="误差值" min-width="45px" align="center" prop="误差值" />
+            <el-table-column sortable label="准确率" min-width="45px" align="center" prop="准确率" />
+            <el-table-column sortable label="开始时间" min-width="55px" align="center" prop="开始时间" />
+            <el-table-column sortable label="结束时间" min-width="55px" align="center" prop="结束时间" />
+            <el-table-column sortable label="跳转方式" min-width="55px" align="center" prop="跳转方式" />
+            <el-table-column sortable label="开始重量" min-width="55px" align="center" prop="开始重量" />
+            <el-table-column sortable label="结束重量" min-width="55px" align="center" prop="结束重量" />
+          </el-table>
+          <span v-if="tab3.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab3.table.total }}条</span>
+          <pagination v-show="tab3.table.total>=0" :total="tab3.table.total" :page.sync="tab3.table.getdataListParm.offset" :limit.sync="tab3.table.getdataListParm.pagecount" @pagination="getTab3List" />
+        </div>
+      </el-tab-pane>
+    </el-tabs>
+    <!-- 查看 -->
+    <See :show.sync="isShowDialog" :row-pid="rowPid" :title-fname="titlefname" />
+  </div>
+</template>
+
+<script>
+import echarts from 'echarts'
+import See from './see.vue'
+require('echarts/theme/macarons')
+import { GetDataByName, GetReportform, whichWeek, postJson } from '@/api/common'
+import Cookies from 'js-cookie'
+import { parseTime } from '@/utils/index.js'
+import Pagination from '@/components/Pagination'
+import { json2excel } from '@/utils/index.js'
+import { MessageBox } from 'element-ui'
+import mySelect from '@/components/mySelect'
+export default {
+  name: 'PastureErrorAnalysis',
+  components: { Pagination, mySelect, See },
+  data() {
+    return {
+      pickerMinMonth: '',
+      pickerOptionsMonth: {
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinMonth = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinMonth = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinMonth !== '') {
+            const one = 24 * 3600 * 1000 * 365 * 5
+            const minTime = this.pickerMinMonth - 0
+            let maxTime = this.pickerMinMonth + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() >= Date.now()
+        }
+      },
+      pickerMinDate: '',
+      pickerOptionsDate: {
+        showWeekNumber: false,
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinDate = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinDate = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinDate !== '') {
+            const one = 31 * 24 * 3600 * 1000
+            const minTime = this.pickerMinDate - one
+            let maxTime = this.pickerMinDate + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() > Date.now()
+        }
+      },
+      Beforedisabled: false,
+      Nextdisabled: false,
+      Beforedisabled2: false,
+      Nextdisabled2: false,
+      Beforedisabled3: false,
+      Nextdisabled3: false,
+      pickerOptions: {
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinDate = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinDate = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinDate !== '') {
+            const one = 31 * 24 * 3600 * 1000
+            const minTime = this.pickerMinDate - one
+            let maxTime = this.pickerMinDate + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() > Date.now()
+        }
+      },
+      // 班次
+      maxTime: {
+        getMaxTimesParm: {
+          name: 'getSysoptEnable',
+          page: 1,
+          offset: 1,
+          pagecount: 1,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            inforname: 'times'
+          }
+        }
+      },
+      activeName: 'first',
+      tab: {
+        radio: '0',
+        isDriver: true,
+        isFormulaName: false, // 配方名称
+        isHouseName: false, // 栏舍名称
+        isLivestockType: false, // 牲畜类别
+        isTrainNumber: false, // 车次
+        isTMRName: false, // TMR名称
+        checked: false, // 按日期统计
+        chartDate: [],
+        selectWeek: [],
+        chartMonth: [],
+        specificDate: '1',
+        selectYear: parseTime(new Date(), '{y}'),
+        yearList: [],
+        weekList: [],
+        table: {
+          getdataListParm: {
+            name: 'getAccuracyHFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              fname: '',
+              sort: '',
+              times: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+
+        table2: {
+          getdataListParm: {
+            name: 'getAccuracySFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              fname: '',
+              sort: '',
+              times: ''
+            }
+          },
+          tableKey: 2,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        chartDate: [],
+        // 配方准确率
+        chart1: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart1Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+
+        // 计划统计
+        chart2: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllJH',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        // 牛群准确率
+        chart3: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllNQ',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart1Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        // 车辆准确率(重量)
+        chart4: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllCC',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart4Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        // 混料统计
+        chart5: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllHL',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        // 混料计划取消次数
+        chart6: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllQX',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        // 栏舍撒料时间统计
+        chart7: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracyAllLS',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart7Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        }
+
+      },
+
+      tab2: {
+        table: {
+          getdataListParm: {
+            name: 'getStatisticsHL',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              tmrtname: '',
+              projname: '',
+              times: '',
+              buttontype: '',
+              templetname: '',
+              isuse: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        frequencyList: [],
+        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
+        isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
+      },
+      tab3: {
+        table: {
+          getdataListParm: {
+            name: 'getStatisticsSL',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              tmrtname: '',
+              projname: '',
+              times: '',
+              templetname: '',
+              fname: '',
+              buttontype: '',
+              isuse: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        frequencyList: [],
+        jumpModeList: [{ id: '0', name: '手动跳转' }, { id: '1', name: '自动跳转' }],
+        isuseList: [{ id: '0', name: '未完成' }, { id: '2', name: '部分完成' }, { id: '1', name: '全部完成' }]
+      },
+      titlefname: '',
+      rowPid: '',
+      isShowDialog: false,
+      statisticalTypeList: [{ id: '0', name: '驾驶员' }, { id: '1', name: '配方名称' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '牲畜类别' }, { id: '4', name: '车次' }, { id: '5', name: 'TMR名称' }],
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      myHeight2: document.documentElement.clientHeight - 85 - 210
+    }
+  },
+  created() {
+    console.log(this.isShowDialog, 'this.isShowDialog')
+    this.getTimeFn()
+    this.getAllYear()
+    this.getIsDisplay()
+    this.getTabList()
+    this.getTabList2()
+    this.getChart1()
+    this.getChart2()
+    this.getChart3()
+    this.getChart4()
+    this.getChart5()
+    this.getChart6()
+    this.getChart7()
+  },
+  mounted() {},
+  methods: {
+    getAllYear() {
+      var myDate = new Date()
+      var thisYear = myDate.getFullYear() // 获取当年年份
+      var Section = thisYear - 2001 // 声明一个变量 获得当前年份至想获取年份差 eg.2008
+      this.tab.yearList = [] // 声明一个空数组 把遍历出的年份添加到数组里
+      for (var i = 0; i <= Section; i++) {
+        this.tab.yearList.push(thisYear--)
+      }
+      console.log(this.tab.yearList)
+    },
+    changeAllYear() {
+      console.log('this.selectYear==>', this.tab.selectYear)
+      this.tab.weekList = []
+      this.tab.selectWeek = []
+      var myWeekList = whichWeek(this.tab.selectYear)
+      console.log(myWeekList)
+      for (let i = 0; i <= myWeekList.length; i++) {
+        var obj = {}
+        var a = i + 1
+        obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+        obj.id = i
+        this.tab.weekList.push(obj)
+      }
+    },
+    changeAllSpecificDate() {
+      var start = ''
+      var end = ''
+      if (this.tab.specificDate == '2') {
+        this.tab.selectYear = parseTime(new Date(), '{y}')
+        this.changeAllYear()
+      } else if (this.tab.specificDate == '3') {
+        start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+        end = parseTime(new Date(), '{y}-{m}-{d}')
+        this.tab.chartMonth = []
+        this.tab.chartMonth.push(start, end)
+      }
+    },
+    handleAllDate() {
+      console.log('点击了确认时间')
+      MessageBox.confirm('是否调整以下所有图表查询时间?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        var startDate = ''
+        var endDate = ''
+        var status = ''
+        if (this.tab.specificDate == '1') {
+          startDate = parseTime(this.tab.chartDate[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chartDate[1], '{y}-{m}-{d}')
+          this.tab.chart1.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart2.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart3.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart4.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart5.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart6.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart7.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          status = 0
+          console.log('开始日时==>', startDate)
+          console.log('结束日时==>', endDate)
+        } else if (this.tab.specificDate == '2') {
+          if (this.tab.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].date
+          endDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.date
+          status = 1
+          this.tab.chart1.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart1.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart1.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart2.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart2.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart2.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart3.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart3.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart3.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart4.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart4.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart4.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart5.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart5.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart5.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart6.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart6.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart6.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart7.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart7.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart7.getdataListParm.parammaps.weekList = this.tab.weekList
+          console.log('开始周时间==>', startDate)
+          console.log('结束周时间==>', endDate)
+        } else if (this.tab.specificDate == '3') {
+          if (this.tab.chartMonth.length > 0) {
+            startDate = this.tab.chartMonth[0]
+            endDate = this.tab.chartMonth[1].substring(0, 8) + '31'
+            status = 2
+            this.tab.chart1.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart2.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart3.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart4.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart5.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart6.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart7.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            console.log('开始月时间==>', startDate)
+            console.log('结束月时间==>', endDate)
+          } else {
+            this.$message({ type: 'error', message: '请输入月', duration: 2000 })
+          }
+        }
+        this.tab.chart1.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart1.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart1.getdataListParm.parammaps.status = status
+        this.tab.chart2.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart2.getdataListParm.parammaps.status = status
+        this.tab.chart2.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart3.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart3.getdataListParm.parammaps.status = status
+        this.tab.chart3.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart4.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart4.getdataListParm.parammaps.status = status
+        this.tab.chart4.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart5.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart5.getdataListParm.parammaps.status = status
+        this.tab.chart5.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart6.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart6.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart6.getdataListParm.parammaps.status = status
+        this.tab.chart6.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart7.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart7.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart7.getdataListParm.parammaps.status = status
+        this.tab.chart7.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.getChart1()
+        this.getChart2()
+        this.getChart3()
+        this.getChart4()
+        this.getChart5()
+        this.getChart6()
+        this.getChart7()
+      })
+    },
+    changeChartSpecificDate(item) {
+      var start = ''
+      var end = ''
+      if (item == 'chart1') {
+        if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart1.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart1.getdataListParm.parammaps.weekList = []
+          this.tab.chart1.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart1.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart2') {
+        if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart2.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart2.getdataListParm.parammaps.weekList = []
+          this.tab.chart2.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart2.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart3') {
+        if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart3.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart3.getdataListParm.parammaps.weekList = []
+          this.tab.chart3.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart3.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart4') {
+        if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart4.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart4.getdataListParm.parammaps.weekList = []
+          this.tab.chart4.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart4.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart5') {
+        if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart5.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart5.getdataListParm.parammaps.weekList = []
+          this.tab.chart5.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart5.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart6') {
+        if (this.tab.chart6.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart6.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart6.getdataListParm.parammaps.weekList = []
+          this.tab.chart6.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart6.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart7') {
+        if (this.tab.chart7.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart7.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart7.getdataListParm.parammaps.weekList = []
+          this.tab.chart7.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart7.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      }
+    },
+    changeChartYear(item) {
+      var myWeekList = ''
+      if (item == 'chart1') {
+        this.tab.chart1.getdataListParm.parammaps.weekList = []
+        this.tab.chart1.getdataListParm.parammaps.selectWeek = []
+        myWeekList = whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart1.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart2') {
+        this.tab.chart2.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart2.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart2.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart3') {
+        this.tab.chart3.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart3.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart3.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart4') {
+        this.tab.chart4.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart4.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart4.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart5') {
+        this.tab.chart5.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart5.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart5.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart6') {
+        this.tab.chart6.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart6.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart6.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart7') {
+        this.tab.chart7.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart7.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart7.getdataListParm.parammaps.weekList.push(obj)
+        }
+      }
+    },
+    handleChartDate(item) {
+      console.log(item)
+      var startDate = ''
+      var endDate = ''
+      if (item == 'chart1') {
+        if (this.tab.chart1.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          console.log('配方准确率开始日期==>', startDate)
+          console.log('配方准确率结束日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 0
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart1.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart1.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.date
+          console.log('配方准确率开始周日期==>', startDate)
+          console.log('配方准确率结束周日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 1
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          console.log('配方准确率开始月日期==>', startDate)
+          console.log('配方准确率结束月日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 2
+        }
+        this.tab.chart1.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.getChart1()
+      } else if (item == 'chart2') {
+        if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart2.getdataListParm.parammaps.status = 0
+          console.log('计划统计开始日期==>', startDate)
+          console.log('计划统计结束日期==>', endDate)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart2.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart2.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart2.getdataListParm.parammaps.status = 1
+          console.log('计划统计开始周日期==>', startDate)
+          console.log('计划统计结束周日期==>', endDate)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
+          console.log('计划统计开始月日期==>', this.tab.chart2.getdataListParm.parammaps.chartMonth)
+          startDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart2.getdataListParm.parammaps.status = 2
+          console.log('计划统计开始月日期==>', startDate)
+          console.log('计划统计结束月日期==>', endDate)
+        }
+        this.tab.chart2.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.getChart2()
+      } else if (item == 'chart3') {
+        if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart3.getdataListParm.parammaps.status = 0
+          console.log('牛群准确率开始日期==>', startDate)
+          console.log('牛群准确率结束日期==>', endDate)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart3.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart3.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart3.getdataListParm.parammaps.status = 1
+          console.log('牛群准确率开始周日期==>', startDate)
+          console.log('牛群准确率结束周日期==>', endDate)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart3.getdataListParm.parammaps.status = 2
+          console.log('牛群准确率开始月日期==>', startDate)
+          console.log('牛群准确率结束月日期==>', endDate)
+        }
+        this.tab.chart3.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.getChart3()
+      } else if (item == 'chart4') {
+        if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart4.getdataListParm.parammaps.status = 0
+          console.log('车辆准确率(重量)开始日期==>', startDate)
+          console.log('车辆准确率(重量)结束日期==>', endDate)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart4.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart4.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart4.getdataListParm.parammaps.status = 1
+          console.log('车辆准确率(重量)开始周日期==>', startDate)
+          console.log('车辆准确率(重量)结束周日期==>', endDate)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart4.getdataListParm.parammaps.status = 2
+          console.log('车辆准确率(重量)开始月日期==>', startDate)
+          console.log('车辆准确率(重量)结束月日期==>', endDate)
+        }
+        this.tab.chart4.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.getChart4()
+      } else if (item == 'chart5') {
+        if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart5.getdataListParm.parammaps.status = 0
+          console.log('混料统计开始日期==>', startDate)
+          console.log('混料统计结束日期==>', endDate)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart5.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart5.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart5.getdataListParm.parammaps.status = 1
+          console.log('混料统计开始周日期==>', startDate)
+          console.log('混料统计结束周日期==>', endDate)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart5.getdataListParm.parammaps.status = 2
+          console.log('混料统计开始月日期==>', startDate)
+          console.log('混料统计结束月日期==>', endDate)
+        }
+        this.tab.chart5.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.getChart5()
+      } else if (item == 'chart6') {
+        if (this.tab.chart6.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart6.getdataListParm.parammaps.status = 0
+          console.log('混料计划取消次数开始日期==>', startDate)
+          console.log('混料计划取消次数结束日期==>', endDate)
+        } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart6.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart6.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart6.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart6.getdataListParm.parammaps.selectYear)[this.tab.chart6.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart6.getdataListParm.parammaps.status = 1
+          console.log('混料计划取消次数开始周日期==>', startDate)
+          console.log('混料计划取消次数结束周日期==>', endDate)
+        } else if (this.tab.chart6.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart6.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart6.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart6.getdataListParm.parammaps.status = 2
+          console.log('混料计划取消次数开始月日期==>', startDate)
+          console.log('混料计划取消次数结束月日期==>', endDate)
+        }
+        this.tab.chart6.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart6.getdataListParm.parammaps.stopTime = endDate
+        this.getChart6()
+      } else if (item == 'chart7') {
+        if (this.tab.chart7.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart7.getdataListParm.parammaps.status = 0
+          console.log('栏舍撒料时间统计开始日期==>', startDate)
+          console.log('栏舍撒料时间统计结束日期==>', endDate)
+        } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart7.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart7.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart7.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart7.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart7.getdataListParm.parammaps.selectYear)[this.tab.chart7.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart7.getdataListParm.parammaps.status = 1
+          console.log('栏舍撒料时间统计开始周日期==>', startDate)
+          console.log('栏舍撒料时间统计结束周日期==>', endDate)
+        } else if (this.tab.chart7.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart7.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart7.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart7.getdataListParm.parammaps.status = 2
+          console.log('栏舍撒料时间统计开始月日期==>', startDate)
+          console.log('栏舍撒料时间统计结束月日期==>', endDate)
+        }
+        this.tab.chart7.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart7.getdataListParm.parammaps.stopTime = endDate
+        this.getChart7()
+      }
+    },
+    getTimeFn() {
+      const that = this
+      const start = new Date()
+      const end = new Date()
+      const start2 = new Date()
+      const end2 = new Date()
+      start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+      end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
+      // that.tab.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
+      // that.tab.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
+      that.tab.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
+      that.tab.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
+      that.tab.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
+      that.tab.table2.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
+      that.tab.table2.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
+      that.tab2.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
+      // that.tab2.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
+      // that.tab2.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
+      that.tab2.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
+      that.tab2.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
+      that.tab3.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
+      // that.tab3.table.getdataListParm.parammaps.inputDatetime[0] = parseTime(start2, '{y}-{m}-{d}')
+      // that.tab3.table.getdataListParm.parammaps.inputDatetime[1] = parseTime(end2, '{y}-{m}-{d}')
+      that.tab3.table.getdataListParm.parammaps.startTime = parseTime(start2, '{y}-{m}-{d}')
+      that.tab3.table.getdataListParm.parammaps.stopTime = parseTime(end2, '{y}-{m}-{d}')
+
+      // start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 10)
+      end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)
+      that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart6.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart6.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart6.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart6.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart7.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart7.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart7.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart7.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+    },
+    getIsDisplay() {
+      GetDataByName(this.maxTime.getMaxTimesParm).then(response => {
+        if (response.data.list[0].inforvalue == 1) {
+          this.tab2.frequencyList = [{ id: '1', name: '第一班' }]
+          this.tab3.frequencyList = [{ id: '1', name: '第一班' }]
+        } else if (response.data.list[0].inforvalue == 2) {
+          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
+          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }]
+        } else if (response.data.list[0].inforvalue == 3) {
+          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
+          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
+          this.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }]
+        } else if (response.data.list[0].inforvalue == 4) {
+          this.tab2.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
+          this.tab3.frequencyList = [{ id: '1', name: '第一班' }, { id: '2', name: '第二班' }, { id: '3', name: '第三班' }, { id: '4', name: '第四班' }]
+        }
+      })
+    },
+    // 导出
+    handleDownload() {
+      if (this.tab.checked == true) {
+        if (this.tab.radio == '0') {
+          var excelDatas0 = [
+            {
+              tHeader: ['日期', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
+              filterVal: ['计划时间', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['日期', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
+              filterVal: ['计划时间', '驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas0, '准确性分析—汇总统计', true, 'xlsx')
+        } else if (this.tab.radio == '1') {
+          var excelDatas = [
+            {
+              tHeader: ['日期', '配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '标准差'],
+              filterVal: ['计划时间', '配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '混料正确数', '混料正确率', '去除取消正确率', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['日期', '配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '标准差'],
+              filterVal: ['计划时间', '配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '撒料正确数', '撒料正确率', '去除取消正确率', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas, '准确性分析—汇总统计', true, 'xlsx')
+        } else if (this.tab.radio == '2') {
+          var excelDatas2 = [
+            {
+              tHeader: ['日期', '栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['日期', '栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas2, '汇总统计-栏舍名称', true, 'xlsx')
+        } else if (this.tab.radio == '3') {
+          var excelDatas3 = [
+            {
+              tHeader: ['日期', '牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['日期', '牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas3, '汇总统计-牲畜类别', true, 'xlsx')
+        } else if (this.tab.radio == '4') {
+          var excelDatas4 = [
+            {
+              tHeader: ['日期', '车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['日期', '车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['计划时间', '车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas4, '汇总统计-车次', true, 'xlsx')
+        }
+      } else {
+        if (this.tab.radio == '0') {
+          var excelDatas0 = [
+            {
+              tHeader: ['驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['驾驶员', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas0, '准确性分析—汇总统计', true, 'xlsx')
+        } else if (this.tab.radio == '1') {
+          var excelDatas = [
+            {
+              tHeader: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['配方名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['配方名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas, '准确性分析—汇总统计', true, 'xlsx')
+        } else if (this.tab.radio == '2') {
+          var excelDatas2 = [
+            {
+              tHeader: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['栏舍名称', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['栏舍名称', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas2, '汇总统计-栏舍名称', true, 'xlsx')
+        } else if (this.tab.radio == '3') {
+          var excelDatas3 = [
+            {
+              tHeader: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['牲畜类别', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['牲畜类别', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas3, '汇总统计-牲畜类别', true, 'xlsx')
+        } else if (this.tab.radio == '4') {
+          var excelDatas4 = [
+            {
+              tHeader: ['车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间', '等待时间', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['车次', '班次', 'TMR名称', '驾驶员', '理论重量', '实际重量', '计划混料操作数', '已混料操作数', '混料操作率', '混料误差值', '混料准确率', '混料时间', '等待时间', '混料自动跳转次数', '混料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table.list,
+              sheetName: '混料'
+            },
+            {
+              tHeader: ['车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料时间', '等待时间', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '标准差'],
+              filterVal: ['车次', '理论重量', '实际重量', '计划撒料操作数', '已撒料操作数', '撒料操作率', '撒料误差值', '撒料准确率', '撒料时间', '等待时间', '撒料自动跳转次数', '撒料手动跳转次数', '取消次数', '方差'],
+              tableDatas: this.tab.table2.list,
+              sheetName: '撒料'
+            }
+          ]
+          json2excel(excelDatas4, '汇总统计-车次', true, 'xlsx')
+        }
+      }
+    },
+    // 切换Tab
+    handleTabClick() {
+      if (this.activeName == 'first') {
+        const start = new Date()
+        const end = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
+        end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)
+        this.tab.table.getdataListParm.parammaps.inputDatetime = [start, end]
+        this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        // this.tab.table.getdataListParm.parammaps.inputDatetime = []
+        this.tab.table2.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab.table2.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        this.tab.table.getdataListParm.parammaps.fname = ''
+        this.tab.table.getdataListParm.parammaps.sort = ''
+        this.tab.table.getdataListParm.parammaps.times = ''
+
+        this.tab.table2.getdataListParm.parammaps.fname = ''
+        this.tab.table2.getdataListParm.parammaps.sort = ''
+        this.tab.table2.getdataListParm.parammaps.times = ''
+        this.getTabList()
+        this.getTabList2()
+        this.getChart1()
+        this.getChart2()
+        this.getChart3()
+        this.getChart4()
+        this.getChart5()
+        this.getChart6()
+        this.getChart7()
+      } else if (this.activeName == 'second') {
+        const start2 = new Date()
+        const end2 = new Date()
+        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+        end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)
+        this.tab2.table.getdataListParm.parammaps.inputDatetime = [start2, end2]
+        this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        this.tab2.table.getdataListParm.parammaps.tmrtname = ''
+        this.tab2.table.getdataListParm.parammaps.projname = ''
+        this.tab2.table.getdataListParm.parammaps.times = ''
+        this.tab2.table.getdataListParm.parammaps.buttontype = ''
+        this.tab2.table.getdataListParm.parammaps.templetname = ''
+        this.getTab2List()
+      } else if (this.activeName == 'third') {
+        const start3 = new Date()
+        const end3 = new Date()
+        start3.setTime(start3.getTime() - 3600 * 1000 * 24 * 1)
+        end3.setTime(end3.getTime() - 3600 * 1000 * 24 * 1)
+        this.tab3.table.getdataListParm.parammaps.inputDatetime = [start3, end3]
+        this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+
+        this.tab3.table.getdataListParm.parammaps.tmrtname = ''
+        this.tab3.table.getdataListParm.parammaps.projname = ''
+        this.tab3.table.getdataListParm.parammaps.times = ''
+        this.tab3.table.getdataListParm.parammaps.templetname = ''
+        this.tab3.table.getdataListParm.parammaps.buttontype = ''
+        this.getTab3List()
+      }
+    },
+    // 切换统计类型
+    changeRadio() {
+      console.log(this.tab.radio)
+      this.tab.table.getdataListParm.parammaps.sort = ''
+      this.tab.table.getdataListParm.parammaps.times = ''
+      this.tab.table.getdataListParm.parammaps.fname = ''
+      this.tab.table2.getdataListParm.parammaps.sort = ''
+      this.tab.table2.getdataListParm.parammaps.times = ''
+      this.tab.table2.getdataListParm.parammaps.fname = ''
+      if (this.tab.checked == true) {
+        if (this.tab.radio == '0') {
+          console.log('驾驶员')
+          this.tab.isDriver = true
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFTDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '1') {
+          console.log('配方名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = true
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFTDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '2') {
+          console.log('栏舍名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = true
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHNSDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySNSDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '3') {
+          console.log(' 牲畜类别')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = true
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHSCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySSCDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '4') {
+          console.log('车次')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = true
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHCCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySCCDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '5') {
+          console.log('TMR名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = true
+          this.tab.table.getdataListParm.name = 'getAccuracyMCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySLCLDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      } else {
+        if (this.tab.radio == '0') {
+          console.log('驾驶员')
+          this.tab.isDriver = true
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFT'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFT'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '1') {
+          console.log('配方名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = true
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFT'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFT'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '2') {
+          console.log('栏舍名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = true
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHNS'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySNS'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.getTabList2()
+        } else if (this.tab.radio == '3') {
+          console.log(' 牲畜类别')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = true
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHSC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySSC'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '4') {
+          console.log('车次')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = true
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHCC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySCC'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '5') {
+          console.log('TMR名称')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = true
+          this.tab.table.getdataListParm.name = 'getAccuracyMC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySLCL'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      }
+    },
+    // 按日期统计
+    changeChecked() {
+      console.log(this.tab.checked)
+      this.handleSearch()
+    },
+    // 汇总统计/混料
+    getTabList() {
+      this.tab.table.listLoading = true
+      GetDataByName(this.tab.table.getdataListParm).then(response => {
+        console.log('汇总统计/混料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab.table.list = response.data.list
+          this.tab.table.total = response.data.total
+        } else {
+          this.tab.table.list = []
+        }
+        setTimeout(() => {
+          this.tab.table.listLoading = false
+        }, 100)
+      })
+    },
+    // 汇总统计/撒料
+    getTabList2() {
+      this.tab.table2.listLoading = true
+      GetDataByName(this.tab.table2.getdataListParm).then(response => {
+        console.log('汇总统计/撒料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab.table2.list = response.data.list
+          this.tab.table2.total = response.data.total
+        } else {
+          this.tab.table2.list = []
+        }
+        setTimeout(() => {
+          this.tab.table2.listLoading = false
+        }, 100)
+      })
+    },
+    // 查询
+    handleSearch() {
+      console.log(this.tab.checked)
+      if (this.tab.checked == true) {
+        if (this.tab.radio == '0') {
+          console.log('驾驶员/查询111')
+          this.tab.isDriver = true
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFTDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '1') {
+          console.log('配方名称/查询111')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = true
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFTDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFTDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '2') {
+          console.log('栏舍名称/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = true
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHNSDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySNSDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '3') {
+          console.log(' 牲畜类别/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = true
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHSCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySSCDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '4') {
+          console.log('车次/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = true
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHCCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySCCDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
+          this.tab.table2.getdataListParm.parammaps.times = this.tab.table.getdataListParm.parammaps.times
+          this.tab.table2.getdataListParm.parammaps.projname = this.tab.table.getdataListParm.parammaps.projname
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '5') {
+          console.log('TMR名称/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = true
+          this.tab.table.getdataListParm.name = 'getAccuracyMCDate'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySLCLDate'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
+          this.tab.table2.getdataListParm.parammaps.times = this.tab.table.getdataListParm.parammaps.times
+          this.tab.table2.getdataListParm.parammaps.projname = this.tab.table.getdataListParm.parammaps.projname
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      } else {
+        if (this.tab.radio == '0') {
+          console.log('驾驶员/查询')
+          this.tab.isDriver = true
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFT'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFT'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '1') {
+          console.log('配方名称/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = true
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHFT'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySFT'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '2') {
+          console.log('栏舍名称/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = true
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHNS'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySNS'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '3') {
+          console.log(' 牲畜类别/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = true
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHSC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySSC'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '4') {
+          console.log('车次/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = true
+          this.tab.isTMRName = false
+          this.tab.table.getdataListParm.name = 'getAccuracyHCC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySCC'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+
+          this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
+          this.tab.table2.getdataListParm.parammaps.times = this.tab.table.getdataListParm.parammaps.times
+          this.tab.table2.getdataListParm.parammaps.projname = this.tab.table.getdataListParm.parammaps.projname
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        } else if (this.tab.radio == '5') {
+          console.log('tmr名称/查询')
+          this.tab.isDriver = false
+          this.tab.isFormulaName = false
+          this.tab.isHouseName = false
+          this.tab.isLivestockType = false
+          this.tab.isTrainNumber = false
+          this.tab.isTMRName = true
+          this.tab.table.getdataListParm.name = 'getAccuracyMC'
+          if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+            this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+            this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          } else {
+            this.tab.table.getdataListParm.parammaps.inputDatetime = ''
+            this.tab.table.getdataListParm.parammaps.startTime = ''
+            this.tab.table.getdataListParm.parammaps.stopTime = ''
+          }
+          this.tab.table.getdataListParm.offset = 1
+          this.getTabList()
+          this.tab.table2.getdataListParm.name = 'getAccuracySLCL'
+          this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+          this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+
+          this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
+          this.tab.table2.getdataListParm.parammaps.times = this.tab.table.getdataListParm.parammaps.times
+          this.tab.table2.getdataListParm.parammaps.projname = this.tab.table.getdataListParm.parammaps.projname
+          this.tab.table2.getdataListParm.offset = 1
+          this.getTabList2()
+        }
+      }
+      this.tab.table2.getdataListParm.parammaps.fname = this.tab.table.getdataListParm.parammaps.fname
+    },
+    handleBefore() {
+      this.$forceUpdate()
+      if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        if (stop > Date.now() - 8.64e7) {
+          this.Nextdisabled = true
+          this.Beforedisabled = false
+        } else {
+          this.Nextdisabled = false
+          this.Beforedisabled = false
+        }
+        this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
+        this.$forceUpdate()
+      }
+      this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTabList()
+      this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+      this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+      this.getTabList2()
+    },
+    handleNext() {
+      this.$forceUpdate()
+      if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        if (stop2 > Date.now() - 8.64e7) {
+          this.Nextdisabled = true
+          this.Beforedisabled = false
+        } else {
+          this.Nextdisabled = false
+          this.Beforedisabled = false
+        }
+        this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
+        this.$forceUpdate()
+      }
+      this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTabList()
+      this.tab.table2.getdataListParm.parammaps.startTime = this.tab.table.getdataListParm.parammaps.startTime
+      this.tab.table2.getdataListParm.parammaps.stopTime = this.tab.table.getdataListParm.parammaps.stopTime
+      this.getTabList2()
+    },
+    handleBefore2() {
+      this.$forceUpdate()
+      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        if (stop3 > Date.now() - 8.64e7) {
+          this.Nextdisabled2 = true
+          this.Beforedisabled2 = false
+        } else {
+          this.Nextdisabled2 = false
+          this.Beforedisabled2 = false
+        }
+        this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start3, stop3)
+        this.$forceUpdate()
+      }
+      this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTab2List()
+    },
+    handleNext2() {
+      console.log(this.tab2.table.getdataListParm.parammaps.inputDatetime, 'inputDatetime前')
+      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        if (stop4 > Date.now() - 8.64e7) {
+          this.Nextdisabled2 = true
+          this.Beforedisabled2 = false
+        } else {
+          this.Nextdisabled2 = false
+          this.Beforedisabled2 = false
+        }
+        this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start4, stop4)
+        console.log(this.tab2.table.getdataListParm.parammaps.inputDatetime, 'inputDatetime后')
+        this.$forceUpdate()
+      }
+      this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTab2List()
+    },
+    handleBefore3() {
+      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start5, stop5)
+        this.$forceUpdate()
+        if (stop5 > Date.now() - 8.64e7) {
+          this.Nextdisabled3 = true
+          this.Beforedisabled3 = false
+        } else {
+          this.Nextdisabled3 = false
+          this.Beforedisabled3 = false
+        }
+      }
+      this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTab3List()
+    },
+    handleNext3() {
+      this.$forceUpdate()
+      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start6, stop6)
+        this.$forceUpdate()
+        if (stop6 > Date.now() - 8.64e7) {
+          this.Nextdisabled3 = true
+          this.Beforedisabled3 = false
+        } else {
+          this.Nextdisabled3 = false
+          this.Beforedisabled3 = false
+        }
+      }
+      this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getTab3List()
+    },
+    // 快速跳转到图表
+    handleQuickJumpChart() {
+      var myHeight = document.getElementById('table').offsetHeight + 120
+      window.scrollTo(myHeight, myHeight)
+    },
+    // 快速回到顶部
+    handleQuickJumpTop() {
+      window.scrollTo(0, 0)
+    },
+    // 配方准确率
+    changeStatisticChart1(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart1.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart1.chart1Data3[j])
+          }
+        }
+      }
+      this.tab.chart1.chartLine_data.data3 = arrData3
+      this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
+      this.roadChartLine1(this.tab.chart1.chartLine_data)
+    },
+    // 配方准确率
+    getChart1() {
+      this.tab.chart1.listLoading = true
+      const url = 'authdata/chart/accuracyAllFT'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart2.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart2.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            for (let i = 0; i < response.data.data.length; i++) {
+              if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
+                response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
+              }
+              if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
+                response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
+              }
+              if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
+                response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
+              }
+            }
+          }
+          this.tab.chart1.table.list = response.data.data
+          this.tab.chart1.chartLine_data = response.data.list
+          this.tab.chart1.statisticsList = []
+          this.tab.chart1.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart1.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart1.statisticsList.push(obj)
+          }
+
+          console.log(this.tab.chart1.statisticsList, '配 方准确率下拉内容')
+          this.tab.chart1.chart1Data3 = response.data.list.data3
+          this.tab.chart1.total = response.data.total
+          console.log('配方准确率表数据', this.tab.chart1.table.list)
+          console.log('配方准确率图数据', this.tab.chart1.chartLine_data)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart1.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart1.statisticsList.find(obj => obj.name == this.tab.chart1.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart1.chart1Data3.length; j++) {
+              if (j == myId) {
+                this.tab.chart1.chart1Data3[j].checkedState = true
+                arrData3.push(this.tab.chart1.chart1Data3[j])
+              }
+            }
+          }
+          this.tab.chart1.chartLine_data.data3 = arrData3
+          this.tab.chart1.chartLine_data.data1 = this.tab.chart1.getdataListParm.parammaps.statisticsList
+          this.roadChartLine1(this.tab.chart1.chartLine_data)
+        } else {
+          this.tab.chart1.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart1.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine1(chartLine_data) {
+      if (this.tab.chart1.chartLine != null) {
+        this.tab.chart1.chartLine.dispose()
+      }
+      this.tab.chart1.chartLine = echarts.init(document.getElementById('chartLine1'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
+        },
+        series: (function() {
+          var serie = []
+          for (var i = 0; i < chartLine_data.data3.length; i++) {
+            var item = {
+              name: chartLine_data.data1[i],
+              type: 'line',
+              data: chartLine_data.data3[i].data
+            }
+            serie.push(item)
+          }
+          return serie
+        }())
+      }
+      this.tab.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart1.chartLine.resize()
+      }
+    },
+
+    // 计划统计
+    getChart2() {
+      this.tab.chart2.listLoading = true
+      const url = 'authdata/chart/accuracyAllJH'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart2.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart2.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
+              response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
+            }
+            if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
+              response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
+            }
+            if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
+              response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
+            }
+            if (response.data.data[i].计划取消重量 !== '' && response.data.data[i].计划取消重量 !== undefined) {
+              response.data.data[i].计划取消重量 = parseFloat(response.data.data[i].计划取消重量)
+            }
+            if (response.data.data[i].field3 !== '' && response.data.data[i].field3 !== undefined) {
+              response.data.data[i].field3 = parseFloat(response.data.data[i].field3)
+            }
+            if (response.data.data[i].正确数 !== '' && response.data.data[i].正确数 !== undefined) {
+              response.data.data[i].正确数 = parseFloat(response.data.data[i].正确数)
+            }
+            if (response.data.data[i].计划数 !== '' && response.data.data[i].计划数 !== undefined) {
+              response.data.data[i].计划数 = parseFloat(response.data.data[i].计划数)
+            }
+            if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
+              response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
+            }
+          }
+          this.tab.chart2.table.list = response.data.data
+          this.tab.chart2.chartLine_data = response.data.list
+          this.tab.chart2.total = response.data.total
+          console.log('计划统计图数据', this.tab.chart2.chartLine_data)
+          console.log('计划统计表数据', this.tab.chart2.table.list)
+          this.roadChartLine2(this.tab.chart2.chartLine_data)
+        } else {
+          this.tab.chart2.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart2.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine2(chartLine_data) {
+      if (this.tab.chart2.chartLine != null) {
+        this.tab.chart2.chartLine.dispose()
+      }
+      this.tab.chart2.chartLine = echarts.init(document.getElementById('chartLine2'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: ['计划准确率', '计划正确率', '计划准确率(去除取消重量)'],
+          right: 10
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data1, name: '日期' },
+        yAxis: {
+          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
+        },
+        series: [
+          { name: '计划准确率', type: 'line', data: chartLine_data.data2 },
+          { name: '计划正确率', type: 'line', data: chartLine_data.data3 },
+          { name: '计划准确率(去除取消重量)', type: 'line', data: chartLine_data.data4 }
+        ]
+      }
+      this.tab.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart2.chartLine.resize()
+      }
+    },
+
+    // 牛群准确率
+    changeStatisticChart3(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart3.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart3.chart3Data3[j])
+          }
+        }
+      }
+      this.tab.chart3.chartLine_data.data3 = arrData3
+      this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
+      this.roadChartLine3(this.tab.chart3.chartLine_data)
+    },
+    // 牛群准确率
+    getChart3() {
+      this.tab.chart3.listLoading = true
+      const url = 'authdata/chart/accuracyAllNQ'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart3.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart3.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
+              response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
+            }
+            if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
+              response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
+            }
+            if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
+              response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
+            }
+          }
+          this.tab.chart3.table.list = response.data.data
+          this.tab.chart3.chartLine_data = response.data.list
+          this.tab.chart3.total = response.data.total
+          this.tab.chart3.statisticsList = []
+          this.tab.chart3.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart3.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart3.statisticsList.push(obj)
+          }
+          this.tab.chart3.chart3Data3 = response.data.list.data3
+          this.tab.chart3.total = response.data.total
+          console.log('牛群准确率图数据', this.tab.chart3.chartLine_data)
+          console.log('牛群准确率表数据', this.tab.chart3.table.list)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart3.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart3.statisticsList.find(obj => obj.name == this.tab.chart3.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart3.chart3Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart3.chart3Data3[j])
+              }
+            }
+          }
+          this.tab.chart3.chartLine_data.data3 = arrData3
+          this.tab.chart3.chartLine_data.data1 = this.tab.chart3.getdataListParm.parammaps.statisticsList
+          this.roadChartLine3(this.tab.chart3.chartLine_data)
+        } else {
+          this.tab.chart3.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart3.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine3(chartLine_data) {
+      if (this.tab.chart3.chartLine != null) {
+        this.tab.chart3.chartLine.dispose()
+      }
+      this.tab.chart3.chartLine = echarts.init(document.getElementById('chartLine3'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
+        },
+        series: (function() {
+          var serie = []
+          for (var i = 0; i < chartLine_data.data3.length; i++) {
+            var item = {
+              name: chartLine_data.data1[i],
+              type: 'line',
+              data: chartLine_data.data3[i].data
+            }
+            serie.push(item)
+          }
+          return serie
+        }())
+      }
+      this.tab.chart3.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart3.chartLine.resize()
+      }
+    },
+
+    // 车辆准确率(重量)
+    changeStatisticChart4(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart4.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart4.chart4Data3[j])
+          }
+        }
+      }
+      this.tab.chart4.chartLine_data.data3 = arrData3
+      this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
+      this.roadChartLine4(this.tab.chart4.chartLine_data)
+    },
+    // 车辆准确率
+    getChart4() {
+      this.tab.chart4.listLoading = true
+      const url = 'authdata/chart/accuracyAllCC'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart4.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart4.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].理论量 !== '' && response.data.data[i].理论量 !== undefined) {
+              response.data.data[i].理论量 = parseFloat(response.data.data[i].理论量)
+            }
+            if (response.data.data[i].实际量 !== '' && response.data.data[i].实际量 !== undefined) {
+              response.data.data[i].实际量 = parseFloat(response.data.data[i].实际量)
+            }
+            if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
+              response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率) + '%'
+            }
+          }
+          this.tab.chart4.table.list = response.data.data
+          this.tab.chart4.chartLine_data = response.data.list
+          this.tab.chart4.total = response.data.total
+          this.tab.chart4.statisticsList = []
+          this.tab.chart4.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart4.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart4.statisticsList.push(obj)
+          }
+          this.tab.chart4.chart4Data3 = response.data.list.data3
+          this.tab.chart4.total = response.data.total
+          console.log('车辆准确率(重量)图', this.tab.chart4.chartLine_data)
+          console.log('车辆准确率(重量)表', this.tab.chart4.table.list)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart4.chart4Data3[j])
+              }
+            }
+          }
+          this.tab.chart4.chartLine_data.data3 = arrData3
+          this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
+          this.roadChartLine4(this.tab.chart4.chartLine_data)
+        } else {
+          this.tab.chart4.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart4.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine4(chartLine_data) {
+      if (this.tab.chart4.chartLine != null) {
+        this.tab.chart4.chartLine.dispose()
+      }
+      this.tab.chart4.chartLine = echarts.init(document.getElementById('chartLine4'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
+        },
+        series: (function() {
+          var serie = []
+          for (var i = 0; i < chartLine_data.data3.length; i++) {
+            var item = {
+              name: chartLine_data.data1[i],
+              type: 'line',
+              data: chartLine_data.data3[i].data
+            }
+            serie.push(item)
+          }
+          return serie
+        }())
+      }
+      this.tab.chart4.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart4.chartLine.resize()
+      }
+    },
+
+    // 混料统计
+    getChart5() {
+      this.tab.chart5.listLoading = true
+      const url = 'authdata/chart/accuracyAllHL'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart5.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart5.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
+              response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
+            }
+            if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
+              response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
+            }
+            if (response.data.data[i].理论自动 !== '' && response.data.data[i].理论自动 !== undefined) {
+              response.data.data[i].理论自动 = parseFloat(response.data.data[i].理论自动)
+            }
+            if (response.data.data[i].实际自动 !== '' && response.data.data[i].实际自动 !== undefined) {
+              response.data.data[i].实际自动 = parseFloat(response.data.data[i].实际自动)
+            }
+            if (response.data.data[i].field3 !== '' && response.data.data[i].field3 !== undefined) {
+              response.data.data[i].field3 = parseFloat(response.data.data[i].field3)
+            }
+            if (response.data.data[i].理论手动 !== '' && response.data.data[i].理论手动 !== undefined) {
+              response.data.data[i].理论手动 = parseFloat(response.data.data[i].理论手动)
+            }
+            if (response.data.data[i].实际手动 !== '' && response.data.data[i].实际手动 !== undefined) {
+              response.data.data[i].实际手动 = parseFloat(response.data.data[i].实际手动)
+            }
+            if (response.data.data[i].field4 !== '' && response.data.data[i].field4 !== undefined) {
+              response.data.data[i].field4 = parseFloat(response.data.data[i].field4)
+            }
+          }
+          this.tab.chart5.table.list = response.data.data
+          this.tab.chart5.chartLine_data = response.data.list
+          this.tab.chart5.total = response.data.total
+          console.log('混料统计图', this.tab.chart5.chartLine_data)
+          console.log('混料统计表', this.tab.chart5.table.list)
+          this.roadChartLine5(this.tab.chart5.chartLine_data)
+        } else {
+          this.tab.chart5.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart5.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine5(chartLine_data) {
+      if (this.tab.chart5.chartLine != null) {
+        this.tab.chart5.chartLine.dispose()
+      }
+      this.tab.chart5.chartLine = echarts.init(document.getElementById('chartLine5'))
+      var option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
+          }
+        },
+        toolbox: {
+          feature: {}
+        },
+        legend: {
+          data: ['自动跳转次数', '手动跳转次数', '自动跳转准确率', '手动跳转准确率']
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        xAxis: [
+          {
+            type: 'category',
+            data: chartLine_data.data1,
+            axisPointer: {
+              type: 'shadow'
+            }
+          }
+        ],
+        yAxis: [
+          {
+            splitLine: { show: false }, type: 'value',
+            name: '跳转次数',
+            axisLabel: {
+              formatter: '{value}'
+            }
+          },
+          {
+            splitLine: { show: false }, type: 'value',
+            name: '混料准确率',
+            min: 0,
+            max: 100,
+            interval: 10,
+            axisLabel: {
+              formatter: '{value} %'
+            }
+          }
+        ],
+        series: [
+          {
+            name: '自动跳转次数',
+            type: 'bar',
+            data: chartLine_data.data2
+          },
+          {
+            name: '手动跳转次数',
+            type: 'bar',
+            data: chartLine_data.data3
+          },
+          {
+            name: '自动跳转准确率',
+            type: 'line',
+            yAxisIndex: 1,
+            data: chartLine_data.data4
+          },
+          {
+            name: '手动跳转准确率',
+            type: 'line',
+            yAxisIndex: 1,
+            data: chartLine_data.data5
+          }
+        ]
+      }
+      this.tab.chart5.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart5.chartLine.resize()
+      }
+    },
+
+    // 混料计划取消次数
+    getChart6() {
+      this.tab.chart6.listLoading = true
+      const url = 'authdata/chart/accuracyAllQX'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart6.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart6.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart6.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart6.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart6.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart6.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart6.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart6.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
+              response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
+            }
+          }
+          this.tab.chart6.table.list = response.data.data
+          this.tab.chart6.chartLine_data = response.data.list
+          this.tab.chart6.total = response.data.total
+          console.log('混料计划取消次数图', this.tab.chart6.chartLine_data)
+          console.log('混料计划取消次数表', this.tab.chart6.table.list)
+          this.roadChartLine6(this.tab.chart6.chartLine_data)
+        } else {
+          this.tab.chart6.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart6.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine6(chartLine_data) {
+      if (this.tab.chart6.chartLine != null) {
+        this.tab.chart6.chartLine.dispose()
+      }
+      this.tab.chart6.chartLine = echarts.init(document.getElementById('chartLine6'))
+      var option = {
+        color: ['#3398DB'],
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: { // 坐标轴指示器,坐标轴触发有效
+            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+          }
+        },
+        legend: {
+          data: ['取消次数'],
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        xAxis: [
+          {
+            name: '日期',
+            type: 'category',
+            data: chartLine_data.data1,
+            axisTick: {
+              alignWithLabel: true
+            }
+          }
+        ],
+        yAxis: [
+          {
+            name: '次数',
+            interval: 1, // 会出现负数刻度
+            min: 0,
+            type: 'value'
+          }
+        ],
+        series: [
+          {
+            name: '取消次数',
+            type: 'bar',
+            barWidth: '60%',
+            data: chartLine_data.data2
+          }
+        ]
+      }
+      this.tab.chart6.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart6.chartLine.resize()
+      }
+    },
+
+    // 栏舍撒料时间统计
+    changeStatisticChart7(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart4.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart7.chart7Data3[j])
+          }
+        }
+      }
+      this.tab.chart7.chartLine_data.data3 = arrData3
+      this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
+      this.roadChartLine7(this.tab.chart7.chartLine_data)
+    },
+    getChart7() {
+      this.tab.chart7.listLoading = true
+      const url = 'authdata/chart/accuracyAllLS'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart7.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart7.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart7.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart7.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart7.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart7.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart7.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart7.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          for (let i = 0; i < response.data.data.length; i++) {
+            // 撒料时间
+            var b = []
+            for (let j = 0; j <= response.data.data[i].准确率.length; j++) {
+              // console.log(response.data.data[i].准确率)
+              if (response.data.data[i].准确率.charAt(j) == '.') {
+                b[j] = response.data.data[i].准确率.replace('.', ':')
+              }
+            }
+            response.data.data[i].准确率 = b[b.length - 1]
+            response.data.data[i].撒料时间 = response.data.data[i].准确率
+          }
+          this.tab.chart7.table.list = response.data.data
+          this.tab.chart7.chartLine_data = response.data.list
+          this.tab.chart7.statisticsList = []
+          this.tab.chart7.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart7.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart7.statisticsList.push(obj)
+          }
+          this.tab.chart7.chart7Data3 = response.data.list.data3
+          this.tab.chart7.total = response.data.total
+          console.log('栏舍撒料时间统计图', this.tab.chart7.chartLine_data)
+          console.log('栏舍撒料时间统计表', this.tab.chart7.table.list)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart7.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart7.statisticsList.find(obj => obj.name == this.tab.chart7.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart7.chart7Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart7.chart7Data3[j])
+              }
+            }
+          }
+          this.tab.chart7.chartLine_data.data3 = arrData3
+          this.tab.chart7.chartLine_data.data1 = this.tab.chart7.getdataListParm.parammaps.statisticsList
+          this.roadChartLine7(this.tab.chart7.chartLine_data)
+        } else {
+          this.tab.chart7.list = []
+        }
+        setTimeout(() => {
+          this.tab.chart7.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine7(chartLine_data) {
+      if (this.tab.chart7.chartLine != null) {
+        this.tab.chart7.chartLine.dispose()
+      }
+      this.tab.chart7.chartLine = echarts.init(document.getElementById('chartLine7'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis',
+          formatter: function(params) {
+            // console.log(params)
+            var tip = params[0].name
+            for (let i = 0; i < params.length; i++) {
+              var b = []
+              // var str = params[i].value
+              for (let j = 0; j <= params[i].value.length; j++) {
+                if (params[i].value !== '') {
+                  if (params[i].value.charAt(j) == '.') {
+                    b[j] = params[i].value.replace('.', ':')
+                  }
+                } else {
+                  b[j] = ''
+                }
+              }
+              tip += '<br>' + params[i].seriesName + ': ' + b[b.length - 1]
+            }
+            return tip
+          }
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '15%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: [{
+          type: '',
+          name: '时间',
+          mix: 0,
+          max: 24,
+          interval: 2,
+          axisLabel: {
+            formatter: function(value) {
+              var texts = []
+              if (value < 10) {
+                texts.push('0' + value + ':00')
+              } else {
+                texts.push(value + ':00')
+              }
+              return texts
+            }
+          }
+        }],
+        series: (function() {
+          var serie = []
+          for (var i = 0; i < chartLine_data.data3.length; i++) {
+            var item = {
+              name: chartLine_data.data1[i],
+              type: 'line',
+              data: chartLine_data.data3[i].data
+            }
+            serie.push(item)
+          }
+          return serie
+        }())
+      }
+      this.tab.chart7.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart7.chartLine.resize()
+      }
+    },
+    // 导出
+    handleExport(item) {
+      if (item == 'chart1') {
+        console.log('配方准确率导出')
+        var excelDatasTabChart1 = [
+          {
+            tHeader: ['日期', '配方名称', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.tab.chart1.table.list,
+            sheetName: '配方准确率'
+          }
+        ]
+        json2excel(excelDatasTabChart1, '配方准确率', true, 'xlsx')
+      } else if (item == 'chart2') {
+        console.log('计划统计导出')
+        var excelDatasTabChart2 = [
+          {
+            tHeader: ['日期', '计划执行重量(kg)', '配方理论重量(kg)', '计划准确率', '计划取消重量(kg)', '计划准确率(去除取消重量)', '计划正确数', '计划数', '计划正确率'],
+            filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
+            tableDatas: this.tab.chart2.table.list,
+            sheetName: '计划统计'
+          }
+        ]
+        json2excel(excelDatasTabChart2, '计划统计', true, 'xlsx')
+      } else if (item == 'chart3') {
+        console.log('牛群准确率导出')
+        var excelDatasTabChart3 = [
+          {
+            tHeader: ['日期', '牲畜类别', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.tab.chart3.table.list,
+            sheetName: '牛群准确率'
+          }
+        ]
+        json2excel(excelDatasTabChart3, '牛群准确率', true, 'xlsx')
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)导出')
+        var excelDatasTabChart4 = [
+          {
+            tHeader: ['日期', '车次', '计划重量(kg)', '实际重量(kg)', '准确率'],
+            filterVal: ['日期', '名称', '理论量', '实际量', '准确率'],
+            tableDatas: this.tab.chart4.table.list,
+            sheetName: '车辆准确率(重量)'
+          }
+        ]
+        json2excel(excelDatasTabChart4, '车辆准确率(重量)', true, 'xlsx')
+      } else if (item == 'chart5') {
+        console.log('混料统计导出')
+        var excelDatasTabChart5 = [
+          {
+            tHeader: ['日期', '自动跳转次数', '手动跳转次数', '自动跳转理论重量', '自动跳转实际重量', '自动跳转准确率', '手动跳转理论重量', '手动跳转实际重量', '手动跳转准确率'],
+            filterVal: ['日期', 'field1', 'field2', '理论自动', '实际自动', 'field3', '理论手动', '实际手动', 'field4'],
+            tableDatas: this.tab.chart5.table.list,
+            sheetName: '混料统计'
+          }
+        ]
+        json2excel(excelDatasTabChart5, '混料统计', true, 'xlsx')
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数导出')
+        var excelDatasTabChart6 = [
+          {
+            tHeader: ['日期', '混料计划取消次数'],
+            filterVal: ['日期', 'field1'],
+            tableDatas: this.tab.chart6.table.list,
+            sheetName: '混料计划取消次数'
+          }
+        ]
+        json2excel(excelDatasTabChart6, '混料计划取消次数', true, 'xlsx')
+      } else if (item == 'chart7') {
+        console.log('栏舍撒料时间统计导出')
+        var excelDatasTabChart7 = [
+          {
+            tHeader: ['日期', '栏舍', '撒料时间'],
+            filterVal: ['日期', 'fname', '准确率'],
+            tableDatas: this.tab.chart7.table.list,
+            sheetName: '栏舍撒料时间统计'
+          }
+        ]
+        json2excel(excelDatasTabChart7, '栏舍撒料时间统计', true, 'xlsx')
+      }
+    },
+    // 切换表格
+    handleTable(item) {
+      // 显示切换表格
+      if (item == 'chart1') {
+        console.log('配方准确率表格')
+        this.tab.chart1.isTable = true
+        this.tab.chart1.isChart = false
+      } else if (item == 'chart2') {
+        console.log('计划统计表格')
+        this.tab.chart2.isTable = true
+        this.tab.chart2.isChart = false
+      } else if (item == 'chart3') {
+        console.log('牛群准确率表格')
+        this.tab.chart3.isTable = true
+        this.tab.chart3.isChart = false
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)表格')
+        this.tab.chart4.isTable = true
+        this.tab.chart4.isChart = false
+      } else if (item == 'chart5') {
+        console.log('混料统计表格')
+        this.tab.chart5.isTable = true
+        this.tab.chart5.isChart = false
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数表格')
+        this.tab.chart6.isTable = true
+        this.tab.chart6.isChart = false
+      } else if (item == 'chart7') {
+        console.log('栏舍撒料时间统计表格')
+        this.tab.chart7.isTable = true
+        this.tab.chart7.isChart = false
+      }
+    },
+    // 切换图表
+    handleChart(item) {
+      // 显示切换图表
+      if (item == 'chart1') {
+        console.log('配方准确率图表')
+        this.tab.chart1.isTable = false
+        this.tab.chart1.isChart = true
+        this.getChart1()
+      } else if (item == 'chart2') {
+        console.log('计划统计图表')
+        this.tab.chart2.isTable = false
+        this.tab.chart2.isChart = true
+        this.getChart2()
+      } else if (item == 'chart3') {
+        console.log('牛群准确率图表')
+        this.tab.chart3.isTable = false
+        this.tab.chart3.isChart = true
+        this.getChart3()
+      } else if (item == 'chart4') {
+        console.log('车辆准确率(重量)图表')
+        this.tab.chart4.isTable = false
+        this.tab.chart4.isChart = true
+        this.getChart4()
+      } else if (item == 'chart5') {
+        console.log('混料统计图表')
+        this.tab.chart5.isTable = false
+        this.tab.chart5.isChart = true
+        this.getChart5()
+      } else if (item == 'chart6') {
+        console.log('混料计划取消次数图表')
+        this.tab.chart6.isTable = false
+        this.tab.chart6.isChart = true
+        this.getChart6()
+      } else if (item == 'chart7') {
+        console.log('栏舍撒料时间统计图表')
+        this.tab.chart7.isTable = false
+        this.tab.chart7.isChart = true
+        this.getChart7()
+      }
+    },
+
+    // 混料统计
+    getTab2List() {
+      this.tab2.table.listLoading = true
+      GetDataByName(this.tab2.table.getdataListParm).then(response => {
+        console.log('混料统计table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab2.table.list = response.data.list
+          this.tab2.table.total = response.data.total
+        } else {
+          this.tab2.table.list = []
+        }
+        setTimeout(() => {
+          this.tab2.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleSearch2() {
+      this.tab2.table.getdataListParm.name = 'getStatisticsHL'
+      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {
+        console.log(this.tab2.table.getdataListParm.parammaps.inputDatetime)
+        this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      } else {
+        this.tab2.table.getdataListParm.parammaps.inputDatetime = ''
+        this.tab2.table.getdataListParm.parammaps.startTime = ''
+        this.tab2.table.getdataListParm.parammaps.stopTime = ''
+      }
+      this.tab2.table.getdataListParm.offset = 1
+      this.getTab2List()
+    },
+    handleRefresh2() {
+      this.tab2.table.getdataListParm.parammaps.tmrtname = ''
+      this.tab2.table.getdataListParm.parammaps.projname = ''
+      this.tab2.table.getdataListParm.parammaps.times = ''
+      this.tab2.table.getdataListParm.parammaps.templetname = ''
+      this.tab2.table.getdataListParm.parammaps.buttontype = ''
+      this.getTab2List()
+    },
+    handleExport2() {
+      var excelDatasTab2 = [
+        {
+          tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', ' 跳转方式', '开始重量', '结束重量', '搅拌时间'],
+          filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '饲料', '理论重量', '实际重量', '误差值', '准确率', '计划时间', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
+          tableDatas: this.tab2.table.list,
+          sheetName: '混料统计'
+        }
+      ]
+      json2excel(excelDatasTab2, '混料统计', true, 'xlsx')
+    },
+    // 撒料统计
+    getTab3List() {
+      this.tab3.table.listLoading = true
+      GetDataByName(this.tab3.table.getdataListParm).then(response => {
+        console.log('撒料统计table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab3.table.list = response.data.list
+          this.tab3.table.total = response.data.total
+        } else {
+          this.tab3.table.list = []
+        }
+        setTimeout(() => {
+          this.tab3.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleSearch3() {
+      this.tab3.table.getdataListParm.name = 'getStatisticsSL'
+      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {
+        this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      } else {
+        this.tab3.table.getdataListParm.parammaps.inputDatetime = ''
+        this.tab3.table.getdataListParm.parammaps.startTime = ''
+        this.tab3.table.getdataListParm.parammaps.stopTime = ''
+      }
+      this.tab3.table.getdataListParm.offset = 1
+      this.getTab3List()
+    },
+    handleRefresh3() {
+      this.tab3.table.getdataListParm.parammaps.tmrtname = ''
+      this.tab3.table.getdataListParm.parammaps.projname = ''
+      this.tab3.table.getdataListParm.parammaps.times = ''
+      this.tab3.table.getdataListParm.parammaps.templetname = ''
+      this.tab3.table.getdataListParm.parammaps.buttontype = ''
+      this.tab3.table.getdataListParm.parammaps.fname = ''
+      this.getTab3List()
+    },
+    handleExport3() {
+      var excelDatasTab3 = [
+        {
+          tHeader: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
+          filterVal: ['日期', 'TMR名称', '车次', '班次', '配方名称', '栏舍', '理论重量', '实际重量', '误差值', '准确率', '开始时间', '结束时间', '跳转方式', '开始重量', '结束重量', '搅拌时间'],
+          tableDatas: this.tab3.table.list,
+          sheetName: '撒料统计'
+        }
+      ]
+      json2excel(excelDatasTab3, '撒料统计', true, 'xlsx')
+    },
+    handleSee(row) {
+      if (this.tab.radio == 1) {
+        this.titlefname = '准确性详情——配方名称:' + row.配方名称
+      } else if (this.tab.radio == 2) {
+        this.titlefname = '准确性详情——栏舍名称:' + row.栏舍名称
+      } else if (this.tab.radio == 3) {
+        this.titlefname = '准确性详情——牲畜类别:' + row.栏舍名称
+      } else if (this.tab.radio == 4) {
+        this.titlefname = '准确性详情——车次:' + row.车次
+      } else if (this.tab.radio == 5) {
+        this.titlefname = '准确性详情——TMR名称:' + row.TMR名称
+      }
+      console.log(row, 'row')
+      this.rowPid = row.pid
+      this.isShowDialog = true
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .search{
+    .el-radio{margin-right: 10px;}
+  }
+  .button{
+    height: 95px;
+    .exportTable2{float: right;margin-right: 5px;margin-top: 5px;}
+  }
+  .app-container1{padding-left: 10px;background-color: #F4F4F4;}
+  .dashboard-editor-container {
+    background-color: #F4F4F4;
+    .grid-content{
+      background-color:#fff;padding: 0 10px;
+      h4{text-align: center;line-height: 50px;}
+    }
+  }
+  .table{margin-bottom: 50px;}
+  /deep/ .el-table th>.cell{
+    padding-left: 0 !important;;
+    padding-right: 0 !important;;
+  }
+  /deep/ .el-table td>.cell{
+    padding-left: 0 !important;;
+    padding-right: 0 !important;;
+  }
+  /deep/ .specificDate .el-radio{margin-right: 0px;}
+  /deep/ .el-radio-button__inner{padding: 7px 7px ;}
+  /deep/ .el-range-editor.el-input__inner .el-input__icon{width: 0;}
+</style>

+ 5 - 5
src/views/statisticalAnalysis/errorAnalysis/pasture/see.vue

@@ -227,7 +227,7 @@ export default {
       this.table1.getdataListParm.parammaps.pid = this.pid
       GetDataByName(this.table1.getdataListParm).then(response => {
         console.log('车次信息数据', response.data.list)
-        if (response.data.list !== null) {
+        if (response.data !== null && response.data.list !== null) {
           this.table1.list = response.data.list
           this.table2.getdataListParm.parammaps.pid = response.data.list[0].pid
           this.table2.getdataListParm.parammaps.pastureid = response.data.list[0].pastureid
@@ -256,7 +256,7 @@ export default {
       this.table2.listLoading = true
       GetDataByName(this.table2.getdataListParm).then(response => {
         console.log('混料信息数据', response.data.list)
-        if (response.data.list !== null) {
+        if (response.data !== null && response.data.list !== null) {
           this.table2.list = response.data.list
           var sumlweight = 0
           var sumactualweightminus = 0
@@ -286,8 +286,8 @@ export default {
     getList3() {
       this.table3.listLoading = true
       GetDataByName(this.table3.getdataListParm).then(response => {
-        console.log('撒料信息数据', response.data.list)
-        if (response.data.list !== null) {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('撒料信息数据', response.data.list)
           this.table3.list = response.data.list
           var sumlweight = 0
           var sumactualweightminus = 0
@@ -317,7 +317,7 @@ export default {
     getChart1() {
       this.chart1.listLoading = true
       GetReportform(this.chart1.getdataListParm).then(response => {
-        if (response.data.list !== null) {
+        if (response.data !== null && response.data.list !== null) {
           this.chart1.list = response.data.data
           console.log('监控图', response.data.list)
           this.chart1.chartLine_data = response.data.list

File diff ditekan karena terlalu besar
+ 874 - 874
src/views/statisticalAnalysis/feedingEfficiency/pasture/index.vue


+ 2310 - 0
src/views/statisticalAnalysis/feedingEfficiency/pasture/index改.vue

@@ -0,0 +1,2310 @@
+<template>
+  <div class="app-container1">
+    <el-tabs v-model="activeName" @tab-click="handleTabClick">
+      <el-tab-pane label="效率统计" name="first">
+        <div class="search">
+          <el-date-picker v-model="tab.table.getdataListParm.parammaps.date" :clearable="false" type="date" placeholder="选择日期" style="width: 150px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />
+          <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
+          <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
+          <span style="margin-left: 10px;">统计类型:</span>
+          <el-radio v-model="tab.radio" label="1" @change="changeRadio">配方</el-radio>
+          <el-radio v-model="tab.radio" label="2" @change="changeRadio">栏舍</el-radio>
+          <el-radio v-model="tab.radio" label="3" @change="changeRadio">牲畜类别</el-radio>
+          <el-input v-if="tab.isFormulaName" v-model="tab.table.getdataListParm.parammaps.ftname" class="filter-item" style="width: 245px;" placeholder="配方模板" />
+          <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.barname" class="filter-item" style="width: 150px;" placeholder="栏舍" />
+          <el-input v-if="tab.isHouseName" v-model="tab.table.getdataListParm.parammaps.ftname" class="filter-item" style="width: 150px;" placeholder="配方模板" />
+          <el-input v-if="tab.isLivestockType" v-model="tab.table.getdataListParm.parammaps.cowclass" class="filter-item" style="width: 150px;" placeholder="牲畜类别" />
+          <el-button class="successBorder" @click="handleSearch">查询</el-button>
+          <el-button class="export" icon="el-icon-upload2" @click="handleDownload">导出</el-button>
+          <svg-icon icon-class="Up" class="down" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpChart" />
+        </div>
+        <div id="table" class="table">
+          <el-table
+            :key="tab.table.tableKey"
+            v-loading="tab.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="tab.table.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+            :max-height="myHeight"
+          >
+            <el-table-column v-if="tab.isFormulaName" sortable label="配方模板" min-width="70px" align="center" prop="配方模板" />
+            <el-table-column v-if="tab.isHouseName" sortable label="栏舍" min-width="70px" align="center" prop="栏舍" />
+            <el-table-column v-if="tab.isHouseName" sortable label="配方模板" min-width="70px" align="center" prop="配方模板" />
+            <el-table-column v-if="tab.isLivestockType" sortable label="牲畜类别" min-width="70px" align="center" prop="牲畜类别" />
+            <el-table-column sortable label="实际牛头数" min-width="60px" align="center" prop="实际牛头数" />
+            <el-table-column sortable label="应混料量(kg)" min-width="60px" align="center" prop="应混料量" />
+            <el-table-column sortable label="实际混料量(kg)" min-width="70px" align="center" prop="实际混料量" />
+            <el-table-column sortable label="撒料量(kg)" min-width="60px" align="center" prop="撒料量" />
+            <el-table-column sortable label="平均混料时间" min-width="70px" align="center" prop="混料时间" />
+            <el-table-column sortable label="转投剩料量(kg)" min-width="70px" align="center" prop="转投剩料量" />
+            <el-table-column sortable label="今日剩料量(kg)" min-width="70px" align="center" prop="今日剩料量" />
+            <el-table-column sortable label="剩料率(%)" min-width="60px" align="center" prop="剩料率" />
+            <el-table-column sortable label="TMR干物质(%)" min-width="65px" align="center" prop="TMR干物质" />
+            <el-table-column sortable label="配方干物质采食量(kg/头)" min-width="80px" align="center" prop="配方干物质采食量" />
+            <el-table-column sortable label="实际干物质采食量(kg/头)" min-width="80px" align="center" prop="实际干物质采食量" />
+            <el-table-column sortable label="采食率(%)" min-width="60px" align="center" prop="采食率" />
+            <el-table-column sortable label="配方成本(元/头)" min-width="65px" align="center" prop="配方成本" />
+            <el-table-column sortable label="实际成本(元/头)" min-width="65px" align="center" prop="实际成本" />
+            <el-table-column sortable label="产奶量(kg/头)" min-width="65px" align="center" prop="产奶量" />
+            <el-table-column sortable label="饲料转化率(%)" min-width="60px" align="center" prop="饲料转化率" />
+            <el-table-column sortable label="公斤奶饲料成本" min-width="60px" align="center" prop="公斤奶饲料成本" />
+          </el-table>
+          <span v-if="tab.table.listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab.table.total }}条</span>
+        </div>
+        <div class="AnalysisChart">
+          <el-row :gutter="10">
+            <el-col :span="23">
+              <span>图表查询时间:</span>
+              <el-radio-group v-model="tab.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeAllSpecificDate">
+                <el-radio-button label="1" border>日</el-radio-button>
+                <el-radio-button label="2" border>周</el-radio-button>
+                <el-radio-button label="3" border>月</el-radio-button>
+              </el-radio-group>
+              <div v-show="tab.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                <el-date-picker v-model="tab.chartDate" :clearable="false" class="inputDatetime filter-item" style="width:250px;" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+              </div>
+              <div v-show="tab.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                <el-select v-model="tab.selectYear" class="filter-item" style="width:130px;margin-right:10px;" placeholder="请选择年份" @change="changeAllYear">
+                  <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                </el-select>
+                <el-select v-model="tab.selectWeek" class="filter-item" style="width:170px;" multiple :multiple-limit="2" placeholder="请选择周">
+                  <el-option v-for="(item,index) in tab.weekList" :key="index" :label="item.name" :value="item.id" />
+                </el-select>
+              </div>
+              <div v-show="tab.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                <el-date-picker v-model="tab.chartMonth" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" style="width:250px;" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+              </div>
+              <el-button class="successBorder" style="margin-left:10px;" @click="handleAllDate">确认</el-button>
+              <svg-icon icon-class="Up" style="width: 40px;height: 40px;float: right;" @click="handleQuickJumpTop" />
+            </el-col>
+          </el-row>
+          <el-row :gutter="10" class="dashboard-editor-container">
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4 style="text-align:center;">泌乳牛干物质采食量</h4>
+                <div v-if="tab.chart1.isChart" class="button">
+                  <div class="chartButton">
+                    <el-radio-group v-model="tab.chart1.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart1')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart1.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart1')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart1.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart1.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart1.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart1.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart1')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart1')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart1')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart1.isChart" id="chartLine1" style="width:100%;height:385px;" />
+                <div v-if="tab.chart1.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable2" @click="handleExport('chart1')">导出</div>
+                    <div class="exportTable2" @click="handleChart('chart1')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart1.table.tableKey"
+                    v-loading="tab.chart1.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart1.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
+                    <el-table-column label="泌乳牛采食量(kg)" sortable min-width="110px" align="center" prop="field1" />
+                    <el-table-column label="泌乳牛产奶量(kg)" sortable min-width="110px" align="center" prop="field2" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4 style="text-align:center;">牛栏剩料率</h4>
+                <div v-if="tab.chart2.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart2.getdataListParm.parammaps.statisticsList" :option="tab.chart2.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart2" />
+                    <el-radio-group v-model="tab.chart2.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart2')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart2.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart2')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart2.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart2.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart2.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart2.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart2')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart2')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart2')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart2.isChart" id="chartLine2" style="width:100%;height:385px;" />
+                <div v-if="tab.chart2.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart2')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart2')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart2.table.tableKey"
+                    v-loading="tab.chart2.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart2.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column label="日期" sortable min-width="110px" align="center" prop="日期" />
+                    <el-table-column label="栏舍名称" sortable min-width="110px" align="center" prop="名称" />
+                    <el-table-column label="剩料量" sortable min-width="110px" align="center" prop="剩料量" />
+                    <el-table-column label="撒料量" sortable min-width="110px" align="center" prop="撒料量" />
+                    <el-table-column label="剩料率" sortable min-width="110px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+          <el-row :gutter="10" class="dashboard-editor-container">
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4 style="text-align:center;">混料时间统计</h4>
+                <div v-if="tab.chart3.isChart" class="button">
+                  <div class="chartButton">
+                    <el-radio-group v-model="tab.chart3.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart3')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart3.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart3')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart3.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart3.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart3.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart3.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart3')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart3')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart3')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart3.isChart" id="chartLine3" style="width:100%;height:385px;" />
+                <div v-if="tab.chart3.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart3')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart3')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart3.table.tableKey"
+                    v-loading="tab.chart3.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart3.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column sortable label="日期" min-width="110px" align="center" prop="日期" />
+                    <el-table-column sortable label="混料时间(分钟)" min-width="110px" align="center" prop="field1" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+            <el-col :span="12">
+              <div class="grid-content">
+                <h4 style="text-align:center;">转化率</h4>
+                <div v-if="tab.chart4.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart4.getdataListParm.parammaps.statisticsList" :option="tab.chart4.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart4" />
+                    <el-radio-group v-model="tab.chart4.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart4')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart4.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart4')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart4.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart4.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart4.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart4.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart4')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart4')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart4')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart4.isChart" id="chartLine4" style="width:100%;height:385px;" />
+                <div v-if="tab.chart4.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart4')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart4')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart4.table.tableKey"
+                    v-loading="tab.chart4.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart4.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column sortable label="日期" min-width="110px" align="center" prop="日期" />
+                    <el-table-column sortable label="配方名称" min-width="110px" align="center" prop="名称" />
+                    <el-table-column sortable label="饲料转化率" min-width="110px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="10" class="dashboard-editor-container" style="margin-bottom: 30px;">
+            <el-col :span="24">
+              <div class="grid-content">
+                <h4 style="text-align:center;">成本分析</h4>
+                <div v-if="tab.chart5.isChart" class="button">
+                  <div class="chartButton">
+                    <my-select ref="tenantselect" :model="tab.chart5.getdataListParm.parammaps.statisticsList" :option="tab.chart5.statisticsList" :value="'name'" :label="'name'" style="width: 150px;margin-right: 5px;float: left;" placeholder="请选择统计参数" @searchSelect="changeStatisticChart5" />
+                    <el-radio-group v-model="tab.chart5.getdataListParm.parammaps.specificDate" class="specificDate" size="mini" style="display: inline-block;" @change="changeChartSpecificDate('chart5')">
+                      <el-radio-button label="1" border>日</el-radio-button>
+                      <el-radio-button label="2" border>周</el-radio-button>
+                      <el-radio-button label="3" border>月</el-radio-button>
+                    </el-radio-group>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '1'" class="day" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.inputDatetime" style="width:220px;" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptionsDate" />
+                    </div>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '2'" class="week" style="display: inline-block; clear: both;margin-left:10px;">
+                      <el-select v-model="tab.chart5.getdataListParm.parammaps.selectYear" class="filter-item" style="width:80px;margin-right:10px;" placeholder="年份" @change="changeChartYear('chart5')">
+                        <el-option v-for="item in tab.yearList" :key="item" :label="item" :value="item" />
+                      </el-select>
+                      <el-select v-model="tab.chart5.getdataListParm.parammaps.selectWeek" class="filter-item" style="width:160px;" multiple :multiple-limit="2" placeholder="请选择周">
+                        <el-option v-for="(item,index) in tab.chart5.getdataListParm.parammaps.weekList" :key="index" :label="item.name" :value="item.id" />
+                      </el-select>
+                    </div>
+                    <div v-show="tab.chart5.getdataListParm.parammaps.specificDate == '3'" class="month" style="display: inline-block;margin-left:10px;">
+                      <el-date-picker v-model="tab.chart5.getdataListParm.parammaps.chartMonth" style="width:220px;" :clearable="false" value-format="yyyy-MM-dd" type="monthrange" class="inputDatetime filter-item" range-separator="至" :picker-options="pickerOptionsMonth" />
+                    </div>
+                    <el-button class="successBorder" style="margin-left:10px;" @click="handleChartDate('chart5')">确认</el-button>
+                  </div>
+                  <div>
+                    <div class="exportTable2" @click="handleExport('chart5')">导出</div>
+                    <div class="exportTable2" @click="handleTable('chart5')">切换表格</div>
+                  </div>
+                </div>
+                <div v-if="tab.chart5.isChart" id="chartLine5" style="width:100%;height:385px;" />
+                <div v-if="tab.chart5.isTable" class="table">
+                  <div class="button">
+                    <div class="exportTable" @click="handleExport('chart5')">导出</div>
+                    <div class="exportTable" @click="handleChart('chart5')">切换图表</div>
+                  </div>
+                  <el-table
+                    :key="tab.chart5.table.tableKey"
+                    v-loading="tab.chart5.table.listLoading"
+                    element-loading-text="给我一点时间"
+                    :data="tab.chart5.table.list"
+                    border
+                    fit
+                    highlight-current-row
+                    style="width: 100%;"
+                    height="385"
+                    :row-style="rowStyle"
+                    :cell-style="cellStyle"
+                    class="elTable table-fixed"
+                  >
+                    <el-table-column sortable label="日期" min-width="110px" align="center" prop="日期" />
+                    <el-table-column sortable label="牲畜类别" min-width="110px" align="center" prop="名称" />
+                    <el-table-column sortable label="公斤奶饲料成本(元)" min-width="110px" align="center" prop="准确率" />
+                  </el-table>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+      </el-tab-pane>
+      <el-tab-pane label="牛群评估" name="second">
+        <div class="search">
+          <el-date-picker v-model="tab2.table.getdataListParm.parammaps.date" :clearable="false" type="date" placeholder="选择日期" style="width: 150px;" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeTab2Date" />
+          <!-- <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore2" />
+          <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext2" /> -->
+        </div>
+        <div class="table">
+          <el-row :gutter="10">
+            <el-col :span="12">
+              <h4 style="text-align:center;">宾州筛分析</h4>
+              <el-table
+                :key="tab2.table.tableKey"
+                v-loading="tab2.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="tab2.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                height="400px"
+              >
+                <el-table-column sortable label="宾州筛" min-width="60px" align="center" prop="barname" />
+                <el-table-column sortable label="第一层重量" min-width="60px" align="center" prop="oneweight" />
+                <el-table-column sortable label="第一层百分比" min-width="60px" align="center" prop="onerate" />
+                <el-table-column sortable label="第二层重量" min-width="60px" align="center" prop="twoweight" />
+                <el-table-column sortable label="第二层百分比" min-width="60px" align="center" prop="tworate" />
+                <el-table-column sortable label="第三层重量" min-width="60px" align="center" prop="threeweight" />
+                <el-table-column sortable label="第三层百分比" min-width="60px" align="center" prop="threerate" />
+                <el-table-column sortable label="第四层重量" min-width="60px" align="center" prop="fourweight" />
+                <el-table-column sortable label="第四层百分比" min-width="60px" align="center" prop="fourrate" />
+                <el-table-column sortable label="参考标准" min-width="50px" align="center" prop="standard" />
+              </el-table>
+            </el-col>
+            <el-col :span="12">
+              <h4 style="text-align:center;">粪便筛分析</h4>
+              <el-table
+                :key="tab2.table2.tableKey"
+                v-loading="tab2.table2.listLoading"
+                element-loading-text="给我一点时间"
+                :data="tab2.table2.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                height="400px"
+              >
+                <el-table-column sortable label="粪便筛" min-width="60px" align="center" prop="barname" />
+                <el-table-column sortable label="第一层重量" min-width="60px" align="center" prop="oneweight" />
+                <el-table-column sortable label="第一层百分比" min-width="60px" align="center" prop="onerate" />
+                <el-table-column sortable label="第二层重量" min-width="60px" align="center" prop="twoweight" />
+                <el-table-column sortable label="第二层百分比" min-width="60px" align="center" prop="tworate" />
+                <el-table-column sortable label="第三层重量" min-width="60px" align="center" prop="threeweight" />
+                <el-table-column sortable label="第三层百分比" min-width="60px" align="center" prop="threerate" />
+                <el-table-column sortable label="参考标准" min-width="50px" align="center" prop="standard" />
+              </el-table>
+            </el-col>
+          </el-row>
+          <el-row :gutter="10">
+            <el-col :span="12">
+              <h4 style="text-align:center;">BCS评分</h4>
+              <el-table
+                :key="tab2.table3.tableKey"
+                v-loading="tab2.table3.listLoading"
+                element-loading-text="给我一点时间"
+                :data="tab2.table3.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                height="400px"
+              >
+                <el-table-column sortable label="栏舍" min-width="60px" align="center" prop="barname" />
+                <el-table-column sortable label="抽查样本数" min-width="60px" align="center" prop="sumcowcount" />
+                <el-table-column sortable label="单产" min-width="60px" align="center" prop="product" />
+                <el-table-column sortable label="干物质采食量" min-width="60px" align="center" prop="dryweight" />
+                <el-table-column sortable label="泌乳天数" min-width="50px" align="center" prop="avgdim" />
+                <el-table-column sortable label="标准分数" min-width="50px" align="center" prop="standardscore" />
+                <el-table-column sortable label="2.75-分(数量、百分比)" min-width="100px" align="center" prop="score25" />
+                <el-table-column sortable label="2.75分(数量、百分比)" min-width="100px" align="center" prop="score275" />
+                <el-table-column sortable label="3分(数量、百分比)" min-width="90px" align="center" prop="score3" />
+                <el-table-column sortable label="3.25分(数量、百分比)" min-width="100px" align="center" prop="score325" />
+                <el-table-column sortable label="3.5分(数量、百分比)" min-width="100px" align="center" prop="score35" />
+                <el-table-column sortable label="3.75分(数量、百分比)" min-width="100px" align="center" prop="score375" />
+                <el-table-column sortable label="4+分(数量、百分比)" min-width="100px" align="center" prop="score4" />
+              </el-table>
+            </el-col>
+            <!-- 粪便评分 -->
+            <el-col :span="12">
+              <h4 style="text-align:center;">粪便评分</h4>
+              <el-table
+                :key="tab2.table4.tableKey"
+                v-loading="tab2.table4.listLoading"
+                element-loading-text="给我一点时间"
+                :data="tab2.table4.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+                height="400px"
+              >
+                <el-table-column sortable label="栏舍" min-width="60px" align="center" prop="barname" />
+                <el-table-column sortable label="抽查样本数" min-width="60px" align="center" prop="sumcowcount" />
+                <el-table-column sortable label="单产" min-width="60px" align="center" prop="product" />
+                <el-table-column sortable label="干物质采食量" min-width="60px" align="center" prop="dryweight" />
+                <el-table-column sortable label="泌乳天数" min-width="60px" align="center" prop="avgdim" />
+                <el-table-column sortable label="标准分数" min-width="60px" align="center" prop="standardscore" />
+                <el-table-column sortable label="1分(数量、百分比)" min-width="90px" align="center" prop="score1" />
+                <el-table-column sortable label="2分(数量、百分比)" min-width="90px" align="center" prop="score2" />
+                <el-table-column sortable label="3分(数量、百分比)" min-width="90px" align="center" prop="score3" />
+                <el-table-column sortable label="4分(数量、百分比)" min-width="90px" align="center" prop="score4" />
+                <el-table-column sortable label="5分(数量、百分比)" min-width="90px" align="center" prop="score5" />
+              </el-table>
+            </el-col>
+          </el-row>
+        </div>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+
+</template>
+
+<script>
+import echarts from 'echarts'
+
+require('echarts/theme/macarons')
+import { GetDataByName, postJson, GetReportform, whichWeek } from '@/api/common'
+import Cookies from 'js-cookie'
+import { parseTime } from '@/utils/index.js'
+import Pagination from '@/components/Pagination'
+import { json2excel } from '@/utils/index.js'
+import { MessageBox } from 'element-ui'
+import mySelect from '@/components/mySelect'
+import * as common from '@/api/common'
+export default {
+  name: 'PastureFeedingEfficiency',
+  components: { Pagination, mySelect },
+  data() {
+    return {
+      pickerMinMonth: '',
+      pickerOptionsMonth: {
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinMonth = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinMonth = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinMonth !== '') {
+            const one = 24 * 3600 * 1000 * 365 * 5
+            const minTime = this.pickerMinMonth - 0
+            let maxTime = this.pickerMinMonth + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() >= Date.now()
+        }
+      },
+      pickerMinDate: '',
+      pickerOptionsDate: {
+        showWeekNumber: false,
+        onPick: ({ maxDate, minDate }) => {
+          this.pickerMinDate = minDate.getTime()
+          if (maxDate) {
+            this.pickerMinDate = ''
+          }
+        },
+        // 限制不能选择今天之后的日期
+        disabledDate: (time) => {
+          if (this.pickerMinDate !== '') {
+            const one = 31 * 24 * 3600 * 1000
+            const minTime = this.pickerMinDate - one
+            let maxTime = this.pickerMinDate + one
+            if (maxTime > new Date()) {
+              maxTime = new Date()
+            }
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+          return time.getTime() > Date.now()
+        }
+      },
+      activeName: 'first',
+      tab: {
+        radio: '1',
+        isFormulaName: true, // 配方名称
+        isHouseName: false, // 栏舍名称
+        isLivestockType: false, // 牲畜类别
+        chartDate: [],
+        selectWeek: [],
+        chartMonth: [],
+        specificDate: '1',
+        selectYear: parseTime(new Date(), '{y}'),
+        yearList: [],
+        weekList: [],
+        table: {
+          getdataListParm: {
+            name: 'getFeedEfficiencyFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              date: parseTime(new Date(), '{y}-{m}-{d}'),
+              ftname: '',
+              barname: '',
+              cowclass: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        chart1: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffMR',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+
+        chart2: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffSL',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart2Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+
+        chart3: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffHL',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+
+        chart4: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffZH',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart4Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+
+        chart5: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffCBFT',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date(), new Date()],
+              specificDate: '1',
+              selectYear: parseTime(new Date(), '{y}'),
+              selectWeek: '',
+              chartMonth: '',
+              yearList: [],
+              weekList: [],
+              status: 0
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          statisticsList: [],
+          chart5Data3: [],
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        }
+      },
+
+      tab2: {
+        table: {
+          getdataListParm: {
+            name: 'getAssessCowPenn',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              date: parseTime(new Date(), '{y}-{m}-{d}')
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        table2: {
+          getdataListParm: {
+            name: 'getAssessCowDung',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              date: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        table3: {
+          getdataListParm: {
+            name: 'getAssessBodyscore',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              date: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        },
+        table4: {
+          getdataListParm: {
+            name: 'getAssessDungscore',
+            page: 1,
+            offset: 1,
+            pagecount: '',
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              date: ''
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: true,
+          temp: {}
+        }
+      },
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      myHeight: document.documentElement.clientHeight - 85 - 210
+    }
+  },
+  created() {
+    this.getAllYear()
+    this.getTabList()
+    this.getTimeFn()
+    this.getChart1()
+    this.getChart2()
+    this.getChart3()
+    this.getChart4()
+    this.getChart5()
+  },
+  methods: {
+    getAllYear() {
+      var myDate = new Date()
+      var thisYear = myDate.getFullYear() // 获取当年年份
+      var Section = thisYear - 2001 // 声明一个变量 获得当前年份至想获取年份差 eg.2008
+      this.tab.yearList = [] // 声明一个空数组 把遍历出的年份添加到数组里
+      for (var i = 0; i <= Section; i++) {
+        this.tab.yearList.push(thisYear--)
+      }
+      console.log(this.tab.yearList)
+    },
+    changeAllYear() {
+      console.log('this.selectYear==>', this.tab.selectYear)
+      this.tab.weekList = []
+      this.tab.selectWeek = []
+      var myWeekList = whichWeek(this.tab.selectYear)
+      console.log(myWeekList)
+      for (let i = 0; i <= myWeekList.length; i++) {
+        var obj = {}
+        var a = i + 1
+        obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+        obj.id = i
+        this.tab.weekList.push(obj)
+      }
+    },
+    changeAllSpecificDate() {
+      var start = ''
+      var end = ''
+      if (this.tab.specificDate == '2') {
+        this.tab.selectYear = parseTime(new Date(), '{y}')
+        this.changeAllYear()
+      } else if (this.tab.specificDate == '3') {
+        start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+        end = parseTime(new Date(), '{y}-{m}-{d}')
+        this.tab.chartMonth = []
+        this.tab.chartMonth.push(start, end)
+      }
+    },
+    handleAllDate() {
+      console.log('点击了确认时间')
+      MessageBox.confirm('是否调整以下所有图表查询时间?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        var startDate = ''
+        var endDate = ''
+        var status = ''
+        if (this.tab.specificDate == '1') {
+          startDate = parseTime(this.tab.chartDate[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chartDate[1], '{y}-{m}-{d}')
+          this.tab.chart1.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart2.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart3.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart4.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          this.tab.chart5.getdataListParm.parammaps.inputDatetime = [startDate, endDate]
+          status = 0
+          console.log('开始日时==>', startDate)
+          console.log('结束日时==>', endDate)
+        } else if (this.tab.specificDate == '2') {
+          if (this.tab.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[0]].date
+          endDate = this.tab.selectYear + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.month + '-' + whichWeek(this.tab.selectYear)[this.tab.selectWeek[1]].last.date
+          status = 1
+          this.tab.chart1.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart1.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart1.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart2.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart2.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart2.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart3.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart3.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart3.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart4.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart4.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart4.getdataListParm.parammaps.weekList = this.tab.weekList
+          this.tab.chart5.getdataListParm.parammaps.selectYear = this.tab.selectYear
+          this.tab.chart5.getdataListParm.parammaps.selectWeek = this.tab.selectWeek
+          this.tab.chart5.getdataListParm.parammaps.weekList = this.tab.weekList
+          console.log('开始周时间==>', startDate)
+          console.log('结束周时间==>', endDate)
+        } else if (this.tab.specificDate == '3') {
+          if (this.tab.chartMonth.length > 0) {
+            startDate = this.tab.chartMonth[0]
+            endDate = this.tab.chartMonth[1].substring(0, 8) + '31'
+            status = 2
+            this.tab.chart1.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart2.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart3.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart4.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            this.tab.chart5.getdataListParm.parammaps.chartMonth = [startDate, endDate]
+            console.log('开始月时间==>', startDate)
+            console.log('结束月时间==>', endDate)
+          } else {
+            this.$message({ type: 'error', message: '请输入月', duration: 2000 })
+          }
+        }
+        this.tab.chart1.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart1.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart1.getdataListParm.parammaps.status = status
+        this.tab.chart2.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart2.getdataListParm.parammaps.status = status
+        this.tab.chart2.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart3.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart3.getdataListParm.parammaps.status = status
+        this.tab.chart3.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart4.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart4.getdataListParm.parammaps.status = status
+        this.tab.chart4.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.tab.chart5.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.tab.chart5.getdataListParm.parammaps.status = status
+        this.tab.chart5.getdataListParm.parammaps.specificDate = this.tab.specificDate
+        this.getChart1()
+        this.getChart2()
+        this.getChart3()
+        this.getChart4()
+        this.getChart5()
+      })
+    },
+    changeChartSpecificDate(item) {
+      var start = ''
+      var end = ''
+      if (item == 'chart1') {
+        if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart1.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart1.getdataListParm.parammaps.weekList = []
+          this.tab.chart1.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart1.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart2') {
+        if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart2.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart2.getdataListParm.parammaps.weekList = []
+          this.tab.chart2.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart2.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart3') {
+        if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart3.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart3.getdataListParm.parammaps.weekList = []
+          this.tab.chart3.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart3.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart4') {
+        if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart4.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart4.getdataListParm.parammaps.weekList = []
+          this.tab.chart4.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart4.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      } else if (item == 'chart5') {
+        if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
+          this.tab.chart5.getdataListParm.parammaps.selectYear = parseTime(new Date(), '{y}')
+          this.changeChartYear(item)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
+          start = parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 31 * 12), '{y}-{m}') + '-01'
+          end = parseTime(new Date(), '{y}-{m}-{d}')
+          this.tab.chart5.getdataListParm.parammaps.weekList = []
+          this.tab.chart5.getdataListParm.parammaps.chartMonth = []
+          this.tab.chart5.getdataListParm.parammaps.chartMonth.push(start, end)
+        }
+      }
+    },
+    changeChartYear(item) {
+      var myWeekList = ''
+      if (item == 'chart1') {
+        this.tab.chart1.getdataListParm.parammaps.weekList = []
+        this.tab.chart1.getdataListParm.parammaps.selectWeek = []
+        myWeekList = whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart1.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart2') {
+        this.tab.chart2.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart2.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart2.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart3') {
+        this.tab.chart3.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart3.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart3.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart4') {
+        this.tab.chart4.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart4.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart4.getdataListParm.parammaps.weekList.push(obj)
+        }
+      } else if (item == 'chart5') {
+        this.tab.chart5.getdataListParm.parammaps.selectWeek = []
+        this.tab.chart5.getdataListParm.parammaps.weekList = []
+        myWeekList = whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)
+        console.log(myWeekList)
+        for (let i = 0; i <= myWeekList.length; i++) {
+          var obj = {}
+          var a = i + 1
+          obj.name = '第' + a + '周(' + myWeekList[i].month + '.' + myWeekList[i].date + '~' + myWeekList[i].last.month + '.' + myWeekList[i].last.date + ')'
+          obj.id = i
+          this.tab.chart5.getdataListParm.parammaps.weekList.push(obj)
+        }
+      }
+    },
+    handleChartDate(item) {
+      console.log(item)
+      var startDate = ''
+      var endDate = ''
+      if (item == 'chart1') {
+        if (this.tab.chart1.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          console.log('泌乳牛干物质采食量开始日期==>', startDate)
+          console.log('泌乳牛干物质采食量结束日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 0
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart1.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart1.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart1.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart1.getdataListParm.parammaps.selectYear)[this.tab.chart1.getdataListParm.parammaps.selectWeek[1]].last.date
+          console.log('泌乳牛干物质采食量开始周日期==>', startDate)
+          console.log('泌乳牛干物质采食量结束周日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 1
+        } else if (this.tab.chart1.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart1.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          console.log('泌乳牛干物质采食量开始月日期==>', startDate)
+          console.log('泌乳牛干物质采食量结束月日期==>', endDate)
+          this.tab.chart1.getdataListParm.parammaps.status = 2
+        }
+        this.tab.chart1.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart1.getdataListParm.parammaps.stopTime = endDate
+        this.getChart1()
+      } else if (item == 'chart2') {
+        if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart2.getdataListParm.parammaps.status = 0
+          console.log('牛栏剩料率开始日期==>', startDate)
+          console.log('牛栏剩料率结束日期==>', endDate)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart2.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart2.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart2.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart2.getdataListParm.parammaps.selectYear)[this.tab.chart2.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart2.getdataListParm.parammaps.status = 1
+          console.log('牛栏剩料率开始周日期==>', startDate)
+          console.log('牛栏剩料率结束周日期==>', endDate)
+        } else if (this.tab.chart2.getdataListParm.parammaps.specificDate == '3') {
+          console.log('牛栏剩料率开始月日期==>', this.tab.chart2.getdataListParm.parammaps.chartMonth)
+          startDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart2.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart2.getdataListParm.parammaps.status = 2
+          console.log('牛栏剩料率开始月日期==>', startDate)
+          console.log('牛栏剩料率结束月日期==>', endDate)
+        }
+        this.tab.chart2.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart2.getdataListParm.parammaps.stopTime = endDate
+        this.getChart2()
+      } else if (item == 'chart3') {
+        if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart3.getdataListParm.parammaps.status = 0
+          console.log('混料时间统计开始日期==>', startDate)
+          console.log('混料时间统计结束日期==>', endDate)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart3.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart3.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart3.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart3.getdataListParm.parammaps.selectYear)[this.tab.chart3.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart3.getdataListParm.parammaps.status = 1
+          console.log('混料时间统计开始周日期==>', startDate)
+          console.log('混料时间统计结束周日期==>', endDate)
+        } else if (this.tab.chart3.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart3.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart3.getdataListParm.parammaps.status = 2
+          console.log('混料时间统计开始月日期==>', startDate)
+          console.log('混料时间统计结束月日期==>', endDate)
+        }
+        this.tab.chart3.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart3.getdataListParm.parammaps.stopTime = endDate
+        this.getChart3()
+      } else if (item == 'chart4') {
+        if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart4.getdataListParm.parammaps.status = 0
+          console.log('转化率开始日期==>', startDate)
+          console.log('转化率结束日期==>', endDate)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart4.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart4.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart4.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart4.getdataListParm.parammaps.selectYear)[this.tab.chart4.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart4.getdataListParm.parammaps.status = 1
+          console.log('转化率开始周日期==>', startDate)
+          console.log('转化率结束周日期==>', endDate)
+        } else if (this.tab.chart4.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart4.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart4.getdataListParm.parammaps.status = 2
+          console.log('转化率开始月日期==>', startDate)
+          console.log('转化率结束月日期==>', endDate)
+        }
+        this.tab.chart4.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart4.getdataListParm.parammaps.stopTime = endDate
+        this.getChart4()
+      } else if (item == 'chart5') {
+        if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
+          startDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+          endDate = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+          this.tab.chart5.getdataListParm.parammaps.status = 0
+          console.log('成本分析开始日期==>', startDate)
+          console.log('成本分析结束日期==>', endDate)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '2') {
+          if (this.tab.chart5.getdataListParm.parammaps.selectYear == '') {
+            this.$message({ type: 'error', message: '请输入年', duration: 2000 })
+            return
+          }
+          if (this.tab.chart5.getdataListParm.parammaps.selectWeek.length !== 2) {
+            this.$message({ type: 'error', message: '请输入查询开始周跟结束周', duration: 2000 })
+            return
+          }
+          startDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[0]].date
+          endDate = this.tab.chart5.getdataListParm.parammaps.selectYear + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.month + '-' + whichWeek(this.tab.chart5.getdataListParm.parammaps.selectYear)[this.tab.chart5.getdataListParm.parammaps.selectWeek[1]].last.date
+          this.tab.chart5.getdataListParm.parammaps.status = 1
+          console.log('成本分析开始周日期==>', startDate)
+          console.log('成本分析结束周日期==>', endDate)
+        } else if (this.tab.chart5.getdataListParm.parammaps.specificDate == '3') {
+          startDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[0]
+          endDate = this.tab.chart5.getdataListParm.parammaps.chartMonth[1].substring(0, 8) + '31'
+          this.tab.chart5.getdataListParm.parammaps.status = 2
+          console.log('成本分析开始月日期==>', startDate)
+          console.log('成本分析结束月日期==>', endDate)
+        }
+        this.tab.chart5.getdataListParm.parammaps.startTime = startDate
+        this.tab.chart5.getdataListParm.parammaps.stopTime = endDate
+        this.getChart5()
+      }
+    },
+    getTimeFn() {
+      const that = this
+      const end = new Date()
+      const start = new Date()
+      const start2 = new Date()
+      start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 10)
+      end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)
+
+      that.tab.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
+
+      // start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart1.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart2.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart3.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart3.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart4.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart4.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+
+      that.tab.chart5.getdataListParm.parammaps.inputDatetime[0] = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.inputDatetime[1] = parseTime(end, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')
+      that.tab.chart5.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')
+    },
+    // 导出
+    handleDownload() {
+      if (this.tab.radio == '1') {
+        var excelDatas = [
+          {
+            tHeader: ['配方模板', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '平均混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方干物质采食量(kg/头)', '实际干物质采食量(kg/头)', '采食率(%)', '配方成本(元/头 )', '实际成本(元/ 头)', '产奶量(kg /头)', '饲料转化率', '公斤奶饲料成本'],
+            filterVal: ['配方模板', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', '采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
+            tableDatas: this.tab.table.list,
+            sheetName: '配方'
+          }
+        ]
+        json2excel(excelDatas, '效率统计-配方', true, 'xlsx')
+      } else if (this.tab.radio == '2') {
+        var excelDatas2 = [
+          {
+            tHeader: ['栏舍', '配方模板', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '平均混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方干物质采食量(kg/头)', ' 实际干物质采食量( kg/头)', '采食率 (%)', '配方成本( 元/头)', '实际成本 (元/头)', '产奶量(kg/头)', '饲料转化率', '公斤奶饲料成本'],
+            filterVal: ['栏舍', '配方模板', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', '采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
+            tableDatas: this.tab.table.list,
+            sheetName: '栏舍'
+          }
+        ]
+        json2excel(excelDatas2, '效率统计-栏舍', true, 'xlsx')
+      } else if (this.tab.radio == '3') {
+        var excelDatas3 = [
+          {
+            tHeader: ['牲畜类别', '实际牛头数', '应混料量(kg)', '实际混料量(kg)', '撒料量(kg)', '平均混料时间(min)', '转投剩料量(kg)', '今日剩料量(kg)', '剩料率(%)', 'TMR干物质(%)', '配方 物质采食量(kg/ 头)', '实际干物质采 食量(kg/头)', ' 采食率(%)', '配方 成本(元/头)', '实际成本(元/头)', '产奶量(kg/头)', '饲料转化率', '公斤奶饲料成本'],
+            filterVal: ['牲畜类别', '实际牛头数', '应混料量', '实际混料量', '撒料量', '混料时间', '转投剩料量', '今日剩料量', '剩料率', 'TMR干物质', '配方干物质采食量', '实际干物质采食量', ' 采食率', '配方成本', '实际成本', '产奶量', '饲料转化率', '公斤奶饲料成本'],
+            tableDatas: this.tab.table.list,
+            sheetName: '牲畜类别'
+          }
+        ]
+        json2excel(excelDatas3, '效率统计-牲畜类别', true, 'xlsx')
+      }
+    },
+    // Tab切换
+    handleTabClick() {
+      if (this.activeName == 'first') {
+        const start2 = new Date()
+        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+        this.tab.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
+        this.getTabList()
+        this.getChart1()
+        this.getChart2()
+        this.getChart3()
+        this.getChart4()
+        this.getChart5()
+      } else if (this.activeName == 'second') {
+        const start2 = new Date()
+        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)
+        this.tab2.table.getdataListParm.parammaps.date = parseTime(start2, '{y}-{m}-{d}')
+        this.getTab2List()
+        this.getTab2List2()
+        this.getTab2List3()
+        this.getTab2List4()
+      }
+    },
+    // 切换统计类型
+    changeRadio() {
+      console.log(this.tab.radio)
+      if (this.tab.radio == '1') {
+        console.log('配方名称')
+        this.tab.isFormulaName = true
+        this.tab.isHouseName = false
+        this.tab.isLivestockType = false
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.barname = ''
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.cowclass = ''
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencyFT'
+        this.getTabList()
+        this.tab.chart5.statisticsList = []
+        this.tab.chart5.getdataListParm.name = 'getFeedEffCBFT'
+        this.getChart5()
+        this.tab.chart4.getdataListParm.name = 'getFeedEffZH'
+        this.getChart4()
+      } else if (this.tab.radio == '2') {
+        console.log('栏舍名称')
+        this.tab.isFormulaName = false
+        this.tab.isHouseName = true
+        this.tab.isLivestockType = false
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.barname = ''
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.cowclass = ''
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencyLS'
+        this.getTabList()
+        this.tab.chart5.statisticsList = []
+        this.tab.chart5.getdataListParm.name = 'getFeedEffCBLS'
+        this.getChart5()
+        this.tab.chart4.getdataListParm.name = 'getFeedEffZHLS'
+        this.getChart4()
+      } else if (this.tab.radio == '3') {
+        console.log(' 牲畜类别')
+        this.tab.isFormulaName = false
+        this.tab.isHouseName = false
+        this.tab.isLivestockType = true
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.barname = ''
+        this.tab.table.getdataListParm.parammaps.ftname = ''
+        this.tab.table.getdataListParm.parammaps.cowclass = ''
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencySC'
+        this.getTabList()
+        this.tab.chart5.statisticsList = []
+        this.tab.chart5.getdataListParm.name = 'getFeedEffCB'
+        this.getChart5()
+        this.tab.chart4.getdataListParm.name = 'getFeedEffZHSC'
+        this.getChart4()
+      }
+    },
+
+    // 效率统计
+    getTabList() {
+      this.tab.table.listLoading = true
+      GetDataByName(this.tab.table.getdataListParm).then(response => {
+        console.log('汇总统计/混料table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab.table.list = response.data.list
+          this.tab.table.total = response.data.total
+        } else {
+          this.tab.table.list = []
+        }
+        setTimeout(() => {
+          this.tab.table.listLoading = false
+        }, 100)
+      })
+    },
+    // 查询
+    handleSearch() {
+      if (this.tab.radio == '1') {
+        console.log('配方名称/查询')
+        this.tab.isFormulaName = true
+        this.tab.isHouseName = false
+        this.tab.isLivestockType = false
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencyFT'
+        this.getTabList()
+      } else if (this.tab.radio == '2') {
+        console.log('栏舍名称/查询')
+        this.tab.isFormulaName = false
+        this.tab.isHouseName = true
+        this.tab.isLivestockType = false
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencyLS'
+        this.getTabList()
+      } else if (this.tab.radio == '3') {
+        console.log(' 牲畜类别/查询')
+        this.tab.isFormulaName = false
+        this.tab.isHouseName = false
+        this.tab.isLivestockType = true
+        this.tab.table.getdataListParm.name = 'getFeedEfficiencySC'
+        this.getTabList()
+      }
+    },
+    handleBefore() {
+      if (this.tab.table.getdataListParm.parammaps.date !== '' && this.tab.table.getdataListParm.parammaps.date !== null) {
+        this.tab.table.getdataListParm.parammaps.date = new Date(this.tab.table.getdataListParm.parammaps.date)
+        var start = new Date(this.tab.table.getdataListParm.parammaps.date.setDate(this.tab.table.getdataListParm.parammaps.date.getDate() - 1))
+        this.tab.table.getdataListParm.parammaps.date = parseTime(start, '{y}-{m}-{d}')
+        this.getTabList()
+      }
+    },
+    handleNext() {
+      if (this.tab.table.getdataListParm.parammaps.date !== '' && this.tab.table.getdataListParm.parammaps.date !== null) {
+        this.tab.table.getdataListParm.parammaps.date = new Date(this.tab.table.getdataListParm.parammaps.date)
+        var stop = new Date(this.tab.table.getdataListParm.parammaps.date.setDate(this.tab.table.getdataListParm.parammaps.date.getDate() + 1))
+        this.tab.table.getdataListParm.parammaps.date = parseTime(stop, '{y}-{m}-{d}')
+        this.getTabList()
+      }
+    },
+    handleBefore2() {
+      if (this.tab2.table.getdataListParm.parammaps.date !== '' && this.tab2.table.getdataListParm.parammaps.date !== null) {
+        this.tab2.table.getdataListParm.parammaps.date = new Date(this.tab2.table.getdataListParm.parammaps.date)
+        var start = new Date(this.tab2.table.getdataListParm.parammaps.date.setDate(this.tab2.table.getdataListParm.parammaps.date.getDate() - 1))
+        this.tab2.table.getdataListParm.parammaps.date = parseTime(start, '{y}-{m}-{d}')
+        this.getTab2List()
+        this.getTab2List2()
+        this.getTab2List3()
+        this.getTab2List4()
+      }
+    },
+    handleNext2() {
+      if (this.tab2.table.getdataListParm.parammaps.date !== '' && this.tab2.table.getdataListParm.parammaps.date !== null) {
+        this.tab2.table.getdataListParm.parammaps.date = new Date(this.tab2.table.getdataListParm.parammaps.date)
+        var stop = new Date(this.tab2.table.getdataListParm.parammaps.date.setDate(this.tab2.table.getdataListParm.parammaps.date.getDate() + 1))
+        this.tab2.table.getdataListParm.parammaps.date = parseTime(stop, '{y}-{m}-{d}')
+        this.getTab2List()
+        this.getTab2List2()
+        this.getTab2List3()
+        this.getTab2List4()
+      }
+    },
+    // 快速跳转到图表
+    handleQuickJumpChart() {
+      var myHeight = document.getElementById('table').offsetHeight + 120
+      window.scrollTo(myHeight, myHeight)
+    },
+    // 快速回到顶部
+    handleQuickJumpTop() {
+      window.scrollTo(0, 0)
+    },
+    // 泌乳牛干物质采食量
+    getChart1() {
+      this.tab.chart1.listLoading = true
+      const url = 'authdata/chart/feedEffMR'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart1.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart1.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart1.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart1.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart1.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart1.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart1.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart1.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          console.log('泌乳牛干物质采食量图表数据', response.data.list)
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].field1 !== '' && response.data.data[i].field1 !== undefined) {
+              response.data.data[i].field1 = parseFloat(response.data.data[i].field1)
+            }
+            if (response.data.data[i].field2 !== '' && response.data.data[i].field2 !== undefined) {
+              response.data.data[i].field2 = parseFloat(response.data.data[i].field2)
+            }
+          }
+          this.tab.chart1.table.list = response.data.data
+          this.tab.chart1.chartLine_data = response.data.list
+          // this.tab.chart1.total = response.data.total
+        } else {
+          this.tab.chart1.list = []
+          this.tab.chart1.chartLine_data = {}
+        }
+        this.roadChartLine1(this.tab.chart1.chartLine_data)
+        setTimeout(() => {
+          this.tab.chart1.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine1(chartLine_data) {
+      if (this.tab.chart1.chartLine != null) {
+        this.tab.chart1.chartLine.dispose()
+      }
+      this.tab.chart1.chartLine = echarts.init(document.getElementById('chartLine1'))
+      var option = {
+        tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: { color: '#999' }}},
+        legend: { data: ['泌乳牛干物质采食量', '泌乳牛产奶量'], right: 10, show: true, type: 'scroll' },
+        grid: { top: '15%', left: '8%', right: '8%', containLabel: true },
+        xAxis: [{ type: 'category', data: chartLine_data.data1 }],
+        yAxis: [
+          { splitLine: { show: false }, type: 'value', name: '泌乳牛干物质\n采食量', axisLabel: { formatter: '{value} ' }},
+          { splitLine: { show: false }, type: 'value', name: '泌乳牛产奶量', axisLabel: { formatter: '{value} ' }}
+        ],
+        series: [
+          { name: '泌乳牛干物质采食量', type: 'bar', itemStyle: { normal: { color: '#61a5e8' }}, data: chartLine_data.data2 },
+          { name: '泌乳牛产奶量', type: 'line', itemStyle: { normal: { color: '#ff2d2d' }}, yAxisIndex: 1, data: chartLine_data.data3 }
+        ]
+      }
+      this.tab.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart1.chartLine.resize()
+      }
+    },
+
+    // 牛栏剩料率
+    changeStatisticChart2(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart2.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart2.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart2.statisticsList.find(obj => obj.name == this.tab.chart2.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart2.chart2Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart2.chart2Data3[j])
+          }
+        }
+      }
+      this.tab.chart2.chartLine_data.data3 = arrData3
+      this.tab.chart2.chartLine_data.data1 = this.tab.chart2.getdataListParm.parammaps.statisticsList
+      this.roadChartLine2(this.tab.chart2.chartLine_data)
+    },
+
+    // 牛栏剩料率
+    getChart2() {
+      this.tab.chart2.listLoading = true
+      const url = 'authdata/chart/feedEffSL'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart2.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart2.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart2.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart2.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart2.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart2.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null && response.data.data !== null) {
+          console.log('牛栏剩料率图表数据', response.data.list)
+          for (let i = 0; i < response.data.data.length; i++) {
+            if (response.data.data[i].剩料量 !== '' && response.data.data[i].剩料量 !== undefined) {
+              response.data.data[i].剩料量 = parseFloat(response.data.data[i].剩料量)
+            }
+            if (response.data.data[i].撒料量 !== '' && response.data.data[i].撒料量 !== undefined) {
+              response.data.data[i].撒料量 = parseFloat(response.data.data[i].撒料量)
+            }
+            if (response.data.data[i].准确率 !== '' && response.data.data[i].准确率 !== undefined) {
+              response.data.data[i].准确率 = parseFloat(response.data.data[i].准确率)
+            }
+          }
+          this.tab.chart2.table.list = response.data.data
+          this.tab.chart2.chartLine_data = response.data.list
+          this.tab.chart2.total = response.data.total
+          this.tab.chart2.statisticsList = []
+          this.tab.chart2.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart2.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart2.statisticsList.push(obj)
+          }
+          this.tab.chart2.chart2Data3 = response.data.list.data3
+          this.tab.chart2.total = response.data.total
+          console.log('牛栏剩料率图数据', this.tab.chart2.chartLine_data)
+          console.log('牛栏剩料率表数据', this.tab.chart2.table.list)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart2.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart2.statisticsList.find(obj => obj.name == this.tab.chart2.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart2.chart2Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart2.chart2Data3[j])
+              }
+            }
+          }
+          this.tab.chart2.chartLine_data.data3 = arrData3
+          this.tab.chart2.chartLine_data.data1 = this.tab.chart2.getdataListParm.parammaps.statisticsList
+        } else {
+          this.tab.chart2.list = []
+          this.tab.chart2.chartLine_data = {}
+        }
+        this.roadChartLine2(this.tab.chart2.chartLine_data)
+        setTimeout(() => {
+          this.tab.chart2.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine2(chartLine_data) {
+      if (this.tab.chart2.chartLine != null) {
+        this.tab.chart2.chartLine.dispose()
+      }
+      this.tab.chart2.chartLine = echarts.init(document.getElementById('chartLine2'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: { data: chartLine_data.data1, right: 10, show: true, type: 'scroll' },
+        grid: {
+          top: '15%',
+          left: '3%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '剩料率', axisLabel: { formatter: '{value} %' }
+        },
+        series: (function() {
+          var serie = []
+          if (chartLine_data.data3 !== undefined) {
+            for (var i = 0; i < chartLine_data.data3.length; i++) {
+              var item = {
+                name: chartLine_data.data1[i],
+                type: 'line',
+                data: chartLine_data.data3[i].data
+              }
+              serie.push(item)
+            }
+          }
+          return serie
+        }())
+      }
+      this.tab.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart2.chartLine.resize()
+      }
+    },
+
+    // 混料时间统计
+    getChart3() {
+      this.tab.chart3.listLoading = true
+      const url = 'authdata/chart/feedEffHL'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart3.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart3.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart3.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart3.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart3.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart3.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('混料时间统计图表数据', response.data.list)
+          this.tab.chart3.table.list = response.data.data
+          this.tab.chart3.chartLine_data = response.data.list
+          this.tab.chart3.total = response.data.total
+          this.tab.chart3.total = response.data.total
+        } else {
+          this.tab.chart3.list = []
+          this.tab.chart3.chartLine_data = {}
+        }
+        this.roadChartLine3(this.tab.chart3.chartLine_data)
+        setTimeout(() => {
+          this.tab.chart3.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine3(chartLine_data) {
+      if (this.tab.chart3.chartLine != null) {
+        this.tab.chart3.chartLine.dispose()
+      }
+      this.tab.chart3.chartLine = echarts.init(document.getElementById('chartLine3'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: ['混料时间'],
+          right: 10, show: true, type: 'scroll'
+        },
+        grid: {
+          top: '15%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data1, name: '日期' },
+        yAxis: {
+          type: 'value', name: '分钟',
+          axisLabel: {
+            formatter: '{value}min'
+          }
+        },
+        series: [
+          {
+            name: '混料时间',
+            type: 'line',
+            stack: '总量',
+            data: chartLine_data.data2
+          }
+        ]
+      }
+      this.tab.chart3.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart3.chartLine.resize()
+      }
+    },
+
+    // 转化率
+    changeStatisticChart4(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart4.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart4.chart4Data3[j])
+          }
+        }
+      }
+      this.tab.chart4.chartLine_data.data3 = arrData3
+      this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
+      this.roadChartLine4(this.tab.chart4.chartLine_data)
+    },
+    getChart4() {
+      this.tab.chart4.listLoading = true
+      const url = 'authdata/chart/feedEffZH'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart4.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart4.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart4.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart4.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart4.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart4.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('转化率图表数据', response.data.list)
+          this.tab.chart4.table.list = response.data.data
+          this.tab.chart4.chartLine_data = response.data.list
+          this.tab.chart4.total = response.data.total
+          this.tab.chart4.statisticsList = []
+          this.tab.chart4.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart4.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart4.statisticsList.push(obj)
+          }
+          this.tab.chart4.chart4Data3 = response.data.list.data3
+          this.tab.chart4.total = response.data.total
+          console.log('转化率图数据', this.tab.chart4.chartLine_data)
+          console.log('转化率表数据', this.tab.chart4.table.list)
+          var arrData3 = []
+          console.log('statisticsList', this.tab.chart4.getdataListParm.parammaps.statisticsList)
+          for (let i = 0; i < this.tab.chart4.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart4.statisticsList.find(obj => obj.name == this.tab.chart4.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart4.chart4Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart4.chart4Data3[j])
+              }
+            }
+          }
+          this.tab.chart4.chartLine_data.data3 = arrData3
+          this.tab.chart4.chartLine_data.data1 = this.tab.chart4.getdataListParm.parammaps.statisticsList
+        } else {
+          this.tab.chart4.list = []
+          this.tab.chart4.chartLine_data = {}
+        }
+        this.roadChartLine4(this.tab.chart4.chartLine_data)
+        setTimeout(() => {
+          this.tab.chart4.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine4(chartLine_data) {
+      if (this.tab.chart4.chartLine != null) {
+        this.tab.chart4.chartLine.dispose()
+      }
+      this.tab.chart4.chartLine = echarts.init(document.getElementById('chartLine4'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: { data: chartLine_data.data1, right: 10, show: true, type: 'scroll' },
+        grid: {
+          top: '15%',
+          left: '3%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' }
+        },
+        series: (function() {
+          var serie = []
+          if (chartLine_data.data3 !== undefined) {
+            for (var i = 0; i < chartLine_data.data3.length; i++) {
+              var item = {
+                name: chartLine_data.data1[i],
+                type: 'line',
+                data: chartLine_data.data3[i].data
+              }
+              serie.push(item)
+            }
+          }
+          return serie
+        }())
+      }
+      this.tab.chart4.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart4.chartLine.resize()
+      }
+    },
+
+    // 成本分析
+    changeStatisticChart5(arr) {
+      var arr1 = []
+      for (let i = 0; i < arr.length; i++) {
+        if (arr[i] !== 'all') {
+          arr1.push(arr[i])
+        }
+      }
+      this.tab.chart5.getdataListParm.parammaps.statisticsList = arr1
+      var arrData3 = []
+      for (let i = 0; i < this.tab.chart5.getdataListParm.parammaps.statisticsList.length; i++) {
+        const myId = this.tab.chart5.statisticsList.find(obj => obj.name == this.tab.chart5.getdataListParm.parammaps.statisticsList[i]).id
+        for (let j = 0; j < this.tab.chart5.chart5Data3.length; j++) {
+          if (j == myId) {
+            arrData3.push(this.tab.chart5.chart5Data3[j])
+          }
+        }
+      }
+      this.tab.chart5.chartLine_data.data3 = arrData3
+      this.tab.chart5.chartLine_data.data1 = this.tab.chart5.getdataListParm.parammaps.statisticsList
+      this.roadChartLine5(this.tab.chart5.chartLine_data)
+    },
+    getChart5() {
+      this.tab.chart5.listLoading = true
+      const url = 'authdata/chart/feedEffCBFT'
+      const data = {}
+      data.parammaps = {}
+      if (this.tab.chart5.getdataListParm.parammaps.specificDate == '1') {
+        data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        data.parammaps.stopTime = parseTime(this.tab.chart5.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
+      } else {
+        data.parammaps.pastureid = this.tab.chart5.getdataListParm.parammaps.pastureid
+        data.parammaps.startTime = this.tab.chart5.getdataListParm.parammaps.startTime
+        data.parammaps.stopTime = this.tab.chart5.getdataListParm.parammaps.stopTime
+        data.parammaps.status = this.tab.chart5.getdataListParm.parammaps.status
+      }
+      postJson(url, data).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('转化率图表数据', response.data.list)
+          this.tab.chart5.table.list = response.data.data
+          this.tab.chart5.chartLine_data = response.data.list
+          this.tab.chart5.total = response.data.total
+          this.tab.chart5.statisticsList = []
+          this.tab.chart5.getdataListParm.parammaps.statisticsList = []
+          for (let i = 0; i < response.data.list.data1.length; i++) {
+            if (i < 10) {
+              this.tab.chart5.getdataListParm.parammaps.statisticsList.push(response.data.list.data1[i])
+            }
+            var obj = {}
+            obj.id = i
+            obj.name = response.data.list.data1[i]
+            this.tab.chart5.statisticsList.push(obj)
+          }
+          this.tab.chart5.chart5Data3 = response.data.list.data3
+          this.tab.chart5.total = response.data.total
+          console.log('转化率图数据', this.tab.chart5.chartLine_data)
+          console.log('转化率表数据', this.tab.chart5.table.list)
+          var arrData3 = []
+          for (let i = 0; i < this.tab.chart5.getdataListParm.parammaps.statisticsList.length; i++) {
+            const myId = this.tab.chart5.statisticsList.find(obj => obj.name == this.tab.chart5.getdataListParm.parammaps.statisticsList[i]).id
+            for (let j = 0; j < this.tab.chart5.chart5Data3.length; j++) {
+              if (j == myId) {
+                arrData3.push(this.tab.chart5.chart5Data3[j])
+              }
+            }
+          }
+          this.tab.chart5.chartLine_data.data3 = arrData3
+          this.tab.chart5.chartLine_data.data1 = this.tab.chart5.getdataListParm.parammaps.statisticsList
+        } else {
+          this.tab.chart5.list = []
+        }
+        this.roadChartLine5(this.tab.chart5.chartLine_data)
+        setTimeout(() => {
+          this.tab.chart5.listLoading = false
+        }, 100)
+      })
+    },
+    roadChartLine5(chartLine_data) {
+      if (this.tab.chart5.chartLine != null) {
+        this.tab.chart5.chartLine.dispose()
+      }
+      this.tab.chart5.chartLine = echarts.init(document.getElementById('chartLine5'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: { data: chartLine_data.data1, right: 10, show: true, type: 'scroll' },
+        grid: {
+          top: '15%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '日期' },
+        yAxis: {
+          type: 'value', name: '公斤奶饲料成本(元)'
+        },
+        series: (function() {
+          var serie = []
+          if (chartLine_data.data3 !== undefined) {
+            for (var i = 0; i < chartLine_data.data3.length; i++) {
+              var item = {
+                name: chartLine_data.data1[i],
+                type: 'line',
+                data: chartLine_data.data3[i].data
+              }
+              serie.push(item)
+            }
+          }
+          return serie
+        }())
+      }
+      this.tab.chart5.chartLine.setOption(option)
+      window.onresize = function() {
+        this.tab.chart5.chartLine.resize()
+      }
+    },
+    // 导出
+    handleExport(item) {
+      if (item == 'chart1') {
+        console.log('泌乳牛干物质采食量导出')
+        var excelDatasTabChart1 = [
+          {
+            tHeader: ['日期', '泌乳牛采食量', '泌乳牛产奶量'],
+            filterVal: ['日期', 'field1', 'field2'],
+            tableDatas: this.tab.chart1.table.list,
+            sheetName: '泌乳牛采食量'
+          }
+        ]
+        json2excel(excelDatasTabChart1, '泌乳牛采食量', true, 'xlsx')
+      } else if (item == 'chart2') {
+        console.log('牛栏剩料率导出')
+        var excelDatasTabChart2 = [
+          {
+            tHeader: ['日期', '栏舍名称', '剩料量', '撒料量', '剩料率'],
+            filterVal: ['日期', '名称', '剩料量', '撒料量', '准确率'],
+            tableDatas: this.tab.chart2.table.list,
+            sheetName: '牛栏剩料率'
+          }
+        ]
+        json2excel(excelDatasTabChart2, '牛栏剩料率', true, 'xlsx')
+      } else if (item == 'chart3') {
+        console.log('混料时间统计导出')
+        var excelDatasTabChart3 = [
+          {
+            tHeader: ['日期', '混料时间(分钟)'],
+            filterVal: ['日期', 'field1'],
+            tableDatas: this.tab.chart3.table.list,
+            sheetName: '混料时间统计'
+          }
+        ]
+        json2excel(excelDatasTabChart3, '混料时间统计', true, 'xlsx')
+      } else if (item == 'chart4') {
+        console.log('转化率导出')
+        var excelDatasTabChart4 = [
+          {
+            tHeader: ['日期', '配方名称', '饲料转化率'],
+            filterVal: ['日期', '名称', '准确率'],
+            tableDatas: this.tab.chart4.table.list,
+            sheetName: '转化率统计'
+          }
+        ]
+        json2excel(excelDatasTabChart4, '转化率', true, 'xlsx')
+      } else if (item == 'chart5') {
+        console.log('成本分析导出')
+        var excelDatasTabChart5 = [
+          {
+            tHeader: ['日期', '牲畜类别', '公斤奶饲料成本(元)'],
+            filterVal: ['日期', '名称', '准确率'],
+            tableDatas: this.tab.chart5.table.list,
+            sheetName: '成本分析'
+          }
+        ]
+        json2excel(excelDatasTabChart5, '成本分析', true, 'xlsx')
+      }
+    },
+    // 切换表格
+    handleTable(item) {
+      // 显示切换表格
+      if (item == 'chart1') {
+        console.log('泌乳牛采食量表格')
+        this.tab.chart1.isTable = true
+        this.tab.chart1.isChart = false
+      } else if (item == 'chart2') {
+        console.log('牛栏剩料率表格')
+        this.tab.chart2.isTable = true
+        this.tab.chart2.isChart = false
+      } else if (item == 'chart3') {
+        console.log('混料时间统计表格')
+        this.tab.chart3.isTable = true
+        this.tab.chart3.isChart = false
+      } else if (item == 'chart4') {
+        console.log('转化率表格')
+        this.tab.chart4.isTable = true
+        this.tab.chart4.isChart = false
+      } else if (item == 'chart5') {
+        console.log('成本分析表格')
+        this.tab.chart5.isTable = true
+        this.tab.chart5.isChart = false
+      }
+    },
+    // 切换图表
+    handleChart(item) {
+      // 显示切换图表
+      if (item == 'chart1') {
+        console.log('泌乳牛采食量图表')
+        this.tab.chart1.isTable = false
+        this.tab.chart1.isChart = true
+        this.getChart1()
+      } else if (item == 'chart2') {
+        console.log('牛栏剩料率图表')
+        this.tab.chart2.isTable = false
+        this.tab.chart2.isChart = true
+        this.getChart2()
+      } else if (item == 'chart3') {
+        console.log('混料时间统计图表')
+        this.tab.chart3.isTable = false
+        this.tab.chart3.isChart = true
+        this.getChart3()
+      } else if (item == 'chart4') {
+        console.log('转化率图表')
+        this.tab.chart4.isTable = false
+        this.tab.chart4.isChart = true
+        this.getChart4()
+      } else if (item == 'chart5') {
+        console.log('成本分析图表')
+        this.tab.chart5.isTable = false
+        this.tab.chart5.isChart = true
+        this.getChart5()
+      }
+    },
+    // 切换tab2日期
+    changeTab2Date() {
+      this.getTab2List()
+      this.getTab2List2()
+      this.getTab2List3()
+      this.getTab2List4()
+    },
+    // 宾州筛分析
+    getTab2List() {
+      this.tab2.table.listLoading = true
+      GetDataByName(this.tab2.table.getdataListParm).then(response => {
+        console.log('宾州筛分析table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab2.table.list = response.data.list
+          this.tab2.table.total = response.data.total
+        } else {
+          this.tab2.table.list = []
+        }
+        setTimeout(() => {
+          this.tab2.table.listLoading = false
+        }, 100)
+      })
+    },
+
+    // 粪便筛分析
+    getTab2List2() {
+      this.tab2.table2.listLoading = true
+      this.tab2.table2.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
+      GetDataByName(this.tab2.table2.getdataListParm).then(response => {
+        console.log('粪便筛分析table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab2.table2.list = response.data.list
+          this.tab2.table2.total = response.data.total
+        } else {
+          this.tab2.table2.list = []
+        }
+        setTimeout(() => {
+          this.tab2.table2.listLoading = false
+        }, 100)
+      })
+    },
+
+    // BCS评分
+    getTab2List3() {
+      this.tab2.table3.listLoading = true
+      this.tab2.table3.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
+      GetDataByName(this.tab2.table3.getdataListParm).then(response => {
+        console.log('BCS评分table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab2.table3.list = response.data.list
+          this.tab2.table3.total = response.data.total
+        } else {
+          this.tab2.table3.list = []
+        }
+        setTimeout(() => {
+          this.tab2.table3.listLoading = false
+        }, 100)
+      })
+    },
+
+    // 粪便评分
+    getTab2List4() {
+      this.tab2.table4.listLoading = true
+      this.tab2.table4.getdataListParm.parammaps.date = this.tab2.table.getdataListParm.parammaps.date
+      GetDataByName(this.tab2.table4.getdataListParm).then(response => {
+        console.log('成本分析table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.tab2.table4.list = response.data.list
+          this.tab2.table4.total = response.data.total
+        } else {
+          this.tab2.table4.list = []
+        }
+        setTimeout(() => {
+          this.tab2.table4.listLoading = false
+        }, 100)
+      })
+    }
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .button{
+    height: 95px;
+    .exportTable2{float: right;margin-right: 5px;margin-top: 5px;}
+  }
+  .app-container1{padding-left: 10px;background-color: #F4F4F4;}
+  .dashboard-editor-container {
+    background-color: #F4F4F4;
+    .grid-content{
+      background-color:#fff;padding: 0 10px;
+      h4{text-align: center;line-height: 50px;}
+    }
+  }
+  /deep/ .specificDate .el-radio{margin-right: 0px;}
+  /deep/ .el-radio-button__inner{padding: 7px 7px ;}
+  /deep/ .el-range-editor.el-input__inner .el-input__icon{width: 0;}
+</style>

+ 784 - 785
src/views/statisticalAnalysis/formulationEvaluation/index.vue

@@ -1,237 +1,237 @@
-<template>
-  <div class="app-container">
-    <div class="operation">
-      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;margin-right: 10px;" @change="changeDate" />
-      <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
-      <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
-    </div>
-    <div class="search" />
-    <div class="table">
-      <el-table
-        :key="table.tableKey"
-        v-loading="table.listLoading"
-        element-loading-text="给我一点时间"
-        :data="table.list"
-        border
-        fit
-        highlight-current-row
-        style="width: 100%;"
-        :row-style="rowStyle"
-        :cell-style="tableCellStyle"
-        class="elTable table-fixed"
-      >
-        <el-table-column sortable label="配方模板/指标" min-width="98px" align="center">
-          <template slot-scope="{row}">
-            <a @click="clickFormulaTemplateIndex(row)">{{ row.tname }}</a>
-          </template>
-        </el-table-column>
-        <el-table-column sortable label="牛头数" prop="ccount" min-width="58px" align="center" />
-        <el-table-column label="干物质(kg)" align="center">
-          <el-table-column sortable prop="dry" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.dry) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.dry) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="产奶净能(MJ)" align="center">
-          <el-table-column sortable prop="nm" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.nm) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.nm) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="奶牛能量单位(NND)" align="center">
-          <el-table-column sortable prop="nuint" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.nuint) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.nuint) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="粗蛋白(g)" align="center">
-          <el-table-column prop="cp" label="配方量" min-width="58" align="center" />
-          <el-table-column label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.cp) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.cp) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="磷(g)" align="center">
-          <el-table-column sortable prop="p" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.p) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.p) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="产奶净能(MCal/DM)" align="center">
-          <el-table-column sortable prop="nmd" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.nmd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.nmd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="粗蛋白(%DM)" align="center">
-          <el-table-column sortable prop="cpd" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.cpd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.cpd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="脂肪(%DM)" align="center">
-          <el-table-column sortable prop="fat" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.fat) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.fat) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="淀粉(%DM)" align="center">
-          <el-table-column sortable prop="starch" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.starch) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.starch) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="NDF(%DM)" align="center">
-          <el-table-column sortable prop="ndf" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.ndf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.ndf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="粗料中的NDF(%DM)" align="center">
-          <el-table-column sortable prop="cndf" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.cndf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.cndf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="ADF(%DM)" align="center">
-          <el-table-column sortable prop="adf" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.adf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.adf) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="钙(%DM)" align="center">
-          <el-table-column sortable prop="cad" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.cad) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.cad) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="磷(%DM)" align="center">
-          <el-table-column sortable prop="pd" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.pd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.pd) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column sortable label="精粗比(%)" align="center">
-          <el-table-column sortable prop="jcrate" label="配方量" min-width="58" align="center" />
-          <el-table-column sortable label="TMR料" min-width="65" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Hrate * scope.row.jcrate) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column sortable label="采食量" min-width="58" align="center">
-            <template slot-scope="scope">
-              <span>{{ (scope.row.Srate * scope.row.jcrate) | keepTreeNum }}</span>
-            </template>
-          </el-table-column>
-        </el-table-column>
-        <el-table-column label="操作" align="center" width="70" class-name="small-padding fixed-width" fixed="right">
-          <template slot-scope="{row}">
-            <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(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" class="dialogMinHeight" :visible.sync="see.dialogFormVisible" :close-on-click-modal="false" width="90%">
+<template>
+  <div class="app-container">
+    <div class="operation">
+      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;margin-right: 10px;" @change="changeDate" />
+      <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
+      <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
+    </div>
+    <div class="search" />
+    <div class="table">
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="tableCellStyle"
+        class="elTable table-fixed"
+      >
+        <el-table-column sortable label="配方模板/指标" min-width="98px" align="center">
+          <template slot-scope="{row}">
+            <a @click="clickFormulaTemplateIndex(row)">{{ row.tname }}</a>
+          </template>
+        </el-table-column>
+        <el-table-column sortable label="牛头数" prop="ccount" min-width="58px" align="center" />
+        <el-table-column label="干物质(kg)" align="center">
+          <el-table-column sortable prop="dry" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.dry) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.dry) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="产奶净能(MJ)" align="center">
+          <el-table-column sortable prop="nm" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nm) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nm) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="奶牛能量单位(NND)" align="center">
+          <el-table-column sortable prop="nuint" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nuint) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nuint) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗蛋白(g)" align="center">
+          <el-table-column prop="cp" label="配方量" min-width="58" align="center" />
+          <el-table-column label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cp) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cp) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="磷(g)" align="center">
+          <el-table-column sortable prop="p" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.p) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.p) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="产奶净能(MCal/DM)" align="center">
+          <el-table-column sortable prop="nmd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nmd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nmd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗蛋白(%DM)" align="center">
+          <el-table-column sortable prop="cpd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cpd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cpd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="脂肪(%DM)" align="center">
+          <el-table-column sortable prop="fat" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.fat) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.fat) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="淀粉(%DM)" align="center">
+          <el-table-column sortable prop="starch" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.starch) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.starch) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="NDF(%DM)" align="center">
+          <el-table-column sortable prop="ndf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.ndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.ndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗料中的NDF(%DM)" align="center">
+          <el-table-column sortable prop="cndf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="ADF(%DM)" align="center">
+          <el-table-column sortable prop="adf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.adf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.adf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="钙(%DM)" align="center">
+          <el-table-column sortable prop="cad" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cad) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cad) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="磷(%DM)" align="center">
+          <el-table-column sortable prop="pd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.pd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.pd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column sortable label="精粗比(%)" align="center">
+          <el-table-column sortable prop="jcrate" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.jcrate) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.jcrate) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="70" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(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" class="dialogMinHeight" :visible.sync="see.dialogFormVisible" :close-on-click-modal="false" width="90%">
       <template slot="title">
         <div class="avue-crud__dialog__header">
           <span class="el-dialog__title">
@@ -244,158 +244,158 @@
           </div>
         </div>
       </template>
-      <div class="app-see dialogMinHeight">
-        <div class="tableSee">
-          <el-table
-            :key="see.table.tableKey"
-            v-loading="see.table.listLoading"
-            element-loading-text="给我一点时间"
-            :data="see.table.list"
-            border
-            fit
-            show-summary
-            highlight-current-row
-            style="width: 100%;"
-            :row-style="rowStyle"
-            :cell-style="tableCellStyle"
-            class="elTable table-fixed"
-          >
-            <el-table-column label="栏舍/指标" min-width="100px" align="center">
-              <template slot-scope="{row}">
-                <a @click="clickFormulaHurdlesIndex(row)">{{ row.barname }}</a>
-              </template>
-            </el-table-column>
-            <el-table-column label="牛头数" min-width="100px" align="center" prop="ccount" />
-            <el-table-column label="干物质(kg)" min-width="130px" align="center">
-              <el-table-column prop="dry-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="dry-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="dry-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="dry-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="产奶净能(M)" min-width="130px" align="center">
-              <el-table-column prop="nm-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="nm-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="nm-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="nm-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="奶牛能量单位(NND)" min-width="130px" align="center">
-              <el-table-column prop="nuint-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="nuint-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="nuint-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="nuint-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="粗蛋白(g)" min-width="130px" align="center">
-              <el-table-column prop="cp-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="cp-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="cp-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="cp-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="磷(g)" min-width="130px" align="center">
-              <el-table-column prop="p-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="p-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="p-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="p-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="产奶净能(MCal/DM)" min-width="130px" align="center">
-              <el-table-column prop="nmd-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="nmd-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="nmd-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="nmd-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="粗蛋白(%DM)" min-width="130px" align="center">
-              <el-table-column prop="cpd-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="cpd-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="cpd-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="cpd-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="脂肪(%DM)" min-width="130px" align="center">
-              <el-table-column prop="fat-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="fat-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="fat-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="fat-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="淀粉(%DM)" min-width="130px" align="center">
-              <el-table-column prop="starch-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="starch-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="starch-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="starch-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="NDF(%DM)" min-width="130px" align="center">
-              <el-table-column prop="ndf-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="ndf-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="ndf-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="ndf-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="粗料中的NDF(%DM)" min-width="130px" align="center">
-              <el-table-column prop="cndf-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="cndf-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="cndf-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="cndf-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="ADF(%DM)" min-width="130px" align="center">
-              <el-table-column prop="adf-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="adf-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="adf-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="adf-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="钙(%DM)" min-width="130px" align="center">
-              <el-table-column prop="cad-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="cad-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="cad-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="cad-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="磷(%DM)" min-width="130px" align="center">
-              <el-table-column prop="pd-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="pd-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="pd-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="pd-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="(4.0)饲料转化效率(kg/DM)" min-width="130px" align="center">
-              <el-table-column prop="trans4f-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="trans4f-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="trans4f-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="trans4f-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="(3.5)饲料转化效率(kg/DM)" min-width="130px" align="center">
-              <el-table-column prop="trans35f-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="trans35f-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="trans35f-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="trans35f-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="精粗比(%)" min-width="130px" align="center">
-              <el-table-column prop="jcrate-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="jcrate-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="jcrate-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="jcrate-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="日粮成本(元)" min-width="130px" align="center">
-              <el-table-column prop="uprice-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="uprice-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="uprice-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="uprice-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="干物质成本(元/公斤)" min-width="130px" align="center">
-              <el-table-column prop="upriced-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="upriced-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="upriced-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="upriced-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-            <el-table-column label="日公斤奶成本(元)" min-width="130px" align="center">
-              <el-table-column prop="kprice-nur" label="奶牛需要" min-width="70" align="center" />
-              <el-table-column prop="kprice-FT" label="配方量" min-width="58" align="center" />
-              <el-table-column prop="kprice-H" label="TMR料" min-width="65" align="center" />
-              <el-table-column prop="kprice-S" label="采食量" min-width="58" align="center" />
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+      <div class="app-see dialogMinHeight">
+        <div class="tableSee">
+          <el-table
+            :key="see.table.tableKey"
+            v-loading="see.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="see.table.list"
+            border
+            fit
+            show-summary
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="tableCellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="栏舍/指标" min-width="100px" align="center">
+              <template slot-scope="{row}">
+                <a @click="clickFormulaHurdlesIndex(row)">{{ row.barname }}</a>
+              </template>
+            </el-table-column>
+            <el-table-column label="牛头数" min-width="100px" align="center" prop="ccount" />
+            <el-table-column label="干物质(kg)" min-width="130px" align="center">
+              <el-table-column prop="dry-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="dry-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="dry-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="dry-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="产奶净能(M)" min-width="130px" align="center">
+              <el-table-column prop="nm-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nm-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nm-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nm-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="奶牛能量单位(NND)" min-width="130px" align="center">
+              <el-table-column prop="nuint-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nuint-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nuint-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nuint-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗蛋白(g)" min-width="130px" align="center">
+              <el-table-column prop="cp-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cp-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cp-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cp-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="磷(g)" min-width="130px" align="center">
+              <el-table-column prop="p-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="p-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="p-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="p-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="产奶净能(MCal/DM)" min-width="130px" align="center">
+              <el-table-column prop="nmd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nmd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nmd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nmd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗蛋白(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cpd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cpd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cpd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cpd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="脂肪(%DM)" min-width="130px" align="center">
+              <el-table-column prop="fat-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="fat-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="fat-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="fat-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="淀粉(%DM)" min-width="130px" align="center">
+              <el-table-column prop="starch-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="starch-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="starch-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="starch-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="NDF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="ndf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="ndf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="ndf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="ndf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗料中的NDF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cndf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cndf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cndf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cndf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="ADF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="adf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="adf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="adf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="adf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="钙(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cad-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cad-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cad-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cad-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="磷(%DM)" min-width="130px" align="center">
+              <el-table-column prop="pd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="pd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="pd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="pd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="(4.0)饲料转化效率(kg/DM)" min-width="130px" align="center">
+              <el-table-column prop="trans4f-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="trans4f-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="trans4f-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="trans4f-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="(3.5)饲料转化效率(kg/DM)" min-width="130px" align="center">
+              <el-table-column prop="trans35f-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="trans35f-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="trans35f-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="trans35f-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="精粗比(%)" min-width="130px" align="center">
+              <el-table-column prop="jcrate-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="jcrate-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="jcrate-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="jcrate-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="日粮成本(元)" min-width="130px" align="center">
+              <el-table-column prop="uprice-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="uprice-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="uprice-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="uprice-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="干物质成本(元/公斤)" min-width="130px" align="center">
+              <el-table-column prop="upriced-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="upriced-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="upriced-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="upriced-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="日公斤奶成本(元)" min-width="130px" align="center">
+              <el-table-column prop="kprice-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="kprice-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="kprice-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="kprice-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
         <el-button class="cancelClose" style="right: 20px" @click="see.dialogFormVisible = false;$route.params.tname = '' ">关闭</el-button>
-      </div>
-    </el-dialog>
-
-    <!-- 配方详情 -->
-    <el-dialog :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="details.dialogFormVisible" :close-on-click-modal="false" width="90%">
+      </div>
+    </el-dialog>
+
+    <!-- 配方详情 -->
+    <el-dialog :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="details.dialogFormVisible" :close-on-click-modal="false" width="90%">
       <template slot="title">
         <div class="avue-crud__dialog__header">
           <span class="el-dialog__title">
@@ -408,67 +408,67 @@
           </div>
         </div>
       </template>
-      <div class="details dialogMinHeight">
-        <el-form ref="temp" :rules="details.rules" :model="details.temp" label-position="right" label-width="120px" style="width: 100%;margin-bottom:30px">
-          <el-row>
-            <el-col :span="8">
-              <el-form-item label="历史记录时间:" prop="maxDate">
-                <el-date-picker v-model="details.temp.maxDate" :clearable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" placeholder="请选择历史记录时间" @change="changeMaxDate" />
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-        <div class="table1">
-          <div ref="templateDialog" class="templateDialog">
-            <div class="recipeTemplateF">
-              <p>配方模板表</p>
-            </div>
-          </div>
-          <el-table
-            :key="details.table1.tableKey"
-            v-loading="details.table1.listLoading"
-            element-loading-text="给我一点时间"
-            :data="details.table1.list"
-            border
-            fit
-            highlight-current-row
-            style="width: 100%;"
-            :row-style="rowStyle"
-            :cell-style="cellStyle"
-            class="elTable table-fixed"
+      <div class="details dialogMinHeight">
+        <el-form ref="temp" :rules="details.rules" :model="details.temp" label-position="right" label-width="120px" style="width: 100%;margin-bottom:30px">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="历史记录时间:" prop="maxDate">
+                <el-date-picker v-model="details.temp.maxDate" :clearable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" placeholder="请选择历史记录时间" @change="changeMaxDate" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="table1">
+          <div ref="templateDialog" class="templateDialog">
+            <div class="recipeTemplateF">
+              <p>配方模板表</p>
+            </div>
+          </div>
+          <el-table
+            :key="details.table1.tableKey"
+            v-loading="details.table1.listLoading"
+            element-loading-text="给我一点时间"
+            :data="details.table1.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
           >
-            <el-table-column label="序号" type="index" width="50" align="center" />
-            <el-table-column label="配方名称" min-width="100px" align="center" prop="tname" />
-            <el-table-column label="牲畜类别" min-width="100px" align="center" prop="ccname" />
-            <el-table-column label="配方类型" min-width="100px" align="center" prop="fttype" />
-            <el-table-column label="来源" min-width="100px" align="center" prop="source" />
-            <el-table-column label="版本号" min-width="100px" align="center" prop="version" />
-            <el-table-column label="版本时间" min-width="100px" align="center" prop="versiontime" />
-          </el-table>
-        </div>
-        <div class="table2 detailDialog">
-          <div class="recipeTemplateF">
-            <p>配方详情表</p>
-          </div>
-          <el-table
-            :key="details.table2.tableKey"
-            v-loading="details.table2.listLoading"
-            element-loading-text="给我一点时间"
-            :data="details.table2.list"
-            border
-            fit
-            show-summary
-            highlight-current-row
-            style="width: 100%;"
-            :row-style="rowStyle"
-            :cell-style="cellStyle"
-            class="elTable table-fixed"
-          >
-            <el-table-column label="序号" type="index" width="50" align="center" />
-            <el-table-column label="饲料组" min-width="100px" align="center" prop="feedgroup" />
-            <el-table-column label="饲料名称" min-width="100px" align="center" prop="fname" />
-            <el-table-column label="重量(KG)" min-width="100px" align="center" prop="fweight" />
-            <el-table-column label="搅拌延时(min)" min-width="100px" align="center" prop="autosecond" />
+            <el-table-column label="序号" type="index" width="50" align="center" />
+            <el-table-column label="配方名称" min-width="100px" align="center" prop="tname" />
+            <el-table-column label="牲畜类别" min-width="100px" align="center" prop="ccname" />
+            <el-table-column label="配方类型" min-width="100px" align="center" prop="fttype" />
+            <el-table-column label="来源" min-width="100px" align="center" prop="source" />
+            <el-table-column label="版本号" min-width="100px" align="center" prop="version" />
+            <el-table-column label="版本时间" min-width="100px" align="center" prop="versiontime" />
+          </el-table>
+        </div>
+        <div class="table2 detailDialog">
+          <div class="recipeTemplateF">
+            <p>配方详情表</p>
+          </div>
+          <el-table
+            :key="details.table2.tableKey"
+            v-loading="details.table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="details.table2.list"
+            border
+            fit
+            show-summary
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="序号" type="index" width="50" align="center" />
+            <el-table-column label="饲料组" min-width="100px" align="center" prop="feedgroup" />
+            <el-table-column label="饲料名称" min-width="100px" align="center" prop="fname" />
+            <el-table-column label="重量(KG)" min-width="100px" align="center" prop="fweight" />
+            <el-table-column label="搅拌延时(min)" min-width="100px" align="center" prop="autosecond" />
             <el-table-column label="是否锁定牛头数比例" min-width="100" align="center">
               <template slot-scope="scope">
                 <span v-if="scope.row.islockcount == '0'">否</span>
@@ -479,350 +479,349 @@
               <template slot-scope="scope">
                 <span>{{ scope.row.sort }}</span>
               </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
-        <el-button class="cancelClose" style="right: 20px" @click="details.dialogFormVisible = false;">关闭</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { GetDataByName, postJson } from '@/api/common'
-import Cookies from 'js-cookie'
-import Pagination from '@/components/Pagination'
-import { parseTime } from '@/utils/index.js'
-export default {
-  name: 'FormulationEvaluation',
-  components: { Pagination },
-  filters: {
-    keepTreeNum(value) {
-      value = Number(value)
-      return value.toFixed(3)
-    }
-  },
-  data() {
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" style="right: 20px" @click="details.dialogFormVisible = false;">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, postJson } from '@/api/common'
+import Cookies from 'js-cookie'
+import Pagination from '@/components/Pagination'
+import { parseTime } from '@/utils/index.js'
+export default {
+  name: 'FormulationEvaluation',
+  components: { Pagination },
+  filters: {
+    keepTreeNum(value) {
+      value = Number(value)
+      return value.toFixed(3)
+    }
+  },
+  data() {
     return {
-      dialogFull: false,
-      table: {
-        getdataListParm: {
-          name: 'judgenurFTReport',
-          page: 1,
-          offset: 1,
-          pagecount: parseInt(Cookies.get('pageCount')),
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid'),
-            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
-            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
-            inputDatetime: [new Date(), new Date()]
-          }
-        },
-        tableKey: 1,
-        list: [],
-        total: 0,
-        listLoading: true,
-        temp: {}
-      },
-      see: {
-        dialogFormVisible: false,
-        dialogStatus: '',
-        temp: {},
-        rules: {},
-        table: {
-          tableKey: 0,
-          list: [],
-          total: 0,
-          listLoading: true,
-          getdataListParm: {
-            name: 'judgenurFTReport',
-            page: 1,
-            offset: 1,
-            pagecount: 0,
-            returntype: 'Map',
-            parammaps: {
-              name: 'judgenurBarBmReport',
-              name1: 'judgenurBarHSL'
-            }
-          }
-        }
-      },
-      details: {
-        dialogFormVisible: false,
-        dialogStatus: '',
-        temp: {
-          maxDate: ''
-        },
-        rules: {},
-        table1: {
-          tableKey: 0,
-          list: [],
-          total: 0,
-          listLoading: true,
-          getdataListParm: {
-            name: 'getFTListDateHis',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: '',
-              id: ''
-            }
-          }
-        },
-        table2: {
-          tableKey: 0,
-          list: [],
-          total: 0,
-          listLoading: true,
-          getdataListParm: {
-            name: 'getFTdetailListDate',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: '',
-              ftid: '',
-              date: '',
-              version: ''
-            }
-          }
-        },
-        maxDate: {
-          getdataListParm: {
-            name: 'getFTMaxDate',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: ''
-            }
-          }
-        }
-      },
-      textMap: {
-        see: '',
-        details: '配方详情'
-      },
-      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
-      cellStyle: { padding: 0 + 'px' }
-    }
-  },
-
-  created() {
-    if (this.$route.params.tname !== '' && this.$route.params.tname !== undefined && this.$route.params.startTime !== undefined && this.$route.params.stopTime !== undefined) {
-      console.log(this.table.getdataListParm.parammaps.inputDatetime, 'this.table.getdataListParm.parammaps.inputDatetime')
-      this.table.getdataListParm.parammaps.startTime = this.$route.params.startTime
-      this.table.getdataListParm.parammaps.stopTime = this.$route.params.stopTime
-      this.textMap.see = '栏舍详情——' + this.$route.params.tname
+      dialogFull: false,
+      table: {
+        getdataListParm: {
+          name: 'judgenurFTReport',
+          page: 1,
+          offset: 1,
+          pagecount: parseInt(Cookies.get('pageCount')),
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()]
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      see: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp: {},
+        rules: {},
+        table: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'judgenurFTReport',
+            page: 1,
+            offset: 1,
+            pagecount: 0,
+            returntype: 'Map',
+            parammaps: {
+              name: 'judgenurBarBmReport',
+              name1: 'judgenurBarHSL'
+            }
+          }
+        }
+      },
+      details: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp: {
+          maxDate: ''
+        },
+        rules: {},
+        table1: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'getFTListDateHis',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              id: ''
+            }
+          }
+        },
+        table2: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'getFTdetailListDate',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              ftid: '',
+              date: '',
+              version: ''
+            }
+          }
+        },
+        maxDate: {
+          getdataListParm: {
+            name: 'getFTMaxDate',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: ''
+            }
+          }
+        }
+      },
+      textMap: {
+        see: '',
+        details: '配方详情'
+      },
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' }
+    }
+  },
+
+  created() {
+    if (this.$route.params.tname !== '' && this.$route.params.tname !== undefined && this.$route.params.startTime !== undefined && this.$route.params.stopTime !== undefined) {
+      console.log(this.table.getdataListParm.parammaps.inputDatetime, 'this.table.getdataListParm.parammaps.inputDatetime')
+      this.table.getdataListParm.parammaps.startTime = this.$route.params.startTime
+      this.table.getdataListParm.parammaps.stopTime = this.$route.params.stopTime
+      this.textMap.see = '栏舍详情——' + this.$route.params.tname
       setTimeout(() => {
-        this.dialogFull = false
-        this.see.dialogStatus = 'see'
-        this.see.dialogFormVisible = true
-      }, 500)
-      this.see.table.getdataListParm.parammaps.ftid = this.$route.params.ftid
-      this.see.table.getdataListParm.parammaps.pastureid = this.$route.params.pastureid
-      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
-      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
-      this.getListSee()
-    }
-    this.getList()
-  },
-
-  methods: {
-    getList() {
-      this.table.listLoading = true
-      GetDataByName(this.table.getdataListParm).then(response => {
-        console.log('table数据', response.data.list)
-        if (response.data.list !== null) {
-          this.table.list = response.data.list
-          this.table.pageNum = response.data.pageNum
-          this.table.pageSize = response.data.pageSize
-          this.table.total = response.data.total
-        } else {
-          this.table.list = []
-        }
-        console.log(this.$route.params.tname)
-        // this.see.dialogFormVisible = false
-        setTimeout(() => {
-          this.table.listLoading = false
-        }, 100)
-      })
-    },
-    changeDate() {
-      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
-        this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
-        this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
-        this.getList()
-      }
-    },
-    handleBefore() {
-      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
-        var start = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
-        var stop = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
-        this.table.getdataListParm.parammaps.inputDatetime.length = 0
-        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
-        this.$forceUpdate()
-      }
-      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
-      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
-      this.getList()
-    },
-    handleNext() {
-      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
-        var start2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
-        var stop2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
-        this.table.getdataListParm.parammaps.inputDatetime.length = 0
-        this.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
-        this.$forceUpdate()
-      }
-      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
-      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
-      this.getList()
-    },
-    tableCellStyle({ row, column, rowIndex, columnIndex }) {
-      if (columnIndex === 0) {
-        return {
-          textDecoration: 'underline'
-        }
-      }
-      return {
-        textDecoration: 'none'
-      }
-    },
-    clickFormulaTemplateIndex(row) {
+        this.dialogFull = false
+        this.see.dialogStatus = 'see'
+        this.see.dialogFormVisible = true
+      }, 500)
+      this.see.table.getdataListParm.parammaps.ftid = this.$route.params.ftid
+      this.see.table.getdataListParm.parammaps.pastureid = this.$route.params.pastureid
+      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getListSee()
+    }
+    this.getList()
+  },
+
+  methods: {
+    getList() {
+      this.table.listLoading = true
+      GetDataByName(this.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.table.list = response.data.list
+          this.table.pageNum = response.data.pageNum
+          this.table.pageSize = response.data.pageSize
+          this.table.total = response.data.total
+        } else {
+          this.table.list = []
+        }
+        console.log(this.$route.params.tname)
+        // this.see.dialogFormVisible = false
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    changeDate() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        this.getList()
+      }
+    },
+    handleBefore() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+    },
+    handleNext() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+    },
+    tableCellStyle({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        return {
+          textDecoration: 'underline'
+        }
+      }
+      return {
+        textDecoration: 'none'
+      }
+    },
+    clickFormulaTemplateIndex(row) {
       console.log('点击了配方模板/指标')
-      this.dialogFull = false
-      this.details.dialogStatus = 'details'
-      this.details.dialogFormVisible = true
-      this.details.table1.getdataListParm.parammaps.pastureid = row.pastureid
-      this.details.table1.getdataListParm.parammaps.id = row.ftid
-
-      this.details.maxDate.getdataListParm.parammaps.pastureid = row.pastureid
-      this.getMaxDate()
-    },
-
-    getMaxDate() {
-      GetDataByName(this.details.maxDate.getdataListParm).then(response => {
-        if (response.data.list !== null) {
-          this.details.temp.maxDate = response.data.list[0].maxdate
-        } else {
-          this.details.temp.maxDate = ''
-        }
-        this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
-        this.details.table2.getdataListParm.parammaps.date = this.details.temp.maxDate
-
-        this.getListDetails1()
-      })
-    },
-    changeMaxDate(item) {
-      this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
-      this.getListDetails1()
-    },
-    getListDetails1() {
-      this.details.table1.listLoading = true
-      GetDataByName(this.details.table1.getdataListParm).then(response => {
-        console.log('table数据', response.data.list)
-        if (response.data.list !== null) {
-          this.details.table1.list = response.data.list
-          this.details.table1.pageNum = response.data.pageNum
-          this.details.table1.pageSize = response.data.pageSize
-          this.details.table1.total = response.data.total
-
-          this.details.table2.getdataListParm.parammaps.pastureid = this.details.table1.list[0].pastureid
-          this.details.table2.getdataListParm.parammaps.ftid = this.details.table1.list[0].id
-          this.details.table2.getdataListParm.parammaps.version = this.details.table1.list[0].version
-          this.getListDetails2()
-        } else {
-          this.details.table1.list = []
-          this.details.table2.list = []
-        }
-        setTimeout(() => {
-          this.details.table1.listLoading = false
-        }, 100)
-      })
-    },
-    getListDetails2() {
-      this.details.table2.listLoading = true
-      GetDataByName(this.details.table2.getdataListParm).then(response => {
-        console.log('table数据', response.data.list)
-        if (response.data.list !== null) {
-          this.details.table2.list = response.data.list
-          this.details.table2.pageNum = response.data.pageNum
-          this.details.table2.pageSize = response.data.pageSize
-          this.details.table2.total = response.data.total
-        } else {
-          this.details.table2.list = []
-        }
-        setTimeout(() => {
-          this.details.table2.listLoading = false
-        }, 100)
-      })
-    },
-    clickFormulaHurdlesIndex(row) {
-      console.log('点击了栏舍/指标')
-      this.$router.push('/formulationPlan/DhedFormula')
-    },
-    handleSee(row) {
+      this.dialogFull = false
+      this.details.dialogStatus = 'details'
+      this.details.dialogFormVisible = true
+      this.details.table1.getdataListParm.parammaps.pastureid = row.pastureid
+      this.details.table1.getdataListParm.parammaps.id = row.ftid
+
+      this.details.maxDate.getdataListParm.parammaps.pastureid = row.pastureid
+      this.getMaxDate()
+    },
+
+    getMaxDate() {
+      GetDataByName(this.details.maxDate.getdataListParm).then(response => {
+        if (response.data.list !== null) {
+          this.details.temp.maxDate = response.data.list[0].maxdate
+        } else {
+          this.details.temp.maxDate = ''
+        }
+        this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
+        this.details.table2.getdataListParm.parammaps.date = this.details.temp.maxDate
+
+        this.getListDetails1()
+      })
+    },
+    changeMaxDate(item) {
+      this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
+      this.getListDetails1()
+    },
+    getListDetails1() {
+      this.details.table1.listLoading = true
+      GetDataByName(this.details.table1.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.details.table1.list = response.data.list
+          this.details.table1.pageNum = response.data.pageNum
+          this.details.table1.pageSize = response.data.pageSize
+          this.details.table1.total = response.data.total
+
+          this.details.table2.getdataListParm.parammaps.pastureid = this.details.table1.list[0].pastureid
+          this.details.table2.getdataListParm.parammaps.ftid = this.details.table1.list[0].id
+          this.details.table2.getdataListParm.parammaps.version = this.details.table1.list[0].version
+          this.getListDetails2()
+        } else {
+          this.details.table1.list = []
+          this.details.table2.list = []
+        }
+        setTimeout(() => {
+          this.details.table1.listLoading = false
+        }, 100)
+      })
+    },
+    getListDetails2() {
+      this.details.table2.listLoading = true
+      GetDataByName(this.details.table2.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.details.table2.list = response.data.list
+          this.details.table2.pageNum = response.data.pageNum
+          this.details.table2.pageSize = response.data.pageSize
+          this.details.table2.total = response.data.total
+        } else {
+          this.details.table2.list = []
+        }
+        setTimeout(() => {
+          this.details.table2.listLoading = false
+        }, 100)
+      })
+    },
+    clickFormulaHurdlesIndex(row) {
+      console.log('点击了栏舍/指标')
+      this.$router.push('/formulationPlan/DhedFormula')
+    },
+    handleSee(row) {
       console.log('查看', row)
-      this.dialogFull = false
-      this.textMap.see = '栏舍详情——' + row.tname
-      this.see.dialogStatus = 'see'
-      this.see.dialogFormVisible = true
-      this.see.table.getdataListParm.parammaps.ftid = row.ftid
-      this.see.table.getdataListParm.parammaps.pastureid = row.pastureid
-      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
-      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
-      this.getListSee()
-    },
-    getListSee() {
+      this.dialogFull = false
+      this.textMap.see = '栏舍详情——' + row.tname
+      this.see.dialogStatus = 'see'
+      this.see.dialogFormVisible = true
+      this.see.table.getdataListParm.parammaps.ftid = row.ftid
+      this.see.table.getdataListParm.parammaps.pastureid = row.pastureid
+      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getListSee()
+    },
+    getListSee() {
       this.see.table.listLoading = true
       const url = 'authdata/GETNurJudgeRport'
       const data = this.see.table.getdataListParm
-      postJson(url, data).then(response => {
-        if (response.data !== null) {
-          console.log('table数据', response.data)
-          this.see.table.list = response.data
-          this.see.table.pageNum = response.data.pageNum
-          this.see.table.pageSize = response.data.pageSize
-          this.see.table.total = response.data.total
-        } else {
-          this.see.table.list = []
-        }
-        setTimeout(() => {
-          this.see.table.listLoading = false
-        }, 100)
-      })
-    }
-
-  }
-}
-</script>
-<style lang="scss" scoped>
-  .search {clear: both; }
-  .table { margin-top: 10px; }
-  .table2{margin-top: 20px;}
-  .templateDialog{
-     background: #fff;
-     position: relative;
-   }
-  .detailDialog{
-     background: #fff;
-     position: relative;
-   }
-</style>
-<style>
-  .tableSee .el-table { overflow-x: auto; }
-  .tableSee .el-table__header-wrapper,
-  .tableSee .el-table__body-wrapper,
-  .tableSee .el-table__footer-wrapper { overflow: visible; }
-  .tableSee .el-table::after { position: relative; }
-  .tableSee .el-table--scrollable-x .el-table__body-wrapper { overflow: visible; }
-
-</style>
+      postJson(url, data).then(response => {
+        if (response.data !== null) {
+          console.log('table数据', response.data)
+          this.see.table.list = response.data
+          this.see.table.pageNum = response.data.pageNum
+          this.see.table.pageSize = response.data.pageSize
+          this.see.table.total = response.data.total
+        } else {
+          this.see.table.list = []
+        }
+        setTimeout(() => {
+          this.see.table.listLoading = false
+        }, 100)
+      })
+    }
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .search {clear: both; }
+  .table { margin-top: 10px; }
+  .table2{margin-top: 20px;}
+  .templateDialog{
+     background: #fff;
+     position: relative;
+   }
+  .detailDialog{
+     background: #fff;
+     position: relative;
+   }
+</style>
+<style>
+  .tableSee .el-table { overflow-x: auto; }
+  .tableSee .el-table__header-wrapper,
+  .tableSee .el-table__body-wrapper,
+  .tableSee .el-table__footer-wrapper { overflow: visible; }
+  .tableSee .el-table::after { position: relative; }
+  .tableSee .el-table--scrollable-x .el-table__body-wrapper { overflow: visible; }
+</style>

+ 841 - 0
src/views/statisticalAnalysis/formulationEvaluation/index改.vue

@@ -0,0 +1,841 @@
+<template>
+  <div class="app-container">
+    <div class="operation">
+      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;margin-right: 10px;float: left;" @change="changeDate" />
+      <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
+      <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
+      <el-select v-model="table.getdataListParm.parammaps.search" placeholder="查询" class="filter-item" style="width: 120px;margin-right: 10px;">
+        <el-option v-for="item in searchList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-select v-if="table.getdataListParm.parammaps.search == '0'" v-model="table.getdataListParm.parammaps.fanme" placeholder="请选择配方" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in formulaList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-select v-else v-model="table.getdataListParm.parammaps.fanme" placeholder="请选择栏舍" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in fenceHouseList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+    </div>
+    <div class="search" />
+    <div class="table">
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="tableCellStyle"
+        class="elTable table-fixed"
+      >
+        <el-table-column sortable label="配方模板/指标" min-width="98px" align="center">
+          <template slot-scope="{row}">
+            <a @click="clickFormulaTemplateIndex(row)">{{ row.tname }}</a>
+          </template>
+        </el-table-column>
+        <el-table-column sortable label="牛头数" prop="ccount" min-width="58px" align="center" />
+        <el-table-column label="干物质(kg)" align="center">
+          <el-table-column sortable prop="dry" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.dry) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.dry) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="产奶净能(MJ)" align="center">
+          <el-table-column sortable prop="nm" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nm) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nm) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="奶牛能量单位(NND)" align="center">
+          <el-table-column sortable prop="nuint" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nuint) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nuint) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗蛋白(g)" align="center">
+          <el-table-column prop="cp" label="配方量" min-width="58" align="center" />
+          <el-table-column label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cp) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cp) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="磷(g)" align="center">
+          <el-table-column sortable prop="p" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.p) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.p) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="产奶净能(MCal/DM)" align="center">
+          <el-table-column sortable prop="nmd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.nmd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.nmd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗蛋白(%DM)" align="center">
+          <el-table-column sortable prop="cpd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cpd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cpd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="脂肪(%DM)" align="center">
+          <el-table-column sortable prop="fat" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.fat) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.fat) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="淀粉(%DM)" align="center">
+          <el-table-column sortable prop="starch" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.starch) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.starch) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="NDF(%DM)" align="center">
+          <el-table-column sortable prop="ndf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.ndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.ndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="粗料中的NDF(%DM)" align="center">
+          <el-table-column sortable prop="cndf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cndf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="ADF(%DM)" align="center">
+          <el-table-column sortable prop="adf" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.adf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.adf) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="钙(%DM)" align="center">
+          <el-table-column sortable prop="cad" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.cad) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.cad) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="磷(%DM)" align="center">
+          <el-table-column sortable prop="pd" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.pd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.pd) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column sortable label="精粗比(%)" align="center">
+          <el-table-column sortable prop="jcrate" label="配方量" min-width="58" align="center" />
+          <el-table-column sortable label="TMR料" min-width="65" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Hrate * scope.row.jcrate) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column sortable label="采食量" min-width="58" align="center">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.Srate * scope.row.jcrate) | keepTreeNum }}</span>
+            </template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="70" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <el-button class="miniSuccess" icon="el-icon-search" @click="handleSee(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" class="dialogMinHeight" :visible.sync="see.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[see.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-see dialogMinHeight">
+        <div class="tableSee">
+          <el-table
+            :key="see.table.tableKey"
+            v-loading="see.table.listLoading"
+            element-loading-text="给我一点时间"
+            :data="see.table.list"
+            border
+            fit
+            show-summary
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="tableCellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="栏舍/指标" min-width="100px" align="center">
+              <template slot-scope="{row}">
+                <a @click="clickFormulaHurdlesIndex(row)">{{ row.barname }}</a>
+              </template>
+            </el-table-column>
+            <el-table-column label="牛头数" min-width="100px" align="center" prop="ccount" />
+            <el-table-column label="干物质(kg)" min-width="130px" align="center">
+              <el-table-column prop="dry-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="dry-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="dry-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="dry-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="产奶净能(M)" min-width="130px" align="center">
+              <el-table-column prop="nm-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nm-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nm-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nm-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="奶牛能量单位(NND)" min-width="130px" align="center">
+              <el-table-column prop="nuint-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nuint-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nuint-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nuint-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗蛋白(g)" min-width="130px" align="center">
+              <el-table-column prop="cp-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cp-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cp-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cp-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="磷(g)" min-width="130px" align="center">
+              <el-table-column prop="p-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="p-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="p-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="p-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="产奶净能(MCal/DM)" min-width="130px" align="center">
+              <el-table-column prop="nmd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="nmd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="nmd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="nmd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗蛋白(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cpd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cpd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cpd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cpd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="脂肪(%DM)" min-width="130px" align="center">
+              <el-table-column prop="fat-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="fat-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="fat-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="fat-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="淀粉(%DM)" min-width="130px" align="center">
+              <el-table-column prop="starch-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="starch-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="starch-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="starch-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="NDF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="ndf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="ndf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="ndf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="ndf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="粗料中的NDF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cndf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cndf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cndf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cndf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="ADF(%DM)" min-width="130px" align="center">
+              <el-table-column prop="adf-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="adf-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="adf-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="adf-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="钙(%DM)" min-width="130px" align="center">
+              <el-table-column prop="cad-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="cad-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="cad-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="cad-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="磷(%DM)" min-width="130px" align="center">
+              <el-table-column prop="pd-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="pd-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="pd-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="pd-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="(4.0)饲料转化效率(kg/DM)" min-width="130px" align="center">
+              <el-table-column prop="trans4f-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="trans4f-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="trans4f-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="trans4f-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="(3.5)饲料转化效率(kg/DM)" min-width="130px" align="center">
+              <el-table-column prop="trans35f-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="trans35f-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="trans35f-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="trans35f-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="精粗比(%)" min-width="130px" align="center">
+              <el-table-column prop="jcrate-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="jcrate-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="jcrate-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="jcrate-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="日粮成本(元)" min-width="130px" align="center">
+              <el-table-column prop="uprice-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="uprice-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="uprice-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="uprice-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="干物质成本(元/公斤)" min-width="130px" align="center">
+              <el-table-column prop="upriced-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="upriced-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="upriced-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="upriced-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+            <el-table-column label="日公斤奶成本(元)" min-width="130px" align="center">
+              <el-table-column prop="kprice-nur" label="奶牛需要" min-width="70" align="center" />
+              <el-table-column prop="kprice-FT" label="配方量" min-width="58" align="center" />
+              <el-table-column prop="kprice-H" label="TMR料" min-width="65" align="center" />
+              <el-table-column prop="kprice-S" label="采食量" min-width="58" align="center" />
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" style="right: 20px" @click="see.dialogFormVisible = false;$route.params.tname = '' ">关闭</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 配方详情 -->
+    <el-dialog :fullscreen="dialogFull" :destroy-on-close="true" :visible.sync="details.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[details.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="details dialogMinHeight">
+        <el-form ref="temp" :rules="details.rules" :model="details.temp" label-position="right" label-width="120px" style="width: 100%;margin-bottom:30px">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="历史记录时间:" prop="maxDate">
+                <el-date-picker v-model="details.temp.maxDate" :clearable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" placeholder="请选择历史记录时间" @change="changeMaxDate" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="table1">
+          <div ref="templateDialog" class="templateDialog">
+            <div class="recipeTemplateF">
+              <p>配方模板表</p>
+            </div>
+          </div>
+          <el-table
+            :key="details.table1.tableKey"
+            v-loading="details.table1.listLoading"
+            element-loading-text="给我一点时间"
+            :data="details.table1.list"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="序号" type="index" width="50" align="center" />
+            <el-table-column label="配方名称" min-width="100px" align="center" prop="tname" />
+            <el-table-column label="牲畜类别" min-width="100px" align="center" prop="ccname" />
+            <el-table-column label="配方类型" min-width="100px" align="center" prop="fttype" />
+            <el-table-column label="来源" min-width="100px" align="center" prop="source" />
+            <el-table-column label="版本号" min-width="100px" align="center" prop="version" />
+            <el-table-column label="版本时间" min-width="100px" align="center" prop="versiontime" />
+          </el-table>
+        </div>
+        <div class="table2 detailDialog">
+          <div class="recipeTemplateF">
+            <p>配方详情表</p>
+          </div>
+          <el-table
+            :key="details.table2.tableKey"
+            v-loading="details.table2.listLoading"
+            element-loading-text="给我一点时间"
+            :data="details.table2.list"
+            border
+            fit
+            show-summary
+            highlight-current-row
+            style="width: 100%;"
+            :row-style="rowStyle"
+            :cell-style="cellStyle"
+            class="elTable table-fixed"
+          >
+            <el-table-column label="序号" type="index" width="50" align="center" />
+            <el-table-column label="饲料组" min-width="100px" align="center" prop="feedgroup" />
+            <el-table-column label="饲料名称" min-width="100px" align="center" prop="fname" />
+            <el-table-column label="重量(KG)" min-width="100px" align="center" prop="fweight" />
+            <el-table-column label="搅拌延时(min)" min-width="100px" align="center" prop="autosecond" />
+            <el-table-column label="是否锁定牛头数比例" min-width="100" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.islockcount == '0'">否</span>
+                <span v-if="scope.row.islockcount == '1'">是</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="顺序" min-width="100" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.sort }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" style="right: 20px" @click="details.dialogFormVisible = false;">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, postJson } from '@/api/common'
+import Cookies from 'js-cookie'
+import Pagination from '@/components/Pagination'
+import { parseTime } from '@/utils/index.js'
+export default {
+  name: 'FormulationEvaluation',
+  components: { Pagination },
+  filters: {
+    keepTreeNum(value) {
+      value = Number(value)
+      return value.toFixed(3)
+    }
+  },
+  data() {
+    return {
+      dialogFull: false,
+      searchList: [{ id: '0', name: '按配方查询' }, { id: '1', name: '按栏舍查询' }],
+      formulaList: [],
+      fenceHouseList: [],
+      table: {
+        getdataListParm: {
+          name: 'judgenurFTReport',
+          page: 1,
+          offset: 1,
+          pagecount: parseInt(Cookies.get('pageCount')),
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            startTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+            inputDatetime: [new Date(), new Date()],
+            search: '0'
+          }
+        },
+        tableKey: 1,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      see: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp: {},
+        rules: {},
+        table: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'judgenurFTReport',
+            page: 1,
+            offset: 1,
+            pagecount: 0,
+            returntype: 'Map',
+            parammaps: {
+              name: 'judgenurBarBmReport',
+              name1: 'judgenurBarHSL'
+            }
+          }
+        }
+      },
+      details: {
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp: {
+          maxDate: ''
+        },
+        rules: {},
+        table1: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'getFTListDateHis',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              id: ''
+            }
+          }
+        },
+        table2: {
+          tableKey: 0,
+          list: [],
+          total: 0,
+          listLoading: true,
+          getdataListParm: {
+            name: 'getFTdetailListDate',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: '',
+              ftid: '',
+              date: '',
+              version: ''
+            }
+          }
+        },
+        maxDate: {
+          getdataListParm: {
+            name: 'getFTMaxDate',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: ''
+            }
+          }
+        }
+      },
+      textMap: {
+        see: '',
+        details: '配方详情'
+      },
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' }
+    }
+  },
+
+  created() {
+    if (this.$route.params.tname !== '' && this.$route.params.tname !== undefined && this.$route.params.startTime !== undefined && this.$route.params.stopTime !== undefined) {
+      console.log(this.table.getdataListParm.parammaps.inputDatetime, 'this.table.getdataListParm.parammaps.inputDatetime')
+      this.table.getdataListParm.parammaps.startTime = this.$route.params.startTime
+      this.table.getdataListParm.parammaps.stopTime = this.$route.params.stopTime
+      this.textMap.see = '栏舍详情——' + this.$route.params.tname
+      setTimeout(() => {
+        this.dialogFull = false
+        this.see.dialogStatus = 'see'
+        this.see.dialogFormVisible = true
+      }, 500)
+      this.see.table.getdataListParm.parammaps.ftid = this.$route.params.ftid
+      this.see.table.getdataListParm.parammaps.pastureid = this.$route.params.pastureid
+      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getListSee()
+    }
+    this.getList()
+  },
+
+  methods: {
+    getList() {
+      this.table.listLoading = true
+      GetDataByName(this.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.table.list = response.data.list
+          this.table.pageNum = response.data.pageNum
+          this.table.pageSize = response.data.pageSize
+          this.table.total = response.data.total
+        } else {
+          this.table.list = []
+        }
+        console.log(this.$route.params.tname)
+        // this.see.dialogFormVisible = false
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    changeDate() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+        this.getList()
+      }
+    },
+    handleBefore() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))
+        var stop = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+    },
+    handleNext() {
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        var start2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))
+        var stop2 = new Date(this.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0
+        this.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)
+        this.$forceUpdate()
+      }
+      this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+      this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      this.getList()
+    },
+    tableCellStyle({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        return {
+          textDecoration: 'underline'
+        }
+      }
+      return {
+        textDecoration: 'none'
+      }
+    },
+    clickFormulaTemplateIndex(row) {
+      console.log('点击了配方模板/指标')
+      this.dialogFull = false
+      this.details.dialogStatus = 'details'
+      this.details.dialogFormVisible = true
+      this.details.table1.getdataListParm.parammaps.pastureid = row.pastureid
+      this.details.table1.getdataListParm.parammaps.id = row.ftid
+
+      this.details.maxDate.getdataListParm.parammaps.pastureid = row.pastureid
+      this.getMaxDate()
+    },
+
+    getMaxDate() {
+      GetDataByName(this.details.maxDate.getdataListParm).then(response => {
+        if (response.data.list !== null) {
+          this.details.temp.maxDate = response.data.list[0].maxdate
+        } else {
+          this.details.temp.maxDate = ''
+        }
+        this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
+        this.details.table2.getdataListParm.parammaps.date = this.details.temp.maxDate
+
+        this.getListDetails1()
+      })
+    },
+    changeMaxDate(item) {
+      this.details.table1.getdataListParm.parammaps.date = this.details.temp.maxDate
+      this.getListDetails1()
+    },
+    getListDetails1() {
+      this.details.table1.listLoading = true
+      GetDataByName(this.details.table1.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.details.table1.list = response.data.list
+          this.details.table1.pageNum = response.data.pageNum
+          this.details.table1.pageSize = response.data.pageSize
+          this.details.table1.total = response.data.total
+
+          this.details.table2.getdataListParm.parammaps.pastureid = this.details.table1.list[0].pastureid
+          this.details.table2.getdataListParm.parammaps.ftid = this.details.table1.list[0].id
+          this.details.table2.getdataListParm.parammaps.version = this.details.table1.list[0].version
+          this.getListDetails2()
+        } else {
+          this.details.table1.list = []
+          this.details.table2.list = []
+        }
+        setTimeout(() => {
+          this.details.table1.listLoading = false
+        }, 100)
+      })
+    },
+    getListDetails2() {
+      this.details.table2.listLoading = true
+      GetDataByName(this.details.table2.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.details.table2.list = response.data.list
+          this.details.table2.pageNum = response.data.pageNum
+          this.details.table2.pageSize = response.data.pageSize
+          this.details.table2.total = response.data.total
+        } else {
+          this.details.table2.list = []
+        }
+        setTimeout(() => {
+          this.details.table2.listLoading = false
+        }, 100)
+      })
+    },
+    clickFormulaHurdlesIndex(row) {
+      console.log('点击了栏舍/指标')
+      this.$router.push('/formulationPlan/DhedFormula')
+    },
+    handleSee(row) {
+      console.log('查看', row)
+      this.dialogFull = false
+      this.textMap.see = '栏舍详情——' + row.tname
+      this.see.dialogStatus = 'see'
+      this.see.dialogFormVisible = true
+      this.see.table.getdataListParm.parammaps.ftid = row.ftid
+      this.see.table.getdataListParm.parammaps.pastureid = row.pastureid
+      this.see.table.getdataListParm.parammaps.startTime = this.table.getdataListParm.parammaps.startTime
+      this.see.table.getdataListParm.parammaps.stopTime = this.table.getdataListParm.parammaps.stopTime
+      this.getListSee()
+    },
+    getListSee() {
+      this.see.table.listLoading = true
+      const url = 'authdata/GETNurJudgeRport'
+      const data = this.see.table.getdataListParm
+      postJson(url, data).then(response => {
+        if (response.data !== null) {
+          console.log('table数据', response.data)
+          this.see.table.list = response.data
+          this.see.table.pageNum = response.data.pageNum
+          this.see.table.pageSize = response.data.pageSize
+          this.see.table.total = response.data.total
+        } else {
+          this.see.table.list = []
+        }
+        setTimeout(() => {
+          this.see.table.listLoading = false
+        }, 100)
+      })
+    }
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .search {clear: both; }
+  .table { margin-top: 10px; }
+  .table2{margin-top: 20px;}
+  .templateDialog{
+     background: #fff;
+     position: relative;
+   }
+  .detailDialog{
+     background: #fff;
+     position: relative;
+   }
+</style>
+<style>
+  .tableSee .el-table { overflow-x: auto; }
+  .tableSee .el-table__header-wrapper,
+  .tableSee .el-table__body-wrapper,
+  .tableSee .el-table__footer-wrapper { overflow: visible; }
+  .tableSee .el-table::after { position: relative; }
+  .tableSee .el-table--scrollable-x .el-table__body-wrapper { overflow: visible; }
+
+</style>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini