|
@@ -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>
|