✨ feat(mes): 新增盘点方案保存数据校验逻辑,优化动态盘点时间处理
parent
abe63d39db
commit
55ca892c9c
|
|
@ -112,36 +112,26 @@
|
||||||
<template v-else-if="formData.type === MesWmStockTakingParamTypeEnum.ITEM">
|
<template v-else-if="formData.type === MesWmStockTakingParamTypeEnum.ITEM">
|
||||||
<MdItemSelect v-model="formData.valueId" @change="handleSelectorChange" />
|
<MdItemSelect v-model="formData.valueId" @change="handleSelectorChange" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="formData.type === MesWmStockTakingParamTypeEnum.BATCH">
|
||||||
|
<!-- DONE 后续接入批次选择器和质量状态选择器 -->
|
||||||
|
<WmBatchSelect v-model="formData.valueId" @change="handleBatchChange" />
|
||||||
|
</template>
|
||||||
<template
|
<template
|
||||||
v-else-if="
|
v-else-if="formData.type === MesWmStockTakingParamTypeEnum.QUALITY_STATUS"
|
||||||
formData.type === MesWmStockTakingParamTypeEnum.BATCH ||
|
|
||||||
formData.type === MesWmStockTakingParamTypeEnum.QUALITY_STATUS
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<!-- TODO @芋艿:后续来跟进 -->
|
<el-select
|
||||||
<el-row :gutter="8" class="w-full">
|
v-model="formData.valueCode"
|
||||||
<el-col :span="8">
|
placeholder="请选择质量状态"
|
||||||
<el-input
|
class="!w-full"
|
||||||
v-model="formData.valueId"
|
@change="handleQualityStatusChange"
|
||||||
placeholder="值ID"
|
>
|
||||||
@change="handleManualChange"
|
<el-option
|
||||||
/>
|
v-for="dict in getStrDictOptions(DICT_TYPE.MES_WM_QUALITY_STATUS)"
|
||||||
</el-col>
|
:key="dict.value"
|
||||||
<el-col :span="8">
|
:label="dict.label"
|
||||||
<el-input
|
:value="dict.value"
|
||||||
v-model="formData.valueCode"
|
/>
|
||||||
placeholder="值编码"
|
</el-select>
|
||||||
@change="handleManualChange"
|
|
||||||
/>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-input
|
|
||||||
v-model="formData.valueName"
|
|
||||||
placeholder="值名称"
|
|
||||||
@change="handleManualChange"
|
|
||||||
/>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -160,7 +150,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
|
||||||
import {
|
import {
|
||||||
StockTakingPlanParamApi,
|
StockTakingPlanParamApi,
|
||||||
type StockTakingPlanParamVO
|
type StockTakingPlanParamVO
|
||||||
|
|
@ -170,6 +160,7 @@ import WmWarehouseSelect from '@/views/mes/wm/warehouse/components/WmWarehouseSe
|
||||||
import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue'
|
import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue'
|
||||||
import WmWarehouseAreaSelect from '@/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue'
|
import WmWarehouseAreaSelect from '@/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue'
|
||||||
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
|
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
|
||||||
|
import WmBatchSelect from '@/views/mes/wm/batch/components/WmBatchSelect.vue'
|
||||||
import { WmWarehouseLocationApi } from '@/api/mes/wm/warehouse/location'
|
import { WmWarehouseLocationApi } from '@/api/mes/wm/warehouse/location'
|
||||||
import { WmWarehouseAreaApi } from '@/api/mes/wm/warehouse/area'
|
import { WmWarehouseAreaApi } from '@/api/mes/wm/warehouse/area'
|
||||||
|
|
||||||
|
|
@ -269,7 +260,7 @@ const submitForm = async () => {
|
||||||
const data = {
|
const data = {
|
||||||
...formData.value,
|
...formData.value,
|
||||||
planId: props.planId,
|
planId: props.planId,
|
||||||
valueId: Number(formData.value.valueId)
|
valueId: formData.value.valueId != null ? Number(formData.value.valueId) : undefined
|
||||||
} as StockTakingPlanParamVO
|
} as StockTakingPlanParamVO
|
||||||
if (formType.value === 'create') {
|
if (formType.value === 'create') {
|
||||||
await StockTakingPlanParamApi.createStockTakingPlanParam(data)
|
await StockTakingPlanParamApi.createStockTakingPlanParam(data)
|
||||||
|
|
@ -322,18 +313,23 @@ const handleSelectorChange = (item?: any) => {
|
||||||
formData.value.valueName = item?.name || item?.nickname || ''
|
formData.value.valueName = item?.name || item?.nickname || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 手动输入变化 */
|
/** 批次选择器变化 */
|
||||||
const handleManualChange = () => {
|
const handleBatchChange = (batch?: any) => {
|
||||||
if (
|
formData.value.valueId = batch?.id
|
||||||
formData.value.valueId !== undefined &&
|
formData.value.valueCode = batch?.code || ''
|
||||||
formData.value.valueId !== null &&
|
formData.value.valueName = batch?.code || ''
|
||||||
formData.value.valueId !== ''
|
|
||||||
) {
|
|
||||||
const num = Number(formData.value.valueId)
|
|
||||||
formData.value.valueId = Number.isNaN(num) ? formData.value.valueId : num
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 质量状态选择器变化 */
|
||||||
|
const handleQualityStatusChange = (val: string) => {
|
||||||
|
const dictOptions = getStrDictOptions(DICT_TYPE.MES_WM_QUALITY_STATUS)
|
||||||
|
const selected = dictOptions.find((d) => d.value === val)
|
||||||
|
formData.value.valueId = val // 质量状态无实体 ID,与 valueCode 保持一致
|
||||||
|
formData.value.valueCode = val
|
||||||
|
formData.value.valueName = selected?.label || ''
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 库区仓库选择回调:清空库区 */
|
/** 库区仓库选择回调:清空库区 */
|
||||||
const handleLocationWarehouseChange = () => {
|
const handleLocationWarehouseChange = () => {
|
||||||
formData.value.valueId = undefined
|
formData.value.valueId = undefined
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue