<template> <div class="app-container"> <div class="app-container-father"> <div class="dv-container-left"> <div class="dv-container-left-component"> <div class="component-left">任务号:</div> <div class="component-right"> <el-input v-model="queryConfig.taskNo" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">远程任务号:</div> <div class="component-right"> <el-input v-model="queryConfig.remoteTaskId" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">容器号:</div> <div class="component-right"> <el-input v-model="queryConfig.containerCode" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">起点库位:</div> <div class="component-right"> <el-input v-model="queryConfig.fromLocationCode" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">终点库位:</div> <div class="component-right"> <el-input v-model="queryConfig.toLocationCode" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">起点站台:</div> <div class="component-right"> <el-input v-model="queryConfig.fromStationCode" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">终点站台:</div> <div class="component-right"> <el-input v-model="queryConfig.toStationCode" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">任务状态:</div> <div class="component-right"> <el-select v-model="queryConfig.status" placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> <div class="dv-container-left-component"> <div class="component-left">开始时间:</div> <div class="component-right"> <el-date-picker v-model="form.startTime" type="datetime" placeholder="选择日期时间" /> </div> </div> <div class="dv-container-left-component"> <div class="component-left">结束时间:</div> <div class="component-right"> <el-date-picker v-model="form.endTime" type="datetime" placeholder="选择日期时间" /> </div> </div> <!-- button --> <div class="button-container"> <el-button class="T1" @click="btnAction()">查询</el-button> <el-button class="T1" @click="btnAdd()">新增</el-button> <el-button class="T1" @click="deleteData()">删除</el-button> </div> <div class="button-container"> <!-- <el-button class="T1" @click="issued()">下发</el-button> --> <!-- <el-button class="T1" @click="ExportList()">导出</el-button> --> </div> <div class="button-containerTwo"> <el-button class="T1" type="danger" @click="forceComplete()" >强制完成</el-button > <el-button class="T1" type="warning" @click="maintenance()" >维护</el-button > </div> </div> <div class="dv-container-right"> <el-table v-loading="listLoading" :data="sysTable" element-loading-text="Loading" border fit height="700" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#d9ebfe', color: '#000000' }" > <el-table-column type="selection" align="center" width="55"> </el-table-column> <el-table-column align="center" label="内部任务号" width="100"> <template slot-scope="scope"> {{ scope.row.id }} </template> </el-table-column> <el-table-column label="远程任务号" width="100"> <template slot-scope="scope"> {{ scope.row.remoteTaskId }} </template> </el-table-column> <el-table-column label="前置堆垛机任务" width="120"> <template slot-scope="scope"> {{ scope.row.preSRMTaskId }} </template> </el-table-column> <el-table-column label="容器号"> <template slot-scope="scope"> {{ scope.row.containerCode }} </template> </el-table-column> <el-table-column label="堆垛机名"> <template slot-scope="scope"> {{ scope.row.srmCode }} </template> </el-table-column> <el-table-column label="任务类型"> <template slot-scope="scope"> {{ scope.row.type }} </template> </el-table-column> <el-table-column label="任务状态"> <template slot-scope="scope"> {{ scope.row.status }} </template> </el-table-column> <el-table-column label="起点库位"> <template slot-scope="scope"> {{ scope.row.fromLocationCode }} </template> </el-table-column> <el-table-column label="终点库位"> <template slot-scope="scope"> {{ scope.row.toLocationCode }} </template> </el-table-column> <el-table-column label="起点站台"> <template slot-scope="scope"> {{ scope.row.fromStationCode }} </template> </el-table-column> <el-table-column label="终点站台"> <template slot-scope="scope"> {{ scope.row.toStationCode }} </template> </el-table-column> <el-table-column label="终点站台组" width="100"> <template slot-scope="scope"> {{ scope.row.toStationCodes }} </template> </el-table-column> <el-table-column label="巷道"> <template slot-scope="scope"> {{ scope.row.roadway }} </template> </el-table-column> <el-table-column label="提交标识"> <template slot-scope="scope"> {{ scope.row.commitFlag }} </template> </el-table-column> <el-table-column label="重发标识"> <template slot-scope="scope"> {{ scope.row.sendAgain }} </template> </el-table-column> <el-table-column label="空出标识"> <template slot-scope="scope"> {{ scope.row.isEmptyOut }} </template> </el-table-column> <el-table-column label="取货错标识" width="100"> <template slot-scope="scope"> {{ scope.row.isForkError }} </template> </el-table-column> <el-table-column label="满入标识"> <template slot-scope="scope"> {{ scope.row.isDoubleIn }} </template> </el-table-column> <el-table-column label="满入位置"> <template slot-scope="scope"> {{ scope.row.reToLocationCode }} </template> </el-table-column> <el-table-column label="货叉标识"> <template slot-scope="scope"> {{ scope.row.forkFlag }} </template> </el-table-column> <el-table-column label="优先级"> <template slot-scope="scope"> {{ scope.row.priority }} </template> </el-table-column> <el-table-column label="长"> <template slot-scope="scope"> {{ scope.row.length }} </template> </el-table-column> <el-table-column label="宽"> <template slot-scope="scope"> {{ scope.row.width }} </template> </el-table-column> <el-table-column label="高"> <template slot-scope="scope"> {{ scope.row.height }} </template> </el-table-column> <el-table-column label="重"> <template slot-scope="scope"> {{ scope.row.weight }} </template> </el-table-column> <el-table-column label="货物类型"> <template slot-scope="scope"> {{ scope.row.goodsType }} </template> </el-table-column> <el-table-column label="开始执行时间" width="160"> <template slot-scope="scope"> {{ scope.row.beginExecuteTime }} </template> </el-table-column> <el-table-column label="执行结束时间" width="160"> <template slot-scope="scope"> {{ scope.row.endExecuteTime }} </template> </el-table-column> <el-table-column label="创建时间" width="160"> <template slot-scope="scope"> {{ scope.row.created }} </template> </el-table-column> <el-table-column label="创建人"> <template slot-scope="scope"> {{ scope.row.createdBy }} </template> </el-table-column> <el-table-column label="更新时间" width="160"> <template slot-scope="scope"> {{ scope.row.updated }} </template> </el-table-column> <el-table-column label="更新人"> <template slot-scope="scope"> {{ scope.row.updatedBy }} </template> </el-table-column> </el-table> <!-- 分页 --> <div class="pagination-container"> <el-pagination background layout="prev, pager, next" :current-page="queryConfig.currentPage" :page-size="queryConfig.pageSize" :total="total" @current-change="handleCurrentChange" > </el-pagination> </div> </div> <!-- 新增弹框 --> <el-dialog title="堆垛机新增" :visible.sync="dialogFormVisible"> <div class="container"> <div class="box"> <div class="inner-left">远程任务标识:</div> <div class="inner-right"> <el-input v-model="elAddDialog.remoteTaskId" /> </div> </div> <div class="box"> <div class="inner-left">前置堆垛机任务:</div> <div class="inner-right"> <el-input v-model="elAddDialog.preSRMTaskId" /> </div> </div> <div class="box"> <div class="inner-left">任务类型:</div> <div class="inner-right"> <el-select v-model="elAddDialog.type" placeholder="请选择"> <el-option v-for="item in optionsAdd" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> <div class="box"> <div class="inner-left">优先级:</div> <div class="inner-right"> <el-input v-model="elAddDialog.priority" /> </div> </div> <div class="box"> <div class="inner-left">容器号:</div> <div class="inner-right"> <el-input v-model="elAddDialog.containerCode" /> </div> </div> <div class="box"> <div class="inner-left">堆垛机名:</div> <div class="inner-right"> <el-select v-model="elAddDialog.srmCode" placeholder="请选择"> <el-option v-for="item in optionsAddSRM" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> <div class="box"> <div class="inner-left">起点库位:</div> <div class="inner-right"> <el-input v-model="elAddDialog.fromLocationCod" /> </div> </div> <div class="box"> <div class="inner-left">终点库位:</div> <div class="inner-right"> <el-input v-model="elAddDialog.toLocationCode" /> </div> </div> <div class="box"> <div class="inner-left">起点站台:</div> <div class="inner-right"> <el-select clearable v-model="elAddDialog.fromStationCode" placeholder="请选择" > <el-option v-for="item in optionsAddEnter" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> <div class="box"> <div class="inner-left">终点站台:</div> <div class="inner-right"> <el-select clearable v-model="elAddDialog.toStationCode" placeholder="请选择" > <el-option v-for="item in optionsAddSRMOut" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> <div class="box"> <div class="inner-left">终点站台组:</div> <div class="inner-right"> <el-input v-model="elAddDialog.toStationCodes" /> </div> </div> <div class="box"> <div class="inner-left">货物类型:</div> <div class="inner-right"> <el-input v-model="elAddDialog.goodsType" /> </div> </div> <div class="box"> <div class="inner-left">长:</div> <div class="inner-right"> <el-input v-model="elAddDialog.length" /> </div> </div> <div class="box"> <div class="inner-left">宽:</div> <div class="inner-right"> <el-input v-model="elAddDialog.width" /> </div> </div> <div class="box"> <div class="inner-left">高:</div> <div class="inner-right"> <el-input v-model="elAddDialog.height" /> </div> </div> <div class="box"> <div class="inner-left">重:</div> <div class="inner-right"> <el-input v-model="elAddDialog.weight" /> </div> </div> </div> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="taskAdd()">创 建</el-button> <el-button @click="dialogFormVisible = false">取 消</el-button> </div> </el-dialog> <el-dialog title="堆垛机维护" :visible.sync="dialogFormVisibleTwo" :showClose="false" > <div class="containerTwo"> <div class="box1"> <div class="dv-title" style="margin-left: 10px"> 当前任务号:{{ elMaintenance.id }}<el-button @click="reset()" class="T1" style="margin-left: 10px" >重置所有</el-button > </div> </div> <div class="box2"> <div class="small-box"> <div class="dv-title">远程任务维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">远程任务号:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.remoteTaskId" /> </div> <div class="dv-maintenance-text3"> <!-- <el-button class="T1">修改</el-button> --> </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">前置堆垛机任务:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.preSRMTaskId" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="preSRMTaskEdit()" >修改</el-button > </div> </div> </div> </div> <div class="small-box"> <div class="dv-title">优先级和状态维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">优先级:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.priority" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="priorityEdit()" >修改</el-button > </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">任务状态:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.status" placeholder="请选择" > <el-option v-for="item in optionsStatus" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="statusEdit()">修改</el-button> </div> </div> </div> </div> <div class="small-box"> <div class="dv-title">库位位置维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">起点库位:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.fromLocationCode" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="fromEdit()">修改</el-button> </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">终点库位:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.toLocationCode" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="toEdit()">修改</el-button> </div> </div> </div> </div> <div class="small-box"> <div class="dv-title">站台位置维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">起点站台:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.fromStationCode" placeholder="请选择" > <el-option v-for="item in optionsFrom" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="fromStationEdit()" >修改</el-button > </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">终点站台:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.toStationCode" placeholder="请选择" > <el-option v-for="item in optionsTo" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="toStationEdit()" >修改</el-button > </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">终点站台组:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.toStationCodes" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="toStationCodesEdit()" >修改</el-button > </div> </div> </div> </div> <div class="small-box"> <div class="dv-title">堆垛机货叉维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">当前堆垛机:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.srmCode" placeholder="请选择" > <el-option v-for="item in optionsARM" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="srmCodeEdit()" >修改</el-button > </div> </div> <div class="inner-inner-box2"> <div class="dv-maintenance-text">当前货叉:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.forkFlag" placeholder="请选择" > <el-option v-for="item in optionsFork" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="forkFlagEdit()" >修改</el-button > </div> </div> </div> </div> <div class="small-box"> <div class="dv-title">回传维护</div> <div class="inner-box2"> <div class="inner-inner-box1"> <div class="dv-maintenance-text">任务回传:</div> <div class="dv-maintenance-text2"> <el-select v-model="elMaintenance.commitFlag" placeholder="请选择" > <el-option v-for="item in optionsCommitd" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="commitFlagEdit()" >修改</el-button > </div> </div> </div> </div> </div> <div class="box3"> <div class="dv-title">货物类别维护</div> <div class="dv-maintenance2"> <div class="dv-maintenance2-left"> <div class="dv-maintenance-text">长:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.length" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="lengthEdit()">修改</el-button> </div> </div> <div class="dv-maintenance2-right"> <div class="dv-maintenance-text">宽:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.width" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="widthEdit()">修改</el-button> </div> </div> </div> <div class="dv-maintenance3"> <div class="dv-maintenance3-left"> <div class="dv-maintenance-text">高:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.height" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="heightEdit()">修改</el-button> </div> </div> <div class="dv-maintenance3-right"> <div class="dv-maintenance-text">重:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.weight" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="weightEdit()">修改</el-button> </div> </div> </div> <div class="dv-maintenance4"> <div class="dv-maintenance-text">货物类型:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.goodsType" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="goodsTypeEdit()">修改</el-button> </div> </div> <div class="dv-title">异常情况标记维护</div> <div class="dv-maintenance2"> <div class="dv-maintenance2-left"> <div class="dv-maintenance-text">是否空出:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.isEmptyOut" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="isEmptyOutEdit()" >修改</el-button > </div> </div> <div class="dv-maintenance2-right"> <div class="dv-maintenance-text">是否取货错:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.isForkError" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="isForkErrorEdit()" >修改</el-button > </div> </div> </div> <div class="dv-maintenance3"> <div class="dv-maintenance3-left"> <div class="dv-maintenance-text">重发标记:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.sendAgain" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="sendAgainEdit()" >修改</el-button > </div> </div> <div class="dv-maintenance3-right"> <div class="dv-maintenance-text">是否满入:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.isDoubleIn" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="isDoubleInEdit()" >修改</el-button > </div> </div> </div> <div class="dv-maintenance4"> <div class="dv-maintenance-text">满入库位:</div> <div class="dv-maintenance-text2"> <el-input v-model="elMaintenance.reToLocationCode" /> </div> <div class="dv-maintenance-text3"> <el-button class="T1" @click="reToLocationEdit()" >修改</el-button > </div> </div> </div> </div> <div slot="footer" class="dialog-footer"> <!-- <el-button type="primary" @click="dialogFormVisibleTwo = false" >创 建</el-button > --> <el-button @click="close()">取 消</el-button> </div> </el-dialog> </div> </div> </template> <script> import { GetSRMTasks, getHostType, CreateSRMTask, GetSRMTaskById, CompleteSRMTask, DeleteSRMTaskByIds, SRMPreRemoteTaskEdit, SRMPriorityEdit, SRMStatusEdit, FromLocationCodeEdit, ToLocationCodeEdit, FromStationCodeEdit, ToStationCodeEdit, ToStationCodesEdit, SRMCodeEdit, ForkFlagEdit, SRMCommitEdit, SRMLengthEdit, SRMWidthEdit, SRMHeightEdit, SRMWeightEdit, SRMGoodsTypeEdit, IsEmptyOutEdit, IsForkErrorEdit, SendAgainEdit, IsDoubleInEdit, ReToLocationCodeEdit, } from "@/api/taskManagement/stacker"; export default { data() { return { sysTable: [], // 查询条件 queryConfig: { currentPage: 1, pageSize: 10, taskNo: "", remoteTaskId: "", fromLocationCode: "", toLocationCode: "", fromStationCode: "", toStationCode: "", status: "", containerCode: "", }, //新增参数 elAddDialog: { remoteTaskId: "", preSRMTaskId: 0, containerCode: "", fromLocationCode: "", toLocationCode: "", fromStationCode: "", toStationCode: "", toStationCodes: "", type: "", priority: 0, srmCode: "", goodsType: 0, height: 0, width: 0, length: 0, weight: 0, }, //维护弹出层条件 elMaintenance: {}, elMaintenanceTwo: {}, total: 0, listLoading: false, dialogFormVisible: false, dialogFormVisibleTwo: false, name: "", options: [ { value: "", label: "全部", }, ], optionsAdd: [], optionsAddEnter: [], optionsAddSRM: [], optionsAddSRMOut: [], optionsCommitd: [], optionsStatus: [], optionsStage: [], optionsDevice: [], optionsPick: [], //维护起点站台 optionsFrom: [], optionsTo: [], //当前堆垛机 optionsARM: [], optionsFork: [], form: { startTime: this.$moment() .subtract(7, "days") .format("YYYY-MM-DD 00:00:00"), endTime: this.$moment().add(1, "days").format("YYYY-MM-DD 23:59:59"), }, multipleSelection: [], maintenanceID: null, typeData: [ { code: "In", name: "入库" }, { code: "Out", name: "出库" }, { code: "InStore", name: "库内" }, ], userCode: "", }; }, created() { this.fetchData("SRMTaskStatus"); this.btnAction(); this.userCode = this.$store.state.user.name; }, methods: { //回传 getOne(data, key) { this.optionsCommitd = []; this.optionsFrom = []; this.optionsTo = []; this.optionsARM = []; this.optionsFork = []; let params = { Code: data }; getHostType(params).then((response) => { response.data.dictDetails.forEach((x) => { if (data == "CommitFlags") { this.optionsCommitd.push({ value: x.code, label: x.name }); } else if (data == "SRMTaskStatus") { this.optionsStatus.push({ value: x.code, label: x.name }); } else if (data == "SRMInStation") { this.optionsFrom.push({ value: x.code, label: x.name }); } else if (data == "SRMInOrOutStation") { if (key == 1) { this.optionsFrom.push({ value: x.code, label: x.name }); } else { this.optionsTo.push({ value: x.code, label: x.name }); } } else if (data == "SRMOutStation") { this.optionsTo.push({ value: x.code, label: x.name }); } else if (data == "SRM") { this.optionsARM.push({ value: x.code, label: x.name }); } else if (data == "ForkFlags") { this.optionsFork.push({ value: x.code, label: x.name }); if (this.optionsFork.length > 0) { this.optionsFork.srmCode = this.optionsFork[0].value; } } }); }); }, btnAction() { this.getTableList(); }, //新增按钮 btnAdd() { this.optionsAdd = []; this.optionsAddEnter = []; this.optionsAddSRM = []; this.optionsAddSRMOut = []; this.fetchData("SRMTaskType", 1); this.fetchData("SRMInStation", 1); this.fetchData("SRMInOrOutStation", 1); this.fetchData("SRM", 1); this.fetchData("SRMOutStation", 1); this.fetchData("SRMInOrOutStation", 2); this.dialogFormVisible = true; }, //新增创建按钮 taskAdd() { const params = this.elAddDialog; CreateSRMTask(params).then((response) => { if (response.code == "Success") { this.getTableList(); this.$message({ message: "恭喜你,这是一条成功消息", type: "success", }); } }); }, //删除按钮 deleteData() { if (this.multipleSelection.length == 0) { this.$alert("请选择最少一条数据!", "标题名称", { confirmButtonText: "确定", }); } else { let prams = []; this.multipleSelection.forEach((x) => { prams.push(x.id); }); DeleteSRMTaskByIds(prams).then((response) => { if (response.code == "Success") { this.getTableList(); this.$message({ message: response.msg, type: "success", }); } }); } }, //下发按钮 issued() { if (this.multipleSelection.length == 0) { this.$alert("请选择最少一条数据!", "标题名称", { confirmButtonText: "确定", }); } else { let prams = []; this.multipleSelection.forEach((x) => { prams.push(x.id); }); SendTaskToWCS(prams).then((response) => { if (response.code == "Success") { this.getTableList(); this.$message({ message: response.msg, type: "success", }); } }); } }, //导出按钮 ExportList() { const params = { pageNumber: this.queryConfig.currentPage, perPageCount: this.queryConfig.pageSize, queryConfig: { taskNo: "", remoteTask: "", barcode: "", from: "", to: "", taskStatus: "", begin: this.form.startTime, end: this.form.endTime, }, }; this.listLoading = true; ExportMTask(params).then((response) => { this.listLoading = false; }); }, //获取表格行数据 handleSelectionChange(val) { this.multipleSelection = val; }, // 状态数据 fetchData(data, key) { let params = { Code: data, }; getHostType(params).then((response) => { response.data.dictDetails.forEach((x) => { if (data == "SRMTaskType") { this.optionsAdd.push({ value: x.code, label: x.name }); if (this.optionsAdd.length > 0) { this.elAddDialog.type = this.optionsAdd[0].value; } } else if (data == "SRMTaskStatus") { this.options.push({ value: x.code, label: x.name }); } else if (data == "SRMInStation") { this.optionsAddEnter.push({ value: x.code, label: x.name }); } else if (data == "SRMInOrOutStation") { if (key == 1) { this.optionsAddEnter.push({ value: x.code, label: x.name }); } else { this.optionsAddSRMOut.push({ value: x.code, label: x.name }); } } else if (data == "SRM") { this.optionsAddSRM.push({ value: x.code, label: x.name }); if (this.optionsAddSRM.length > 0) { this.elAddDialog.srmCode = this.optionsAddSRM[0].value; } } else if (data == "SRMOutStation") { this.optionsAddSRMOut.push({ value: x.code, label: x.name }); } }); }); }, // 表格数据 getTableList() { const params = { pageNumber: this.queryConfig.currentPage, perPageCount: this.queryConfig.pageSize, queryConfig: { taskNo: this.queryConfig.taskNo, remoteTaskId: this.queryConfig.remoteTaskId, fromLocationCode: this.queryConfig.fromLocationCode, toLocationCode: this.queryConfig.toLocationCode, fromStationCode: this.queryConfig.fromStationCode, toStationCode: this.queryConfig.toStationCode, status: this.queryConfig.status, containerCode: this.queryConfig.containerCode, begin: this.form.startTime, end: this.form.endTime, }, }; this.listLoading = true; GetSRMTasks(params).then((response) => { this.total = response.data.totalCount; response.data.data.forEach((x) => { switch (x.type) { case 1: x.type = "入库"; break; case 2: x.type = "出库"; break; case 4: x.type = "移库"; break; case 8: x.type = "换站"; break; case 16: x.type = "行走"; break; default: break; } switch (x.commitFlag) { case 0: x.commitFlag = "未提交"; break; case 1: x.commitFlag = "已提交"; break; case 2: x.commitFlag = "无需提交"; break; case 3: x.commitFlag = "提交失败"; break; default: break; } switch (x.status) { case 0: x.status = "创建"; break; case 10: x.status = "下发堆垛机库内取货"; break; case 20: x.status = "响应堆垛机库内取货完成"; break; case 30: x.status = "下发堆垛机库外放货"; break; case 40: x.status = "响应堆垛机库外放货完成"; break; case 50: x.status = "下发堆垛机库外取货"; break; case 60: x.status = "响应堆垛机库外取货完成"; break; case 70: x.status = "下发堆垛机库内放货"; break; case 80: x.status = "响应堆垛机库内放货完成"; break; case 90: x.status = "下发堆垛机行走"; break; case 91: x.status = "下发堆垛机入库任务"; break; case 92: x.status = "下发堆垛机出库任务"; break; case 93: x.status = "下发堆垛机库内移库"; break; case 94: x.status = "下发堆垛机换站任务"; break; case 100: x.status = "任务未完成"; break; case 110: x.status = "任务异常结束"; break; default: break; } }); this.sysTable = response.data.data; this.listLoading = false; }); }, // 强制完成按钮 forceComplete() { if (this.multipleSelection.length == 1) { let prams = { id: this.multipleSelection[0].id, }; CompleteSRMTask(prams).then((response) => { if (response.code == "Success") { this.getTableList(); this.$message({ message: response.msg, type: "success", }); } }); } else { this.elAlert(); } }, // 维护按钮 maintenance() { if (this.multipleSelection.length == 1) { this.getOne("CommitFlags"); this.getOne("SRMTaskStatus"); this.getOne("SRMInOrOutStation", 1); this.getOne("SRMInStation"); this.getOne("SRMOutStation"); this.getOne("SRMInOrOutStation", 2); this.getOne("SRM"); this.getOne("ForkFlags"); let params = { id: this.multipleSelection[0].id, }; GetSRMTaskById(params).then((response) => { if (response.code == "Success") { switch (response.data.forkFlag) { case 0: response.data.forkFlag = "None"; break; case 1: response.data.forkFlag = "Fork1"; break; case 2: response.data.forkFlag = "Fork2"; break; case 2: response.data.forkFlag = "Fork12"; break; default: break; } switch (response.data.commitFlag) { case 0: response.data.commitFlag = "Uncommited"; break; case 1: response.data.commitFlag = "Commited"; break; case 2: response.data.commitFlag = "UnNeedCommit"; break; case 3: response.data.commitFlag = "CommitFailure"; break; default: break; } switch (response.data.status) { case 0: response.data.status = "Create"; break; case 10: response.data.status = "SendSRMInsideGet"; break; case 20: response.data.status = "ResponseSRMInsideGetCompleted"; break; case 30: response.data.status = "SendSRMOutsidePut"; break; case 40: response.data.status = "ResponseSRMOutsidePutCompleted"; break; case 50: response.data.status = "SendSRMOutsideGet"; break; case 60: response.data.status = "ResponseSRMOutsideGetCompleted"; break; case 70: response.data.status = "SendSRMInsidePut"; break; case 80: response.data.status = "ResponseSRMInsidePutCompleted"; break; case 90: response.data.status = "SendWalking"; break; case 91: response.data.status = "SendSSRMIn"; break; case 92: response.data.status = "SendSSRMOut"; break; case 93: response.data.status = "SendSSRMInsideShifting"; break; case 94: response.data.status = " SendSSRMToStation"; break; case 100: response.data.status = "TaskCompleted"; break; case 110: response.data.status = "TaskErrorCompleted"; break; default: break; } this.elMaintenance = response.data; this.dialogFormVisibleTwo = true; } }); } else { this.elAlert(); } }, handleCurrentChange(page) { this.queryConfig.currentPage = page; this.getTableList(); }, elAlert() { this.$alert("请选择一条数据!", "标题名称", { confirmButtonText: "确定", }); }, reset() { this.maintenance(); }, close() { this.getTableList(); this.dialogFormVisibleTwo = false; }, //前置堆垛机修改 preSRMTaskEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.preSRMTaskId, userCode: this.userCode, }; SRMPreRemoteTaskEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //优先级 priorityEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.priorit, userCode: this.userCode, }; SRMPriorityEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //任务状态 statusEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.status, userCode: this.userCode, }; SRMStatusEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //起点库位 fromEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.fromLocationCode, userCode: this.userCode, }; FromLocationCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //终点库位 toEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.toLocationCode, userCode: this.userCode, }; ToLocationCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //起点站台 fromStationEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elAddDialog.fromStationCode, userCode: this.userCode, }; FromStationCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //终点站台 toStationEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elAddDialog.toStationCode, userCode: this.userCode, }; ToStationCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //终点站台组 toStationCodesEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.toStationCodes, userCode: this.userCode, }; ToStationCodesEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //当前堆垛机 srmCodeEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.srmCode, userCode: this.userCode, }; SRMCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //当前货叉 forkFlagEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.forkFlag, userCode: this.userCode, }; ForkFlagEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //任务回传 commitFlagEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.commitFlag, userCode: this.userCode, }; SRMCommitEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //长 lengthEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.length, userCode: this.userCode, }; SRMLengthEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //宽 widthEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.width, userCode: this.userCode, }; SRMWidthEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //高 heightEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.height, userCode: this.userCode, }; SRMHeightEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //重 weightEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.weight, userCode: this.userCode, }; SRMWeightEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //物料类型 goodsTypeEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.goodsType, userCode: this.userCode, }; SRMGoodsTypeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //是否空出 isEmptyOutEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.isEmptyOut, userCode: this.userCode, }; IsEmptyOutEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //是否取货错 isForkErrorEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.isForkError, userCode: this.userCode, }; IsForkErrorEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //重发标记 sendAgainEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.sendAgain, userCode: this.userCode, }; SendAgainEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //是否满入 isDoubleInEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.isDoubleIn, userCode: this.userCode, }; IsDoubleInEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, //满入库位 reToLocationEdit() { let prams = { id: this.multipleSelection[0].id, data: this.elMaintenance.reToLocationCode, userCode: this.userCode, }; ReToLocationCodeEdit(prams).then((response) => { if (response.code == "Success") { this.messge(response); } }); }, messge(response) { this.$message({ message: response.msg, type: "success", }); }, close() { this.getTableList(); this.dialogFormVisibleTwo = false; }, }, }; </script> <style lang="scss"> .app-container-father { width: 100%; height: 100%; margin: 0px; padding: 0px; display: flex; .dv-container-left { width: 20%; background-color: #eeeeee; height: 85vh; // border-radius: 7px; box-shadow: 5px 0 10px rgba(0, 0, 0, 0.3); overflow: auto; .dv-container-left-component { width: 100%; display: flex; .component-left { width: 40%; height: 60px; display: flex; justify-content: flex-end; align-items: center; } .component-right { width: 57%; height: 60px; display: flex; justify-content: center; align-items: center; } } .button-container { width: 90%; margin: auto; display: flex; justify-content: center; align-items: center; .T1 { width: 88px; margin-top: 10px; border: 1px solid #b3d8ff; } } .button-containerTwo { width: 90%; margin: 20px auto; display: flex; justify-content: center; align-items: center; .T1 { width: 50%; font-size: 16px; margin-top: 10px; } } } .dv-container-right { width: 79%; height: 88vh; margin-left: 1%; .pagination-container { text-align: center; /* 使分页组件靠右 */ margin-top: 20px; /* 添加顶部间距 */ } } .container { width: 100%; /* 大 div 宽度 */ display: flex; /* 使用 Flexbox 布局 */ flex-wrap: wrap; /* 允许换行 */ padding: 10px; /* 内边距 */ box-sizing: border-box; /* 包含内边距在内 */ } .box { width: 50%; /* 小 div 宽度为 50% */ height: 50px; /* 小 div 高度 */ margin: 5px 0; /* 上下外边距 */ display: flex; /* 嵌套使用 Flexbox */ } .inner-left { width: 40%; /* 内部左侧 div 宽度为 50% */ height: 100%; /* 高度为 100% */ display: flex; /* 使用 Flexbox */ justify-content: flex-end; /* 内容靠右 */ align-items: center; /* 垂直居中 */ padding-right: 5px; /* 右侧内边距 */ } .inner-right { width: 50%; /* 内部右侧 div 宽度为 50% */ height: 100%; /* 高度为 100% */ display: flex; /* 使用 Flexbox */ justify-content: flex-start; /* 内容靠左 */ align-items: center; /* 垂直居中 */ padding-left: 5px; /* 左侧内边距 */ } .containerTwo { width: 100%; border: 1px solid #ccc; /* 大 div 的边框 */ overflow: auto; margin-top: -30px; .T1 { width: 88px; // margin-top: 10px; border: 1px solid #b3d8ff; } .dv-title { height: 30px; /* 第一个子 div 的高度 */ display: flex; /* 使用 Flexbox */ justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ font-weight: 700; } .dv-maintenance-text { width: 35%; height: 100%; display: flex; justify-content: flex-end; /* 内容靠右 */ align-items: center; /* 垂直居中 */ } .dv-maintenance-text2 { width: 35%; height: 100%; display: flex; justify-content: center; /* 内容靠右 */ align-items: center; /* 垂直居中 */ } .dv-maintenance-text3 { width: 30%; height: 100%; display: flex; justify-content: center; /* 内容靠右 */ align-items: center; /* 垂直居中 */ } } .box1 { width: 100%; height: 50px; /* 修改后的高度 */ display: flex; /* 使用 Flexbox */ flex-wrap: wrap; /* 超出换行 */ align-items: center; /* 垂直居中对齐 */ } .box2 { width: 100%; display: flex; /* 使用 Flexbox */ flex-wrap: wrap; /* 超出换行 */ align-items: center; /* 垂直居中对齐 */ .small-box { width: 50%; /* 每个小 div 的宽度 */ box-sizing: border-box; /* 包含边框和内边距 */ border: 1px solid #ccc; /* 大 div 的边框 */ } .inner-box2 { height: 130px; /* 第二个子 div 的高度 */ display: flex; /* 使用 Flexbox */ flex-direction: column; /* 垂直排列子 div */ } .inner-inner-box1 { height: 45%; /* 第一个内层子 div 的高度 */ display: flex; /* 使用 Flexbox */ justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ } .inner-inner-box2 { height: 50%; /* 第二个内层子 div 的高度 */ display: flex; /* 使用 Flexbox */ justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ } .inner-inner-box3 { height: 100%; /* 第三个内层子 div 的高度 */ display: flex; /* 使用 Flexbox */ } } .box3 { width: 70%; margin: auto; .dv-maintenance1 { width: 100%; height: 30px; display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ border: 1px solid #ccc; /* 大 div 的边框 */ } .dv-maintenance2 { width: 100%; height: 50px; display: flex; border: 1px solid #ccc; /* 大 div 的边框 */ .dv-maintenance2-left { width: 50%; height: 100%; display: flex; } .dv-maintenance2-right { width: 50%; height: 100%; display: flex; } } .dv-maintenance3 { width: 100%; height: 50px; display: flex; border: 1px solid #ccc; /* 大 div 的边框 */ .dv-maintenance3-left { width: 50%; height: 100%; display: flex; } .dv-maintenance3-right { width: 50%; height: 100%; display: flex; } } .dv-maintenance4 { width: 50%; height: 50px; margin: auto; display: flex; /* 使用 Flexbox */ justify-content: center; /* 内容靠左 */ align-items: center; /* 垂直居中对齐 */ border: 1px solid #ccc; /* 大 div 的边框 */ } } /* 修改复选框大小 */ .el-table .el-checkbox { transform: scale(1.8) !important; /* 调整大小 */ margin-top: 5px; } } </style>