Shan9312 hace 10 meses
padre
commit
775a1a4784

+ 20 - 0
src/lang/en/langModule/premixedPlan.js

@@ -0,0 +1,20 @@
+export default{
+
+xzcc:"New Batch",
+jscc:"Reduce Batches",
+sx:"Take Effect",
+jy:"Disable",
+tmrbh:"TMR Number",
+sljhccgs:"Feed Distribution Plan with Batch Following",
+zdjbl:"Maximum Mixing Quantity”(KG)",
+hlzl:"Mixed Material Weight",
+fljhcsgs:"Material Issuance Plan with Batch Following",
+time:"Time",
+
+
+
+
+
+
+
+}

+ 20 - 0
src/lang/zn/langModule/premixedPlan.js

@@ -0,0 +1,20 @@
+export default{
+
+xzcc:"新增车次",
+jscc:"减少车次",
+sx:"生效",
+jy:"禁用",
+tmrbh:"TMR编号",
+sljhccgs:"撒料计划车次跟随",
+zdjbl:"最大搅拌量(KG)",
+hlzl:"混料重量",
+fljhcsgs:"发料计划车次跟随",
+time:"时间",
+
+
+
+
+
+
+
+}

+ 1 - 1
src/views/basicData/equipmentTMR/index.vue

@@ -75,7 +75,7 @@
           </template>
         </el-table-column>
 
-        <el-table-column label="最大搅拌量(KG)" min-width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.zdjbl')"   min-width="110px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.maxstirfeed }}</span>
             <el-input v-if="scope.row.Edit" v-model="scope.row.maxstirfeed" style="width: 80%;" />

+ 1397 - 1397
src/views/dashboard/group/index.vue

