feat: add generate-missing logic to identify unscanned stock as inventory loss
This commit is contained in:
@ -107,6 +107,11 @@
|
||||
结束盘点
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-button v-if="userStore.hasPermission('inventory_stocktake:operation')" type="warning" size="large" class="w-100 action-btn" @click="handleGenerateMissing" :icon="Warning">
|
||||
结束盘点 (计算漏盘)
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
@ -993,6 +998,46 @@ const openFinishDialog = () => {
|
||||
finishStocktake()
|
||||
}
|
||||
|
||||
// ★ 新增:结束盘点(计算漏盘)- 将未扫描的库存标记为全额盘亏
|
||||
const handleGenerateMissing = async () => {
|
||||
if (stats.value.total === 0) {
|
||||
ElMessage.warning('暂无盘点数据')
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
await ElMessageBox.confirm(
|
||||
'确认结束当前盘点吗?系统将自动把所有未扫描到的库存标记为全额盘亏!',
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
)
|
||||
|
||||
btnLoading.value = true
|
||||
const res = await request({
|
||||
url: '/v1/inbound/stocktake/generate-missing',
|
||||
method: 'post'
|
||||
})
|
||||
|
||||
if (res.code === 200) {
|
||||
ElMessage.success(`成功生成 ${res.data.count} 条漏盘记录`)
|
||||
// 刷新差异列表
|
||||
await checkServerDraft()
|
||||
} else {
|
||||
ElMessage.error(res.msg || '生成漏盘数据失败')
|
||||
}
|
||||
} catch (e) {
|
||||
if (e !== 'cancel') {
|
||||
ElMessage.error('生成漏盘数据失败')
|
||||
}
|
||||
} finally {
|
||||
btnLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// ★ 重写: 结束盘点 - 纯前端状态流转,不再调用后端
|
||||
const finishStocktake = async () => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user