| | |
| | | <el-button @click="getDualCrnStateInfo" size="mini">查询</el-button> |
| | | </div> |
| | | </div> |
| | | <div style="margin-bottom: 10px;"> |
| | | <div style="margin-bottom: 10px;" v-if="!readOnly"> |
| | | <div style="margin-bottom: 5px;"> |
| | | <el-button v-if="showControl" @click="openControl" size="mini">关闭控制中心</el-button> |
| | | <el-button v-else @click="openControl" size="mini">打开控制中心</el-button> |
| | |
| | | </el-select> |
| | | </div> |
| | | <div style="margin-bottom: 10px;"><el-button @click="controlCommandTransport()" size="mini">取放货</el-button></div> |
| | | <div style="margin-bottom: 10px;"><el-button @click="controlCommandPickup()" size="mini">取货</el-button></div> |
| | | <div style="margin-bottom: 10px;"><el-button @click="controlCommandPutdown()" size="mini">放货</el-button></div> |
| | | <div style="margin-bottom: 10px;"><el-button @click="controlCommandMove()" size="mini">移动</el-button></div> |
| | | <div style="margin-bottom: 10px;"><el-button @click="controlCommandTaskComplete()" size="mini">任务完成</el-button></div> |
| | | </div> |
| | |
| | | <el-descriptions-item label="工位2状态">{{ item.statusTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1是否有物">{{ item.loading }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2是否有物">{{ item.loadingTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1列">{{ item.bay }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2列">{{ item.bayTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1层">{{ item.lev }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2层">{{ item.levTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1货叉定位">{{ item.forkOffset }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2货叉定位">{{ item.forkOffsetTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1载货台定位">{{ item.liftPos }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2载货台定位">{{ item.liftPosTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1走行在定位">{{ item.walkPos }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2走行在定位">{{ item.walkPosTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位1任务接收">{{ item.taskReceive }}</el-descriptions-item> |
| | | <el-descriptions-item label="工位2任务接收">{{ item.taskReceiveTwo }}</el-descriptions-item> |
| | | <el-descriptions-item label="列">{{ item.bay }}</el-descriptions-item> |
| | | <el-descriptions-item label="层">{{ item.lev }}</el-descriptions-item> |
| | | <el-descriptions-item label="载货台定位">{{ item.liftPos }}</el-descriptions-item> |
| | | <el-descriptions-item label="走行在定位">{{ item.walkPos }}</el-descriptions-item> |
| | | <el-descriptions-item label="走行速度(m/min)">{{ item.xspeed }}</el-descriptions-item> |
| | | <el-descriptions-item label="升降速度(m/min)">{{ item.yspeed }}</el-descriptions-item> |
| | | <el-descriptions-item label="叉牙速度(m/min)">{{ item.zspeed }}</el-descriptions-item> |
| | |
| | | </div> |
| | | </div> |
| | | `, |
| | | props: ["param"], |
| | | props: { |
| | | param: { |
| | | type: Object, |
| | | default: () => ({}) |
| | | }, |
| | | autoRefresh: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | readOnly: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | crnList: [], |
| | |
| | | }, |
| | | pageSize: 25, |
| | | currentPage: 1, |
| | | timer: null |
| | | }; |
| | | }, |
| | | created() { |
| | | setInterval(() => { |
| | | this.getDualCrnStateInfo(); |
| | | }, 1000); |
| | | if (this.autoRefresh) { |
| | | this.timer = setInterval(() => { |
| | | this.getDualCrnStateInfo(); |
| | | }, 1000); |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | if (this.timer) { |
| | | clearInterval(this.timer); |
| | | } |
| | | }, |
| | | computed: { |
| | | displayCrnList() { |
| | |
| | | watch: { |
| | | param: { |
| | | handler(newVal) { |
| | | if (newVal.crnNo != 0) { |
| | | if (newVal && newVal.crnNo && newVal.crnNo != 0) { |
| | | this.activeNames = newVal.crnNo; |
| | | this.searchCrnNo = newVal.crnNo; |
| | | const idx = this.crnList.findIndex(i => i.crnNo == newVal.crnNo); |
| | |
| | | }, |
| | | }); |
| | | }, |
| | | controlCommandPickup() { |
| | | let that = this; |
| | | $.ajax({ |
| | | url: baseUrl + "/dualcrn/command/pick", |
| | | headers: { |
| | | token: localStorage.getItem("token"), |
| | | }, |
| | | contentType: "application/json", |
| | | method: "post", |
| | | data: JSON.stringify(that.controlParam), |
| | | success: (res) => { |
| | | if (res.code == 200) { |
| | | that.$message({ |
| | | message: res.msg, |
| | | type: "success", |
| | | }); |
| | | } else { |
| | | that.$message({ |
| | | message: res.msg, |
| | | type: "warning", |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | controlCommandPutdown() { |
| | | let that = this; |
| | | $.ajax({ |
| | | url: baseUrl + "/dualcrn/command/put", |
| | | headers: { |
| | | token: localStorage.getItem("token"), |
| | | }, |
| | | contentType: "application/json", |
| | | method: "post", |
| | | data: JSON.stringify(that.controlParam), |
| | | success: (res) => { |
| | | if (res.code == 200) { |
| | | that.$message({ |
| | | message: res.msg, |
| | | type: "success", |
| | | }); |
| | | } else { |
| | | that.$message({ |
| | | message: res.msg, |
| | | type: "warning", |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | controlCommandMove() { |
| | | let that = this; |
| | | $.ajax({ |