|
|
|
@ -15,7 +15,7 @@ |
|
|
|
<!-- <div class="search-container">--> |
|
|
|
<!-- --> |
|
|
|
<!-- </div>--> |
|
|
|
|
|
|
|
<div class="table-body" style="max-height: 500px; overflow-y: auto;"> |
|
|
|
<div class="main-content form-section"> |
|
|
|
<!-- 表单区域 --> |
|
|
|
<div class="input-group"> |
|
|
|
@ -47,20 +47,32 @@ |
|
|
|
/> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="bottom-actions"> |
|
|
|
<button class="action-btn secondary" @click="confirmDo"> |
|
|
|
<div class="bottom-actions" style="display: flex; gap: 10px; flex-wrap: nowrap;"> |
|
|
|
<button class="action-btn secondary" @click="confirmDo" style="flex: 1;"> |
|
|
|
查询 |
|
|
|
</button> |
|
|
|
|
|
|
|
<button class="action-btn secondary" style="margin-left: 10px;" @click="cleanData"> |
|
|
|
<button class="action-btn secondary" @click="cleanData" style="flex: 1;"> |
|
|
|
清空 |
|
|
|
</button> |
|
|
|
|
|
|
|
<button |
|
|
|
class="action-btn secondary" |
|
|
|
@click="handleCall" |
|
|
|
:disabled="callLoading||selectedPallets.length === 0" |
|
|
|
style="flex: 1;" |
|
|
|
> |
|
|
|
{{ callLoading ? 'Call车中...' : `Call车 (${selectedPallets.length})` }} |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 栈板列表 --> |
|
|
|
<div v-if="palletList.length > 0" class="rma-list"> |
|
|
|
<div class="list-title">可用栈板列表</div> |
|
|
|
<!-- Call车按钮 - 当有选中栈板时显示 --> |
|
|
|
|
|
|
|
<div class="list-title" style="flex: 0.75">可用栈板列表</div> |
|
|
|
|
|
|
|
<el-form> |
|
|
|
<el-row v-for="(pallet, index) in palletList" :key="index" class="rma-row"> |
|
|
|
<el-col :span="24"> |
|
|
|
@ -77,12 +89,7 @@ |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<!-- Call车按钮 - 当有选中栈板时显示 --> |
|
|
|
<div v-if="selectedPallets.length > 0" class="bottom-actions"> |
|
|
|
<button class="action-btn secondary" @click="handleCall"> |
|
|
|
Call车 ({{ selectedPallets.length }}) |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -94,7 +101,8 @@ import { |
|
|
|
saveTransportTask, |
|
|
|
getShopOrderFromIFSWithOrderNo, |
|
|
|
getPalletList, |
|
|
|
callPalletFromWcs |
|
|
|
callPalletFromWcs, |
|
|
|
callPalletFromWcsNew |
|
|
|
} from '../../../api/automatedWarehouse/callOut' |
|
|
|
|
|
|
|
export default { |
|
|
|
@ -118,6 +126,7 @@ export default { |
|
|
|
palletList: [], // 栈板列表 |
|
|
|
selectedPallet: null, // 选中的栈板 |
|
|
|
selectedPallets: [], // 多选时选中的栈板列表 |
|
|
|
callLoading: false, // Call车按钮loading状态 - rqrq |
|
|
|
}; |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
@ -234,33 +243,66 @@ export default { |
|
|
|
return this.selectedPallets.some(item => item.palletId === pallet.palletId); |
|
|
|
}, |
|
|
|
|
|
|
|
// 处理Cal按钮点击 |
|
|
|
// 处理Call按钮点击 - rqrq |
|
|
|
handleCall() { |
|
|
|
if (this.selectedPallets.length === 0) { |
|
|
|
this.$message.error('请至少选择一个栈板'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 这里添加Cal按钮的具体逻辑 |
|
|
|
console.log('Cal操作,选中的栈板:', this.selectedPallets); |
|
|
|
this.$confirm('确定进行[Call车]操作?', '提示', { |
|
|
|
this.$confirm(`确定Call ${this.selectedPallets.length} 个栈板出库?`, '提示', { |
|
|
|
confirmButtonText: '确认', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
// 设置loading状态 - rqrq |
|
|
|
this.callLoading = true; |
|
|
|
|
|
|
|
callPalletFromWcs(this.selectedPallets).then(({ data }) => { |
|
|
|
// 调用新的接口 - rqrq |
|
|
|
callPalletFromWcsNew(this.selectedPallets).then(({ data }) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message.success('成功发送运输请求!'); |
|
|
|
this.cleanData() |
|
|
|
const failedCount = data.failedCount || 0; |
|
|
|
const successCount = data.successCount || 0; |
|
|
|
|
|
|
|
// 判断是否有失败 - rqrq |
|
|
|
if (failedCount === 0) { |
|
|
|
// 全部成功 - rqrq |
|
|
|
this.$message.success(`成功Call ${successCount} 个栈板出库!`); |
|
|
|
this.cleanData(); |
|
|
|
} else { |
|
|
|
// 有失败的栈板 - rqrq |
|
|
|
const failedPalletIds = data.failedPalletIds || []; |
|
|
|
const failedReasons = data.failedReasons || []; |
|
|
|
|
|
|
|
// 构建失败信息 - rqrq |
|
|
|
let errorMsg = `成功:${successCount}个,失败:${failedCount}个\n\n失败栈板:\n`; |
|
|
|
failedPalletIds.forEach((palletId, index) => { |
|
|
|
errorMsg += `${index + 1}. ${palletId}:${failedReasons[index] || '未知错误'}\n`; |
|
|
|
}); |
|
|
|
|
|
|
|
// 显示失败信息弹窗 - rqrq |
|
|
|
this.$alert(errorMsg, `Call车结果`, { |
|
|
|
confirmButtonText: '确定', |
|
|
|
type: 'warning', |
|
|
|
callback: () => { |
|
|
|
// 点击确定后初始化页面 - rqrq |
|
|
|
this.cleanData(); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.$message.error(data.msg || '处理失败'); |
|
|
|
this.$message.error(data.msg || 'Call车失败'); |
|
|
|
} |
|
|
|
}).catch(error => { |
|
|
|
console.error('处理栈板失败:', error); |
|
|
|
this.$message.error('处理失败'); |
|
|
|
console.error('Call车失败:', error); |
|
|
|
this.$message.error('Call车失败'); |
|
|
|
}).finally(() => { |
|
|
|
// 恢复按钮状态 - rqrq |
|
|
|
this.callLoading = false; |
|
|
|
}); |
|
|
|
}) |
|
|
|
}).catch(() => { |
|
|
|
// 用户取消操作 - rqrq |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
cleanData(){ |
|
|
|
@ -285,5 +327,11 @@ export default { |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped> |
|
|
|
|
|
|
|
/* 按钮禁用状态样式 - rqrq */ |
|
|
|
.action-btn:disabled { |
|
|
|
opacity: 0.6; |
|
|
|
cursor: not-allowed; |
|
|
|
background-color: #ccc !important; |
|
|
|
border-color: #ccc !important; |
|
|
|
} |
|
|
|
</style> |