@@ -1,1397 +1,1397 @@
-<template>
-  <div ref="dashboardEditor" class="dashboard-editor-container">
-    <div class="dashboard" style="margin-bottom: 10px;">
-      <div class="dashboard-l">
-        <div class="row1">
-          <div class="row1-t">
-            <div class="row1-t-l">
-              <div class="img-l">统计范围:</div>
-              <el-date-picker v-model="inputDatetime" :clearable="false" class="inputDatetime filter-item content" type="daterange" :picker-options="pickerOptions" :range-separator="$t('common.to')"  :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" align="right" @change="changeDate" />
-            </div>
-          </div>
-          <div class="row1-c">
-            <div class="row1-c-l">
-              <div class="title1">
-                <div class="img-title">
-                  <img src="../../../assets/images/index/l1.png">
-                </div>
-                <span class="content">混料准确率</span>
-              </div>
-              <div class="row1-c-l-c">
-                <span>
-                  <b>{{ row1.list[0].rateAvg }}</b>
-                  <br>昨日
-                </span>
-              </div>
-              <div class="row1-c-l-b">
-                <div><span>混料最高准确率:</span><b>{{ row1.list[0].rateMAX }}</b></div>
-                <div><span>混料最低准确率:</span><b>{{ row1.list[0].rateMIN }}</b></div>
-              </div>
-            </div>
-            <div class="row1-c-r">
-              <div class="title1">
-                <div class="img-title">
-                  <img src="../../../assets/images/index/l4.png">
-                </div>
-                <span class="content">撒料准确率</span>
-              </div>
-              <div class="row1-c-l-c">
-                <span>
-                  <b>{{ row1.list[1].rateAvg }}</b>
-                  <br>昨日
-                </span>
-              </div>
-              <div class="row1-c-l-b">
-                <div><span>撒料最高准确率:</span><b>{{ row1.list[1].rateMAX }}</b></div>
-                <div><span>撒料最低准确率:</span><b>{{ row1.list[1].rateMIN }}</b></div>
-              </div>
-            </div>
-          </div>
-          <div class="row1-b">
-            <div class="row1-b-l">
-              <div class="title1">
-                <div class="img-title">
-                  <img src="../../../assets/images/index/l3.png">
-                </div>
-                <span class="content">撒料正确率</span>
-              </div>
-              <div class="row1-c-l-c">
-                <span>
-                  <b>{{ row1.list[2].rateAvg }}</b>
-                  <br>昨日
-                </span>
-              </div>
-              <div class="row1-c-l-b">
-                <div><span>撒料最高正确率:</span><b>{{ row1.list[2].rateMAX }}</b></div>
-                <div><span>撒料最低正确率:</span><b>{{ row1.list[2].rateMIN }}</b></div>
-              </div>
-            </div>
-            <div class="row1-b-r">
-              <div class="title1">
-                <div class="img-title">
-                  <img src="../../../assets/images/index/l2.png">
-                </div>
-                <span class="content">撒料偏差</span>
-              </div>
-              <div class="row1-c-l-c">
-                <span>
-                  <b>{{ row1.list[3].rateAvg }}</b>
-                  <br>昨日
-                </span>
-              </div>
-              <div class="row1-c-l-b">
-                <div><span>撒料最高偏差:</span><b>{{ row1.list[3].rateMAX }}</b></div>
-                <div><span>撒料最低偏差:</span><b>{{ row1.list[3].rateMIN }}</b>分钟</div>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class="row2">
-          <div class="title">
-            <div class="img-title" />
-            <span class="content">今日计划统计</span>
-          </div>
-          <div class="todayPlan">
-            <div>
-              <div id="row2chartLine1" style="height: 185px;" />
-              <div class="bottom">
-                <div class="bottom-l">
-                  <div class="bottom-l-t">
-                    <b>{{ row2.chart1.chartLine_data.data1 }}</b>次
-                  </div>
-                  <div class="bottom-l-b">
-                    完成车次
-                  </div>
-                </div>
-                <div class="bottom-r">
-                  <div class="bottom-r-t">
-                    <b>{{ row2.chart1.chartLine_data.data2 }}</b>次
-                  </div>
-                  <div class="bottom-r-b">
-                    计划车次
-                  </div>
-                </div>
-              </div>
-            </div>
-            <div>
-              <div id="row2chartLine2" style="height: 185px;" />
-              <div class="bottom">
-                <div class="bottom-l">
-                  <div class="bottom-l-t">
-                    <b>{{ row2.chart2.chartLine_data.data1 }}</b>kg
-                  </div>
-                  <div class="bottom-l-b">
-                    完成重量
-                  </div>
-                </div>
-                <div class="bottom-r">
-                  <div class="bottom-r-t">
-                    <b>{{ row2.chart2.chartLine_data.data2 }}</b>kg
-                  </div>
-                  <div class="bottom-r-b">
-                    计划重量
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-
-        <div class="row3" style="position: relative;">
-          <div class="title">
-            <div class="img-title" />
-            <span class="content">成本统计</span>
-          </div>
-          <div v-if="row4.chart1.isChart" class="button">
-            <div class="exportTable" @click="handleExport('row4chartLine1')">{{$t('formulationEvaluation.out')}}</div>
-            <div class="exportTable" @click="handleTable('row4chartLine1')">{{$t('errorAnalysis.changeTable')}}</div>
-          </div>
-          <div v-if="row4.chart1.isChart" id="row4chartLine1" v-loading="row4.chart1.listLoading" style="background: #fff;height:310px;" />
-          <div v-if="row4.chart1.isTable" class="table" style="position: absolute;width: 100%;">
-            <div class="button">
-              <div class="exportTable" @click="handleExport('row4chartLine1')">{{$t('formulationEvaluation.out')}}</div>
-              <div class="exportTable" @click="handleChart('row4chartLine1')">{{$t('dashboard.sTable')}}</div>
-            </div>
-            <el-table
-              :key="row4.chart1.table.tableKey"
-              v-loading="row4.chart1.table.listLoading"
-              element-loading-text="给我一点时间"
-              :data="row4.chart1.table.list"
-              border
-              fit
-              highlight-current-row
-              style="width: 100%;margin-top: 10px;"
-              height="300"
-              :row-style="rowStyle"
-              :cell-style="cellStyle"
-              class="elTable table-fixed"
-            >
-              <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
-              <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
-              <el-table-column :label="$t('feedingEfficiency.gjnclcb1')"sortable min-width="120px" align="center" prop="准确率" />
-            </el-table>
-          </div>
-        </div>
-      </div>
-      <div class="dashboard-r">
-        <div class="row1">
-          <div class="row1Title">当前车辆数:{{ row2.carLength }}</div>
-          <div id="car" ref="car" v-loading="row2.listLoading" class="car">
-            <div id="carList" ref="carList" class="carList">
-              <div v-for="(item,index) in row2.list" ref="listW" :key="index" class="listW">
-                <div ref="list" class="list" :style="{'background': item.background,'color':item.color,'borderColor':item.borderColor}" @click="handleList(index,item)">
-                  <div class="list-t">
-                    <div class="list-t-t">
-                      <el-tooltip :content="item.tname" placement="top">
-                        <span>车辆:{{ item.tname }}</span>
-                      </el-tooltip>
-                    </div>
-                    <div class="list-t-t">
-                      <el-tooltip :content="item.fname" placement="top">
-                        <span v-if="item.inorout == 0">{{$t('formulationEvaluation.feed')}}:{{ item.fname }}</span>
-                        <span v-if="item.inorout == 1">栏舍:{{ item.fname }}</span>
-                      </el-tooltip>
-                    </div>
-                    <div class="list-t-t">
-                      <el-tooltip :content="item.remark" placement="top">
-                        <span>描述:{{ item.remark }}</span>
-                      </el-tooltip>
-                    </div>
-                  </div>
-
-                  <div class="list-b">
-                    <div class="list-b-l">
-                      <div class="left">
-                        <div class="num"><b>{{ item.doneweight }}</b>Kg</div>
-                        <div class="weight">完成重量</div>
-                      </div>
-                      <div class="right" />
-                    </div>
-                    <div class="list-b-l">
-                      <div class="left">
-                        <div class="num"><b>{{ item.leftweight }}</b>Kg</div>
-                        <div class="weight">剩余重量</div>
-                      </div>
-                      <div class="right" />
-                    </div>
-                    <div class="list-b-l">
-                      <div class="left">
-                        <div class="num"><b>{{ item.nowweight }}</b>Kg</div>
-                        <div class="weight">车辆当前载重</div>
-                      </div>
-                      <div class="right" />
-                    </div>
-                    <div class="list-b-l">
-                      <div class="left">
-                        <div class="num"><b>{{ item.lweight }}</b>Kg</div>
-                        <div class="weight">计划重量</div>
-                      </div>
-                      <div class="right" />
-                    </div>
-                    <div class="list-b-l">
-                      <div class="left">
-                        <div class="num"><b>{{ item.donerate }}</b></div>
-                        <div class="weight">完成度</div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-                <!-- <div v-if="item.isChecked" ref="checked" class="img-checked" /> -->
-              </div>
-            </div>
-          </div>
-
-        </div>
-        <div class="row2">
-          <div class="row2-l" style="position: relative;">
-            <div class="title">
-              <div class="img-title" />
-              <span class="content">计划统计</span>
-            </div>
-            <div v-if="row3.chart1.isChart" class="button">
-              <div class="exportTable" @click="handleExport('row3chartLine1')">{{$t('formulationEvaluation.out')}}</div>
-              <div class="exportTable" @click="handleTable('row3chartLine1')">{{$t('errorAnalysis.changeTable')}}</div>
-            </div>
-            <div v-if="row3.chart1.isChart" id="row3chartLine1" v-loading="row3.chart1.listLoading" style="background: #fff;height:310px;" />
-            <div v-if="row3.chart1.isTable" class="table" style="position: absolute;width: 100%;">
-              <div class="button">
-                <div class="exportTable" @click="handleExport('row3chartLine1')">{{$t('formulationEvaluation.out')}}</div>
-                <div class="exportTable" @click="handleChart('row3chartLine1')">{{$t('dashboard.sTable')}}</div>
-              </div>
-              <el-table
-                :key="row3.chart1.table.tableKey"
-                v-loading="row3.chart1.table.listLoading"
-                element-loading-text="给我一点时间"
-                :data="row3.chart1.table.list"
-                border
-                fit
-                highlight-current-row
-                style="width: 100%;margin-top: 10px;"
-                height="300"
-                :row-style="rowStyle"
-                :cell-style="cellStyle"
-                class="elTable table-fixed"
-              >
-                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="85px" align="center" prop="牧场" />
-                <el-table-column :label="$t('errorAnalysis.jhzxzl')" sortable min-width="90px" align="center" prop="实际量" />
-                <el-table-column :label="$t('errorAnalysis.pfllzl')" sortable min-width="90px" align="center" prop="理论量" />
-                <el-table-column :label="$t('errorAnalysis.jhzql')" sortable min-width="85px" align="center" prop="field1" />
-                <el-table-column :label="$t('errorAnalysis.jhqxzl')" sortable min-width="90px" align="center" prop="计划取消重量" />
-                <el-table-column :label="$t('errorAnalysis.jhzqll')" sortable min-width="100px" align="center" prop="field3" />
-                <el-table-column :label="$t('errorAnalysis.jhzql1')" sortable min-width="85px" align="center" prop="正确数" />
-                <el-table-column :label="$t('errorAnalysis.jhs')" sortable min-width="85px" align="center" prop="计划数" />
-                <el-table-column :label="$t('errorAnalysis.jhzql1')"sortable min-width="75px" align="center" prop="field2" />
-              </el-table>
-            </div>
-          </div>
-          <div class="row2-r" style="position: relative;">
-            <div class="title">
-              <div class="img-title" />
-              <span class="content">{{$t('feedingEfficiency.mrngwzcl')}} </span>
-            </div>
-            <div v-if="row3.chart2.isChart" class="button">
-              <div class="exportTable" @click="handleExport('row3chartLine2')">{{$t('formulationEvaluation.out')}}</div>
-              <div class="exportTable" @click="handleTable('row3chartLine2')">{{$t('errorAnalysis.changeTable')}}</div>
-            </div>
-            <div v-if="row3.chart2.isChart" id="row3chartLine2" v-loading="row3.chart2.listLoading" style="background: #fff;height:310px;" />
-            <div v-if="row3.chart2.isTable" class="table" style="position: absolute;width: 100%;">
-              <div class="button">
-                <div class="exportTable" @click="handleExport('row3chartLine2')">{{$t('formulationEvaluation.out')}}</div>
-                <div class="exportTable" @click="handleChart('row3chartLine2')">{{$t('dashboard.sTable')}}</div>
-              </div>
-              <el-table
-                :key="row3.chart2.table.tableKey"
-                v-loading="row3.chart2.table.listLoading"
-                element-loading-text="给我一点时间"
-                :data="row3.chart2.table.list"
-                border
-                fit
-                highlight-current-row
-                style="width: 100%;margin-top: 10px;"
-                height="300"
-                :row-style="rowStyle"
-                :cell-style="cellStyle"
-                class="elTable table-fixed"
-              >
-                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
-                <el-table-column label="泌乳牛干物质采食量(kg)" sortable min-width="110px" align="center" prop="准确率" />
-              </el-table>
-            </div>
-          </div>
-        </div>
-        <div class="row3">
-          <div class="row3-l" style="position: relative;">
-            <div class="title">
-              <div class="img-title" />
-              <span class="content">混料实际重量统计</span>
-            </div>
-            <div v-if="row4.chart2.isChart" class="button">
-              <div class="exportTable" @click="handleExport('row4chartLine2')">{{$t('formulationEvaluation.out')}}</div>
-              <div class="exportTable" @click="handleTable('row4chartLine2')">{{$t('errorAnalysis.changeTable')}}</div>
-            </div>
-            <div v-if="row4.chart2.isChart" id="row4chartLine2" v-loading="row4.chart2.listLoading" style="background: #fff;height:310px;" />
-            <div v-if="row4.chart2.isTable" class="table" style="position: absolute;width:100%;">
-              <div class="button">
-                <div class="exportTable" @click="handleExport('row4chartLine2')">{{$t('formulationEvaluation.out')}}</div>
-                <div class="exportTable" @click="handleChart('row4chartLine2')">{{$t('dashboard.sTable')}}</div>
-              </div>
-              <el-table
-                :key="row4.chart2.table.tableKey"
-                v-loading="row4.chart2.table.listLoading"
-                element-loading-text="给我一点时间"
-                :data="row4.chart2.table.list"
-                border
-                fit
-                highlight-current-row
-                style="width: 100%;margin-top: 10px;"
-                height="300"
-                :row-style="rowStyle"
-                :cell-style="cellStyle"
-                class="elTable table-fixed"
-              >
-                <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
-                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
-                <el-table-column label="混料重量" sortable min-width="110px" align="center" prop="准确率" />
-              </el-table>
-            </div>
-          </div>
-          <div class="row3-r">
-            <div class="title">
-              <div class="img-title" />
-              <span class="content">库存预警</span>
-              <!-- <a style="float: right;color: #009C69;font-size: 12px;margin-right: 10px;" @click="handleMore">查看更多 &nbsp;>></a> -->
-            </div>
-            <div id="table" style="height: 330px;background: #fff;">
-              <el-table
-                :key="row4.table.tableKey"
-                v-loading="row4.table.listLoading"
-                element-loading-text="给我一点时间"
-                :data="row4.table.list"
-                border
-                fit
-                highlight-current-row
-                style="width: 98%;background: #fff;margin-top: 10px;"
-                height="320"
-                :row-style="rowStyle"
-                :cell-style="cellStyle"
-                class="elTable table-fixed"
-              >
-                <el-table-column :label="$t('formulationEvaluation.xh')" type="index" min-width="80px" align="center" />
-                <el-table-column :label="$t('InventoryManagement.silc')"    min-width="80px" align="center" prop="feedname" />
-                <el-table-column label="库存量(kg)" min-width="70px" align="center" prop="stockweight" />
-                <el-table-column label="剩余使用天数" min-width="80px" align="center" prop="ldays" />
-              </el-table>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import { GetDataByName, GetReportform } from '@/api/common'
-import Cookies from 'js-cookie'
-import { parseTime } from '@/utils/index.js'
-import { json2excel } from '@/utils/index.js'
-
-import echarts from 'echarts'
-require('echarts/theme/macarons')
-export default {
-  name: 'GroupDashboard',
-  data() {
-    return {
-      ranchSelectionList: [{ id: 0, name: '集团' }, { id: 1, name: '牧场01' }, { id: 2, name: '牧场02' }],
-      ranchSelection: 0,
-      inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()],
-      myDate: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}') + '-' + parseTime(new Date(), '{y}-{m}-{d}'),
-      pickerOptions: {
-        shortcuts: [{
-          text: '最近一周',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-            picker.$emit('pick', [start, end])
-          }
-        }, {
-          text: '最近一个月',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-            picker.$emit('pick', [start, end])
-          }
-        }, {
-          text: '最近一年',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 365)
-            picker.$emit('pick', [start, end])
-          }
-        }]
-      },
-      date: parseTime(new Date(), '{y}-{m}-{d}'),
-      row1: {
-        getdataListParm: {
-          name: 'getHomepageStrJT',
-          page: 1,
-          offset: 1,
-          pagecount: 10,
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid')
-          }
-        },
-        listLoading: false,
-        list: [
-          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
-          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
-          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
-          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' }
-        ],
-        getdataListParm2: {
-          name: 'getHomepageStrJTPlan',
-          page: 1,
-          offset: 1,
-          pagecount: 10,
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid')
-          }
-        },
-        list2: ''
-      },
-      row2: {
-        chart1: {
-          chartLine: null,
-          chartLine_data: {}
-        },
-        chart2: {
-          chartLine: null,
-          chartLine_data: {}
-        },
-        list: [],
-        total: 0,
-        listLoading: false,
-        getdataListParmList: {
-          name: 'getHomepageLBListJT',
-          page: 1,
-          offset: 1,
-          pagecount: '',
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid')
-          }
-        }
-      },
-      row3: {
-        chartDate: [],
-        chart1: {
-          chartLine: null,
-          chartLine_data: {},
-          getdataListParm: {
-            name: 'getJT1AccuracyAllJH',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: Cookies.get('pastureid'),
-              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
-              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
-              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
-            }
-          },
-          list: [],
-          total: 0,
-          listLoading: false,
-          isChart: true,
-          isTable: false,
-          table: {
-            tableKey: 1,
-            list: [],
-            total: 0,
-            listLoading: false
-          }
-        },
-        chart2: {
-          chartLine: null,
-          chartLine_data: {},
-          getdataListParm: {
-            name: 'getFeedEffMRJT',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: Cookies.get('pastureid'),
-              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
-              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
-              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
-            }
-          },
-          list: [],
-          total: 0,
-          listLoading: false,
-          isChart: true,
-          isTable: false,
-          table: {
-            tableKey: 1,
-            list: [],
-            total: 0,
-            listLoading: false
-          }
-        }
-      },
-      row4: {
-        chartDate: [],
-        chart1: {
-          chartLine: null,
-          chartLine_data: {},
-          getdataListParm: {
-            name: 'getFeedEffCBAllJT',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: Cookies.get('pastureid'),
-              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
-              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
-              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
-            }
-          },
-          list: [],
-          total: 0,
-          listLoading: false,
-          isChart: true,
-          isTable: false,
-          table: {
-            tableKey: 1,
-            list: [],
-            total: 0,
-            listLoading: false
-          }
-        },
-        chart2: {
-          chartLine: null,
-          chartLine_data: {},
-          getdataListParm: {
-            name: 'getAccuracActHLJT',
-            page: 1,
-            offset: 1,
-            pagecount: 10,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: Cookies.get('pastureid'),
-              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
-              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
-              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
-            }
-          },
-          list: [],
-          total: 0,
-          listLoading: false,
-          isChart: true,
-          isTable: false,
-          table: {
-            tableKey: 1,
-            list: [],
-            total: 0,
-            listLoading: false
-          }
-        },
-        table: {
-          getdataListParm: {
-            name: 'getFsWarnListJT',
-            page: 1,
-            offset: 1,
-            pagecount: 5,
-            returntype: 'Map',
-            parammaps: {
-              pastureid: Cookies.get('pastureid')
-            }
-          },
-          tableKey: 1,
-          list: [],
-          total: 0,
-          listLoading: false,
-          temp: {}
-        }
-
-      },
-      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
-      cellStyle: { padding: 0 + 'px' }
-
-    }
-  },
-  created() {
-    this.getRow1List()
-    this.getRow2List()
-    this.getRow2List1()
-    this.getRow3List1()
-    this.getRow3List2()
-    this.getRow4List1()
-    this.getRow4List2()
-    this.getRow4List3()
-  },
-  methods: {
-    changeDate(item) {
-      this.myDate = parseTime(this.inputDatetime[0], '{y}-{m}-{d}') + '-' + parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
-      this.getRow1List()
-    },
-    getRow1List() {
-      this.row1.listLoading = true
-      this.row1.getdataListParm.parammaps.startTime = parseTime(this.inputDatetime[0], '{y}-{m}-{d}')
-      this.row1.getdataListParm.parammaps.stopTime = parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
-      GetDataByName(this.row1.getdataListParm).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          console.log('row1数据', response.data.list)
-          for (let i = 0; i < response.data.list.length; i++) {
-            if (response.data.list[i].rateAvg == undefined) {
-              this.$set(response.data.list[i], 'rateAvg', '')
-            }
-            if (response.data.list[i].rateMAX == undefined) {
-              this.$set(response.data.list[i], 'rateMAX', '')
-            }
-            if (response.data.list[i].rateMIN == undefined) {
-              this.$set(response.data.list[i], 'rateMIN', '')
-            }
-          }
-          this.row1.list = response.data.list
-          console.log(this.row1.list, 'this.row1.list')
-        } else {
-          this.row1.list.data1.monRateHL = ''
-          this.row1.list.data1.monRateSL = ''
-          this.row1.list.data1.monRateSLR = ''
-          this.row1.list.data1.yesRateHL = ''
-          this.row1.list.data1.yesRateSL = ''
-          this.row1.list.data1.yesRateSLR = ''
-          this.row1.list.data1.temtime = ''
-          this.row1.list.data1.montime = ''
-        }
-        setTimeout(() => {
-          this.row1.listLoading = false
-        }, 100)
-      })
-    },
-    getRow2List() {
-      this.row1.listLoading = true
-      this.row1.getdataListParm.parammaps.startTime = parseTime(this.inputDatetime[0], '{y}-{m}-{d}')
-      this.row1.getdataListParm.parammaps.stopTime = parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
-      GetDataByName(this.row1.getdataListParm2).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          this.row2.chart1.chartLine_data.data1 = parseFloat(response.data.list[0].doneTimes)
-          this.row2.chart1.chartLine_data.data2 = parseFloat(response.data.list[0].planTimes)
-          this.row2.chart2.chartLine_data.data1 = parseFloat(response.data.list[0].doneWeight)
-          this.row2.chart2.chartLine_data.data2 = parseFloat(response.data.list[0].planWeight)
-          this.roadRow1ChartLine1(this.row2.chart1.chartLine_data)
-          this.roadRow1ChartLine2(this.row2.chart2.chartLine_data)
-        } else {
-          this.row2.chart1.chartLine_data.data1 = ''
-          this.row2.chart1.chartLine_data.data2 = ''
-          this.row2.chart2.chartLine_data.data1 = ''
-          this.row2.chart2.chartLine_data.data2 = ''
-        }
-        setTimeout(() => {
-          this.row1.listLoading = false
-        }, 100)
-      })
-    },
-    // 今日计划统计-完成车次
-    roadRow1ChartLine1(chartLine_data) {
-      console.log(chartLine_data, '======')
-      if (this.row2.chart1.chartLine != null) {
-        this.row2.chart1.chartLine.dispose()
-      }
-      this.row2.chart1.chartLine = echarts.init(document.getElementById('row2chartLine1'))
-      if (chartLine_data.data2 == 0 || chartLine_data.data1 == 0) {
-        chartLine_data.data1 = 0
-        chartLine_data.data2 = 100
-      }
-      var option = {
-      // 标题组件,包含主标题和副标题
-        title: { show: true, x: 'center', textStyle: { fontSize: '15', color: 'green', fontWeight: 'bold' }},
-        //  提示框组件
-        tooltip: {
-          show: false, trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)'
-        },
-        // 系列列表。每个系列通过 type 决定自己的图表类型
-        series: [{
-          name: '任务进度', type: 'pie', radius: ['80%', '70%'], avoidLabelOverlap: false, hoverAnimation: false, labelLine: { normal: { show: false }},
-          data: [
-            { value: chartLine_data.data1, name: '完成率', selected: false, label: { normal: { show: true, position: 'center', fontSize: 20, formatter: '{b}\n{d}%' }}},
-            { value: chartLine_data.data2 - chartLine_data.data1, label: { normal: { show: false }}}
-          ]
-        }],
-        color: ['#409EFF', '#B7DBFF']
-      }
-      this.row2.chart1.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row2.chart1.chartLine.resize()
-      }
-    },
-    // 今日计划统计-完成重量
-    roadRow1ChartLine2(chartLine_data) {
-      if (this.row2.chart2.chartLine != null) {
-        this.row2.chart2.chartLine.dispose()
-      }
-      this.row2.chart2.chartLine = echarts.init(document.getElementById('row2chartLine2'))
-      var option = {
-      // 标题组件,包含主标题和副标题
-        title: {
-          show: true,
-          x: 'center',
-          textStyle: {
-            fontSize: '15',
-            color: 'green',
-            fontWeight: 'bold'
-          }
-        },
-        //  提示框组件
-        tooltip: {
-          // 是否显示提示框组件,包括提示框浮层和 axisPointe
-          show: false,
-          // 触发类型: item:数据项触发,axis:坐标轴触发
-          trigger: 'item',
-          formatter: '{a} <br/>{b}: {c} ({d}%)'
-        },
-        // 系列列表。每个系列通过 type 决定自己的图表类型
-        series: [{
-          // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。
-          name: '任务进度',
-          type: 'pie',
-          // 饼图的半径,数组的第一项是内半径,第二项是外半径
-          radius: ['80%', '70%'],
-          // 是否启用防止标签重叠策略,默认开启
-          avoidLabelOverlap: false,
-          hoverAnimation: false,
-          // 标签的视觉引导线样式,在 label 位置 设置为'outside'的时候会显示视觉引导线
-          labelLine: {
-            normal: {
-              show: false
-            }
-          },
-          data: [{
-            value: chartLine_data.data1, // 数据值
-            name: '完成率', // 数据项名称
-            selected: false, // 该数据项是否被选中
-            // 单个扇区的标签配置
-            label: {
-              normal: {
-                show: true, // 是显示标签
-                position: 'center',
-                fontSize: 20,
-                // 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行
-                formatter: '{b}\n{d}%'
-              }
-            }
-          }, {
-            value: chartLine_data.data2 - chartLine_data.data1,
-            label: {
-              normal: {
-                show: false
-
-              }
-            }
-          }]
-        }],
-        color: ['#409EFF', '#B7DBFF']
-      }
-      this.row2.chart2.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row2.chart2.chartLine.resize()
-      }
-    },
-
-    // 今日执行计划监控
-    getRow2List1() {
-      this.row2.listLoading2 = true
-      GetDataByName(this.row2.getdataListParmList).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          for (let i = 0; i < response.data.list.length; i++) {
-            this.$set(response.data.list[i], 'background', '#f3f9f7')
-            this.$set(response.data.list[i], 'borderColor', '#009d6a')
-          }
-          this.row2.list = response.data.list
-          this.row2.carLength = response.data.total
-        } else {
-          this.carLength = 0
-        }
-        setTimeout(() => {
-          this.row2.listLoading2 = false
-        }, 100)
-      })
-    },
-
-    handleTable(item) {
-      console.log(item)
-      if (item == 'row3chartLine1') {
-        console.log('计划统计表格')
-        this.row3.chart1.isTable = true
-        this.row3.chart1.isChart = false
-      } else if (item == 'row3chartLine2') {
-        console.log('泌乳牛采食量表格')
-        this.row3.chart2.isTable = true
-        this.row3.chart2.isChart = false
-      } else if (item == 'row4chartLine1') {
-        console.log('成本统计表格')
-        this.row4.chart1.isTable = true
-        this.row4.chart1.isChart = false
-      } else if (item == 'row4chartLine2') {
-        console.log('混料实际重量统计表格')
-        this.row4.chart2.isTable = true
-        this.row4.chart2.isChart = false
-      }
-    },
-    handleChart(item) {
-      console.log(item)
-      // 显示切换图表
-      if (item == 'row3chartLine1') {
-        console.log('计划统计图表')
-        this.row3.chart1.isTable = false
-        this.row3.chart1.isChart = true
-        this.getRow3List1()
-      } else if (item == 'row3chartLine2') {
-        console.log('泌乳牛采食量图表')
-        this.row3.chart2.isTable = false
-        this.row3.chart2.isChart = true
-        this.getRow3List2()
-      } else if (item == 'row4chartLine1') {
-        console.log('成本统计图表')
-        this.row4.chart1.isTable = false
-        this.row4.chart1.isChart = true
-        this.getRow4List1()
-      } else if (item == 'row4chartLine2') {
-        console.log('混料实际重量统计图表')
-        this.row4.chart2.isTable = false
-        this.row4.chart2.isChart = true
-        this.getRow4List2()
-      }
-    },
-    handleExport(item) {
-      console.log(item)
-      // 显示切换图表
-      if (item == 'row3chartLine1') {
-        console.log('计划统计')
-        var excelDatasTabChart1 = [
-          {
-            tHeader: ['日期', '计划执行重量(kg)', '配方理论重量(kg)', '计划准确率', '计划取消重量(kg)', '计划准确率(去除取消重量)', '计划正确数', '计划数', '计划正确率'],
-            filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
-            tableDatas: this.row3.chart1.table.list,
-            sheetName: '计划统计'
-          }
-        ]
-        json2excel(excelDatasTabChart1, '计划统计', true, 'xlsx')
-      } else if (item == 'row3chartLine2') {
-        // 泌乳牛干物质采食量
-        var excelDatasTabChart2 = [
-          {
-            tHeader: ['日期', '泌乳牛采食量(kg)', '泌乳牛产奶量(kg)'],
-            filterVal: ['日期', 'field1', 'field2'],
-            tableDatas: this.row3.chart2.table.list,
-            sheetName: '泌乳牛采食量'
-          }
-        ]
-        json2excel(excelDatasTabChart2, '泌乳牛采食量', true, 'xlsx')
-      } else if (item == 'row4chartLine1') {
-        // 成本统计
-        console.log('成本统计')
-        // var excelDatasTabChart2 = [
-        //   {
-        //     tHeader: ['日期', '泌乳牛采食量(kg)', '泌乳牛产奶量(kg)'],
-        //     filterVal: ['日期', 'field1', 'field2'],
-        //     tableDatas: this.row3.chart2.table.list,
-        //     sheetName: '泌乳牛采食量'
-        //   }
-        // ]
-        // json2excel(excelDatasTabChart2, '泌乳牛采食量', true, 'xlsx')
-      } else if (item == 'row3chartLine1') {
-        console.log('计划统计')
-      } else if (item == 'row4chartLine2') {
-        console.log('混料实际重量统计')
-      }
-    },
-    // 计划统计
-    getRow3List1() {
-      this.row3.chart1.listLoading = true
-      console.log(this.row3.chart1.getdataListParm.name, '计划统计接口')
-      GetReportform(this.row3.chart1.getdataListParm).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          this.row3.chart1.table.list = response.data.data
-          this.row3.chart1.chartLine_data = response.data.list
-          this.row3.chart1.total = response.data.total
-          console.log('计划统计图数据', this.row3.chart1.chartLine_data)
-          console.log('计划统计表数据', this.row3.chart1.table.list)
-        } else {
-          this.row3.chart1.table.list = []
-          this.row3.chart1.chartLine_data = {}
-        }
-        this.roadRow3ChartLine1(this.row3.chart1.chartLine_data)
-        setTimeout(() => {
-          this.row3.chart1.listLoading = false
-        }, 100)
-      })
-    },
-    roadRow3ChartLine1(chartLine_data) {
-      if (this.row3.chart1.chartLine != null) {
-        this.row3.chart1.chartLine.dispose()
-      }
-      this.row3.chart1.chartLine = echarts.init(document.getElementById('row3chartLine1'))
-      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: this.$t('errorAnalysis.bfb') , 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.row3.chart1.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row3.chart1.chartLine.resize()
-      }
-    },
-    // 泌乳牛干物质采食量
-    getRow3List2() {
-      this.row3.chart2.listLoading = true
-      GetReportform(this.row3.chart2.getdataListParm).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          console.log('泌乳牛干物质采食量数据', response)
-          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.row3.chart2.table.list = response.data.data
-          this.row3.chart2.chartLine_data = response.data.list
-          this.row3.chart2.total = response.data.total
-          if (this.row3.chart2.chartLine_data.data1.length == 0) {
-            this.row3.chart2.chartLine_data.title = '暂无数据'
-          } else {
-            this.row3.chart2.chartLine_data.title = ''
-          }
-          this.roadRow3ChartLine2(this.row3.chart2.chartLine_data)
-        } else {
-          this.row3.chart2.list = []
-        }
-        setTimeout(() => {
-          this.row3.chart2.listLoading = false
-        }, 100)
-      })
-    },
-    roadRow3ChartLine2(chartLine_data) {
-      if (this.row3.chart2.chartLine != null) {
-        this.row3.chart2.chartLine.dispose()
-      }
-      this.row3.chart2.chartLine = echarts.init(document.getElementById('row3chartLine2'))
-      var option = {
-        title: {
-          text: ''
-        },
-        tooltip: {
-          trigger: 'axis'
-        },
-        legend: {
-          data: chartLine_data.data1,
-          right: 10
-        },
-        grid: {
-          top: '20%',
-          left: '3%',
-          right: '8%',
-          containLabel: true
-        },
-        toolbox: {
-          show: true,
-          right: '2%',
-          feature: {}
-        },
-        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
-        yAxis: {
-          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
-        },
-        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.row3.chart2.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row3.chart2.chartLine.resize()
-      }
-    },
-    // 成本统计
-    getRow4List1() {
-      this.row4.chart1.listLoading = true
-      console.log(this.row4.chart1.getdataListParm.name)
-      GetReportform(this.row4.chart1.getdataListParm).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          console.log('成本统计数据', response.data.list)
-          this.row4.chart1.table.list = response.data.data
-          this.row4.chart1.chartLine_data = response.data.list
-          this.row4.chart1.total = response.data.total
-        } else {
-          this.row4.chart1.list = []
-          this.row4.chart1.chartLine_data = {}
-        }
-        this.roadRow4ChartLine1(this.row4.chart1.chartLine_data)
-        setTimeout(() => {
-          this.row4.chart1.listLoading = false
-        }, 100)
-      })
-    },
-    roadRow4ChartLine1(chartLine_data) {
-      console.log(chartLine_data, '成本统计chartLine_data')
-      if (this.row4.chart1.chartLine != null) {
-        this.row4.chart1.chartLine.dispose()
-      }
-      this.row4.chart1.chartLine = echarts.init(document.getElementById('row4chartLine1'))
-      var option = {
-        title: {
-          text: ''
-        },
-        tooltip: {
-          trigger: 'axis'
-        },
-        legend: {
-          data: chartLine_data.data1,
-          right: 10
-        },
-        grid: {
-          top: '20%',
-          left: '5%',
-          right: '8%',
-          containLabel: true
-        },
-        toolbox: {
-          show: true,
-          right: '2%',
-          feature: {}
-        },
-        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
-        yAxis: {
-          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
-        },
-        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.row4.chart1.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row4.chart1.chartLine.resize()
-      }
-    },
-    // 混料实际重量统计
-    getRow4List2() {
-      this.row4.chart2.listLoading = true
-      GetReportform(this.row4.chart2.getdataListParm).then(response => {
-        if (response.data !== null && response.data.list !== null) {
-          console.log('混料实际重量统计数据', response.data.list)
-          this.row4.chart2.table.list = response.data.data
-          this.row4.chart2.chartLine_data = response.data.list
-          this.row4.chart2.total = response.data.total
-        } else {
-          this.row4.chart2.list = []
-          this.row4.chart2.chartLine_data = {}
-        }
-        this.roadRow4ChartLine2(this.row4.chart2.chartLine_data)
-        setTimeout(() => {
-          this.row4.chart2.listLoading = false
-        }, 100)
-      })
-    },
-    roadRow4ChartLine2(chartLine_data) {
-      if (this.row4.chart2.chartLine != null) {
-        this.row4.chart2.chartLine.dispose()
-      }
-      this.row4.chart2.chartLine = echarts.init(document.getElementById('row4chartLine2'))
-      var option = {
-        title: {
-          text: ''
-        },
-        tooltip: {
-          trigger: 'axis'
-        },
-        legend: {
-          data: chartLine_data.data1,
-          right: 10
-        },
-        grid: {
-          top: '20%',
-          left: '5%',
-          right: '8%',
-          containLabel: true
-        },
-        toolbox: {
-          show: true,
-          right: '2%',
-          feature: {}
-        },
-        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
-        yAxis: {
-          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
-        },
-        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.row4.chart2.chartLine.setOption(option)
-      window.onresize = function() {
-        this.row4.chart2.chartLine.resize()
-      }
-    },
-    getRow4List3() {
-      this.row4.table.listLoading = true
-      GetDataByName(this.row4.table.getdataListParm).then(response => {
-        if (response.data.list !== null) {
-          console.log('库存预警table数据', response.data.list)
-          this.row4.table.list = response.data.list
-          this.row4.table.total = response.data.total
-        } else {
-          this.row4.table.list = []
-        }
-        setTimeout(() => {
-          this.row4.table.listLoading = false
-        }, 100)
-      })
-    }
-
-  }
-}
-</script>
-<style>
-  .app-main{background:#f5f5f5;}
-</style>
-<style lang="scss" scoped>
-
-  .dashboard-editor-container{padding-left: 10px;background: #f5f5f5;padding-bottom: 10px;}
-  // 公共
-  .img-t{position: absolute;left: 0;right: 0;margin: 30px auto;width: 31%;height: 31%;background-size: 100% 100%;}
-  .row1-c-l-c{
-    margin: 20px auto;border: 1px solid #eee;height: 40%;width: 50%;border-radius: 50%;text-align: center;display:table;
-    span{
-      height:100%;display:table-cell;vertical-align: middle;font-size:14px;color: #009C69;
-      b{padding-bottom: 10px;font-size: 16px;overflow: hidden;width: 100%;}
-    }
-  }
-  .row1-c-l-b{
-    width: 100%;text-align: center;display:table;font-size: 12px;
-    // div{
-    //   font-size: 12px;height:100%;display:table-cell;vertical-align: middle;color: #323232;padding: 0 10px;width: 100%;
-    //   span{text-align: right;width: 75%;display: block;float: left;}
-    //   b{float: left;display: block;width: 25%;}
-    // }
-  }
-  .title{
-    height: 36px;padding-top: 7px;line-height: 36px;position: relative;
-    .img-title{
-      position: absolute;top: 10px; right:10px;bottom:0;left:20px;width: 30px;height: 30px;background: url(../../../assets/images/index/row-bg3.png) no-repeat;
-    }
-    .content{font-size: 18px;position: absolute;top: 7px;left: 55px;}
-  }
-  .title1{
-    height: 36px;padding-top: 7px;line-height: 36px;position: relative;
-
-    .img-title{
-      position: absolute;top: 10px; right:10px;bottom:0;left:10px;
-      width: 25px;height: 25px;
-      img{width: 25px;height: 25px;}
-    }
-    .content{font-size: 16px;position: absolute;top: 7px;left: 40px;}
-  }
-  .button{
-    height: 30px;
-    .exportTable{float: right;margin-right: 5px;}
-  }
-  .dashboard{
-    display: flex;margin-top: 10px;
-    .dashboard-l{
-      // width: 540px;
-      width: 30%;
-      .row1{
-        height: 520px;
-        .row1-t{
-          background: #fff; height: 50px; color: #f28b46;
-          .row1-t-l{
-            .img-l{float:left;padding: 16px 0 16px 10px;width: 100px;height: 18px;}
-            .content{float:left;width: 68%;font-size: 14px;margin-top: 5px;}
-          }
-          .row1-t-r{padding-right: 20px;text-align: right;line-height: 50px;}
-        }
-
-        .row1-c{
-          display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;margin-top: 10px;
-          .row1-c-l{
-            background: #fff;width:49%;height:225px;border-radius:3px;margin-right: 1%;position: relative;
-            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t1.png) no-repeat; background-size: 100% 100%;}
-          }
-          .row1-c-r{
-            background: #fff;width:49%;height:225px;border-radius:3px;position: relative;
-            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t2.png) no-repeat; background-size: 100% 100%;}
-          }
-        }
-        .row1-b{
-          display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;margin-top: 10px;
-          .row1-b-l{
-            background: #fff;width:49%;height:225px;border-radius:3px;margin-right:1%;position: relative;
-            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t4.png) no-repeat; background-size: 100% 100%;}
-          }
-          .row1-b-r{
-            background: #fff;width:49%;height:225px;border-radius:3px;position: relative;
-            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t3.png) no-repeat; background-size: 100% 100%;}
-          }
-        }
-      }
-
-      .row2{
-        margin-top:10px;height: 375px;background: #fff;
-        .img-title{background-position: 0 0;}
-        .todayPlan{
-          display: flex; flex-direction: row;margin-top: 10px;
-          div{
-            flex: 1;position: relative;
-            .bottom{
-              width: 99%;height: 70px;background: #f9f9f9;margin: 30px auto 5px;display: flex; flex-direction: row;
-              div{
-                flex: 1;height: 42px;color: #333333;
-              }
-              .bottom-l{
-                border-right: 1px solid #e0e0e0;margin-top: 15px;width: 100%;text-align: center;
-                .bottom-l-t{
-                  height: 30px;
-                  b{font-size: 18px;}
-                }
-                .bottom-l-b{font-size: 12px;}
-              }
-              .bottom-r{
-                margin-top: 15px;width: 100%;text-align: center;
-                .bottom-r-t{height: 30px;padding-left: 10px;}
-                .bottom-r-b{padding-left: 10px;font-size: 12px;}
-              }
-            }
-          }
-        }
-      }
-      .row3{
-        margin-top:10px;height: 375px;background: #fff;
-        .img-title{background-position: 0 -90px;}
-      }
-    }
-    .dashboard-r{
-      margin-left: 10px;flex:1;
-      .row1{
-        height: 520px;background: #fff;
-        .row1Title{float: right;height: 50px;line-height: 50px;margin-right: 50px;}
-        .img-title{background-position: 0 -240px;}
-        #row2chartLine3{height: 270px;margin-top: 10px;}
-        .carsLength{
-          padding: 13px 0 0 22px;line-height: 38px;font-size: 18px;font-weight: 700;
-        }
-        .car{
-          clear: both;
-          .carList{
-            padding:0 30px;overflow: auto;width: 100%;height: 470px;
-            .listW{
-              background: #f3f9f7; float: left;margin: 5px 5px;width: 32%;height: 120px;
-              .list{
-                width: 100%;height: 100%;border-radius: 5px;border:1px solid #000;
-                .list-t{
-                  display: flex;
-                  border-bottom: 1px solid #f1f1f1;
-                  .list-t-t{
-                    flex: 1 1;
-                    width: 0;font-size: 12px;line-height: 22px;padding: 25px 5px 15px;text-align: center;
-                    span{ display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
-                  }
-                }
-                .list-b{
-                  display: flex; text-align: center;margin-top: 14px;color: #323232;
-                  .list-b-l{
-                    flex: 1;width: 0; height: 40px; position: relative;
-                    .left{
-                      .num{
-                        font-size: 12px;
-                        b{font-size: 12px;}
-                      }
-                      .weight{font-size: 12px;}
-                    }
-                    .right{
-                      height: 30px;width: 1px;background: #e0e0e0;position: absolute;right: 0;top: 0;bottom: 0;margin-top:auto;margin-bottom:auto
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-
-      .row2{
-        margin-top:10px;height: 375px;
-        display: flex; flex-direction: row;
-        .row2-l{
-          margin-right: 10px; background: #fff;height:375px;border-radius:3px;flex: 1;
-          .img-title{background-position: 0 -30px;}
-        }
-        .row2-r{
-           background: #fff;height:375px;border-radius:3px;flex: 1;
-          .img-title{background-position: 0 -60px;}
-        }
-      }
-
-      .row3{
-        margin-top:10px;height: 375px;
-        display: flex; flex-direction: row;
-        .row3-l{
-          margin-right: 10px; background: #fff;height:375px;border-radius:3px;flex: 1;
-          .img-title{background-position: 0 -120px;}
-        }
-        .row3-r{
-           background: #fff;height:375px;border-radius:3px;flex: 1;
-          .img-title{background-position: 0 -150px;}
-        }
-      }
-
-    }
-  }
-</style>
+<template>
+  <div ref="dashboardEditor" class="dashboard-editor-container">
+    <div class="dashboard" style="margin-bottom: 10px;">
+      <div class="dashboard-l">
+        <div class="row1">
+          <div class="row1-t">
+            <div class="row1-t-l">
+              <div class="img-l">统计范围:</div>
+              <el-date-picker v-model="inputDatetime" :clearable="false" class="inputDatetime filter-item content" type="daterange" :picker-options="pickerOptions" :range-separator="$t('common.to')"  :start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" align="right" @change="changeDate" />
+            </div>
+          </div>
+          <div class="row1-c">
+            <div class="row1-c-l">
+              <div class="title1">
+                <div class="img-title">
+                  <img src="../../../assets/images/index/l1.png">
+                </div>
+                <span class="content">混料准确率</span>
+              </div>
+              <div class="row1-c-l-c">
+                <span>
+                  <b>{{ row1.list[0].rateAvg }}</b>
+                  <br>昨日
+                </span>
+              </div>
+              <div class="row1-c-l-b">
+                <div><span>混料最高准确率:</span><b>{{ row1.list[0].rateMAX }}</b></div>
+                <div><span>混料最低准确率:</span><b>{{ row1.list[0].rateMIN }}</b></div>
+              </div>
+            </div>
+            <div class="row1-c-r">
+              <div class="title1">
+                <div class="img-title">
+                  <img src="../../../assets/images/index/l4.png">
+                </div>
+                <span class="content">撒料准确率</span>
+              </div>
+              <div class="row1-c-l-c">
+                <span>
+                  <b>{{ row1.list[1].rateAvg }}</b>
+                  <br>昨日
+                </span>
+              </div>
+              <div class="row1-c-l-b">
+                <div><span>撒料最高准确率:</span><b>{{ row1.list[1].rateMAX }}</b></div>
+                <div><span>撒料最低准确率:</span><b>{{ row1.list[1].rateMIN }}</b></div>
+              </div>
+            </div>
+          </div>
+          <div class="row1-b">
+            <div class="row1-b-l">
+              <div class="title1">
+                <div class="img-title">
+                  <img src="../../../assets/images/index/l3.png">
+                </div>
+                <span class="content">撒料正确率</span>
+              </div>
+              <div class="row1-c-l-c">
+                <span>
+                  <b>{{ row1.list[2].rateAvg }}</b>
+                  <br>昨日
+                </span>
+              </div>
+              <div class="row1-c-l-b">
+                <div><span>撒料最高正确率:</span><b>{{ row1.list[2].rateMAX }}</b></div>
+                <div><span>撒料最低正确率:</span><b>{{ row1.list[2].rateMIN }}</b></div>
+              </div>
+            </div>
+            <div class="row1-b-r">
+              <div class="title1">
+                <div class="img-title">
+                  <img src="../../../assets/images/index/l2.png">
+                </div>
+                <span class="content">撒料偏差</span>
+              </div>
+              <div class="row1-c-l-c">
+                <span>
+                  <b>{{ row1.list[3].rateAvg }}</b>
+                  <br>昨日
+                </span>
+              </div>
+              <div class="row1-c-l-b">
+                <div><span>撒料最高偏差:</span><b>{{ row1.list[3].rateMAX }}</b></div>
+                <div><span>撒料最低偏差:</span><b>{{ row1.list[3].rateMIN }}</b>分钟</div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="row2">
+          <div class="title">
+            <div class="img-title" />
+            <span class="content">今日计划统计</span>
+          </div>
+          <div class="todayPlan">
+            <div>
+              <div id="row2chartLine1" style="height: 185px;" />
+              <div class="bottom">
+                <div class="bottom-l">
+                  <div class="bottom-l-t">
+                    <b>{{ row2.chart1.chartLine_data.data1 }}</b>次
+                  </div>
+                  <div class="bottom-l-b">
+                    完成车次
+                  </div>
+                </div>
+                <div class="bottom-r">
+                  <div class="bottom-r-t">
+                    <b>{{ row2.chart1.chartLine_data.data2 }}</b>次
+                  </div>
+                  <div class="bottom-r-b">
+                    计划车次
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div>
+              <div id="row2chartLine2" style="height: 185px;" />
+              <div class="bottom">
+                <div class="bottom-l">
+                  <div class="bottom-l-t">
+                    <b>{{ row2.chart2.chartLine_data.data1 }}</b>kg
+                  </div>
+                  <div class="bottom-l-b">
+                    完成重量
+                  </div>
+                </div>
+                <div class="bottom-r">
+                  <div class="bottom-r-t">
+                    <b>{{ row2.chart2.chartLine_data.data2 }}</b>kg
+                  </div>
+                  <div class="bottom-r-b">
+                    计划重量
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <div class="row3" style="position: relative;">
+          <div class="title">
+            <div class="img-title" />
+            <span class="content">成本统计</span>
+          </div>
+          <div v-if="row4.chart1.isChart" class="button">
+            <div class="exportTable" @click="handleExport('row4chartLine1')">{{$t('formulationEvaluation.out')}}</div>
+            <div class="exportTable" @click="handleTable('row4chartLine1')">{{$t('errorAnalysis.changeTable')}}</div>
+          </div>
+          <div v-if="row4.chart1.isChart" id="row4chartLine1" v-loading="row4.chart1.listLoading" style="background: #fff;height:310px;" />
+          <div v-if="row4.chart1.isTable" class="table" style="position: absolute;width: 100%;">
+            <div class="button">
+              <div class="exportTable" @click="handleExport('row4chartLine1')">{{$t('formulationEvaluation.out')}}</div>
+              <div class="exportTable" @click="handleChart('row4chartLine1')">{{$t('dashboard.sTable')}}</div>
+            </div>
+            <el-table
+              :key="row4.chart1.table.tableKey"
+              v-loading="row4.chart1.table.listLoading"
+              element-loading-text="给我一点时间"
+              :data="row4.chart1.table.list"
+              border
+              fit
+              highlight-current-row
+              style="width: 100%;margin-top: 10px;"
+              height="300"
+              :row-style="rowStyle"
+              :cell-style="cellStyle"
+              class="elTable table-fixed"
+            >
+              <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
+              <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
+              <el-table-column :label="$t('feedingEfficiency.gjnclcb1')"sortable min-width="120px" align="center" prop="准确率" />
+            </el-table>
+          </div>
+        </div>
+      </div>
+      <div class="dashboard-r">
+        <div class="row1">
+          <div class="row1Title">当前车辆数:{{ row2.carLength }}</div>
+          <div id="car" ref="car" v-loading="row2.listLoading" class="car">
+            <div id="carList" ref="carList" class="carList">
+              <div v-for="(item,index) in row2.list" ref="listW" :key="index" class="listW">
+                <div ref="list" class="list" :style="{'background': item.background,'color':item.color,'borderColor':item.borderColor}" @click="handleList(index,item)">
+                  <div class="list-t">
+                    <div class="list-t-t">
+                      <el-tooltip :content="item.tname" placement="top">
+                        <span>车辆:{{ item.tname }}</span>
+                      </el-tooltip>
+                    </div>
+                    <div class="list-t-t">
+                      <el-tooltip :content="item.fname" placement="top">
+                        <span v-if="item.inorout == 0">{{$t('formulationEvaluation.feed')}}:{{ item.fname }}</span>
+                        <span v-if="item.inorout == 1">栏舍:{{ item.fname }}</span>
+                      </el-tooltip>
+                    </div>
+                    <div class="list-t-t">
+                      <el-tooltip :content="item.remark" placement="top">
+                        <span>描述:{{ item.remark }}</span>
+                      </el-tooltip>
+                    </div>
+                  </div>
+
+                  <div class="list-b">
+                    <div class="list-b-l">
+                      <div class="left">
+                        <div class="num"><b>{{ item.doneweight }}</b>Kg</div>
+                        <div class="weight">完成重量</div>
+                      </div>
+                      <div class="right" />
+                    </div>
+                    <div class="list-b-l">
+                      <div class="left">
+                        <div class="num"><b>{{ item.leftweight }}</b>Kg</div>
+                        <div class="weight">剩余重量</div>
+                      </div>
+                      <div class="right" />
+                    </div>
+                    <div class="list-b-l">
+                      <div class="left">
+                        <div class="num"><b>{{ item.nowweight }}</b>Kg</div>
+                        <div class="weight">车辆当前载重</div>
+                      </div>
+                      <div class="right" />
+                    </div>
+                    <div class="list-b-l">
+                      <div class="left">
+                        <div class="num"><b>{{ item.lweight }}</b>Kg</div>
+                        <div class="weight">计划重量</div>
+                      </div>
+                      <div class="right" />
+                    </div>
+                    <div class="list-b-l">
+                      <div class="left">
+                        <div class="num"><b>{{ item.donerate }}</b></div>
+                        <div class="weight">完成度</div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <!-- <div v-if="item.isChecked" ref="checked" class="img-checked" /> -->
+              </div>
+            </div>
+          </div>
+
+        </div>
+        <div class="row2">
+          <div class="row2-l" style="position: relative;">
+            <div class="title">
+              <div class="img-title" />
+              <span class="content">计划统计</span>
+            </div>
+            <div v-if="row3.chart1.isChart" class="button">
+              <div class="exportTable" @click="handleExport('row3chartLine1')">{{$t('formulationEvaluation.out')}}</div>
+              <div class="exportTable" @click="handleTable('row3chartLine1')">{{$t('errorAnalysis.changeTable')}}</div>
+            </div>
+            <div v-if="row3.chart1.isChart" id="row3chartLine1" v-loading="row3.chart1.listLoading" style="background: #fff;height:310px;" />
+            <div v-if="row3.chart1.isTable" class="table" style="position: absolute;width: 100%;">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('row3chartLine1')">{{$t('formulationEvaluation.out')}}</div>
+                <div class="exportTable" @click="handleChart('row3chartLine1')">{{$t('dashboard.sTable')}}</div>
+              </div>
+              <el-table
+                :key="row3.chart1.table.tableKey"
+                v-loading="row3.chart1.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="row3.chart1.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;margin-top: 10px;"
+                height="300"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="85px" align="center" prop="牧场" />
+                <el-table-column :label="$t('errorAnalysis.jhzxzl')" sortable min-width="90px" align="center" prop="实际量" />
+                <el-table-column :label="$t('errorAnalysis.pfllzl')" sortable min-width="90px" align="center" prop="理论量" />
+                <el-table-column :label="$t('errorAnalysis.jhzql')" sortable min-width="85px" align="center" prop="field1" />
+                <el-table-column :label="$t('errorAnalysis.jhqxzl')" sortable min-width="90px" align="center" prop="计划取消重量" />
+                <el-table-column :label="$t('errorAnalysis.jhzqll')" sortable min-width="100px" align="center" prop="field3" />
+                <el-table-column :label="$t('errorAnalysis.jhzql1')" sortable min-width="85px" align="center" prop="正确数" />
+                <el-table-column :label="$t('errorAnalysis.jhs')" sortable min-width="85px" align="center" prop="计划数" />
+                <el-table-column :label="$t('errorAnalysis.jhzql1')"sortable min-width="75px" align="center" prop="field2" />
+              </el-table>
+            </div>
+          </div>
+          <div class="row2-r" style="position: relative;">
+            <div class="title">
+              <div class="img-title" />
+              <span class="content">{{$t('feedingEfficiency.mrngwzcl')}} </span>
+            </div>
+            <div v-if="row3.chart2.isChart" class="button">
+              <div class="exportTable" @click="handleExport('row3chartLine2')">{{$t('formulationEvaluation.out')}}</div>
+              <div class="exportTable" @click="handleTable('row3chartLine2')">{{$t('errorAnalysis.changeTable')}}</div>
+            </div>
+            <div v-if="row3.chart2.isChart" id="row3chartLine2" v-loading="row3.chart2.listLoading" style="background: #fff;height:310px;" />
+            <div v-if="row3.chart2.isTable" class="table" style="position: absolute;width: 100%;">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('row3chartLine2')">{{$t('formulationEvaluation.out')}}</div>
+                <div class="exportTable" @click="handleChart('row3chartLine2')">{{$t('dashboard.sTable')}}</div>
+              </div>
+              <el-table
+                :key="row3.chart2.table.tableKey"
+                v-loading="row3.chart2.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="row3.chart2.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;margin-top: 10px;"
+                height="300"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
+                <el-table-column label="泌乳牛干物质采食量(kg)" sortable min-width="110px" align="center" prop="准确率" />
+              </el-table>
+            </div>
+          </div>
+        </div>
+        <div class="row3">
+          <div class="row3-l" style="position: relative;">
+            <div class="title">
+              <div class="img-title" />
+              <span class="content">混料实际重量统计</span>
+            </div>
+            <div v-if="row4.chart2.isChart" class="button">
+              <div class="exportTable" @click="handleExport('row4chartLine2')">{{$t('formulationEvaluation.out')}}</div>
+              <div class="exportTable" @click="handleTable('row4chartLine2')">{{$t('errorAnalysis.changeTable')}}</div>
+            </div>
+            <div v-if="row4.chart2.isChart" id="row4chartLine2" v-loading="row4.chart2.listLoading" style="background: #fff;height:310px;" />
+            <div v-if="row4.chart2.isTable" class="table" style="position: absolute;width:100%;">
+              <div class="button">
+                <div class="exportTable" @click="handleExport('row4chartLine2')">{{$t('formulationEvaluation.out')}}</div>
+                <div class="exportTable" @click="handleChart('row4chartLine2')">{{$t('dashboard.sTable')}}</div>
+              </div>
+              <el-table
+                :key="row4.chart2.table.tableKey"
+                v-loading="row4.chart2.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="row4.chart2.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;margin-top: 10px;"
+                height="300"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column :label="$t('errorAnalysis.date')" sortable min-width="110px" align="center" prop="日期" />
+                <el-table-column :label="$t('feedingEfficiency.mc')"sortable min-width="110px" align="center" prop="名称" />
+                <el-table-column :label="$t('premixedPlan.hlzl')"  sortable min-width="110px" align="center" prop="准确率" />
+              </el-table>
+            </div>
+          </div>
+          <div class="row3-r">
+            <div class="title">
+              <div class="img-title" />
+              <span class="content">库存预警</span>
+              <!-- <a style="float: right;color: #009C69;font-size: 12px;margin-right: 10px;" @click="handleMore">查看更多 &nbsp;>></a> -->
+            </div>
+            <div id="table" style="height: 330px;background: #fff;">
+              <el-table
+                :key="row4.table.tableKey"
+                v-loading="row4.table.listLoading"
+                element-loading-text="给我一点时间"
+                :data="row4.table.list"
+                border
+                fit
+                highlight-current-row
+                style="width: 98%;background: #fff;margin-top: 10px;"
+                height="320"
+                :row-style="rowStyle"
+                :cell-style="cellStyle"
+                class="elTable table-fixed"
+              >
+                <el-table-column :label="$t('formulationEvaluation.xh')" type="index" min-width="80px" align="center" />
+                <el-table-column :label="$t('InventoryManagement.silc')"    min-width="80px" align="center" prop="feedname" />
+                <el-table-column label="库存量(kg)" min-width="70px" align="center" prop="stockweight" />
+                <el-table-column label="剩余使用天数" min-width="80px" align="center" prop="ldays" />
+              </el-table>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, GetReportform } from '@/api/common'
+import Cookies from 'js-cookie'
+import { parseTime } from '@/utils/index.js'
+import { json2excel } from '@/utils/index.js'
+
+import echarts from 'echarts'
+require('echarts/theme/macarons')
+export default {
+  name: 'GroupDashboard',
+  data() {
+    return {
+      ranchSelectionList: [{ id: 0, name: '集团' }, { id: 1, name: '牧场01' }, { id: 2, name: '牧场02' }],
+      ranchSelection: 0,
+      inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()],
+      myDate: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}') + '-' + parseTime(new Date(), '{y}-{m}-{d}'),
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一年',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 365)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+      date: parseTime(new Date(), '{y}-{m}-{d}'),
+      row1: {
+        getdataListParm: {
+          name: 'getHomepageStrJT',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        },
+        listLoading: false,
+        list: [
+          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
+          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
+          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' },
+          { 'rateAvg': '', 'rateMAX': '', 'rateMIN': '' }
+        ],
+        getdataListParm2: {
+          name: 'getHomepageStrJTPlan',
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        },
+        list2: ''
+      },
+      row2: {
+        chart1: {
+          chartLine: null,
+          chartLine_data: {}
+        },
+        chart2: {
+          chartLine: null,
+          chartLine_data: {}
+        },
+        list: [],
+        total: 0,
+        listLoading: false,
+        getdataListParmList: {
+          name: 'getHomepageLBListJT',
+          page: 1,
+          offset: 1,
+          pagecount: '',
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid')
+          }
+        }
+      },
+      row3: {
+        chartDate: [],
+        chart1: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getJT1AccuracyAllJH',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
+            }
+          },
+          list: [],
+          total: 0,
+          listLoading: false,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        chart2: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffMRJT',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
+            }
+          },
+          list: [],
+          total: 0,
+          listLoading: false,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        }
+      },
+      row4: {
+        chartDate: [],
+        chart1: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getFeedEffCBAllJT',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
+            }
+          },
+          list: [],
+          total: 0,
+          listLoading: false,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        chart2: {
+          chartLine: null,
+          chartLine_data: {},
+          getdataListParm: {
+            name: 'getAccuracActHLJT',
+            page: 1,
+            offset: 1,
+            pagecount: 10,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid'),
+              startTime: parseTime(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), '{y}-{m}-{d}'),
+              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),
+              inputDatetime: [new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 7), new Date()]
+            }
+          },
+          list: [],
+          total: 0,
+          listLoading: false,
+          isChart: true,
+          isTable: false,
+          table: {
+            tableKey: 1,
+            list: [],
+            total: 0,
+            listLoading: false
+          }
+        },
+        table: {
+          getdataListParm: {
+            name: 'getFsWarnListJT',
+            page: 1,
+            offset: 1,
+            pagecount: 5,
+            returntype: 'Map',
+            parammaps: {
+              pastureid: Cookies.get('pastureid')
+            }
+          },
+          tableKey: 1,
+          list: [],
+          total: 0,
+          listLoading: false,
+          temp: {}
+        }
+
+      },
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' }
+
+    }
+  },
+  created() {
+    this.getRow1List()
+    this.getRow2List()
+    this.getRow2List1()
+    this.getRow3List1()
+    this.getRow3List2()
+    this.getRow4List1()
+    this.getRow4List2()
+    this.getRow4List3()
+  },
+  methods: {
+    changeDate(item) {
+      this.myDate = parseTime(this.inputDatetime[0], '{y}-{m}-{d}') + '-' + parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
+      this.getRow1List()
+    },
+    getRow1List() {
+      this.row1.listLoading = true
+      this.row1.getdataListParm.parammaps.startTime = parseTime(this.inputDatetime[0], '{y}-{m}-{d}')
+      this.row1.getdataListParm.parammaps.stopTime = parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
+      GetDataByName(this.row1.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('row1数据', response.data.list)
+          for (let i = 0; i < response.data.list.length; i++) {
+            if (response.data.list[i].rateAvg == undefined) {
+              this.$set(response.data.list[i], 'rateAvg', '')
+            }
+            if (response.data.list[i].rateMAX == undefined) {
+              this.$set(response.data.list[i], 'rateMAX', '')
+            }
+            if (response.data.list[i].rateMIN == undefined) {
+              this.$set(response.data.list[i], 'rateMIN', '')
+            }
+          }
+          this.row1.list = response.data.list
+          console.log(this.row1.list, 'this.row1.list')
+        } else {
+          this.row1.list.data1.monRateHL = ''
+          this.row1.list.data1.monRateSL = ''
+          this.row1.list.data1.monRateSLR = ''
+          this.row1.list.data1.yesRateHL = ''
+          this.row1.list.data1.yesRateSL = ''
+          this.row1.list.data1.yesRateSLR = ''
+          this.row1.list.data1.temtime = ''
+          this.row1.list.data1.montime = ''
+        }
+        setTimeout(() => {
+          this.row1.listLoading = false
+        }, 100)
+      })
+    },
+    getRow2List() {
+      this.row1.listLoading = true
+      this.row1.getdataListParm.parammaps.startTime = parseTime(this.inputDatetime[0], '{y}-{m}-{d}')
+      this.row1.getdataListParm.parammaps.stopTime = parseTime(this.inputDatetime[1], '{y}-{m}-{d}')
+      GetDataByName(this.row1.getdataListParm2).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          this.row2.chart1.chartLine_data.data1 = parseFloat(response.data.list[0].doneTimes)
+          this.row2.chart1.chartLine_data.data2 = parseFloat(response.data.list[0].planTimes)
+          this.row2.chart2.chartLine_data.data1 = parseFloat(response.data.list[0].doneWeight)
+          this.row2.chart2.chartLine_data.data2 = parseFloat(response.data.list[0].planWeight)
+          this.roadRow1ChartLine1(this.row2.chart1.chartLine_data)
+          this.roadRow1ChartLine2(this.row2.chart2.chartLine_data)
+        } else {
+          this.row2.chart1.chartLine_data.data1 = ''
+          this.row2.chart1.chartLine_data.data2 = ''
+          this.row2.chart2.chartLine_data.data1 = ''
+          this.row2.chart2.chartLine_data.data2 = ''
+        }
+        setTimeout(() => {
+          this.row1.listLoading = false
+        }, 100)
+      })
+    },
+    // 今日计划统计-完成车次
+    roadRow1ChartLine1(chartLine_data) {
+      console.log(chartLine_data, '======')
+      if (this.row2.chart1.chartLine != null) {
+        this.row2.chart1.chartLine.dispose()
+      }
+      this.row2.chart1.chartLine = echarts.init(document.getElementById('row2chartLine1'))
+      if (chartLine_data.data2 == 0 || chartLine_data.data1 == 0) {
+        chartLine_data.data1 = 0
+        chartLine_data.data2 = 100
+      }
+      var option = {
+      // 标题组件,包含主标题和副标题
+        title: { show: true, x: 'center', textStyle: { fontSize: '15', color: 'green', fontWeight: 'bold' }},
+        //  提示框组件
+        tooltip: {
+          show: false, trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)'
+        },
+        // 系列列表。每个系列通过 type 决定自己的图表类型
+        series: [{
+          name: '任务进度', type: 'pie', radius: ['80%', '70%'], avoidLabelOverlap: false, hoverAnimation: false, labelLine: { normal: { show: false }},
+          data: [
+            { value: chartLine_data.data1, name: '完成率', selected: false, label: { normal: { show: true, position: 'center', fontSize: 20, formatter: '{b}\n{d}%' }}},
+            { value: chartLine_data.data2 - chartLine_data.data1, label: { normal: { show: false }}}
+          ]
+        }],
+        color: ['#409EFF', '#B7DBFF']
+      }
+      this.row2.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row2.chart1.chartLine.resize()
+      }
+    },
+    // 今日计划统计-完成重量
+    roadRow1ChartLine2(chartLine_data) {
+      if (this.row2.chart2.chartLine != null) {
+        this.row2.chart2.chartLine.dispose()
+      }
+      this.row2.chart2.chartLine = echarts.init(document.getElementById('row2chartLine2'))
+      var option = {
+      // 标题组件,包含主标题和副标题
+        title: {
+          show: true,
+          x: 'center',
+          textStyle: {
+            fontSize: '15',
+            color: 'green',
+            fontWeight: 'bold'
+          }
+        },
+        //  提示框组件
+        tooltip: {
+          // 是否显示提示框组件,包括提示框浮层和 axisPointe
+          show: false,
+          // 触发类型: item:数据项触发,axis:坐标轴触发
+          trigger: 'item',
+          formatter: '{a} <br/>{b}: {c} ({d}%)'
+        },
+        // 系列列表。每个系列通过 type 决定自己的图表类型
+        series: [{
+          // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。
+          name: '任务进度',
+          type: 'pie',
+          // 饼图的半径,数组的第一项是内半径,第二项是外半径
+          radius: ['80%', '70%'],
+          // 是否启用防止标签重叠策略,默认开启
+          avoidLabelOverlap: false,
+          hoverAnimation: false,
+          // 标签的视觉引导线样式,在 label 位置 设置为'outside'的时候会显示视觉引导线
+          labelLine: {
+            normal: {
+              show: false
+            }
+          },
+          data: [{
+            value: chartLine_data.data1, // 数据值
+            name: '完成率', // 数据项名称
+            selected: false, // 该数据项是否被选中
+            // 单个扇区的标签配置
+            label: {
+              normal: {
+                show: true, // 是显示标签
+                position: 'center',
+                fontSize: 20,
+                // 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行
+                formatter: '{b}\n{d}%'
+              }
+            }
+          }, {
+            value: chartLine_data.data2 - chartLine_data.data1,
+            label: {
+              normal: {
+                show: false
+
+              }
+            }
+          }]
+        }],
+        color: ['#409EFF', '#B7DBFF']
+      }
+      this.row2.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row2.chart2.chartLine.resize()
+      }
+    },
+
+    // 今日执行计划监控
+    getRow2List1() {
+      this.row2.listLoading2 = true
+      GetDataByName(this.row2.getdataListParmList).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            this.$set(response.data.list[i], 'background', '#f3f9f7')
+            this.$set(response.data.list[i], 'borderColor', '#009d6a')
+          }
+          this.row2.list = response.data.list
+          this.row2.carLength = response.data.total
+        } else {
+          this.carLength = 0
+        }
+        setTimeout(() => {
+          this.row2.listLoading2 = false
+        }, 100)
+      })
+    },
+
+    handleTable(item) {
+      console.log(item)
+      if (item == 'row3chartLine1') {
+        console.log('计划统计表格')
+        this.row3.chart1.isTable = true
+        this.row3.chart1.isChart = false
+      } else if (item == 'row3chartLine2') {
+        console.log('泌乳牛采食量表格')
+        this.row3.chart2.isTable = true
+        this.row3.chart2.isChart = false
+      } else if (item == 'row4chartLine1') {
+        console.log('成本统计表格')
+        this.row4.chart1.isTable = true
+        this.row4.chart1.isChart = false
+      } else if (item == 'row4chartLine2') {
+        console.log('混料实际重量统计表格')
+        this.row4.chart2.isTable = true
+        this.row4.chart2.isChart = false
+      }
+    },
+    handleChart(item) {
+      console.log(item)
+      // 显示切换图表
+      if (item == 'row3chartLine1') {
+        console.log('计划统计图表')
+        this.row3.chart1.isTable = false
+        this.row3.chart1.isChart = true
+        this.getRow3List1()
+      } else if (item == 'row3chartLine2') {
+        console.log('泌乳牛采食量图表')
+        this.row3.chart2.isTable = false
+        this.row3.chart2.isChart = true
+        this.getRow3List2()
+      } else if (item == 'row4chartLine1') {
+        console.log('成本统计图表')
+        this.row4.chart1.isTable = false
+        this.row4.chart1.isChart = true
+        this.getRow4List1()
+      } else if (item == 'row4chartLine2') {
+        console.log('混料实际重量统计图表')
+        this.row4.chart2.isTable = false
+        this.row4.chart2.isChart = true
+        this.getRow4List2()
+      }
+    },
+    handleExport(item) {
+      console.log(item)
+      // 显示切换图表
+      if (item == 'row3chartLine1') {
+        console.log('计划统计')
+        var excelDatasTabChart1 = [
+          {
+            tHeader: ['日期', '计划执行重量(kg)', '配方理论重量(kg)', '计划准确率', '计划取消重量(kg)', '计划准确率(去除取消重量)', '计划正确数', '计划数', '计划正确率'],
+            filterVal: ['日期', '实际量', '理论量', 'field1', '计划取消重量', 'field3', '正确数', '计划数', 'field2'],
+            tableDatas: this.row3.chart1.table.list,
+            sheetName: '计划统计'
+          }
+        ]
+        json2excel(excelDatasTabChart1, '计划统计', true, 'xlsx')
+      } else if (item == 'row3chartLine2') {
+        // 泌乳牛干物质采食量
+        var excelDatasTabChart2 = [
+          {
+            tHeader: ['日期', '泌乳牛采食量(kg)', '泌乳牛产奶量(kg)'],
+            filterVal: ['日期', 'field1', 'field2'],
+            tableDatas: this.row3.chart2.table.list,
+            sheetName: '泌乳牛采食量'
+          }
+        ]
+        json2excel(excelDatasTabChart2, '泌乳牛采食量', true, 'xlsx')
+      } else if (item == 'row4chartLine1') {
+        // 成本统计
+        console.log('成本统计')
+        // var excelDatasTabChart2 = [
+        //   {
+        //     tHeader: ['日期', '泌乳牛采食量(kg)', '泌乳牛产奶量(kg)'],
+        //     filterVal: ['日期', 'field1', 'field2'],
+        //     tableDatas: this.row3.chart2.table.list,
+        //     sheetName: '泌乳牛采食量'
+        //   }
+        // ]
+        // json2excel(excelDatasTabChart2, '泌乳牛采食量', true, 'xlsx')
+      } else if (item == 'row3chartLine1') {
+        console.log('计划统计')
+      } else if (item == 'row4chartLine2') {
+        console.log('混料实际重量统计')
+      }
+    },
+    // 计划统计
+    getRow3List1() {
+      this.row3.chart1.listLoading = true
+      console.log(this.row3.chart1.getdataListParm.name, '计划统计接口')
+      GetReportform(this.row3.chart1.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          this.row3.chart1.table.list = response.data.data
+          this.row3.chart1.chartLine_data = response.data.list
+          this.row3.chart1.total = response.data.total
+          console.log('计划统计图数据', this.row3.chart1.chartLine_data)
+          console.log('计划统计表数据', this.row3.chart1.table.list)
+        } else {
+          this.row3.chart1.table.list = []
+          this.row3.chart1.chartLine_data = {}
+        }
+        this.roadRow3ChartLine1(this.row3.chart1.chartLine_data)
+        setTimeout(() => {
+          this.row3.chart1.listLoading = false
+        }, 100)
+      })
+    },
+    roadRow3ChartLine1(chartLine_data) {
+      if (this.row3.chart1.chartLine != null) {
+        this.row3.chart1.chartLine.dispose()
+      }
+      this.row3.chart1.chartLine = echarts.init(document.getElementById('row3chartLine1'))
+      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: this.$t('errorAnalysis.bfb') , 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.row3.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row3.chart1.chartLine.resize()
+      }
+    },
+    // 泌乳牛干物质采食量
+    getRow3List2() {
+      this.row3.chart2.listLoading = true
+      GetReportform(this.row3.chart2.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('泌乳牛干物质采食量数据', response)
+          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.row3.chart2.table.list = response.data.data
+          this.row3.chart2.chartLine_data = response.data.list
+          this.row3.chart2.total = response.data.total
+          if (this.row3.chart2.chartLine_data.data1.length == 0) {
+            this.row3.chart2.chartLine_data.title = '暂无数据'
+          } else {
+            this.row3.chart2.chartLine_data.title = ''
+          }
+          this.roadRow3ChartLine2(this.row3.chart2.chartLine_data)
+        } else {
+          this.row3.chart2.list = []
+        }
+        setTimeout(() => {
+          this.row3.chart2.listLoading = false
+        }, 100)
+      })
+    },
+    roadRow3ChartLine2(chartLine_data) {
+      if (this.row3.chart2.chartLine != null) {
+        this.row3.chart2.chartLine.dispose()
+      }
+      this.row3.chart2.chartLine = echarts.init(document.getElementById('row3chartLine2'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10
+        },
+        grid: {
+          top: '20%',
+          left: '3%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
+        yAxis: {
+          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
+        },
+        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.row3.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row3.chart2.chartLine.resize()
+      }
+    },
+    // 成本统计
+    getRow4List1() {
+      this.row4.chart1.listLoading = true
+      console.log(this.row4.chart1.getdataListParm.name)
+      GetReportform(this.row4.chart1.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('成本统计数据', response.data.list)
+          this.row4.chart1.table.list = response.data.data
+          this.row4.chart1.chartLine_data = response.data.list
+          this.row4.chart1.total = response.data.total
+        } else {
+          this.row4.chart1.list = []
+          this.row4.chart1.chartLine_data = {}
+        }
+        this.roadRow4ChartLine1(this.row4.chart1.chartLine_data)
+        setTimeout(() => {
+          this.row4.chart1.listLoading = false
+        }, 100)
+      })
+    },
+    roadRow4ChartLine1(chartLine_data) {
+      console.log(chartLine_data, '成本统计chartLine_data')
+      if (this.row4.chart1.chartLine != null) {
+        this.row4.chart1.chartLine.dispose()
+      }
+      this.row4.chart1.chartLine = echarts.init(document.getElementById('row4chartLine1'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
+        yAxis: {
+          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
+        },
+        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.row4.chart1.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row4.chart1.chartLine.resize()
+      }
+    },
+    // 混料实际重量统计
+    getRow4List2() {
+      this.row4.chart2.listLoading = true
+      GetReportform(this.row4.chart2.getdataListParm).then(response => {
+        if (response.data !== null && response.data.list !== null) {
+          console.log('混料实际重量统计数据', response.data.list)
+          this.row4.chart2.table.list = response.data.data
+          this.row4.chart2.chartLine_data = response.data.list
+          this.row4.chart2.total = response.data.total
+        } else {
+          this.row4.chart2.list = []
+          this.row4.chart2.chartLine_data = {}
+        }
+        this.roadRow4ChartLine2(this.row4.chart2.chartLine_data)
+        setTimeout(() => {
+          this.row4.chart2.listLoading = false
+        }, 100)
+      })
+    },
+    roadRow4ChartLine2(chartLine_data) {
+      if (this.row4.chart2.chartLine != null) {
+        this.row4.chart2.chartLine.dispose()
+      }
+      this.row4.chart2.chartLine = echarts.init(document.getElementById('row4chartLine2'))
+      var option = {
+        title: {
+          text: ''
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: chartLine_data.data1,
+          right: 10
+        },
+        grid: {
+          top: '20%',
+          left: '5%',
+          right: '8%',
+          containLabel: true
+        },
+        toolbox: {
+          show: true,
+          right: '2%',
+          feature: {}
+        },
+        xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name:this.$t('errorAnalysis.date')  },
+        yAxis: {
+          type: 'value', name: 'kg', axisLabel: { formatter: '{value}' }
+        },
+        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.row4.chart2.chartLine.setOption(option)
+      window.onresize = function() {
+        this.row4.chart2.chartLine.resize()
+      }
+    },
+    getRow4List3() {
+      this.row4.table.listLoading = true
+      GetDataByName(this.row4.table.getdataListParm).then(response => {
+        if (response.data.list !== null) {
+          console.log('库存预警table数据', response.data.list)
+          this.row4.table.list = response.data.list
+          this.row4.table.total = response.data.total
+        } else {
+          this.row4.table.list = []
+        }
+        setTimeout(() => {
+          this.row4.table.listLoading = false
+        }, 100)
+      })
+    }
+
+  }
+}
+</script>
+<style>
+  .app-main{background:#f5f5f5;}
+</style>
+<style lang="scss" scoped>
+
+  .dashboard-editor-container{padding-left: 10px;background: #f5f5f5;padding-bottom: 10px;}
+  // 公共
+  .img-t{position: absolute;left: 0;right: 0;margin: 30px auto;width: 31%;height: 31%;background-size: 100% 100%;}
+  .row1-c-l-c{
+    margin: 20px auto;border: 1px solid #eee;height: 40%;width: 50%;border-radius: 50%;text-align: center;display:table;
+    span{
+      height:100%;display:table-cell;vertical-align: middle;font-size:14px;color: #009C69;
+      b{padding-bottom: 10px;font-size: 16px;overflow: hidden;width: 100%;}
+    }
+  }
+  .row1-c-l-b{
+    width: 100%;text-align: center;display:table;font-size: 12px;
+    // div{
+    //   font-size: 12px;height:100%;display:table-cell;vertical-align: middle;color: #323232;padding: 0 10px;width: 100%;
+    //   span{text-align: right;width: 75%;display: block;float: left;}
+    //   b{float: left;display: block;width: 25%;}
+    // }
+  }
+  .title{
+    height: 36px;padding-top: 7px;line-height: 36px;position: relative;
+    .img-title{
+      position: absolute;top: 10px; right:10px;bottom:0;left:20px;width: 30px;height: 30px;background: url(../../../assets/images/index/row-bg3.png) no-repeat;
+    }
+    .content{font-size: 18px;position: absolute;top: 7px;left: 55px;}
+  }
+  .title1{
+    height: 36px;padding-top: 7px;line-height: 36px;position: relative;
+
+    .img-title{
+      position: absolute;top: 10px; right:10px;bottom:0;left:10px;
+      width: 25px;height: 25px;
+      img{width: 25px;height: 25px;}
+    }
+    .content{font-size: 16px;position: absolute;top: 7px;left: 40px;}
+  }
+  .button{
+    height: 30px;
+    .exportTable{float: right;margin-right: 5px;}
+  }
+  .dashboard{
+    display: flex;margin-top: 10px;
+    .dashboard-l{
+      // width: 540px;
+      width: 30%;
+      .row1{
+        height: 520px;
+        .row1-t{
+          background: #fff; height: 50px; color: #f28b46;
+          .row1-t-l{
+            .img-l{float:left;padding: 16px 0 16px 10px;width: 100px;height: 18px;}
+            .content{float:left;width: 68%;font-size: 14px;margin-top: 5px;}
+          }
+          .row1-t-r{padding-right: 20px;text-align: right;line-height: 50px;}
+        }
+
+        .row1-c{
+          display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;margin-top: 10px;
+          .row1-c-l{
+            background: #fff;width:49%;height:225px;border-radius:3px;margin-right: 1%;position: relative;
+            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t1.png) no-repeat; background-size: 100% 100%;}
+          }
+          .row1-c-r{
+            background: #fff;width:49%;height:225px;border-radius:3px;position: relative;
+            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t2.png) no-repeat; background-size: 100% 100%;}
+          }
+        }
+        .row1-b{
+          display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;margin-top: 10px;
+          .row1-b-l{
+            background: #fff;width:49%;height:225px;border-radius:3px;margin-right:1%;position: relative;
+            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t4.png) no-repeat; background-size: 100% 100%;}
+          }
+          .row1-b-r{
+            background: #fff;width:49%;height:225px;border-radius:3px;position: relative;
+            .img-t{width:49%;height:38%;background: url(../../../assets/images/index/t3.png) no-repeat; background-size: 100% 100%;}
+          }
+        }
+      }
+
+      .row2{
+        margin-top:10px;height: 375px;background: #fff;
+        .img-title{background-position: 0 0;}
+        .todayPlan{
+          display: flex; flex-direction: row;margin-top: 10px;
+          div{
+            flex: 1;position: relative;
+            .bottom{
+              width: 99%;height: 70px;background: #f9f9f9;margin: 30px auto 5px;display: flex; flex-direction: row;
+              div{
+                flex: 1;height: 42px;color: #333333;
+              }
+              .bottom-l{
+                border-right: 1px solid #e0e0e0;margin-top: 15px;width: 100%;text-align: center;
+                .bottom-l-t{
+                  height: 30px;
+                  b{font-size: 18px;}
+                }
+                .bottom-l-b{font-size: 12px;}
+              }
+              .bottom-r{
+                margin-top: 15px;width: 100%;text-align: center;
+                .bottom-r-t{height: 30px;padding-left: 10px;}
+                .bottom-r-b{padding-left: 10px;font-size: 12px;}
+              }
+            }
+          }
+        }
+      }
+      .row3{
+        margin-top:10px;height: 375px;background: #fff;
+        .img-title{background-position: 0 -90px;}
+      }
+    }
+    .dashboard-r{
+      margin-left: 10px;flex:1;
+      .row1{
+        height: 520px;background: #fff;
+        .row1Title{float: right;height: 50px;line-height: 50px;margin-right: 50px;}
+        .img-title{background-position: 0 -240px;}
+        #row2chartLine3{height: 270px;margin-top: 10px;}
+        .carsLength{
+          padding: 13px 0 0 22px;line-height: 38px;font-size: 18px;font-weight: 700;
+        }
+        .car{
+          clear: both;
+          .carList{
+            padding:0 30px;overflow: auto;width: 100%;height: 470px;
+            .listW{
+              background: #f3f9f7; float: left;margin: 5px 5px;width: 32%;height: 120px;
+              .list{
+                width: 100%;height: 100%;border-radius: 5px;border:1px solid #000;
+                .list-t{
+                  display: flex;
+                  border-bottom: 1px solid #f1f1f1;
+                  .list-t-t{
+                    flex: 1 1;
+                    width: 0;font-size: 12px;line-height: 22px;padding: 25px 5px 15px;text-align: center;
+                    span{ display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+                  }
+                }
+                .list-b{
+                  display: flex; text-align: center;margin-top: 14px;color: #323232;
+                  .list-b-l{
+                    flex: 1;width: 0; height: 40px; position: relative;
+                    .left{
+                      .num{
+                        font-size: 12px;
+                        b{font-size: 12px;}
+                      }
+                      .weight{font-size: 12px;}
+                    }
+                    .right{
+                      height: 30px;width: 1px;background: #e0e0e0;position: absolute;right: 0;top: 0;bottom: 0;margin-top:auto;margin-bottom:auto
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+
+      .row2{
+        margin-top:10px;height: 375px;
+        display: flex; flex-direction: row;
+        .row2-l{
+          margin-right: 10px; background: #fff;height:375px;border-radius:3px;flex: 1;
+          .img-title{background-position: 0 -30px;}
+        }
+        .row2-r{
+           background: #fff;height:375px;border-radius:3px;flex: 1;
+          .img-title{background-position: 0 -60px;}
+        }
+      }
+
+      .row3{
+        margin-top:10px;height: 375px;
+        display: flex; flex-direction: row;
+        .row3-l{
+          margin-right: 10px; background: #fff;height:375px;border-radius:3px;flex: 1;
+          .img-title{background-position: 0 -120px;}
+        }
+        .row3-r{
+           background: #fff;height:375px;border-radius:3px;flex: 1;
+          .img-title{background-position: 0 -150px;}
+        }
+      }
+
+    }
+  }
+</style>

+ 4 - 4
src/views/formulationPlan/dailyExecutionPlan/historyRecord.vue

@@ -30,7 +30,7 @@
             </template>
           </el-table-column>
           <el-table-column label="计划类型" prop="weight" min-width="130px" align="center" :formatter="lpplantype" />
-          <el-table-column label="TMR编号" min-width="130px" align="center">
+          <el-table-column :label="$t('premixedPlan.tmrbh')"  min-width="130px" align="center">
             <template slot-scope="scope">
               <span>{{ scope.row.tmrtname }}</span>
             </template>
@@ -55,7 +55,7 @@
               <span>{{ scope.row.lweight }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="时间" min-width="180px" align="center">
+          <el-table-column :label="$t('premixedPlan.time')"   min-width="180px" align="center">
             <template slot-scope="scope">
               <span>{{ scope.row.plantime }}</span>
             </template>
@@ -352,7 +352,7 @@ export default {
 
 <style  lang="scss" scoped>
  .search{margin-bottom: 10px;}
- 
+
 
  .template{
    background: #fff;
@@ -380,7 +380,7 @@ export default {
      // -webkit-transform: rotate(225deg);/*Safari 4+,Google Chrome 1+ */
      // -moz-transform: rotate(225deg);/*Firefox 3.5+*/
      // filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);/*ie*/
-     
+
      z-index: 5;
      p{
        position: absolute;

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

@@ -45,8 +45,8 @@
           <el-button v-if="isRoleEdit" icon="el-icon-folder-checked" class="success" @click="saveChangeOrder">{{$t('formulationEvaluation.save')}}</el-button>
           <el-button v-if="isRoleEdit" icon="el-icon-close" class="sortCancel" @click="cancelChangeOrder">{{$t('formulationEvaluation.cancel')}}</el-button>
         </div>
-        <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" @click="handleTakeEffect">生效</el-button>
-        <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" @click="handleDisable">禁用</el-button>
+        <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" @click="handleTakeEffect">{{$t('premixedPlan.sx')}}</el-button>
+        <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" @click="handleDisable">{{$t('premixedPlan.jy')}}</el-button>
         <el-button v-if="dataSynchronization2.isDataSynchronization" class="success" icon="el-icon-plus" @click="form_updata">上传计划</el-button>
         <el-button v-if="dataSynchronization.isDataSynchronization && isRoleEdit" class="success" @click="handleDataSynchronization">数据同步</el-button>
         <el-button v-if="dataSynchronization3.isDataSynchronization&&isRoleEdit" class="success" @click="handleDataUpload">数据上传</el-button>
@@ -87,7 +87,7 @@
             </template>
           </el-table-column>
           <el-table-column label="计划类型" prop="weight" min-width="90px" align="center" :formatter="lpplantype" />
-          <el-table-column label="TMR编号" min-width="90px" align="center">
+          <el-table-column :label="$t('premixedPlan.tmrbh')"  min-width="90px" align="center">
             <template slot-scope="scope">
               <span>{{ scope.row.tmrtname }}</span>
             </template>
@@ -122,7 +122,7 @@
               <el-switch v-else v-model="scope.row.enable" disabled active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.row)" />
             </template>
           </el-table-column>
-          <el-table-column label="时间" min-width="80px" align="center">
+          <el-table-column :label="$t('premixedPlan.time')"   min-width="80px" align="center">
             <template slot-scope="scope">
               <span>{{ scope.row.plantime }}</span>
             </template>
@@ -844,7 +844,7 @@
             <el-table-column :label="$t('formulationEvaluation.xh')" align="center" prop="sort" width="50px" />
             <el-table-column label="计划名称" min-width="90px" align="center" prop="projname" />
             <el-table-column label="计划类型" prop="weight" min-width="90px" align="center" :formatter="lpplantype" />
-            <el-table-column label="TMR编号" min-width="90px" align="center" prop="tmrtname" />
+            <el-table-column :label="$t('premixedPlan.tmrbh')"  min-width="90px" align="center" prop="tmrtname" />
             <el-table-column  :label="$t('errorAnalysis.Driver')"  min-width="90px" align="center" prop="driver" />
             <el-table-column label="已执行" min-width="70px" align="center">
               <template slot-scope="scope">
@@ -860,7 +860,7 @@
                 <el-switch v-else v-model="scope.row.enable" disabled active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.row)" />
               </template>
             </el-table-column>
-            <el-table-column label="时间" min-width="80px" align="center" prop="plantime" />
+            <el-table-column :label="$t('premixedPlan.time')"   min-width="80px" align="center" prop="plantime" />
             <el-table-column  :label="$t('errorAnalysis.feedName')"  min-width="100px" align="center" prop="ftname" />
             <el-table-column :label="$t('formulationEvaluation.nts')" min-width="80px" align="center" prop="cowcount" />
             <el-table-column label="描述" min-width="80px" align="center" prop="display" />

+ 2166 - 2166
src/views/formulationPlan/dailyExecutionPlan/typePage/materialIssuancePlan.vue

@@ -1,2166 +1,2166 @@
-<template>
-  <div class="app-container">
-    <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" >{{$t('formulationEvaluation.ggsx')}}</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">{{$t('formulationEvaluation.cancel')}}</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>
-      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float: left;" @click="handleAllEmpty"> 清空已分配栏舍</el-button>
-        <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="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"
-        row-key="id"
-        @selection-change="handleSelect"
-      >
-        <el-table-column type="selection" width="50" />
-        <el-table-column :label="$t('errorAnalysis.projname')" 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="$t('errorAnalysis.isTrainNumber')"  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 label="物料详情" width="90px" align="center">
-          <template slot-scope="scope">
-            <el-popover
-              placement="bottom"
-              width="400"
-              trigger="click">
-              <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
-              <el-table :data="materialdetailsList" border height="200">
-                <el-table-column min-width="150" property="fname" label="物料" />
-                <el-table-column min-width="100" property="fweight" label="重量" />
-                <el-table-column min-width="100" property="scale" label="占比" />
-              </el-table>
-              <span slot="reference" style="color: blue;" @click="getmaterialdetailsList(scope.row)">详情</span>
-            </el-popover>
-          </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="容量状态" width="90px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.volumeStatus == 1" style="color:red;">{{ scope.row.volumeStatusStr }}</span>
-            <span v-if="scope.row.volumeStatus == 2" style="color:red;">{{ scope.row.volumeStatusStr }}</span>
-            <span v-if="scope.row.volumeStatus == 0" style="color:green;">{{ scope.row.volumeStatusStr }}</span>
-          </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> 撒料车:{{ element.tmrname }} </div>
-                </div>
-                <div :style="{'background':element.background}" class="tmrname">{{ element.barname }}</div>
-              </el-tooltip>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column  :label="$t('errorAnalysis.cz')" 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;"
-      >{{$t('processAnalysis.total')}}{{ table.total }}{{$t('processAnalysis.tiao')}}</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 TMRNumberList" :key="item.id" :label="`${item.tclassname}/${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()">{{$t('common.closed')}}</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>
-                            <button style="background: red;float: right;width: 18px;color: #fff;font-size: 18px;border: none;text-align: center;" :disabled="isokDisable" @click="clickBar(item)">√</button>
-                          </div>
-                        </el-tooltip>
-                        <el-tooltip placement="bottom" style="height: 18px;line-height: 18px;" :style="{ background: 'rgba('+item.background2+ ',0.1)' }">
-                          <div slot="content">{{ item.weight }}</div>
-                          <div class="barWeight">
-                            <span style="float: left;width: 70px;overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">{{ item.weight }}</span>
-                            <el-popover
-                              placement="right"
-                              width="400"
-                              trigger="click">
-                              <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
-                              <el-table :data="materialdetailsList" height="200" border>
-                                <el-table-column min-width="150" property="fname" label="物料" />
-                                <el-table-column min-width="100" property="fweight" label="重量" />
-                                <el-table-column min-width="100" property="scale" label="占比" />
-                              </el-table>
-                              <!-- <span  style="color: blue;">详情</span> -->
-                              <button slot="reference" style="background: #ccc;float: right;color: #fff;width: 18px;height:18px;font-size: 16px;border: none;text-align: center;" :disabled="isokDisable">?</button>
-                            </el-popover>
-                          </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.tmrvolume }} ( {{ create.temp.minVolume }} - {{ create.temp.maxVolume }})m³</div>
-                <!-- <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 class="sumweight" style="line-height:20px;margin-top: 10px;color: red;" v-if="parseFloat(create.temp.volume) > parseFloat(create.temp.tmrvolume)"><b>容积量:</b>{{ create.temp.volume }} m³ </div>
-                <div class="sumweight" style="line-height:20px;margin-top: 10px;" v-else><b>容积量:</b>{{ create.temp.volume }} m³ </div>
-              </div>
-            </el-col>
-          </el-row>
-          <!-- 撒料 -->
-          <div class="spreadingMaterial">
-            <div>撒料:<el-button type="danger" @click="handleEmpty">清空</el-button></div>
-            <div class="spreadingMaterialList">
-              <!-- force-fallback="true" -->
-              <draggable
-                :disabled="isDropState"
-                id="1"
-                data-source="juju"
-                :list="create.list2"
-                class="list-group1"
-                draggable=".item"
-                group="a"
-                animation="500"
-                :move="move1"
-                @change="changeLog1"
-                @start="start1"
-                @end="end1"
-              >
-                <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-t-t" />
-                      <el-select
-                        v-model="element.tmrid"
-                        placeholder="撒料设备"
-                        class="arr-l-t-b el-icon-arrow-down"
-                        @change="(value)=> {changeEquipment(value, element.fttype,element.id)}"
-                      >
-                        <el-option
-                          v-for="item in equipmentList"
-                          :key="item.id"
-                          :label="item.tname"
-                          :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 placement="top">
-                        <div slot="content">{{ element.weight }}</div>
-                        <input
-                          ref="weight"
-                          v-model="element.weight"
-                          :autofocus="element.focusState"
-                          type="number"
-                          :placeholder="$t('formulationEvaluation.reset')"
-                          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"
-                          @focus="focusWeight"
-                          @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)" />
-                    <el-popover
-                      placement="bottom"
-                      width="400"
-                      height="200"
-                      trigger="click">
-                      <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
-                      <el-table :data="materialdetailsList" height="200" border>
-                       <el-table-column min-width="150" property="fname" label="物料" />
-                       <el-table-column min-width="100" property="fweight" label="重量" />
-                       <el-table-column min-width="100" property="scale" label="占比" />
-                      </el-table>
-                      <i slot="reference" class="el-icon-question" style="position: absolute;right: 0;top: 20px;"/>
-                    </el-popover>
-                  </div>
-                </div>
-              </draggable>
-            </div>
-          </div>
-          <div slot="footer" class="dialog-footer" style="height:55px;">
-            <el-button class="cancelClose" :disabled="isokDisable" @click="close()" style="top:40px;">{{$t('common.closed')}}</el-button>
-            <el-button class="save" :disabled="isokDisable" @click="updateData()" style="top:40px;">{{$t('errorAnalysis.confirm')}}</el-button>
-          </div>
-        </div>
-      </div>
-    </el-dialog>
-
-    <!-- 更改TMR编号 -->
-    <el-dialog
-    :title="textMap[tmrNumber.dialogStatus]"
-    :destroy-on-close="true"
-    :visible.sync="tmrNumber.dialogFormVisible"
-    :before-close="close"
-    :close-on-click-modal="false"
-    width="30%"
-    :modal-append-to-body="false"
-    :append-to-body="true">
-        <h3 style="text-align: center;">是否要改变TMR设备?</h3>
-      <div class="tmrNumber" style="padding: 10px 30px;">
-        <p>注:更换TMR撒料设备,变更后的装载重量不同,请选择处理方式</p>
-        <el-radio v-model="tmrNumber.radio" label="0">1、多出的饲料平均从已分配的各栏舍中扣减。</el-radio><br/><br/>
-        <el-radio v-model="tmrNumber.radio" label="1">2、多出的饲料从最后一个栏舍依次往前扣减。</el-radio><br/><br/>
-        <el-radio v-model="tmrNumber.radio" label="2">3、清空已分配的撒料车。</el-radio>
-      </div>
-      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
-        <el-button class="cancelClose" :disabled="isokDisable" @click="closeTmrNumber">否</el-button>
-        <el-button class="save" :disabled="isokDisable" @click="tmrNumberData()">是</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Cookies from 'js-cookie'
-import Sortable from 'sortablejs'
-import draggable from 'vuedraggable'
-import { checkButtons, postJson,ExecDataByConfig } from '@/api/common'
-import { MessageBox } from 'element-ui'
-export default {
-  components: {
-    draggable
-  },
-  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高度
-      materialdetailsList: [],
-      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: '编辑',
-        tmrNumber:''
-      },
-      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,
-      isDropState:false,
-      tmrNumber:{
-        dialogFormVisible: false,
-        dialogStatus: '',
-        temp:{},
-        radio:'0'
-      }
-    }
-  },
-  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.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 url2 = 'authdata/tmrListEnableTypeAll'
-      const data2 = {
-        parammaps: {
-          pastureid: Cookies.get('pastureid')
-        }
-      }
-      postJson(url2, data2).then(response => {
-        if (response.data !== null) {
-          this.equipmentList = response.data
-          if(this.create.dialogStatus == 'update'){
-            if(this.equipmentList.find(obj => obj.id ==  this.create.temp.tmrid) !== undefined){
-              this.create.temp.tclassname = this.equipmentList.find(obj => obj.id ==  this.create.temp.tmrid).tclassname
-            }else{
-              this.create.temp.tclassname = '固定式'
-            }
-          }
-        } 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: this.$t('errorAnalysis.one'), }]
-        } else if (response.data.list[0].inforvalue == 2) {
-          this.frequencyList = [
-            { id: 1, name: this.$t('errorAnalysis.one'), },
-            { id: 2, name: this.$t('errorAnalysis.two'), }
-          ]
-        } else if (response.data.list[0].inforvalue == 3) {
-          this.frequencyList = [
-            { id: 1, name: this.$t('errorAnalysis.one'), },
-            { id: 2, name: this.$t('errorAnalysis.two'), },
-            { id: 3, name: this.$t('errorAnalysis.three'), }
-          ]
-        } else if (response.data.list[0].inforvalue == 4) {
-          this.frequencyList = [
-            { id: 1, name: this.$t('errorAnalysis.one'), },
-            { id: 2, name: this.$t('errorAnalysis.two'), },
-            { id: 3, name: this.$t('errorAnalysis.three'), },
-            { id: 4, name: this.$t('errorAnalysis.four'), }
-          ]
-        }else if (response.data.list[0].inforvalue == 5) {
-          this.frequencyList = [
-            { id: 1, name: this.$t('errorAnalysis.one'), },
-            { id: 2, name: this.$t('errorAnalysis.two'), },
-            { id: 3, name: this.$t('errorAnalysis.three'), },
-            { id: 4, name: this.$t('errorAnalysis.four'), },
-            { id: 5, name: this.$t('errorAnalysis.five'), }
-          ]
-        }else if (response.data.list[0].inforvalue == 6) {
-          this.frequencyList = [
-            { id: 1, name: this.$t('errorAnalysis.one'), },
-            { id: 2, name: this.$t('errorAnalysis.two'), },
-            { id: 3, name: this.$t('errorAnalysis.three'), },
-            { id: 4, name: this.$t('errorAnalysis.four'), },
-            { id: 5, name: this.$t('errorAnalysis.five'), },
-            { id: 6, name: this.$t('errorAnalysis.six'), }
-          ]
-        }
-      })
-    },
-
-    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.create.temp.ftvolume = this.templateFormulationList.find(obj => obj.id === item).volume
-      this.getCreateList1()
-      var obj = {
-        'pastureid':this.create.temp.pastureid,
-        'ftid':this.create.temp.ftid
-      }
-      this.getmaterialdetailsList(obj)
-    },
-    changeTimes(item) {
-      this.getCreateList1()
-    },
-    // TMR编号
-    changeTMRNumber(item) {
-      console.log(this.create.temp.tmrid,'this.create.temp.tmrid111')
-      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.TMRNumberList.find(obj => obj.id === item).eqcode
-        //   this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
-        //   this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === item).tclassname
-        //   this.create.temp.mytmrid = this.create.temp.tmrid
-        //   this.create.temp.mytmrname = this.create.temp.tmrname
-        //   console.log('tmrname==>', this.create.temp)
-        //   if (this.isDispaly || this.create.dialogStatus == 'update') {
-        //     this.getClearList()
-        //   }
-        // }).catch(() => {
-        //   console.log(this.create.temp,'====')
-        //   if(this.create.temp.tclassname == '固定式'){
-        //     console.log( this.create.temp,'====')
-        //     this.create.temp.tmrid = this.create.temp.mytmrid
-        //   }
-        //   this.create.temp.tmrid2 = this.create.temp.tmrid
-        //   this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).eqcode
-        //   this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
-        //   this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
-        //   this.create.temp.mytmrid = this.create.temp.tmrid2
-        //   this.create.temp.mytmrname = this.create.temp.tmrname
-        //   console.log(this.create.temp)
-        //   this.$message({ type: 'info', message: '已取消' })
-        // })
-        // 备份
-        this.tmrNumber.dialogFormVisible = true
-        this.tmrNumber.dialogStatus = 'tmrNumber'
-        this.tmrNumber.radio = '0'
-      } else {
-        this.create.temp.tmrid = this.create.temp.tmrid2
-        this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === item).eqcode
-        this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
-        this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === item).tclassname
-        this.create.temp.tmrvolume = this.TMRNumberList.find(obj => obj.id === item).tmrvolume
-        this.create.temp.maxVolume = this.TMRNumberList.find(obj => obj.id === item).maxVolume
-        this.create.temp.minVolume = this.TMRNumberList.find(obj => obj.id === item).minVolume
-        this.create.temp.mytmrid = this.create.temp.tmrid
-        this.create.temp.mytmrname = this.create.temp.tmrname
-        console.log('TMR编号item==>', item)
-        console.log('tmrname==>', this.create.temp)
-      }
-    },
-    tmrNumberData(){
-      if(this.tmrNumber.radio == '0'){
-        console.log('1、多出的饲料平均从已分配的各栏舍中扣减。')
-      }else if(this.tmrNumber.radio == '1'){
-        console.log('2、多出的饲料从最后一个栏舍依次往前扣减。')
-      }else if(this.tmrNumber.radio == '2'){
-        console.log('3、清空已分配的撒料车。')
-      }
-      const url = 'authdata/materialtmr/date/edit'
-      const data = {
-        tmrid:this.create.temp.tmrid2,
-        tmrtype: this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassid,
-        lppid:this.create.temp.id,
-        times:this.create.temp.times,
-        pastureid:Cookies.get('pastureid'),
-        status:this.tmrNumber.radio,
-        date:this.date
-      }
-      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.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
-          this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
-          this.create.temp.tmrvolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tmrvolume
-          this.create.temp.maxVolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxVolume
-          this.create.temp.minVolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).minVolume
-          this.tmrNumber.dialogFormVisible = false
-          this.getCreateList1()
-        }
-      })
-    },
-    closeTmrNumber(){
-      if(this.create.temp.tclassname == '固定式'){
-        console.log( this.create.temp,'====')
-        this.create.temp.tmrid = this.create.temp.mytmrid
-      }
-      this.create.temp.tmrid2 = this.create.temp.tmrid
-      this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).eqcode
-      this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
-      this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
-      this.create.temp.mytmrid = this.create.temp.tmrid2
-      this.create.temp.mytmrname = this.create.temp.tmrname
-      this.tmrNumber.dialogFormVisible = false
-    },
-    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)
-    },
-    focusWeight(){
-      this.isDropState = true
-    },
-    blurWeight(item) {
-      this.isDropState = false
-      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
-        }
-      }
-      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,
-        volume:0,
-        display: '',
-        times: 1,
-        ftid: '',
-        ftname: '',
-        tmrname: '',
-        maxweight: ''
-      }
-      this.create.temp.times = this.table.getdataListParm.parammaps.times
-      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)
-          if(parseFloat(this.create.temp.ftvolume) !== 0 &&  parseFloat(this.create.temp.sumweight) !== 0){
-            this.create.temp.volume = (parseFloat(this.create.temp.sumweight) / parseFloat(this.create.temp.ftvolume)).toFixed(2)
-          }else{
-            this.create.temp.volume = 0
-          }
-        } else {
-          this.create.list2 = []
-          // this.create.temp.sort = 0
-          this.create.temp.sumweight = 0
-          this.create.temp.volume = 0
-        }
-      })
-    },
-    clickBar(item) {
-      this.isokDisable = true
-      setTimeout(() => {
-        this.isokDisable = false
-      }, 1000)
-      console.log('点击了栏舍item==>', item)
-      this.create.temp.sumweight = parseFloat(this.create.temp.sumweight)
-      // if(this.create.temp.tclassname == '固定式'){
-      //   console.log(this.equipmentList.find(obj => obj.tclassname == '撒料设备'))
-      //   if(this.equipmentList.find(obj => obj.tclassname == '撒料设备') !== undefined){
-      //     this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '撒料设备').eqcode
-      //     this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '撒料设备').id
-      //   }else if(this.equipmentList.find(obj => obj.tclassname == '自走式') !== undefined){
-      //     this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '自走式').eqcode
-      //     this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '自走式').id
-      //   }else{
-      //     this.$message({ type: 'error', message: '请先在TMR设备中创建撒料设备', duration: 2000 })
-      //     return
-      //   }
-      //   console.log('temp',this.create.temp)
-      // }
-      console.log(this.create.temp.tclassname,'this.create.temp.tclassname')
-      if(this.create.temp.tclassname == '固定式'){
-        if(this.equipmentList.find(obj => obj.tclassname == '任意车1') !== undefined){
-          this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '任意车1').eqcode
-          this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '任意车1').id
-        }
-      }
-      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)
-      const url = 'authdata/lpplandtl/date/add'
-      const data = {}
-      data.parammaps = {}
-      data.parammaps.id = item.id
-      data.parammaps.pastureid = evt.pastureid
-      data.parammaps.lppid = evt.id
-      data.parammaps.barid = item.barid
-      data.parammaps.barname = item.barname
-      data.parammaps.fpdid = item.id
-      data.parammaps.lweight = item.weight
-      data.parammaps.tmrid = evt.tmrid
-      data.parammaps.tmrname = evt.tmrname
-      data.parammaps.fttype = item.fttype
-      data.parammaps.background = item.background
-      data.parammaps.cowcount = item.cowcount
-      data.parammaps.ccountradio = item.ccountradio
-      data.parammaps.date = this.date
-      postJson(url, data).then(response => {
-        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,
-        //     date: this.date
-        //   }
-        // }
-        this.requestParam.data[0] = {
-          'name': 'updateFpdetailUsedate',
-          'type': 'e',
-          'parammaps': {
-            pastureid: item.pastureid,
-            id: item.id,
-            fttype: item.fttype,
-            lweight: item.weight,
-            date: this.date
-          }
-        }
-        const url2 = 'authdata/ExecDataByConfig'
-        const data2 = this.requestParam
-        postJson(url2, data2).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()
-        })
-      })
-      console.log(this.create.temp.tmrid,'66666')
-    },
-    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)
-      this.create.temp.mytmrname = row.tmrname
-      this.create.temp.mytmrid = row.tmrid
-      console.log('this.create.temp', this.create.temp)
-      this.create.checkBarList = []
-      this.getCreateList1()
-      this.getmaterialdetailsList(row)
-    },
-    updateData() {
-      this.$refs['temp'].validate(valid => {
-        if (valid) {
-          this.isokDisable = true
-          setTimeout(() => {
-            this.isokDisable = false
-          }, 1000)
-          var tip = ''
-          if(parseFloat(this.create.temp.volume) > parseFloat(this.create.temp.tmrvolume)){
-            tip = '装载量已超过车辆容量' + this.create.temp.tmrvolume + 'm³,请确认'
-            MessageBox.confirm(tip, {
-              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-            }).then(() => {
-              this.save_updateData()
-            })
-          }else if(parseFloat(this.create.temp.volume) > parseFloat(this.create.temp.maxVolume)){
-            tip = '装载量不可超过车辆容量' + this.create.temp.maxVolume + 'm³,请确认'
-            MessageBox.confirm(tip, {
-              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-            }).then(() => {
-              this.save_updateData()
-            })
-          }else if(parseFloat(this.create.temp.volume) < parseFloat(this.create.temp.minVolume)){
-            tip = '装载量不可低于车辆容量' + this.create.temp.minVolume + 'm³,请确认'
-            MessageBox.confirm(tip, {
-              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-            }).then(() => {
-              this.save_updateData()
-            })
-          }else{
-            this.save_updateData()
-          }
-        }
-      })
-    },
-    save_updateData(){
-      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
-      data.parammaps.tmrid = this.create.temp.tmrid2
-      data.parammaps.tmrname = this.create.temp.mytmrname
-      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)
-        }
-        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
-            })
-          }
-        })
-      }
-    },
-    changeEquipment(item, fttype, myid) {
-      console.log('item==>',item)
-      console.log('fttype==>',fttype)
-      console.log('myid==>',myid)
-      let tclassname = this.equipmentList.find(obj => obj.id == item).tclassname
-      let maxstirfeed = this.equipmentList.find(obj => obj.id == item).maxstirfeed
-      if(tclassname == '固定式'){
-        this.$message({ type: 'error', message: '固定式设备无法撒料,请选择撒料设备', duration: 2000 })
-        this.getCreateList2()
-        return
-      }
-      var objList = {}
-      for (let i = 0; i < this.create.list2.length; i++) {
-        if (this.create.list2[i].fttype == fttype && this.create.list2[i].id == myid) {
-          this.create.list2[i].tmrname = this.equipmentList.find(obj => obj.id === item).tname
-          objList = this.create.list2[i]
-          if(parseFloat(this.create.list2[i].weight) > parseFloat(maxstirfeed)){
-            objList.weight = maxstirfeed
-          }
-        }
-      }
-      const url = 'authdata/lpplandtl/date/add'
-      const data = {}
-      data.parammaps = {}
-      data.parammaps.id = objList.id
-      data.parammaps.pastureid = this.create.temp.pastureid
-      data.parammaps.lppid = this.create.temp.id
-      data.parammaps.tmrid = objList.tmrid
-      data.parammaps.tmrname = objList.tmrname
-      data.parammaps.date = this.date
-
-      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.getCreateList2()
-          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-        }
-      })
-    },
-    move1(evt, originalEvent){
-      console.log('move1===>evt', evt)
-      console.log('move1===>originalEvent', originalEvent)
-    },
-    changeLog1(evt){
-       console.log('changeLog1===>', evt)
-       var obj = evt.moved.element
-       const url = 'authdata/lpplandtl/edit/date/sort'
-       const data = {}
-       data.parammaps = {}
-       data.parammaps.tmrid = obj.tmrid
-       data.parammaps.pastureid = obj.pastureid
-       data.parammaps.lppid = obj.lppid
-       data.parammaps.sort = evt.moved.newIndex +1
-       data.parammaps.id = obj.id
-       data.parammaps.date = this.date
-       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.getCreateList2()
-           this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
-         }
-       })
-    },
-    start1(evt){
-      console.log('start1===>', evt)
-      // this.$set(this.table.startObj, 'from', evt.from.className)
-      // this.$set(this.table.startObj, 'to', evt.from.className)
-    },
-    end1(evt, originalEvent){
-      console.log('end1===>', evt)
-    },
-    // 减少车次
-    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)
-          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'
-            }
-          }
-          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'
-            }
-          }
-          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'
-            }
-          }
-          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()
-            }
-          })
-        })
-      }
-    },
-    handleEmpty(){
-      console.log('点击了清空')
-      var list = []
-      for(let i=0;i<this.create.list2.length;i++){
-        var obj = {}
-        obj.pastureid = this.create.list2[i].pastureid
-        obj.id = this.create.list2[i].fpdid
-        obj.fttype = this.create.list2[i].fttype
-        obj.lweight = '-'+this.create.list2[i].weight
-        list.push(obj)
-      }
-      this.requestParam = {}
-      this.requestParam.common = { 'returnmap': '0' }
-      this.requestParam.data = []
-      this.requestParam.data[0] = { 'name': 'deleteLpplandtl1DateByLppid', 'type': 'e', 'parammaps': { lppid: this.create.temp.id, pastureid:  Cookies.get('pastureid'),date:this.date }},
-      this.requestParam.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': list }}
-      this.requestParam.data[1].children = []
-      this.requestParam.data[1].children[0] = {
-        'name': 'updateFpdetailUsedate',
-        'type': 'e',
-        'parammaps': { pastureid: '@insertSpotList.pastureid', id: '@insertSpotList.id', fttype: '@insertSpotList.fttype', lweight: '@insertSpotList.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 })
-        } else {
-          this.$notify({ title: '清空成功', message: '清空成功', type: 'success', duration: 2000 })
-          this.getCreateList1()
-        }
-
-      })
-    },
-    handleAllEmpty(){
-      MessageBox.confirm('执行该操作会将现有车次已分配的撒料栏舍全部清空,是否要执行该操作?', {
-        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-      }).then(() => {
-        this.requestParam = {}
-        this.requestParam.common = { 'returnmap': '0' }
-        this.requestParam.data = []
-        this.requestParam.data[0] = { 'name': 'deleteLpplandtl1dateAll', 'type': 'e', 'parammaps': { pastureid:  Cookies.get('pastureid'),date:this.date }},
-        this.requestParam.data[1] = { 'name': 'deletefpdetaildateAll', 'type': 'e', 'parammaps': { pastureid:  Cookies.get('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()
-          }
-        })
-      })
-    },
-    getmaterialdetailsList(item){
-      let url = 'authdata/GetDataByName'
-      let data  = {
-        name:"getFTdetailList",page:1,offset:1,pagecount:"",returntype:"Map",
-        parammaps:{
-          pastureid:item.pastureid,ftid:item.ftid,
-          // fttypeid:item.fttypeid,
-        }
-      }
-      postJson(url, data).then(response => {
-        if (response.msg !== 'fail') {
-          this.materialdetailsList = response.data.list
-        } else {
-          this.materialdetailsList = []
-        }
-      })
-    }
-  }
-}
-</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" scoped>
-  .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: 220px;
-      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: 160px;
-        height: 50px;
-        overflow: hidden;
-        line-height: 50px;
-
-        .arr-r-l {
-          float: left;
-          width: 70px;
-
-          .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>
+<template>
+  <div class="app-container">
+    <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">{{$t('premixedPlan.jscc')}}</el-button>
+      <el-button v-if="isOrder && isRoleEdit" icon="el-icon-sort" style="float: left;" class="success" @click="handleChangeOrder" >{{$t('formulationEvaluation.ggsx')}}</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">{{$t('formulationEvaluation.cancel')}}</el-button>
+      </div>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" style="float: left;" @click="handleTakeEffect"> {{$t('premixedPlan.sx')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" style="float: left;" @click="handleDisable"> {{$t('premixedPlan.jy')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float: left;" @click="handleAllEmpty"> 清空已分配栏舍</el-button>
+        <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="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"
+        row-key="id"
+        @selection-change="handleSelect"
+      >
+        <el-table-column type="selection" width="50" />
+        <el-table-column :label="$t('errorAnalysis.projname')" 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="$t('premixedPlan.tmrbh')"  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="$t('premixedPlan.sx')"  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="$t('errorAnalysis.isTrainNumber')"  width="65px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.timesstr }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column :label="$t('premixedPlan.time')"   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 label="物料详情" width="90px" align="center">
+          <template slot-scope="scope">
+            <el-popover
+              placement="bottom"
+              width="400"
+              trigger="click">
+              <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
+              <el-table :data="materialdetailsList" border height="200">
+                <el-table-column min-width="150" property="fname" label="物料" />
+                <el-table-column min-width="100" property="fweight" label="重量" />
+                <el-table-column min-width="100" property="scale" label="占比" />
+              </el-table>
+              <span slot="reference" style="color: blue;" @click="getmaterialdetailsList(scope.row)">详情</span>
+            </el-popover>
+          </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="容量状态" width="90px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.volumeStatus == 1" style="color:red;">{{ scope.row.volumeStatusStr }}</span>
+            <span v-if="scope.row.volumeStatus == 2" style="color:red;">{{ scope.row.volumeStatusStr }}</span>
+            <span v-if="scope.row.volumeStatus == 0" style="color:green;">{{ scope.row.volumeStatusStr }}</span>
+          </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> 撒料车:{{ element.tmrname }} </div>
+                </div>
+                <div :style="{'background':element.background}" class="tmrname">{{ element.barname }}</div>
+              </el-tooltip>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column  :label="$t('errorAnalysis.cz')" 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;"
+      >{{$t('processAnalysis.total')}}{{ table.total }}{{$t('processAnalysis.tiao')}}</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 TMRNumberList" :key="item.id" :label="`${item.tclassname}/${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()">{{$t('common.closed')}}</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>
+                            <button style="background: red;float: right;width: 18px;color: #fff;font-size: 18px;border: none;text-align: center;" :disabled="isokDisable" @click="clickBar(item)">√</button>
+                          </div>
+                        </el-tooltip>
+                        <el-tooltip placement="bottom" style="height: 18px;line-height: 18px;" :style="{ background: 'rgba('+item.background2+ ',0.1)' }">
+                          <div slot="content">{{ item.weight }}</div>
+                          <div class="barWeight">
+                            <span style="float: left;width: 70px;overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">{{ item.weight }}</span>
+                            <el-popover
+                              placement="right"
+                              width="400"
+                              trigger="click">
+                              <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
+                              <el-table :data="materialdetailsList" height="200" border>
+                                <el-table-column min-width="150" property="fname" label="物料" />
+                                <el-table-column min-width="100" property="fweight" label="重量" />
+                                <el-table-column min-width="100" property="scale" label="占比" />
+                              </el-table>
+                              <!-- <span  style="color: blue;">详情</span> -->
+                              <button slot="reference" style="background: #ccc;float: right;color: #fff;width: 18px;height:18px;font-size: 16px;border: none;text-align: center;" :disabled="isokDisable">?</button>
+                            </el-popover>
+                          </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.tmrvolume }} ( {{ create.temp.minVolume }} - {{ create.temp.maxVolume }})m³</div>
+                <!-- <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 class="sumweight" style="line-height:20px;margin-top: 10px;color: red;" v-if="parseFloat(create.temp.volume) > parseFloat(create.temp.tmrvolume)"><b>容积量:</b>{{ create.temp.volume }} m³ </div>
+                <div class="sumweight" style="line-height:20px;margin-top: 10px;" v-else><b>容积量:</b>{{ create.temp.volume }} m³ </div>
+              </div>
+            </el-col>
+          </el-row>
+          <!-- 撒料 -->
+          <div class="spreadingMaterial">
+            <div>撒料:<el-button type="danger" @click="handleEmpty">清空</el-button></div>
+            <div class="spreadingMaterialList">
+              <!-- force-fallback="true" -->
+              <draggable
+                :disabled="isDropState"
+                id="1"
+                data-source="juju"
+                :list="create.list2"
+                class="list-group1"
+                draggable=".item"
+                group="a"
+                animation="500"
+                :move="move1"
+                @change="changeLog1"
+                @start="start1"
+                @end="end1"
+              >
+                <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-t-t" />
+                      <el-select
+                        v-model="element.tmrid"
+                        placeholder="撒料设备"
+                        class="arr-l-t-b el-icon-arrow-down"
+                        @change="(value)=> {changeEquipment(value, element.fttype,element.id)}"
+                      >
+                        <el-option
+                          v-for="item in equipmentList"
+                          :key="item.id"
+                          :label="item.tname"
+                          :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 placement="top">
+                        <div slot="content">{{ element.weight }}</div>
+                        <input
+                          ref="weight"
+                          v-model="element.weight"
+                          :autofocus="element.focusState"
+                          type="number"
+                          :placeholder="$t('formulationEvaluation.reset')"
+                          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"
+                          @focus="focusWeight"
+                          @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)" />
+                    <el-popover
+                      placement="bottom"
+                      width="400"
+                      height="200"
+                      trigger="click">
+                      <b style="text-align: center;width:100%;display:inline-block;">物料详情</b>
+                      <el-table :data="materialdetailsList" height="200" border>
+                       <el-table-column min-width="150" property="fname" label="物料" />
+                       <el-table-column min-width="100" property="fweight" label="重量" />
+                       <el-table-column min-width="100" property="scale" label="占比" />
+                      </el-table>
+                      <i slot="reference" class="el-icon-question" style="position: absolute;right: 0;top: 20px;"/>
+                    </el-popover>
+                  </div>
+                </div>
+              </draggable>
+            </div>
+          </div>
+          <div slot="footer" class="dialog-footer" style="height:55px;">
+            <el-button class="cancelClose" :disabled="isokDisable" @click="close()" style="top:40px;">{{$t('common.closed')}}</el-button>
+            <el-button class="save" :disabled="isokDisable" @click="updateData()" style="top:40px;">{{$t('errorAnalysis.confirm')}}</el-button>
+          </div>
+        </div>
+      </div>
+    </el-dialog>
+
+    <!-- 更改TMR编号 -->
+    <el-dialog
+    :title="textMap[tmrNumber.dialogStatus]"
+    :destroy-on-close="true"
+    :visible.sync="tmrNumber.dialogFormVisible"
+    :before-close="close"
+    :close-on-click-modal="false"
+    width="30%"
+    :modal-append-to-body="false"
+    :append-to-body="true">
+        <h3 style="text-align: center;">是否要改变TMR设备?</h3>
+      <div class="tmrNumber" style="padding: 10px 30px;">
+        <p>注:更换TMR撒料设备,变更后的装载重量不同,请选择处理方式</p>
+        <el-radio v-model="tmrNumber.radio" label="0">1、多出的饲料平均从已分配的各栏舍中扣减。</el-radio><br/><br/>
+        <el-radio v-model="tmrNumber.radio" label="1">2、多出的饲料从最后一个栏舍依次往前扣减。</el-radio><br/><br/>
+        <el-radio v-model="tmrNumber.radio" label="2">3、清空已分配的撒料车。</el-radio>
+      </div>
+      <div slot="footer" class="dialog-footer" style="bottom: 10px;">
+        <el-button class="cancelClose" :disabled="isokDisable" @click="closeTmrNumber">否</el-button>
+        <el-button class="save" :disabled="isokDisable" @click="tmrNumberData()">是</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import Cookies from 'js-cookie'
+import Sortable from 'sortablejs'
+import draggable from 'vuedraggable'
+import { checkButtons, postJson,ExecDataByConfig } from '@/api/common'
+import { MessageBox } from 'element-ui'
+export default {
+  components: {
+    draggable
+  },
+  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高度
+      materialdetailsList: [],
+      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: '编辑',
+        tmrNumber:''
+      },
+      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,
+      isDropState:false,
+      tmrNumber:{
+        dialogFormVisible: false,
+        dialogStatus: '',
+        temp:{},
+        radio:'0'
+      }
+    }
+  },
+  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.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 url2 = 'authdata/tmrListEnableTypeAll'
+      const data2 = {
+        parammaps: {
+          pastureid: Cookies.get('pastureid')
+        }
+      }
+      postJson(url2, data2).then(response => {
+        if (response.data !== null) {
+          this.equipmentList = response.data
+          if(this.create.dialogStatus == 'update'){
+            if(this.equipmentList.find(obj => obj.id ==  this.create.temp.tmrid) !== undefined){
+              this.create.temp.tclassname = this.equipmentList.find(obj => obj.id ==  this.create.temp.tmrid).tclassname
+            }else{
+              this.create.temp.tclassname = '固定式'
+            }
+          }
+        } 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: this.$t('errorAnalysis.one'), }]
+        } else if (response.data.list[0].inforvalue == 2) {
+          this.frequencyList = [
+            { id: 1, name: this.$t('errorAnalysis.one'), },
+            { id: 2, name: this.$t('errorAnalysis.two'), }
+          ]
+        } else if (response.data.list[0].inforvalue == 3) {
+          this.frequencyList = [
+            { id: 1, name: this.$t('errorAnalysis.one'), },
+            { id: 2, name: this.$t('errorAnalysis.two'), },
+            { id: 3, name: this.$t('errorAnalysis.three'), }
+          ]
+        } else if (response.data.list[0].inforvalue == 4) {
+          this.frequencyList = [
+            { id: 1, name: this.$t('errorAnalysis.one'), },
+            { id: 2, name: this.$t('errorAnalysis.two'), },
+            { id: 3, name: this.$t('errorAnalysis.three'), },
+            { id: 4, name: this.$t('errorAnalysis.four'), }
+          ]
+        }else if (response.data.list[0].inforvalue == 5) {
+          this.frequencyList = [
+            { id: 1, name: this.$t('errorAnalysis.one'), },
+            { id: 2, name: this.$t('errorAnalysis.two'), },
+            { id: 3, name: this.$t('errorAnalysis.three'), },
+            { id: 4, name: this.$t('errorAnalysis.four'), },
+            { id: 5, name: this.$t('errorAnalysis.five'), }
+          ]
+        }else if (response.data.list[0].inforvalue == 6) {
+          this.frequencyList = [
+            { id: 1, name: this.$t('errorAnalysis.one'), },
+            { id: 2, name: this.$t('errorAnalysis.two'), },
+            { id: 3, name: this.$t('errorAnalysis.three'), },
+            { id: 4, name: this.$t('errorAnalysis.four'), },
+            { id: 5, name: this.$t('errorAnalysis.five'), },
+            { id: 6, name: this.$t('errorAnalysis.six'), }
+          ]
+        }
+      })
+    },
+
+    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.create.temp.ftvolume = this.templateFormulationList.find(obj => obj.id === item).volume
+      this.getCreateList1()
+      var obj = {
+        'pastureid':this.create.temp.pastureid,
+        'ftid':this.create.temp.ftid
+      }
+      this.getmaterialdetailsList(obj)
+    },
+    changeTimes(item) {
+      this.getCreateList1()
+    },
+    // TMR编号
+    changeTMRNumber(item) {
+      console.log(this.create.temp.tmrid,'this.create.temp.tmrid111')
+      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.TMRNumberList.find(obj => obj.id === item).eqcode
+        //   this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
+        //   this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === item).tclassname
+        //   this.create.temp.mytmrid = this.create.temp.tmrid
+        //   this.create.temp.mytmrname = this.create.temp.tmrname
+        //   console.log('tmrname==>', this.create.temp)
+        //   if (this.isDispaly || this.create.dialogStatus == 'update') {
+        //     this.getClearList()
+        //   }
+        // }).catch(() => {
+        //   console.log(this.create.temp,'====')
+        //   if(this.create.temp.tclassname == '固定式'){
+        //     console.log( this.create.temp,'====')
+        //     this.create.temp.tmrid = this.create.temp.mytmrid
+        //   }
+        //   this.create.temp.tmrid2 = this.create.temp.tmrid
+        //   this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).eqcode
+        //   this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
+        //   this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
+        //   this.create.temp.mytmrid = this.create.temp.tmrid2
+        //   this.create.temp.mytmrname = this.create.temp.tmrname
+        //   console.log(this.create.temp)
+        //   this.$message({ type: 'info', message: '已取消' })
+        // })
+        // 备份
+        this.tmrNumber.dialogFormVisible = true
+        this.tmrNumber.dialogStatus = 'tmrNumber'
+        this.tmrNumber.radio = '0'
+      } else {
+        this.create.temp.tmrid = this.create.temp.tmrid2
+        this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === item).eqcode
+        this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === item).maxstirfeed
+        this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === item).tclassname
+        this.create.temp.tmrvolume = this.TMRNumberList.find(obj => obj.id === item).tmrvolume
+        this.create.temp.maxVolume = this.TMRNumberList.find(obj => obj.id === item).maxVolume
+        this.create.temp.minVolume = this.TMRNumberList.find(obj => obj.id === item).minVolume
+        this.create.temp.mytmrid = this.create.temp.tmrid
+        this.create.temp.mytmrname = this.create.temp.tmrname
+        console.log('TMR编号item==>', item)
+        console.log('tmrname==>', this.create.temp)
+      }
+    },
+    tmrNumberData(){
+      if(this.tmrNumber.radio == '0'){
+        console.log('1、多出的饲料平均从已分配的各栏舍中扣减。')
+      }else if(this.tmrNumber.radio == '1'){
+        console.log('2、多出的饲料从最后一个栏舍依次往前扣减。')
+      }else if(this.tmrNumber.radio == '2'){
+        console.log('3、清空已分配的撒料车。')
+      }
+      const url = 'authdata/materialtmr/date/edit'
+      const data = {
+        tmrid:this.create.temp.tmrid2,
+        tmrtype: this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassid,
+        lppid:this.create.temp.id,
+        times:this.create.temp.times,
+        pastureid:Cookies.get('pastureid'),
+        status:this.tmrNumber.radio,
+        date:this.date
+      }
+      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.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
+          this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
+          this.create.temp.tmrvolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tmrvolume
+          this.create.temp.maxVolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxVolume
+          this.create.temp.minVolume = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).minVolume
+          this.tmrNumber.dialogFormVisible = false
+          this.getCreateList1()
+        }
+      })
+    },
+    closeTmrNumber(){
+      if(this.create.temp.tclassname == '固定式'){
+        console.log( this.create.temp,'====')
+        this.create.temp.tmrid = this.create.temp.mytmrid
+      }
+      this.create.temp.tmrid2 = this.create.temp.tmrid
+      this.create.temp.tmrname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).eqcode
+      this.create.temp.maxweight = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).maxstirfeed
+      this.create.temp.tclassname = this.TMRNumberList.find(obj => obj.id === this.create.temp.tmrid2).tclassname
+      this.create.temp.mytmrid = this.create.temp.tmrid2
+      this.create.temp.mytmrname = this.create.temp.tmrname
+      this.tmrNumber.dialogFormVisible = false
+    },
+    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)
+    },
+    focusWeight(){
+      this.isDropState = true
+    },
+    blurWeight(item) {
+      this.isDropState = false
+      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
+        }
+      }
+      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,
+        volume:0,
+        display: '',
+        times: 1,
+        ftid: '',
+        ftname: '',
+        tmrname: '',
+        maxweight: ''
+      }
+      this.create.temp.times = this.table.getdataListParm.parammaps.times
+      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)
+          if(parseFloat(this.create.temp.ftvolume) !== 0 &&  parseFloat(this.create.temp.sumweight) !== 0){
+            this.create.temp.volume = (parseFloat(this.create.temp.sumweight) / parseFloat(this.create.temp.ftvolume)).toFixed(2)
+          }else{
+            this.create.temp.volume = 0
+          }
+        } else {
+          this.create.list2 = []
+          // this.create.temp.sort = 0
+          this.create.temp.sumweight = 0
+          this.create.temp.volume = 0
+        }
+      })
+    },
+    clickBar(item) {
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      console.log('点击了栏舍item==>', item)
+      this.create.temp.sumweight = parseFloat(this.create.temp.sumweight)
+      // if(this.create.temp.tclassname == '固定式'){
+      //   console.log(this.equipmentList.find(obj => obj.tclassname == '撒料设备'))
+      //   if(this.equipmentList.find(obj => obj.tclassname == '撒料设备') !== undefined){
+      //     this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '撒料设备').eqcode
+      //     this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '撒料设备').id
+      //   }else if(this.equipmentList.find(obj => obj.tclassname == '自走式') !== undefined){
+      //     this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '自走式').eqcode
+      //     this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '自走式').id
+      //   }else{
+      //     this.$message({ type: 'error', message: '请先在TMR设备中创建撒料设备', duration: 2000 })
+      //     return
+      //   }
+      //   console.log('temp',this.create.temp)
+      // }
+      console.log(this.create.temp.tclassname,'this.create.temp.tclassname')
+      if(this.create.temp.tclassname == '固定式'){
+        if(this.equipmentList.find(obj => obj.tclassname == '任意车1') !== undefined){
+          this.create.temp.tmrname = this.equipmentList.find(obj => obj.tclassname == '任意车1').eqcode
+          this.create.temp.tmrid = this.equipmentList.find(obj => obj.tclassname == '任意车1').id
+        }
+      }
+      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)
+      const url = 'authdata/lpplandtl/date/add'
+      const data = {}
+      data.parammaps = {}
+      data.parammaps.id = item.id
+      data.parammaps.pastureid = evt.pastureid
+      data.parammaps.lppid = evt.id
+      data.parammaps.barid = item.barid
+      data.parammaps.barname = item.barname
+      data.parammaps.fpdid = item.id
+      data.parammaps.lweight = item.weight
+      data.parammaps.tmrid = evt.tmrid
+      data.parammaps.tmrname = evt.tmrname
+      data.parammaps.fttype = item.fttype
+      data.parammaps.background = item.background
+      data.parammaps.cowcount = item.cowcount
+      data.parammaps.ccountradio = item.ccountradio
+      data.parammaps.date = this.date
+      postJson(url, data).then(response => {
+        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,
+        //     date: this.date
+        //   }
+        // }
+        this.requestParam.data[0] = {
+          'name': 'updateFpdetailUsedate',
+          'type': 'e',
+          'parammaps': {
+            pastureid: item.pastureid,
+            id: item.id,
+            fttype: item.fttype,
+            lweight: item.weight,
+            date: this.date
+          }
+        }
+        const url2 = 'authdata/ExecDataByConfig'
+        const data2 = this.requestParam
+        postJson(url2, data2).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()
+        })
+      })
+      console.log(this.create.temp.tmrid,'66666')
+    },
+    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)
+      this.create.temp.mytmrname = row.tmrname
+      this.create.temp.mytmrid = row.tmrid
+      console.log('this.create.temp', this.create.temp)
+      this.create.checkBarList = []
+      this.getCreateList1()
+      this.getmaterialdetailsList(row)
+    },
+    updateData() {
+      this.$refs['temp'].validate(valid => {
+        if (valid) {
+          this.isokDisable = true
+          setTimeout(() => {
+            this.isokDisable = false
+          }, 1000)
+          var tip = ''
+          if(parseFloat(this.create.temp.volume) > parseFloat(this.create.temp.tmrvolume)){
+            tip = '装载量已超过车辆容量' + this.create.temp.tmrvolume + 'm³,请确认'
+            MessageBox.confirm(tip, {
+              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+            }).then(() => {
+              this.save_updateData()
+            })
+          }else if(parseFloat(this.create.temp.volume) > parseFloat(this.create.temp.maxVolume)){
+            tip = '装载量不可超过车辆容量' + this.create.temp.maxVolume + 'm³,请确认'
+            MessageBox.confirm(tip, {
+              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+            }).then(() => {
+              this.save_updateData()
+            })
+          }else if(parseFloat(this.create.temp.volume) < parseFloat(this.create.temp.minVolume)){
+            tip = '装载量不可低于车辆容量' + this.create.temp.minVolume + 'm³,请确认'
+            MessageBox.confirm(tip, {
+              confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+            }).then(() => {
+              this.save_updateData()
+            })
+          }else{
+            this.save_updateData()
+          }
+        }
+      })
+    },
+    save_updateData(){
+      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
+      data.parammaps.tmrid = this.create.temp.tmrid2
+      data.parammaps.tmrname = this.create.temp.mytmrname
+      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)
+        }
+        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
+            })
+          }
+        })
+      }
+    },
+    changeEquipment(item, fttype, myid) {
+      console.log('item==>',item)
+      console.log('fttype==>',fttype)
+      console.log('myid==>',myid)
+      let tclassname = this.equipmentList.find(obj => obj.id == item).tclassname
+      let maxstirfeed = this.equipmentList.find(obj => obj.id == item).maxstirfeed
+      if(tclassname == '固定式'){
+        this.$message({ type: 'error', message: '固定式设备无法撒料,请选择撒料设备', duration: 2000 })
+        this.getCreateList2()
+        return
+      }
+      var objList = {}
+      for (let i = 0; i < this.create.list2.length; i++) {
+        if (this.create.list2[i].fttype == fttype && this.create.list2[i].id == myid) {
+          this.create.list2[i].tmrname = this.equipmentList.find(obj => obj.id === item).tname
+          objList = this.create.list2[i]
+          if(parseFloat(this.create.list2[i].weight) > parseFloat(maxstirfeed)){
+            objList.weight = maxstirfeed
+          }
+        }
+      }
+      const url = 'authdata/lpplandtl/date/add'
+      const data = {}
+      data.parammaps = {}
+      data.parammaps.id = objList.id
+      data.parammaps.pastureid = this.create.temp.pastureid
+      data.parammaps.lppid = this.create.temp.id
+      data.parammaps.tmrid = objList.tmrid
+      data.parammaps.tmrname = objList.tmrname
+      data.parammaps.date = this.date
+
+      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.getCreateList2()
+          this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+        }
+      })
+    },
+    move1(evt, originalEvent){
+      console.log('move1===>evt', evt)
+      console.log('move1===>originalEvent', originalEvent)
+    },
+    changeLog1(evt){
+       console.log('changeLog1===>', evt)
+       var obj = evt.moved.element
+       const url = 'authdata/lpplandtl/edit/date/sort'
+       const data = {}
+       data.parammaps = {}
+       data.parammaps.tmrid = obj.tmrid
+       data.parammaps.pastureid = obj.pastureid
+       data.parammaps.lppid = obj.lppid
+       data.parammaps.sort = evt.moved.newIndex +1
+       data.parammaps.id = obj.id
+       data.parammaps.date = this.date
+       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.getCreateList2()
+           this.$notify({ title: '', message: '保存成功', type: 'success', duration: 2000 })
+         }
+       })
+    },
+    start1(evt){
+      console.log('start1===>', evt)
+      // this.$set(this.table.startObj, 'from', evt.from.className)
+      // this.$set(this.table.startObj, 'to', evt.from.className)
+    },
+    end1(evt, originalEvent){
+      console.log('end1===>', evt)
+    },
+    // 减少车次
+    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)
+          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'
+            }
+          }
+          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'
+            }
+          }
+          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'
+            }
+          }
+          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()
+            }
+          })
+        })
+      }
+    },
+    handleEmpty(){
+      console.log('点击了清空')
+      var list = []
+      for(let i=0;i<this.create.list2.length;i++){
+        var obj = {}
+        obj.pastureid = this.create.list2[i].pastureid
+        obj.id = this.create.list2[i].fpdid
+        obj.fttype = this.create.list2[i].fttype
+        obj.lweight = '-'+this.create.list2[i].weight
+        list.push(obj)
+      }
+      this.requestParam = {}
+      this.requestParam.common = { 'returnmap': '0' }
+      this.requestParam.data = []
+      this.requestParam.data[0] = { 'name': 'deleteLpplandtl1DateByLppid', 'type': 'e', 'parammaps': { lppid: this.create.temp.id, pastureid:  Cookies.get('pastureid'),date:this.date }},
+      this.requestParam.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': list }}
+      this.requestParam.data[1].children = []
+      this.requestParam.data[1].children[0] = {
+        'name': 'updateFpdetailUsedate',
+        'type': 'e',
+        'parammaps': { pastureid: '@insertSpotList.pastureid', id: '@insertSpotList.id', fttype: '@insertSpotList.fttype', lweight: '@insertSpotList.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 })
+        } else {
+          this.$notify({ title: '清空成功', message: '清空成功', type: 'success', duration: 2000 })
+          this.getCreateList1()
+        }
+
+      })
+    },
+    handleAllEmpty(){
+      MessageBox.confirm('执行该操作会将现有车次已分配的撒料栏舍全部清空,是否要执行该操作?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        this.requestParam = {}
+        this.requestParam.common = { 'returnmap': '0' }
+        this.requestParam.data = []
+        this.requestParam.data[0] = { 'name': 'deleteLpplandtl1dateAll', 'type': 'e', 'parammaps': { pastureid:  Cookies.get('pastureid'),date:this.date }},
+        this.requestParam.data[1] = { 'name': 'deletefpdetaildateAll', 'type': 'e', 'parammaps': { pastureid:  Cookies.get('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()
+          }
+        })
+      })
+    },
+    getmaterialdetailsList(item){
+      let url = 'authdata/GetDataByName'
+      let data  = {
+        name:"getFTdetailList",page:1,offset:1,pagecount:"",returntype:"Map",
+        parammaps:{
+          pastureid:item.pastureid,ftid:item.ftid,
+          // fttypeid:item.fttypeid,
+        }
+      }
+      postJson(url, data).then(response => {
+        if (response.msg !== 'fail') {
+          this.materialdetailsList = response.data.list
+        } else {
+          this.materialdetailsList = []
+        }
+      })
+    }
+  }
+}
+</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" scoped>
+  .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: 220px;
+      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: 160px;
+        height: 50px;
+        overflow: hidden;
+        line-height: 50px;
+
+        .arr-r-l {
+          float: left;
+          width: 70px;
+
+          .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>

+ 7 - 7
src/views/formulationPlan/dailyExecutionPlan/typePage/premixedPlan.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
     <div class="operation">
-      <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="form_delete">减少车次</el-button>
+      <el-button class="success" icon="el-icon-plus" style="float: left;" @click="handleCreate">{{$t('premixedPlan.xzcc')}}</el-button>
+      <el-button class="danger" icon="el-icon-delete" style="float: left;" @click="form_delete">{{$t('premixedPlan.jscc')}}</el-button>
     </div>
     <div class="search" />
 
@@ -38,7 +38,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="TMR编号" prop="weight" min-width="130px" align="center">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="130px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.tmrcode }}</span>
             <el-select v-if="scope.row.Edit" v-model="scope.row.tmrid" filterable placeholder="" class="filter-item" style="width:80%;padding:10px 0;" @change="(value)=> {changeTMRNumber(value, scope.row)}">
@@ -54,7 +54,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="撒料计划车次跟随" min-width="100px" align="center">
+        <el-table-column :label="$t('premixedPlan.sljhccgs')"  min-width="100px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.lppcode }}</span>
             <el-select v-if="scope.row.Edit" v-model="scope.row.lppid" filterable clearable placeholder="" class="filter-item" style="width:80%;padding:10px 0;" @change="(value)=> {changeCarFollow(value, scope.row)}">
@@ -62,12 +62,12 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="生效" min-width="80px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  min-width="80px" 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="时间" min-width="130px" align="center">
+        <el-table-column :label="$t('premixedPlan.time')"   min-width="130px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.ptime }}</span>
             <el-time-picker v-if="scope.row.Edit" v-model="scope.row.ptime" type="datetime" placeholder="选择时间" format="HH:mm" value-format="HH:mm" style="display: inline-block;width: 95%;" />
@@ -78,7 +78,7 @@
             <span>{{ scope.row.maxweight }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="混料重量" min-width="90px" align="center">
+        <el-table-column :label="$t('premixedPlan.hlzl')"  min-width="90px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.operateweight }}</span>
             <el-input v-if="scope.row.Edit" v-model="scope.row.operateweight" type="number" style="width:80%;padding:10px 0;" />

+ 3 - 3
src/views/formulationPlan/dailyExecutionPlan/typePage/surplusMaterialPlan.vue

@@ -47,12 +47,12 @@
             <span>{{ scope.row.qstr }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="TMR编号" prop="weight" min-width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="110px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.tmrcode }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="生效" min-width="70px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  min-width="70px" 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" />
@@ -63,7 +63,7 @@
             <span>{{ scope.row.times }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="撒料计划车次跟随" min-width="90px" align="center">
+        <el-table-column :label="$t('premixedPlan.sljhccgs')"  min-width="90px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.lppcode }}</span>
           </template>

+ 3 - 3
src/views/formulationPlan/materialIssuancePlan/historyRecord.vue

@@ -26,7 +26,7 @@
             <span>{{ scope.row.sort }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="TMR编号" width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  width="110px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.tmrname }}</span>
           </template>
@@ -36,7 +36,7 @@
             <span>{{ scope.row.display }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="生效" width="100px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  width="100px" 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" @change="handleTakeEffectChange(scope.$index, scope.row)" />
           </template>
@@ -46,7 +46,7 @@
             <span>{{ scope.row.timesstr }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="时间" width="150px" align="center">
+        <el-table-column :label="$t('premixedPlan.time')"   width="150px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.begintime }}</span>
           </template>

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

@@ -3,7 +3,7 @@
     <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="isRoleEdit" class="danger" icon="el-icon-delete" style="float:left;" @click="handleReduceTrains">{{$t('premixedPlan.jscc')}}</el-button>
       <el-button v-if="isRoleEdit && ischeck" class="danger" style="float: left;" @click="handleCheck">校验</el-button>
       <el-button v-else-if="isRoleEdit && !ischeck" class="success" style="float: left;" @click="handleCheck">校验</el-button>
       <el-button v-if="isRoleEdit" class="success" icon="el-icon-download" style="float:left;" @click="handleAutomaticGeneration">自动生成</el-button>
@@ -12,8 +12,8 @@
         <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">{{$t('formulationEvaluation.cancel')}}</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>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" style="float: left;" @click="handleTakeEffect"> {{$t('premixedPlan.sx')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" style="float: left;" @click="handleDisable"> {{$t('premixedPlan.jy')}}</el-button>
       <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float: left;" @click="handleAllEmpty"> 清空已分配栏舍</el-button>
       <el-select v-model="table.getdataListParm.parammaps.times" filterable placeholder="班次" class="filter-item" style="width: 120px;float: left;margin-left: 10px;" @change="changeFrequency">
         <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
@@ -49,7 +49,7 @@
             <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">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  width="110px" align="center" class-name="small-padding fixed-width" fixed="left">
           <template slot-scope="scope">
             <span>{{ scope.row.tmrname }}</span>
           </template>
@@ -59,7 +59,7 @@
             <span>{{ scope.row.display }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="生效" width="70px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  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>
@@ -69,7 +69,7 @@
             <span>{{ scope.row.timesstr }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="时间" width="55px" align="center">
+        <el-table-column :label="$t('premixedPlan.time')"   width="55px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.begintime }}</span>
           </template>

+ 6 - 6
src/views/formulationPlan/materialIssuancePlan/index1.vue

@@ -3,7 +3,7 @@
     <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="isRoleEdit" class="danger" icon="el-icon-delete" style="float:left;" @click="handleReduceTrains">{{$t('premixedPlan.jscc')}}</el-button>
       <el-button v-if="isRoleEdit" class="success" style="float: left;" @click="handleCheck">校验</el-button>
       <el-button v-if="isRoleEdit" class="success" icon="el-icon-download" style="float:left;" @click="handleAutomaticGeneration">自动生成</el-button>
       <el-button v-if="isOrder && isRoleEdit" icon="el-icon-sort" style="float: left;" class="success" @click="handleChangeOrder">{{$t('formulationEvaluation.ggsx')}}</el-button>
@@ -11,8 +11,8 @@
         <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">{{$t('formulationEvaluation.cancel')}}</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>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" style="float: left;" @click="handleTakeEffect"> {{$t('premixedPlan.sx')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" style="float: left;" @click="handleDisable"> {{$t('premixedPlan.jy')}}</el-button>
       <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float: left;" @click="handleAllEmpty"> 清空已分配栏舍</el-button>
       <el-select v-model="table.getdataListParm.parammaps.times" filterable placeholder="班次" class="filter-item" style="width: 120px;float: left;margin-left: 10px;" @change="changeFrequency">
         <el-option v-for="item in frequencyList" :key="item.id" :label="item.name" :value="item.id" />
@@ -48,7 +48,7 @@
             <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">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  width="110px" align="center" class-name="small-padding fixed-width" fixed="left">
           <template slot-scope="scope">
             <span>{{ scope.row.tmrname }}</span>
           </template>
@@ -58,7 +58,7 @@
             <span>{{ scope.row.display }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="生效" width="70px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  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>
@@ -68,7 +68,7 @@
             <span>{{ scope.row.timesstr }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="时间" width="55px" align="center">
+        <el-table-column :label="$t('premixedPlan.time')"   width="55px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.begintime }}</span>
           </template>

+ 17 - 17
src/views/formulationPlan/premixedPlan/index.vue

@@ -1,15 +1,15 @@
 <template>
   <div class="app-container">
     <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="form_delete">减少车次</el-button>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-plus" style="float: left;" @click="handleCreate">{{$t('premixedPlan.xzcc')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-delete" style="float: left;" @click="form_delete">{{$t('premixedPlan.jscc')}}</el-button>
       <el-button v-if="isOrder && isRoleEdit" icon="el-icon-sort" style="float: left;" class="success" @click="handleChangeOrder">{{$t('formulationEvaluation.ggsx')}}</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">{{$t('formulationEvaluation.save')}}</el-button>
         <el-button v-if="isRoleEdit" icon="el-icon-close" class="sortCancel" @click="cancelChangeOrder">{{$t('formulationEvaluation.cancel')}}</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>
+      <el-button v-if="isRoleEdit" class="success" icon="el-icon-open" style="float: left;" @click="handleTakeEffect">{{$t('premixedPlan.sx')}}</el-button>
+      <el-button v-if="isRoleEdit" class="danger" icon="el-icon-turn-off" style="float: left;" @click="handleDisable">{{$t('premixedPlan.jy')}}</el-button>
       <el-button class="import" style="float: right;" @click="handleHistoryRecords">{{$t('dhedFormula.lsjl')}}</el-button>
     </div>
     <div class="search" />
@@ -45,7 +45,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="TMR编号" prop="weight" min-width="130px" align="center">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="130px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.tmrcode }}</span>
             <el-select v-if="scope.row.Edit" v-model="scope.row.tmrid" filterable placeholder="" class="filter-item" style="width:80%;padding:10px 0;" @change="(value)=> {changeTMRNumber(value, scope.row)}">
@@ -61,7 +61,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="撒料计划车次跟随" min-width="90px" align="center">
+        <el-table-column :label="$t('premixedPlan.sljhccgs')"  min-width="90px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.lppcode }}</span>
             <el-select v-if="scope.row.Edit" ref="test" v-model="scope.row.lppid" filterable clearable placeholder="" class="filter-item" style="width:80%;padding:10px 0;" @change="(value)=> {changeCarFollow(value, scope.row)}">
@@ -69,23 +69,23 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column label="生效" min-width="70px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  min-width="70px" 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="时间" min-width="130px" align="center">
+        <!-- <el-table-column :label="$t('premixedPlan.time')"   min-width="130px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.ptime }}</span>
             <el-time-picker v-if="scope.row.Edit" v-model="scope.row.ptime" type="datetime" placeholder="选择时间" format="HH:mm" value-format="HH:mm" style="display: inline-block;width: 95%;" />
           </template>
         </el-table-column> -->
-        <el-table-column label="最大搅拌量(KG)" min-width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.zdjbl')"   min-width="110px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.maxweight }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="混料重量" min-width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.hlzl')"  min-width="110px" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.NoEdit">{{ scope.row.operateweight }}</span>
             <el-input v-if="scope.row.Edit" v-model="scope.row.operateweight" type="number" style="width:80%;padding:10px 0;" />
@@ -150,7 +150,7 @@
                 <span>{{ scope.row.ftname }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="TMR编号" prop="weight" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.tmrcode }}</span>
               </template>
@@ -160,27 +160,27 @@
                 <span>{{ scope.row.times }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="发料计划车次跟随" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.fljhcsgs')"   min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.lppcode }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="生效" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.sx')"  min-width="130px" 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-column label="时间" min-width="180px" align="center">
+            <el-table-column :label="$t('premixedPlan.time')"   min-width="180px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.ptime }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="最大搅拌量(KG)" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.zdjbl')"   min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.maxweight }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="混料重量" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.hlzl')"  min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.operateweight }}</span>
               </template>
@@ -888,7 +888,7 @@ export default {
 
 <style lang="scss" scoped>
   .search{clear: both;}
-  
+
   /deep/ .el-time-panel__btn{
     height: 26px !important;
   }

+ 1 - 1
src/views/formulationPlan/pushMaterialPlan/index.vue

@@ -32,7 +32,7 @@
         <el-table-column type="selection" width="50" />
         <el-table-column :key="1" :label="$t('formulationEvaluation.xh')" align="center" type="index" width="50px" class-name="small-padding fixed-width" fixed="left" />
         <el-table-column label="推料车" min-width="100px" align="center" class-name="small-padding fixed-width" fixed="left" prop="tname" />
-        <el-table-column label="时间" min-width="100px" align="center" prop="date" />
+        <el-table-column :label="$t('premixedPlan.time')"   min-width="100px" align="center" prop="date" />
         <el-table-column :label="$t('formulationEvaluation.remark')" min-width="100px" align="center" prop="remark" />
         <el-table-column :label="$t('errorAnalysis.pen')" min-width="100px" align="center" prop="bname" />
         <el-table-column label="状态" min-width="90px" align="center">

+ 7 - 7
src/views/formulationPlan/surplusMaterialPlan/index.vue

@@ -37,13 +37,13 @@
 
           </template>
         </el-table-column>
-        <el-table-column label="TMR编号" prop="weight" min-width="110px" align="center">
+        <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="110px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.tmrcode }}</span>
 
           </template>
         </el-table-column>
-        <el-table-column label="生效" min-width="70px" align="center">
+        <el-table-column :label="$t('premixedPlan.sx')"  min-width="70px" 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" />
@@ -55,7 +55,7 @@
 
           </template>
         </el-table-column>
-        <el-table-column label="撒料计划车次跟随" min-width="90px" align="center">
+        <el-table-column :label="$t('premixedPlan.sljhccgs')"  min-width="90px" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.lppcode }}</span>
 
@@ -247,12 +247,12 @@
                 <span>{{ scope.row.qstr }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="TMR编号" prop="weight" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.tmrbh')"  prop="weight" min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.tmrcode }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="生效" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.sx')"  min-width="130px" 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)" />
@@ -263,12 +263,12 @@
                 <span>{{ scope.row.times }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="发料计划车次跟随" min-width="130px" align="center">
+            <el-table-column :label="$t('premixedPlan.fljhcsgs')"   min-width="130px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.lppcode }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="时间" min-width="180px" align="center">
+            <el-table-column :label="$t('premixedPlan.time')"   min-width="180px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.rtime }}</span>
               </template>