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