feat(mes): 重构库区混放规则更新逻辑,简化接口调用

pull/871/MERGE
YunaiV 2026-03-28 23:26:57 +08:00
parent fdcc30415a
commit 53fbb03ad4
2 changed files with 74 additions and 6 deletions

View File

@ -45,4 +45,12 @@ export const WmWarehouseLocationApi = {
deleteWarehouseLocation: async (id: number) => {
return await request.delete({ url: '/mes/wm/warehouse-location/delete?id=' + id })
},
// 批量设置库区下所有库位的混放规则
updateAreaByLocationId: async (locationId: number, allowItemMixing?: boolean, allowBatchMixing?: boolean) => {
return await request.put({
url: '/mes/wm/warehouse-location/update-by-location-id',
params: { locationId, allowItemMixing, allowBatchMixing }
})
},
}

View File

@ -65,10 +65,46 @@
</el-form-item>
</el-col>
</el-row>
<!-- 编辑模式下显示混放规则批量设置按钮 -->
<template v-if="formType === 'update'">
<el-divider content-position="left">库位混放规则批量设置</el-divider>
<el-row>
<el-col :span="12">
<el-form-item label="产品混放">
<el-tooltip content="设置此库区下所有库位允许产品混放" placement="top">
<el-button type="primary" plain size="small" @click="setProductMixing(true)">
允许
</el-button>
</el-tooltip>
<el-tooltip content="设置此库区下所有库位不允许产品混放" placement="top">
<el-button type="danger" plain size="small" @click="setProductMixing(false)">
不允许
</el-button>
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批次混放">
<el-tooltip content="设置此库区下所有库位允许批次混放" placement="top">
<el-button type="primary" plain size="small" @click="setBatchMixing(true)">
允许
</el-button>
</el-tooltip>
<el-tooltip content="设置此库区下所有库位不允许批次混放" placement="top">
<el-button type="danger" plain size="small" @click="setBatchMixing(false)">
不允许
</el-button>
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
</template>
</el-form>
<template #footer>
<!-- TODO @芋艿barcodeimg -->
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"
> </el-button
>
<el-button @click="dialogVisible = false">{{ isDetail ? '关 闭' : '取 消' }}</el-button>
</template>
</Dialog>
@ -99,11 +135,6 @@ const formLoading = ref(false) // 表单的加载中
const formType = ref('') // create - update - detail -
const isDetail = computed(() => formType.value === 'detail') //
const warehouseList = ref<WmWarehouseVO[]>([]) //
/** 生成库区编码 */
const generateCode = async () => {
formData.value.code = await AutoCodeRecordApi.generateAutoCode(MesAutoCodeRuleCode.WM_LOCATION_CODE)
}
const formData = ref({
id: undefined,
code: undefined,
@ -122,6 +153,13 @@ const formRules = reactive({
})
const formRef = ref() // Ref
/** 生成库区编码 */
const generateCode = async () => {
formData.value.code = await AutoCodeRecordApi.generateAutoCode(
MesAutoCodeRuleCode.WM_LOCATION_CODE
)
}
/** 打开弹窗 */
const open = async (type: string, id?: number, defaultWarehouseId?: number) => {
dialogVisible.value = true
@ -183,4 +221,26 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
/** 设置产品混放规则 */
const setProductMixing = async (allow: boolean) => {
try {
await ElMessageBox.confirm('确认要重置库区下所有库位的产品混放规则吗?', '提示', {
type: 'warning'
})
await WmWarehouseLocationApi.updateAreaByLocationId(formData.value.id!, allow, undefined)
message.success('设置成功')
} catch {}
}
/** 设置批次混放规则 */
const setBatchMixing = async (allow: boolean) => {
try {
await ElMessageBox.confirm('确认要重置库区下所有库位的批次混放规则吗?', '提示', {
type: 'warning'
})
await WmWarehouseLocationApi.updateAreaByLocationId(formData.value.id!, undefined, allow)
message.success('设置成功')
} catch {}
}
</script>