✨ feat(mes): 添加生产退料单确认功能及字段校验
新增确认生产退料单的接口,更新相关字段为必填项并添加数量校验逻辑。此变更旨在提升退料单的管理效率和数据准确性。pull/871/MERGE
parent
2a83f67065
commit
15de32fcbf
|
|
@ -9,7 +9,7 @@ export interface WmReturnIssueVO {
|
||||||
workstationName?: string
|
workstationName?: string
|
||||||
workOrderId?: number
|
workOrderId?: number
|
||||||
workOrderCode?: string
|
workOrderCode?: string
|
||||||
returnType?: string
|
type?: number
|
||||||
returnDate?: string
|
returnDate?: string
|
||||||
status?: number
|
status?: number
|
||||||
remark?: string
|
remark?: string
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- TODO @AI:必填;前后端都是;name -->
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="退料单名称" prop="name">
|
<el-form-item label="退料单名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -33,17 +32,16 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- TODO @AI:必填;前后端都是;returnType -->
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="退料类型" prop="returnType">
|
<el-form-item label="退料类型" prop="type">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.returnType"
|
v-model="formData.type"
|
||||||
placeholder="请选择退料类型"
|
placeholder="请选择退料类型"
|
||||||
:disabled="isHeaderReadonly"
|
:disabled="isHeaderReadonly"
|
||||||
class="!w-full"
|
class="!w-full"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getStrDictOptions(DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
|
|
@ -63,7 +61,6 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- TODO @AI:必填;前后端都是;workOrderId -->
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="生产工单" prop="workOrderId">
|
<el-form-item label="生产工单" prop="workOrderId">
|
||||||
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
|
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
|
||||||
|
|
@ -105,7 +102,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import { generateRandomStr } from '@/utils'
|
import { generateRandomStr } from '@/utils'
|
||||||
import { WmReturnIssueApi, WmReturnIssueVO } from '@/api/mes/wm/returnissue'
|
import { WmReturnIssueApi, WmReturnIssueVO } from '@/api/mes/wm/returnissue'
|
||||||
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
|
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
|
||||||
|
|
@ -125,13 +122,15 @@ const formData = ref({
|
||||||
name: undefined,
|
name: undefined,
|
||||||
workOrderId: undefined,
|
workOrderId: undefined,
|
||||||
workstationId: undefined,
|
workstationId: undefined,
|
||||||
returnType: undefined,
|
type: undefined,
|
||||||
returnDate: undefined,
|
returnDate: undefined,
|
||||||
remark: undefined
|
remark: undefined
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
code: [{ required: true, message: '退料单编号不能为空', trigger: 'blur' }],
|
code: [{ required: true, message: '退料单编号不能为空', trigger: 'blur' }],
|
||||||
name: [{ required: true, message: '退料单名称不能为空', trigger: 'blur' }]
|
name: [{ required: true, message: '退料单名称不能为空', trigger: 'blur' }],
|
||||||
|
type: [{ required: true, message: '退料类型不能为空', trigger: 'change' }],
|
||||||
|
workOrderId: [{ required: true, message: '生产工单不能为空', trigger: 'change' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
|
@ -222,7 +221,7 @@ const resetForm = () => {
|
||||||
name: undefined,
|
name: undefined,
|
||||||
workOrderId: undefined,
|
workOrderId: undefined,
|
||||||
workstationId: undefined,
|
workstationId: undefined,
|
||||||
returnType: undefined,
|
type: undefined,
|
||||||
returnDate: undefined,
|
returnDate: undefined,
|
||||||
remark: undefined
|
remark: undefined
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,17 +25,22 @@
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- TODO @AI:增加 生产工单 的 select -->
|
<el-form-item label="生产工单" prop="workOrderId">
|
||||||
<!-- TODO @AI:需要生成下,字典插入 sql -->
|
<ProWorkOrderSelect
|
||||||
<el-form-item label="退料类型" prop="returnType">
|
v-model="queryParams.workOrderId"
|
||||||
|
clearable
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="退料类型" prop="type">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.returnType"
|
v-model="queryParams.type"
|
||||||
placeholder="请选择退料类型"
|
placeholder="请选择退料类型"
|
||||||
clearable
|
clearable
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getStrDictOptions(DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
|
|
@ -104,9 +109,9 @@
|
||||||
<el-table-column label="退料单名称" align="center" prop="name" min-width="150" />
|
<el-table-column label="退料单名称" align="center" prop="name" min-width="150" />
|
||||||
<el-table-column label="生产工单" align="center" prop="workOrderCode" min-width="140" />
|
<el-table-column label="生产工单" align="center" prop="workOrderCode" min-width="140" />
|
||||||
<el-table-column label="工作站" align="center" prop="workstationName" min-width="120" />
|
<el-table-column label="工作站" align="center" prop="workstationName" min-width="120" />
|
||||||
<el-table-column label="退料类型" align="center" prop="returnType" min-width="110">
|
<el-table-column label="退料类型" align="center" prop="type" min-width="110">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE" :value="scope.row.returnType" />
|
<dict-tag :type="DICT_TYPE.MES_WM_RETURN_ISSUE_TYPE" :value="scope.row.type" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -152,8 +157,8 @@
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- TODO @芋艿:UNEXECUTE、UNSTOCK; -->
|
<!-- TODO @芋艿:UNEXECUTE、UNSTOCK; -->
|
||||||
<!-- 待入库:入库上架 -->
|
<!-- 待入库:执行上架 -->
|
||||||
<!-- TODO @AI:名字改成:“执行上架” -->
|
<!-- DONE @AI:名字改成:“执行上架” -->
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="success"
|
type="success"
|
||||||
|
|
@ -161,10 +166,10 @@
|
||||||
v-hasPermi="['mes:wm-return-issue:update']"
|
v-hasPermi="['mes:wm-return-issue:update']"
|
||||||
v-if="scope.row.status === MesWmReturnIssueStatusEnum.APPROVING"
|
v-if="scope.row.status === MesWmReturnIssueStatusEnum.APPROVING"
|
||||||
>
|
>
|
||||||
入库上架
|
执行上架
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 已入库:完成 -->
|
<!-- 已入库:执行退料 -->
|
||||||
<!-- TODO @AI:名字换成:“执行退料” -->
|
<!-- DONE @AI:名字换成:“执行退料” -->
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="success"
|
type="success"
|
||||||
|
|
@ -172,7 +177,7 @@
|
||||||
v-hasPermi="['mes:wm-return-issue:execute']"
|
v-hasPermi="['mes:wm-return-issue:execute']"
|
||||||
v-if="scope.row.status === MesWmReturnIssueStatusEnum.APPROVED"
|
v-if="scope.row.status === MesWmReturnIssueStatusEnum.APPROVED"
|
||||||
>
|
>
|
||||||
完成
|
执行退料
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 待入库、已入库:取消 -->
|
<!-- 待入库、已入库:取消 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -204,10 +209,11 @@
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { dateFormatter2 } from '@/utils/formatTime'
|
import { dateFormatter2 } from '@/utils/formatTime'
|
||||||
import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import download from '@/utils/download'
|
import download from '@/utils/download'
|
||||||
import { WmReturnIssueApi, WmReturnIssueVO } from '@/api/mes/wm/returnissue'
|
import { WmReturnIssueApi, WmReturnIssueVO } from '@/api/mes/wm/returnissue'
|
||||||
import ReturnIssueForm from './ReturnIssueForm.vue'
|
import ReturnIssueForm from './ReturnIssueForm.vue'
|
||||||
|
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
|
||||||
import { MesWmReturnIssueStatusEnum } from '@/views/mes/utils/constants'
|
import { MesWmReturnIssueStatusEnum } from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'MesWmReturnIssue' })
|
defineOptions({ name: 'MesWmReturnIssue' })
|
||||||
|
|
@ -224,7 +230,8 @@ const queryParams = reactive({
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
code: undefined,
|
code: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
returnType: undefined,
|
workOrderId: undefined,
|
||||||
|
type: undefined,
|
||||||
status: undefined,
|
status: undefined,
|
||||||
returnDate: undefined
|
returnDate: undefined
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue