Browse Source

8081发版

Shan9312 2 months ago
parent
commit
1974d15386

+ 1 - 1
src/lang/en/langModule/common.js

@@ -22,7 +22,7 @@ export default {
   requestMsg: "Request Timeout",
   logoIcon: require("../../../assets/images/logo-icon.jpg"),
   logoM: require("../../../assets/images/logo-en-m.png"),
-  relogo: "Log in again", //重新登陆
+  relogo: "Log in again", //Login again
   conLogo: "Confirm logout",
   watchMore: "see more", //   确认注销
   startTime: "Start Date",

+ 1 - 1
src/lang/zn/langModule/common.js

@@ -21,7 +21,7 @@ export default {
   openGuide: "开启新手引导",
   requestMsg: "请求超时",
   logoIcon: require("../../../assets/images/logo-icon.jpg"),
-  logoM: require("../../../assets/images/logo-en-m.png"),
+  logoM: require("../../../assets/images/logo-zn-m.png"),
   relogo: "重新登陆", //重新登陆
   conLogo: "确认注销",
   watchMore: "查看更多",

+ 3 - 3
src/utils/request.js

@@ -16,9 +16,9 @@ var reg =
   /(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)/;
 var browserUrl = window.location.hostname;
 console.log("========url===", reg.test(browserUrl));
-// if (reg.test(browserUrl)){
-//   URL = window.location.protocol +"//"+ browserUrl + ":8082"
-// }
+if (reg.test(browserUrl)) {
+  URL = window.location.protocol + "//" + browserUrl + ":8081/";
+}
 
 Cookies.set("url", URL);
 console.log(process.env.VUE_APP_BASE_API, "===========URL1111");

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

@@ -181,7 +181,7 @@
       },
       // 点击删除
       handleDelete(index, row) {
-        this.$confirm('确定删除当前剩料信息吗?', this.$t('message.msg111'), {
+        this.$confirm('确定删除当前剩料信息吗?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'

+ 1478 - 0
src/views/shedProduction/leftoverUse/index.vue

@@ -0,0 +1,1478 @@
+<template>
+  <div class="app-container">
+    <div class="search">
+      <el-date-picker
+        v-model="table.getdataListParm.parammaps.inputDatetime"
+        class="inputDatetime filter-item"
+        type="daterange"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        style="width: 250px"
+      />
+      <!-- <el-button class="el-icon-arrow-left elIconArrowLeft" @click="handleBefore" />
+      <el-button class="el-icon-arrow-right elIconArrowRight" @click="handleNext" />
+      <el-select v-model="table.getdataListParm.parammaps.ftid" filterable placeholder="栏舍名称" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in houseNameList" :key="item.id" :label="item.bname" :value="item.id" />
+      </el-select>
+      <el-select v-model="record" filterable placeholder="记录" class="filter-item" style="width: 150px;" @change="changeRecord">
+        <el-option v-for="item in recordList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-select v-if="record== '1'" v-model="table.getdataListParm.parammaps.eqcode" filterable placeholder="TMR编号" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in TMRNumberList" :key="item.id" :label="item.tname" :value="item.eqcode" />
+      </el-select> -->
+      <el-button class="successBorder" @click="form_search">查询</el-button>
+      <!-- <el-button class="successBorder" @click="handleRefresh">重置</el-button> -->
+    </div>
+    <div class="operation" v-if="record == '0'">
+      <el-button
+        v-if="isRoleEdit"
+        icon="el-icon-plus"
+        class="success"
+        @click="handleCreate"
+        >新增</el-button
+      >
+      <el-button
+        v-if="isRoleEdit"
+        icon="el-icon-delete"
+        class="danger"
+        @click="form_delete"
+        >删除</el-button
+      >
+      <el-button
+        v-if="isRoleEdit"
+        class="success"
+        icon="el-icon-upload2"
+        @click="handleSAPUpload"
+        >SAP上传</el-button
+      >
+      <!-- <el-button v-if="dataSynchronization.isDataSynchronization && isRoleEdit" class="success" @click="handleDataUpload">数据上传</el-button>
+      <el-upload v-if="isRoleEdit" style="float: right;" :headers="headers" :data="uploadData" :action="uploadExcelUrl" :show-file-list="false" :before-upload="beforeImport" :on-success="handleImportSuccess">
+        <el-button class="import" icon="el-icon-download" style="float: right;">导入</el-button>
+      </el-upload>
+      <el-dropdown style="float: right;margin-right: 10px;">
+        <el-button class="export" icon="el-icon-upload2">导出</el-button>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item  @click.native="handleExport(1)">导出模板</el-dropdown-item>
+          <el-dropdown-item @click.native="handleExport(2)">导出数据</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown> -->
+    </div>
+    <div class="operation" v-else>
+      <el-button
+        v-if="dataSynchronization.isDataSynchronization && isRoleEdit"
+        class="success"
+        @click="handleDataUpload"
+        >数据上传</el-button
+      >
+      <el-button
+        style="float: right; margin-right: 10px"
+        class="export"
+        icon="el-icon-upload2"
+        @click="handleExport(3)"
+        >导出</el-button
+      >
+    </div>
+    <!-- 剩料使用 table -->
+    <div class="table">
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%"
+        :row-style="rowStyle"
+        :cell-style="cellStyle"
+        class="elTable table-fixed"
+        :header-cell-style="{ 'text-align': 'center' }"
+        @selection-change="handleSelectionChange"
+        :max-height="myHeight"
+      >
+        <el-table-column type="selection" align="left" width="50" />
+        <el-table-column label="序号" align="left" type="index" width="50px">
+          <template slot-scope="scope">
+            <span>{{
+              scope.$index + (table.pageNum - 1) * table.pageSize + 1
+            }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="栏舍名称"
+          min-width="120px"
+          align="left"
+          prop="barname"
+        />
+        <el-table-column
+          label="配方名称"
+          min-width="120px"
+          align="left"
+          prop="ftname"
+        />
+        <el-table-column
+          label="剩料使用时间"
+          min-width="150px"
+          align="left"
+          prop="date"
+        />
+        <el-table-column
+          label="班次"
+          min-width="90px"
+          align="left"
+          prop="timesstr"
+        />
+        <el-table-column
+          label="替代方案"
+          min-width="100px"
+          align="left"
+          prop="surplus"
+        />
+        <el-table-column
+          label="替代重量(Kg)"
+          min-width="100px"
+          align="left"
+          prop="weight"
+        />
+        <el-table-column
+          label="操作"
+          align="left"
+          width="100"
+          class-name="small-padding fixed-width"
+          fixed="right"
+        >
+          <template slot-scope="{ row }">
+            <!-- <el-button v-if="isRoleEdit" :disabled="row.emp == '设备采集'" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
+            <span v-if="isRoleEdit" class="centerSpan">|</span> -->
+            <el-button
+              v-if="isRoleEdit"
+              :disabled="row.emp == '设备采集'"
+              class="miniDanger"
+              icon="el-icon-delete"
+              @click="handleRowDelete(row)"
+            />
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        v-show="table.total >= 0"
+        :total="table.total"
+        :page.sync="table.getdataListParm.offset"
+        :limit.sync="table.getdataListParm.pagecount"
+        @pagination="getList"
+      />
+    </div>
+
+    <!-- 新增/编辑 -->
+    <el-dialog
+      :fullscreen="dialogFull"
+      :visible.sync="create.dialogFormVisible"
+      :close-on-click-modal="false"
+      v-if="create.dialogFormVisible"
+      width="40%"
+    >
+      <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="app-add">
+        <el-form
+          ref="temp"
+          :rules="create.rules"
+          :model="create.temp"
+          label-position="right"
+          label-width="135px"
+          style="width: 90%; margin: 0 auto 50px"
+        >
+          <el-row v-if="create.dialogStatus == 'create'">
+            <el-col :span="20">
+              <el-form-item label="栏舍名称:" prop="barid">
+                <el-select
+                  ref="ftid"
+                  v-model="create.temp.barid"
+                  :disabled="create.dialogStatus == 'update'"
+                  filterable
+                  placeholder="栏舍名称"
+                  class="filter-item"
+                  style="width: 100%"
+                  @change="changeBar"
+                >
+                  <el-option
+                    v-for="item in houseNameList"
+                    :key="item.id"
+                    :label="item.bname"
+                    :value="item.id"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row v-else>
+            <el-col :span="20">
+              <el-form-item label="栏舍名称:" prop="barname">
+                <el-input
+                  ref="barname"
+                  v-model="create.temp.barname"
+                  disabled
+                  class="filter-item"
+                  placeholder=""
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <!-- TODO: -->
+          <el-row>
+            <el-col :span="20">
+              <el-form-item label="配方名称:">
+                <el-input
+                  v-model="create.temp.ftname"
+                  class="filter-item"
+                  placeholder="配方名称"
+                  disabled
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="20">
+              <el-form-item label="剩料使用时间:" prop="date">
+                <el-date-picker
+                  v-model="create.temp.date"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  style="width: 100%"
+                  :picker-options="pickerOptions"
+                  placeholder="剩料使用时间"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="20">
+              <el-form-item label="班次:">
+                <el-select
+                  ref="times"
+                  v-model="create.temp.times"
+                  filterable
+                  placeholder="班次"
+                  :disabled="create.dialogStatus == 'update'"
+                  class="filter-item"
+                  style="width: 100%"
+                >
+                  <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="20">
+              <el-form-item label="替代方案:" prop="surplus">
+                <el-select
+                  style="width: 100%"
+                  v-model="create.temp.surplus"
+                  filterable
+                  clearable
+                  placeholder="替代方案"
+                  class="filter-item"
+                  @change="handlegetSurplus"
+                >
+                  <el-option
+                    v-for="item in tableData"
+                    :key="item.id"
+                    :label="item.surplus"
+                    :value="item.surplus"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="20">
+              <el-form-item label="替代重量(Kg):" prop="weight">
+                <el-input
+                  ref="weight"
+                  v-model="create.temp.weight"
+                  class="filter-item"
+                  placeholder="替代重量"
+                  type="number"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button
+            class="cancelClose"
+            @click="
+              create.dialogFormVisible = false;
+              getList();
+            "
+            >关闭</el-button
+          >
+          <el-button
+            v-if="
+              create.dialogStatus === 'create' ||
+              create.dialogStatus === 'update'
+            "
+            class="save"
+            :disabled="isokDisable"
+            @click="
+              create.dialogStatus === 'create' ? createData() : updateData()
+            "
+            >确认</el-button
+          >
+        </div>
+      </div>
+    </el-dialog>
+
+    <!-- sap上传 -->
+    <el-dialog
+      title="SAP上传"
+      :destroy-on-close="true"
+      :visible.sync="sapUpload.dialogFormVisible"
+      :close-on-click-modal="false"
+      width="40%"
+    >
+      <div class="sapUpload">
+        <el-form
+          ref="sapUpload"
+          :rules="sapUpload.rules"
+          :model="sapUpload.temp"
+          label-position="right"
+          label-width="100px"
+          style="width: 100%; margin: 0 auto 50px"
+        >
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="时间:" prop="date">
+                <el-date-picker
+                  v-model="sapUpload.temp.date"
+                  :clearable="false"
+                  class="filter-item"
+                  type="date"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div slot="footer" class="dialog-footer" style="bottom: 20px">
+          <el-button
+            class="cancelClose"
+            @click="
+              sapUpload.dialogFormVisible = false;
+              getList();
+            "
+            >取消</el-button
+          >
+          <el-button
+            class="save"
+            :disabled="isokDisable"
+            @click="sapUploadData()"
+            >确认</el-button
+          >
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  GetDataByName,
+  PostDataByName,
+  getSurplus,
+  GetDataByNames,
+  checkButtons,
+  postJson2,
+  postJson,
+} from "@/api/common";
+import Cookies from "js-cookie";
+import { parseTime, json2excel } from "@/utils/index.js";
+import Pagination from "@/components/Pagination";
+import { MessageBox } from "element-ui";
+import axios from "axios";
+import { getToken } from "@/utils/auth";
+export default {
+  name: "MaterialRemainingRecord",
+  components: { Pagination },
+  data() {
+    return {
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now() - 8.64e6; //如果没有后面的-8.64e6就是不可以选择今天的
+        },
+      },
+      enterTime: "",
+      tableData: [],
+      sapUpload: {
+        dialogFormVisible: false,
+        dialogStatus: "",
+        temp: {
+          date: parseTime(new Date(), "{y}-{m}-{d}"),
+        },
+        rules: {
+          date: [
+            { required: true, message: "原剩料所属时间必填", trigger: "blur" },
+          ],
+        },
+        getdataListParm: {
+          name: "getSysoptEnable",
+          page: 1,
+          offset: 1,
+          pagecount: 1,
+          returntype: "Map",
+          parammaps: {
+            pastureid: Cookies.get("pastureid"),
+            inforname: "sapupload",
+          },
+        },
+        isSap: false,
+      },
+      dialogFull: false,
+      isRoleEdit: [],
+      getParmas: {
+        name: "getFPList",
+        page: 1,
+        offset: 1,
+        pagecount: 0,
+        returntype: "Map",
+        parammaps: {
+          pastureid: Cookies.get("pastureid"),
+          ftname: "",
+        },
+      },
+      requestParams: [
+        {
+          name: "getBarListEnable",
+          offset: 0,
+          pagecount: 0,
+          parammaps: { pastureid: Cookies.get("pastureid") },
+        },
+        {
+          name: "getSysoptEnable",
+          offset: 0,
+          pagecount: 0,
+          parammaps: {
+            pastureid: Cookies.get("pastureid"),
+            inforname: "times",
+          },
+        },
+        {
+          name: "getTMRListEnableType",
+          offset: 0,
+          pagecount: 0,
+          parammaps: { pastureid: Cookies.get("pastureid"), eqtype: "1" },
+        },
+      ],
+      houseNameList: [], // 栏舍名称
+      frequencyList: [], // 收集
+      recordList: [
+        { id: "0", name: "手动记录" },
+        { id: "1", name: "TMR设备自动记录" },
+      ],
+      record: "0",
+      table: {
+        getdataListParm: {
+          name: "getWasteuse",
+          page: 1,
+          offset: 1,
+          pagecount: parseInt(Cookies.get("pageCount")),
+          returntype: "Map",
+          parammaps: {
+            pastureId: Cookies.get("pastureid"),
+            ftid: "",
+            startdate: "",
+            enddate: "",
+            inputDatetime: "",
+          },
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {},
+        tableKey2: 0,
+        listLoading2: false,
+        list2: [],
+      },
+
+      // 新增/编辑
+      create: {
+        dialogFormVisible: false,
+        dialogStatus: "",
+        temp: {
+          pastureId: Cookies.get("pastureid"),
+          operatetime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}"),
+          emp: Cookies.get("employename"),
+          ftid: "",
+          ftname: "",
+          weight: "",
+          times: "1",
+          surplusId: "",
+          surplus: "",
+        },
+        rules: {
+          ftid: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          weight: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          times: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          ftname: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          surplus: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          date: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+          barid: [
+            {
+              type: "string",
+              required: true,
+              message: "必填",
+              trigger: "blur",
+            },
+          ],
+        },
+        getdataListParm: {
+          name: "getBarfeedremainEmpHis",
+          page: 1,
+          offset: 1,
+          pagecount: 10,
+          returntype: "Map",
+          parammaps: {
+            pastureid: Cookies.get("pastureid"),
+          },
+        },
+        noteTakerList: [], // 记录人
+      },
+      textMap: {
+        create: "新增",
+        update: "编辑",
+      },
+
+      requestParam: {},
+      download: {
+        getdataListParm: {
+          name: "getBarfeedremainList",
+          page: 1,
+          offset: 1,
+          pagecount: 0,
+          returntype: "Map",
+          parammaps: {
+            pastureid: Cookies.get("pastureid"),
+            ftid: "",
+            startdate: "",
+            enddate: "",
+            inputDatetime: "",
+          },
+        },
+        list: [],
+      },
+      dataSynchronization: {
+        dialogFormVisible: false,
+        dialogStatus: "",
+        getdataListParm: {
+          name: "getSysoptEnable",
+          page: 1,
+          offset: 1,
+          pagecount: 1,
+          returntype: "Map",
+          parammaps: {
+            pastureid: Cookies.get("pastureid"),
+            inforname: "wgSap",
+          },
+        },
+        isDataSynchronization: false,
+      },
+      isokDisable: false,
+      selectList: [],
+      rowStyle: { maxHeight: 30 + "px", height: 30 + "px" },
+      cellStyle: { padding: 0 + "px" },
+      myHeight: document.documentElement.clientHeight - 85 - 150 - 45,
+      url: "authdata/ImportExcel",
+    };
+  },
+  computed: {
+    // 设置请求头
+    headers() {
+      return {
+        token: getToken(),
+      };
+    },
+    uploadData() {
+      return {
+        name: "checkbarname,checktimes,insertBarfeedremainUpload",
+        importParams:
+          "栏舍名称,配方名称,原剩料所属时间,剩料量(kg),干物质,班次收集(一天/第一班/第二班/第三班),收集时间,操作人",
+        sheetname: "Sheet1",
+        // 登录牧场
+        pastureid: Cookies.get("pastureid"),
+        // 日期参数
+        dateParams: "原剩料所属时间",
+        // 必填参数
+        requiredParams:
+          "栏舍名称,剩料量(kg),班次收集(一天/第一班/第二班/第三班)",
+        // 为数值的参数
+        numParams: "剩料量(kg)",
+      };
+    },
+    // 设置上传地址
+    uploadExcelUrl() {
+      // return Cookies.get('url') + 'authdata/ImportExcel'
+      return Cookies.get("url") + "authdata/ImportExcel";
+    },
+    // let url = 'authdata/ImportExcel';
+  },
+  created() {
+    console.log(document.querySelector("html").getAttribute("domain"), "7777");
+    this.getDataSynchronization();
+    this.getList();
+    this.getDownList();
+    this.getButtons();
+    this.getLeftTable();
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.enterTime = Date.now();
+    });
+  },
+  beforeUnmount() {
+    const stayTime = Math.round((Date.now() - this.enterTime) / 1000);
+    window._hmt?.push([
+      "_trackEvent",
+      "PageStay",
+      "Duration",
+      this.$route.path,
+      stayTime,
+    ]);
+  },
+  methods: {
+    // 获取剩料列表
+    async getLeftTable() {
+      const { data } = await getSurplus(Cookies.get("pastureid"));
+      console.log(data, "table");
+      this.tableData = data;
+    },
+    // 获取替代方案的名字
+    handlegetSurplus(val) {
+      const id = this.tableData.find((item) => {
+        return item.surplus == val;
+      }).id;
+      this.create.temp.surplusId = id;
+      console.log(id, "surplus");
+    },
+    // 点击sap上传
+    handleSAPUpload() {
+      this.sapUpload.dialogStatus = "sapUpload";
+      this.sapUpload.dialogFormVisible = true;
+    },
+    sapUploadData() {
+      this.$refs["sapUpload"].validate((valid) => {
+        if (valid) {
+          const url = "authdata/xdmy/sap/wasteuse";
+          const data = {
+            pastureId: Cookies.get("pastureid"),
+            date: parseTime(this.sapUpload.temp.date, "{y}-{m}-{d}"),
+          };
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+
+          postJson(url, data).then((response) => {
+            setTimeout(() => {
+              loading.close();
+            }, 1000);
+            if (response.msg == "ok") {
+              this.$notify({
+                title: "",
+                message: "成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.sapUpload.dialogFormVisible = false;
+              this.getList();
+            } else {
+              this.$notify({
+                title: "失败",
+                message: response.data,
+                type: "warning",
+                duration: 2000,
+              });
+            }
+          });
+        }
+      });
+    },
+
+    getDataSynchronization() {
+      GetDataByName(this.dataSynchronization.getdataListParm).then(
+        (response) => {
+          // console.log(response.data.list[0])
+          if (response.data.list && response.data.list[0].inforvalue == 0) {
+            this.dataSynchronization.isDataSynchronization = false;
+          } else {
+            this.dataSynchronization.isDataSynchronization = true;
+          }
+        }
+      );
+    },
+    getButtons() {
+      const Edit = "MaterialRemainingRecord";
+      const isRoleEdit = checkButtons(
+        JSON.parse(sessionStorage.getItem("buttons")),
+        Edit
+      );
+      this.isRoleEdit = isRoleEdit;
+    },
+    getDownList() {
+      GetDataByNames(this.requestParams).then((response) => {
+        this.houseNameList = response.data.getBarListEnable.list;
+        this.TMRNumberList = response.data.getTMRListEnableType.list;
+        if (response.data.getSysoptEnable.list !== null) {
+          for (
+            let i = 1;
+            i <= response.data.getSysoptEnable.list[0].inforvalue;
+            i++
+          ) {
+            const obj = {};
+            obj.id = String(i);
+            if (i == 1) {
+              obj.name = "第一班";
+            } else if (i == 2) {
+              obj.name = "第二班";
+            } else if (i == 3) {
+              obj.name = "第三班";
+            } else if (i == 4) {
+              obj.name = "第四班";
+            } else if (i == 5) {
+              obj.name = "第五班";
+            } else if (i == 6) {
+              obj.name = "第六班";
+            }
+            this.frequencyList.push(obj);
+          }
+          // this.frequencyList.unshift({id:'0',name:"一天"})
+        } else {
+          this.frequencyList = [];
+        }
+      });
+    },
+    handleBefore() {
+      if (
+        this.table.getdataListParm.parammaps.inputDatetime !== "" &&
+        this.table.getdataListParm.parammaps.inputDatetime !== null
+      ) {
+        var start = new Date(
+          this.table.getdataListParm.parammaps.inputDatetime[0].setDate(
+            this.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1
+          )
+        );
+        var stop = new Date(
+          this.table.getdataListParm.parammaps.inputDatetime[1].setDate(
+            this.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1
+          )
+        );
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0;
+        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop);
+        this.$forceUpdate();
+      }
+    },
+    handleNext() {
+      if (
+        this.table.getdataListParm.parammaps.inputDatetime !== "" &&
+        this.table.getdataListParm.parammaps.inputDatetime !== null
+      ) {
+        var start = new Date(
+          this.table.getdataListParm.parammaps.inputDatetime[0].setDate(
+            this.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1
+          )
+        );
+        var stop = new Date(
+          this.table.getdataListParm.parammaps.inputDatetime[1].setDate(
+            this.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1
+          )
+        );
+        this.table.getdataListParm.parammaps.inputDatetime.length = 0;
+        this.table.getdataListParm.parammaps.inputDatetime.push(start, stop);
+        this.$forceUpdate();
+      }
+    },
+
+    getList() {
+      this.table.listLoading = true;
+      if (
+        this.table.getdataListParm.parammaps.inputDatetime !== "" &&
+        this.table.getdataListParm.parammaps.inputDatetime !== null
+      ) {
+        this.table.getdataListParm.parammaps.startdate = parseTime(
+          this.table.getdataListParm.parammaps.inputDatetime[0],
+          "{y}-{m}-{d}"
+        );
+        this.table.getdataListParm.parammaps.enddate = parseTime(
+          this.table.getdataListParm.parammaps.inputDatetime[1],
+          "{y}-{m}-{d}"
+        );
+      } else {
+        this.table.getdataListParm.parammaps.inputDatetime = "";
+        this.table.getdataListParm.parammaps.startdate = "";
+        this.table.getdataListParm.parammaps.enddate = "";
+      }
+      GetDataByName(this.table.getdataListParm).then((response) => {
+        console.log("table数据", response.data.list);
+        if (response.data.list !== null) {
+          this.table.list = response.data.list;
+          this.table.pageNum = response.data.pageNum;
+          this.table.pageSize = response.data.pageSize;
+          this.table.total = response.data.total;
+        } else {
+          this.table.list = [];
+        }
+        setTimeout(() => {
+          this.table.listLoading = false;
+        }, 100);
+      });
+    },
+    changeRecord(item) {
+      if (item == "0") {
+        this.table.getdataListParm.name = "getBarfeedremainList";
+      } else {
+        this.table.getdataListParm.name = "getRemainplanrecord";
+      }
+      this.table.getdataListParm.offset = 1;
+      this.getList();
+    },
+    form_search() {
+      console.log("点击了查询");
+      this.table.getdataListParm.offset = 1;
+      this.getList();
+    },
+    handleRefresh() {
+      console.log("点击了重置");
+      this.table.getdataListParm.parammaps.ftid = "";
+      this.table.getdataListParm.parammaps.startdate = "";
+      this.table.getdataListParm.parammaps.enddate = "";
+      this.table.getdataListParm.parammaps.inputDatetime = "";
+      this.table.getdataListParm.offset = 1;
+      this.getList();
+    },
+
+    // 新增
+    resetTemp() {
+      this.create.temp = {
+        pastureId: Cookies.get("pastureid"),
+        operatetime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}"),
+        emp: Cookies.get("employename"),
+        ftid: "",
+        ftname: "",
+        weight: "",
+        times: "1",
+        date: "",
+      };
+    },
+    blurEmp(item) {
+      this.create.temp.emp = item.target.value;
+    },
+    // 栏舍名称
+    changeBar(item) {
+      this.create.temp.ftname = this.houseNameList.find(
+        (obj) => obj.id === item
+      ).bname;
+      this.create.temp.ftid = item;
+      this.getParmas.parammaps.barid = item;
+      this.chooseftname();
+    },
+    // 根据栏舍选择配方名称
+    chooseftname() {
+      GetDataByName(this.getParmas).then((res) => {
+        const { data } = res;
+        const ftname = data.list.length && data.list[0].ftname;
+        this.$set(this.create.temp, "ftname", ftname);
+        // this.create.temp.ftname = ftname;
+        console.log(this.create.temp.ftname, ftname, "配方名字");
+      });
+    },
+
+    getNoteTakerList() {
+      GetDataByName(this.create.getdataListParm).then((response) => {
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            response.data.list[i].myId = i;
+          }
+          this.create.noteTakerList = response.data.list;
+          console.log("记录人数据", response.data.list);
+          console.log(this.create.noteTakerList);
+        } else {
+          this.create.noteTakerList = [];
+        }
+      });
+    },
+    handleCreate() {
+      console.log("点击了新增", this.create);
+
+      this.dialogFull = false;
+      this.resetTemp();
+      this.getNoteTakerList();
+      this.create.dialogStatus = "create";
+      this.create.dialogFormVisible = true;
+    },
+    createData() {
+      console.log("点击了新增保存");
+      console.log(this.create.temp, "发送数据");
+      this.isokDisable = true;
+      setTimeout(() => {
+        this.isokDisable = false;
+      }, 1000);
+      this.$refs["temp"].validate((valid) => {
+        if (valid) {
+          this.isokDisable = true;
+          setTimeout(() => {
+            this.isokDisable = false;
+          }, 1000);
+          const weight = /^\d+(\.\d{1,2})?$/;
+          // 剩料量
+          if (!weight.test(parseFloat(this.create.temp.weight))) {
+            this.$message({
+              type: "error",
+              message: "剩料量请输入自然数并保留两位小数",
+              duration: 2000,
+            });
+            return false;
+          }
+          this.requestParam.name = "insertWasteuse";
+          this.requestParam.parammaps = this.create.temp;
+
+          if (this.create.temp.emp == "") {
+            this.create.temp.emp = Cookies.get("employename");
+          }
+          console.log("新增保存发送参数", this.requestParam);
+          PostDataByName(this.requestParam).then((response) => {
+            if (response.msg !== "fail") {
+              this.$notify({
+                title: "成功",
+                message: "保存成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.create.dialogFormVisible = false;
+              this.getList();
+            } else {
+              const ftid = new RegExp("key 'ftid'");
+              if (ftid.test(response.data)) {
+                this.$message({
+                  type: "error",
+                  message: "该栏舍该班次收集今日剩料量已存在,不可重复生成",
+                  duration: 2000,
+                });
+              } else {
+                this.$notify({
+                  title: "保存失败",
+                  message: response.data,
+                  type: "warning",
+                  duration: 2000,
+                });
+              }
+            }
+          });
+        }
+      });
+    },
+
+    // 编辑
+    handleUpdate(row) {
+      console.log("点击了编辑", row);
+      console.log(this.frequencyList, "frequencyList");
+      this.dialogFull = false;
+      row.ftid = String(row.ftid);
+      this.create.temp = Object.assign({}, row);
+      this.create.temp.id = row.id;
+
+      this.getNoteTakerList();
+      this.create.dialogStatus = "update";
+      this.create.dialogFormVisible = true;
+    },
+    updateData() {
+      this.isokDisable = true;
+      setTimeout(() => {
+        this.isokDisable = false;
+      }, 1000);
+      this.$refs["temp"].validate((valid) => {
+        if (valid) {
+          this.isokDisable = true;
+          setTimeout(() => {
+            this.isokDisable = false;
+          }, 1000);
+          const weight = /^\d+(\.\d{1,2})?$/;
+          // 剩料量
+          if (!weight.test(parseFloat(this.create.temp.weight))) {
+            this.$message({
+              type: "error",
+              message: "剩料量请输入自然数并保留两位小数",
+              duration: 2000,
+            });
+            return false;
+          }
+          this.requestParam.name = "editWasteuse";
+          this.requestParam.parammaps = this.create.temp;
+          if (this.create.temp.emp == "") {
+            this.create.temp.emp = Cookies.get("employename");
+          }
+          PostDataByName(this.requestParam).then((response) => {
+            console.log("新增保存发送参数", this.requestParam);
+            if (response.msg !== "fail") {
+              this.$notify({
+                title: "成功",
+                message: "保存成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.create.dialogFormVisible = false;
+              this.getList();
+            } else {
+              this.$notify({
+                title: "保存失败",
+                message: response.data,
+                type: "warning",
+                duration: 2000,
+              });
+            }
+          });
+        }
+      });
+    },
+
+    // 删除
+    handleRowDelete(row, type) {
+      console.log("点击了行内删除");
+      MessageBox.confirm("是否确认删除此信息?", {
+        confirmButtonText: "确认",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.selectList = [];
+          this.requestParam.name = "delWasteuse";
+          this.requestParam.parammaps = {};
+          this.requestParam.parammaps.pastureId = row.pastureid;
+          if (type == 1) {
+            this.requestParam.parammaps.id = row;
+          } else {
+            this.requestParam.parammaps.id = row.id;
+          }
+
+          PostDataByName(this.requestParam).then((response) => {
+            if (response.msg === "fail") {
+              this.$notify({
+                title: "删除失败",
+                message: response.data,
+                type: "warning",
+                duration: 2000,
+              });
+            } else {
+              this.$notify({
+                title: "成功",
+                message: "删除成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.getList();
+            }
+          });
+        })
+        .catch(() => {
+          this.$message({ type: "info", message: "已取消删除" });
+        });
+    },
+    handleSelectionChange(val) {
+      console.log("勾选数据", val);
+      this.selectList = val;
+    },
+    form_delete(type) {
+      console.log("点击了删除++++++++");
+      if (this.selectList.length == 0) {
+        this.$message({
+          type: "error",
+          message: "请选择栏舍剩料记录",
+          duration: 2000,
+        });
+      } else {
+        const ids = this.selectList.map((item) => {
+          return item.id;
+        });
+        this.handleRowDelete(ids.toString(), 1);
+      }
+    },
+    // 复制
+    handleCopy() {
+      console.log("点击了复制");
+      if (this.selectList.length == 0) {
+        this.$message({
+          type: "error",
+          message: "请选择栏舍剩料记录",
+          duration: 2000,
+        });
+      } else if (this.selectList.length == 1) {
+        MessageBox.confirm("是否确认复制此信息?", {
+          confirmButtonText: "确认",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            this.requestParam.name = "copybarfeedremain";
+            this.requestParam.parammaps = {};
+            this.requestParam.parammaps.pastureid =
+              this.selectList[0].pastureid;
+            this.requestParam.parammaps.id = this.selectList[0].id;
+            PostDataByName(this.requestParam).then((response) => {
+              if (response.msg === "fail") {
+                const ftid = new RegExp("key 'ftid'");
+                if (ftid.test(response.data)) {
+                  this.$notify({
+                    type: "warning",
+                    message: "该栏舍该班次收集今日剩料量已存在,不可重复生成",
+                    duration: 2000,
+                  });
+                  return;
+                }
+                this.$notify({
+                  title: "保存失败",
+                  message: response.data,
+                  type: "warning",
+                  duration: 2000,
+                });
+              } else {
+                this.$notify({
+                  title: "成功",
+                  message: "保存成功",
+                  type: "success",
+                  duration: 2000,
+                });
+                this.getList();
+              }
+            });
+          })
+          .catch(() => {
+            this.$message({ type: "info", message: "已取消复制" });
+          });
+      } else {
+        this.$message({
+          type: "error",
+          message: "请选择一条栏舍剩料记录",
+          duration: 2000,
+        });
+      }
+    },
+    // 导出
+    handleExport(item) {
+      if (item == 1) {
+        console.log("点击了导出模板");
+        console.log("点击了导出模板");
+        const requestParam = this.requestParam;
+        const url = Cookies.get("url") + "authdata/barfeedremain/excel"; // 请求下载文件的地址
+        console.log(url);
+        axios({
+          method: "POST",
+          url: url,
+          data: requestParam,
+          headers: { token: getToken(), optname: "insertcustomdoc" },
+          responseType: "blob",
+        }).then((res) => {
+          if (!res) return;
+          this.percentage = 99;
+          setTimeout(() => {
+            this.isPercentage = false;
+          }, 2000);
+          const blob = new Blob([res.data], {
+            type: "application/octet-stream;charset=utf-8",
+          });
+          const url = window.URL.createObjectURL(blob);
+          const aLink = document.createElement("a");
+          aLink.style.display = "none";
+          aLink.href = url;
+          const docname = "栏舍剩料记录导入模板.xlsx";
+          aLink.setAttribute("download", docname); // 下载的文件
+          document.body.appendChild(aLink);
+          aLink.click();
+          document.body.removeChild(aLink);
+          window.URL.revokeObjectURL(url);
+        });
+      } else {
+        console.log("点击了导出数据", item, this.record);
+        if (this.record == "0") {
+          this.download.getdataListParm.name = "getBarfeedremainList";
+        } else {
+          this.download.getdataListParm.name = "getRemainplanrecord";
+        }
+        this.download.getdataListParm.parammaps =
+          this.table.getdataListParm.parammaps;
+        if (
+          this.download.getdataListParm.parammaps.inputDatetime !== "" &&
+          this.download.getdataListParm.parammaps.inputDatetime !== null
+        ) {
+          this.download.getdataListParm.parammaps.startdate = parseTime(
+            this.download.getdataListParm.parammaps.inputDatetime[0],
+            "{y}-{m}-{d}"
+          );
+          this.download.getdataListParm.parammaps.enddate = parseTime(
+            this.download.getdataListParm.parammaps.inputDatetime[1],
+            "{y}-{m}-{d}"
+          );
+        } else {
+          this.download.getdataListParm.parammaps.inputDatetime = "";
+          this.download.getdataListParm.parammaps.startdate = "";
+          this.download.getdataListParm.parammaps.enddate = "";
+        }
+        GetDataByName(this.download.getdataListParm).then((response) => {
+          if (response.data.list !== null) {
+            this.download.list = response.data.list;
+          } else {
+            this.download.list = [];
+          }
+          if (item == 2) {
+            var excelDatas1 = [
+              {
+                tHeader: [
+                  "栏舍名称",
+                  "配方名称",
+                  "原剩料所属时间",
+                  "剩料量(kg)",
+                  "班次(收集)",
+                  "收集时间",
+                  "操作人",
+                ],
+                filterVal: [
+                  "ftname",
+                  "ftname",
+                  "date",
+                  "weight",
+                  "timesstr",
+                  "operatetime",
+                  "emp",
+                ],
+                tableDatas: this.download.list,
+                sheetName: "Sheet1",
+              },
+            ];
+            json2excel(excelDatas1, "栏舍剩料记录-手动记录", true, "xlsx");
+          } else {
+            var excelDatas2 = [
+              {
+                tHeader: [
+                  "TMR设备编号",
+                  "TMR设备名称",
+                  "TMR设备类型",
+                  "栏舍名称",
+                  "收集时间",
+                  "剩料重量(kg)",
+                  "开始重量(kg)",
+                  "结束重量(kg)",
+                  "驾驶员",
+                ],
+                filterVal: [
+                  "eqcode",
+                  "eqname",
+                  "tclassname",
+                  "ftname",
+                  "createtime",
+                  "weight",
+                  "beginweight",
+                  "endweight",
+                  "driver",
+                ],
+                tableDatas: this.download.list,
+                sheetName: "Sheet1",
+              },
+            ];
+            json2excel(
+              excelDatas2,
+              "栏舍剩料记录-TMR设备自动记录",
+              true,
+              "xlsx"
+            );
+          }
+        });
+      }
+    },
+
+    beforeImport(file) {
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isLt2M) {
+        this.$message.error("上传文件大小不能超过 2MB!");
+      }
+      return isLt2M;
+    },
+    handleImportSuccess(res, file) {
+      this.getList();
+      if (res.msg === "ok") {
+        this.$message({
+          title: "成功",
+          message: "导入成功:" + res.data.success + "条!",
+          type: "success",
+          duration: 2000,
+        });
+        if (res.data.err_count > 0) {
+          this.$notify({
+            title: "失败",
+            message: "导入失败:" + res.data.err_count + "条!",
+            type: "danger",
+            duration: 2000,
+          });
+          import("@/vendor/Export2Excel").then((excel) => {
+            const list1 = res.data.result;
+            const tHeader = [
+              "栏舍名称",
+              "配方名称",
+              "原剩料所属时间",
+              "剩料量(kg)",
+              "干物质",
+              "班次(收集)",
+              "收集时间",
+              "操作人",
+              "错误信息",
+            ];
+            const filterVal = [
+              "栏舍名称",
+              "配方名称",
+              "原剩料所属时间",
+              "剩料量(kg)",
+              "干物质",
+              "班次(收集)",
+              "收集时间",
+              "操作人",
+              "error_msg",
+            ];
+            const data1 = this.formatJson(filterVal, list1);
+            excel.export_json_to_excel({
+              header: tHeader,
+              data: data1,
+              filename: "栏舍剩料记录导入报错信息",
+              autoWidth: true,
+              bookType: "xlsx",
+            });
+          });
+        }
+      } else {
+        this.$notify({
+          title: "失败",
+          message: "上传失败",
+          type: "danger",
+          duration: 2000,
+        });
+      }
+    },
+    formatJson(filterVal, jsonData) {
+      return jsonData.map((v) =>
+        filterVal.map((j) => {
+          if (j === "timestamp") {
+            return parseTime(v[j]);
+          } else {
+            return v[j];
+          }
+        })
+      );
+    },
+    handleDataUpload() {
+      let a = Cookies.get("url");
+      let b = a.search(8081);
+      let c = a.substring(0, a.search(8081)) + "8082";
+      let d = a.substring(0, a.lastIndexOf("/"));
+      console.log(d);
+      let url = "";
+      if (b == -1) {
+        url = d + ":8082";
+      } else {
+        url = c;
+      }
+      console.log(url, "url");
+      let _url = url + "/authdata/surplus/push";
+      let data = {
+        date: parseTime(new Date(), "{y}-{m}-{d}"),
+        pastureId: Cookies.get("pastureid"),
+      };
+      console.log(_url, "_url");
+      postJson2(_url, data).then((response) => {
+        if (response.msg == "ok") {
+          this.$notify({
+            title: "",
+            message: response.data,
+            type: "success",
+            duration: 2000,
+          });
+        } else {
+          this.$notify({
+            title: "上传失败",
+            message: response.data,
+            type: "warning",
+            duration: 2000,
+          });
+        }
+      });
+    },
+  },
+};
+</script>