| | |
| | | <el-card class="other-box-card" v-for="deviceInfo in devicePointData" :key="deviceInfo.id"> |
| | | <div slot="header" class="linefix"> |
| | | <span>{{ deviceInfo.text }}</span> |
| | | <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div> |
| | | <div :class="['lineStatus', 'device-status-0']"></div> |
| | | <!-- <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div> --> |
| | | </div> |
| | | <div class="otherValuefix" > |
| | | <el-form label-position="left" label-width="90px"> |
| | | <el-form-item label="WMS明细单号"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.orderNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="任务号"> |
| | | <el-input v-model="deviceInfo.taskNumber"></el-input> |
| | | <el-input v-model="deviceInfo.taskNo"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="批次号"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.lotNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="物料编码"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.skuNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="物料名称"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.skuName" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="包装名称"> |
| | | <el-input></el-input> |
| | | <el-form-item label="分拣线编号"> |
| | | <el-input v-model="deviceInfo.lineNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="绑定状态"> |
| | | <el-input></el-input> |
| | | <el-input :value="deviceInfo.status === '0' ? '未绑定' : '已绑定'" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="抓箱品种"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.pzNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="托盘号"> |
| | | <el-input></el-input> |
| | | <el-input readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="插码数量"> |
| | | <el-input></el-input> |
| | | <el-input readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="托盘上箱数量"> |
| | | <el-input></el-input> |
| | | <el-input readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="WMS下发数量"> |
| | | <el-input></el-input> |
| | | <el-input v-model="deviceInfo.qty" readonly></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="otherButtonfix"> |
| | | <div v-if="!deviceInfo.text.includes('拆垛')" class="otherButtonfix"> |
| | | <el-form label-position="left"> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="openBindDialog()">绑定</el-button> |
| | | <el-button>结批</el-button> |
| | | <el-button type="primary" @click="openBindDialog(deviceInfo.id)">绑定</el-button> |
| | | <el-button @click="closeBindDialog(deviceInfo.lotNo)">结批</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | :data="bindData" |
| | | highlight-current-row |
| | | @row-click="handleRowClick" |
| | | > |
| | | <el-table-column type="selection" width="55"/> |
| | | |
| | | > |
| | | <el-table-column prop="orderNo" label="WMS下发单号" show-overflow-tooltip="" /> |
| | | <el-table-column prop="taskNo" label="任务号" show-overflow-tooltip="" /> |
| | | <el-table-column prop="lotNo" label="批次号" show-overflow-tooltip="" /> |
| | |
| | | |
| | | <script lang="ts" setup> |
| | | import { ref } from 'vue'; |
| | | import { GetWcsPackPlcList,GetWcsPackStationPlcList } from '/@/api/wcs/wcsDevice'; |
| | | import { GetWcsPackPlcList,GetWcsPackStationPlcList,BindTaskForPLC,CloseTaskForPLC } from '/@/api/wcs/wcsDevice'; |
| | | import { pageWcsOderTask } from '/@/api/device/wcsOderTask'; |
| | | import { ElMessageBox,ElMessage } from 'element-plus'; |
| | | |
| | | //设备数据 |
| | | const deviceList=ref<any>([]); |
| | |
| | | const devicePointData = ref<any>([]); |
| | | //选中设备ID |
| | | const selectedDeviceId=ref<any>(); |
| | | //选中工位ID |
| | | const selectedStationId=ref<any>(); |
| | | |
| | | const bindDialogVisible = ref(false); |
| | | const bindData = ref<any>([]); |
| | |
| | | const queryParams = ref<any>({}); |
| | | const tableParams = ref({ |
| | | page: 1, |
| | | pageSize: 10, |
| | | pageSize: 20, |
| | | total: 0, |
| | | }); |
| | | |
| | |
| | | //切换设备 |
| | | function chooseDevice(id) { |
| | | selectedDeviceId.value = id; |
| | | fetchStationData(id); |
| | | fetchStationData(selectedDeviceId.value); |
| | | } |
| | | |
| | | const handleQuery = async () => { |
| | |
| | | tableParams.value.total = res.data.result?.total; |
| | | }; |
| | | //打开绑定弹框 |
| | | function openBindDialog() { |
| | | function openBindDialog(id) { |
| | | selectedStationId.value=null; |
| | | selectedRow.value=null; |
| | | |
| | | selectedStationId.value=id; |
| | | bindDialogVisible.value = true; |
| | | // Mock data for binding |
| | | |
| | | handleQuery(); |
| | | } |
| | | //点击行时设置选中行 |
| | |
| | | //确认绑定操作 |
| | | function confirmBinding() { |
| | | if (selectedRow.value) { |
| | | console.log('Selected Row:', selectedRow.value); |
| | | // Do binding logic here |
| | | //手动绑定任务到PLC |
| | | bindTaskForPLC(selectedStationId.value,selectedRow.value.id); |
| | | |
| | | bindDialogVisible.value = false; |
| | | } else { |
| | | console.error('No row selected'); |
| | | ElMessage.error('请选择要绑定的任务!'); |
| | | } |
| | | } |
| | | const bindTaskForPLC = async (deviceId: any,oderTaskId:any) => { |
| | | const res = await BindTaskForPLC({ deviceId,oderTaskId }); |
| | | if(res.status==200){ |
| | | ElMessage.success('绑定成功!'); |
| | | // 刷新 |
| | | fetchStationData(selectedDeviceId.value); |
| | | } |
| | | } |
| | | //结批操作 |
| | | function closeBindDialog(lotNo){ |
| | | if(lotNo==''){ |
| | | ElMessage.error('该工位未绑定任务!'); |
| | | return; |
| | | } |
| | | ElMessageBox.confirm(`确定对该批次任务结批吗?`, '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(async () => { |
| | | closeTaskForPLC(lotNo); |
| | | }) |
| | | .catch(() => {}); |
| | | } |
| | | const closeTaskForPLC = async (lotNo: string) => { |
| | | const res = await CloseTaskForPLC({ lotNo }); |
| | | if(res.status==200){ |
| | | ElMessage.success('结批成功!'); |
| | | // 刷新 |
| | | fetchStationData(selectedDeviceId.value); |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | |
| | | justify-content: flex-end; |
| | | margin-top: 20px; |
| | | } |
| | | .divDisplay{ |
| | | display:none |
| | | } |
| | | </style> |
| | | |