feat(mes): 新增采购订单号字段及相关逻辑处理

pull/871/MERGE
YunaiV 2026-03-29 18:13:50 +08:00
parent 98a227a609
commit 63b212c514
4 changed files with 33 additions and 8 deletions

View File

@ -7,7 +7,7 @@
<el-table-column label="库位名称" align="center" prop="areaName" min-width="100" /> <el-table-column label="库位名称" align="center" prop="areaName" min-width="100" />
<el-table-column label="数量" align="center" prop="quantity" width="100" /> <el-table-column label="数量" align="center" prop="quantity" width="100" />
<el-table-column <el-table-column
v-if="props.formType === 'stock'" v-if="isStock"
label="操作" label="操作"
align="center" align="center"
width="120" width="120"
@ -44,6 +44,7 @@ const message = useMessage() // 消息弹窗
const loading = ref(false) // const loading = ref(false) //
const list = ref<WmItemReceiptDetailVO[]>([]) // const list = ref<WmItemReceiptDetailVO[]>([]) //
const isStock = computed(() => props.formType === 'stock') //
/** 查询明细列表 */ /** 查询明细列表 */
const getList = async () => { const getList = async () => {

View File

@ -60,6 +60,15 @@
<MdVendorSelect v-model="formData.vendorId" :disabled="isHeaderReadonly" /> <MdVendorSelect v-model="formData.vendorId" :disabled="isHeaderReadonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="采购订单号" prop="purchaseOrderCode">
<el-input
v-model="formData.purchaseOrderCode"
placeholder="请输入采购订单号"
:disabled="isHeaderReadonly"
/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
@ -88,7 +97,7 @@
</el-button> </el-button>
<el-button <el-button
v-if="formType === 'update' && formData.status === MesWmItemReceiptStatusEnum.PREPARE" v-if="isEditable && formData.status === MesWmItemReceiptStatusEnum.PREPARE"
@click="handleSubmit" @click="handleSubmit"
type="warning" type="warning"
:disabled="formLoading" :disabled="formLoading"
@ -99,7 +108,7 @@
执行上架 执行上架
</el-button> </el-button>
<el-button <el-button
v-if="formData.status === MesWmItemReceiptStatusEnum.APPROVED" v-if="isFinish"
@click="handleFinish" @click="handleFinish"
type="success" type="success"
:disabled="formLoading" :disabled="formLoading"
@ -129,7 +138,7 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // const formLoading = ref(false) //
const formType = ref<string>('create') // 表单的类型create / update / stock / detail const formType = ref<string>('create') // 表单的类型create / update / stock / finish / detail
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
code: undefined, code: undefined,
@ -138,6 +147,7 @@ const formData = ref({
vendorId: undefined, vendorId: undefined,
noticeId: undefined, noticeId: undefined,
iqcId: undefined, iqcId: undefined,
purchaseOrderCode: undefined,
receiptDate: undefined, receiptDate: undefined,
remark: undefined remark: undefined
}) })
@ -149,13 +159,15 @@ const formRules = reactive({
const formRef = ref() // Ref const formRef = ref() // Ref
const isEditable = computed(() => ['create', 'update'].includes(formType.value)) // const isEditable = computed(() => ['create', 'update'].includes(formType.value)) //
const isStock = computed(() => formType.value === 'stock') // const isStock = computed(() => formType.value === 'stock') //
const isDetail = computed(() => formType.value === 'detail') // const isFinish = computed(() => formType.value === 'finish') //
const isHeaderReadonly = computed(() => ['stock', 'detail'].includes(formType.value)) // const isDetail = computed(() => ['detail', 'finish'].includes(formType.value)) //
const isHeaderReadonly = computed(() => ['stock', 'detail', 'finish'].includes(formType.value)) //
const dialogTitle = computed(() => { const dialogTitle = computed(() => {
const titles = { const titles = {
create: '新增采购入库单', create: '新增采购入库单',
update: '编辑采购入库单', update: '编辑采购入库单',
stock: '执行上架', stock: '执行上架',
finish: '执行入库',
detail: '采购入库单详情' detail: '采购入库单详情'
} }
return titles[formType.value] || formType.value return titles[formType.value] || formType.value
@ -173,6 +185,7 @@ const generateCode = async () => {
const handleNoticeChange = (notice: any) => { const handleNoticeChange = (notice: any) => {
if (notice) { if (notice) {
formData.value.vendorId = notice.vendorId formData.value.vendorId = notice.vendorId
formData.value.purchaseOrderCode = notice.purchaseOrderCode
} }
} }
@ -286,6 +299,7 @@ const resetForm = () => {
vendorId: undefined, vendorId: undefined,
noticeId: undefined, noticeId: undefined,
iqcId: undefined, iqcId: undefined,
purchaseOrderCode: undefined,
receiptDate: undefined, receiptDate: undefined,
remark: undefined remark: undefined
} }

View File

@ -126,8 +126,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="批号" prop="lotNumber"> <el-form-item label="生产批号" prop="lotNumber">
<el-input v-model="formData.lotNumber" placeholder="请输入批号" /> <el-input v-model="formData.lotNumber" placeholder="请输入生产批号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">

View File

@ -118,6 +118,16 @@
> >
执行上架 执行上架
</el-button> </el-button>
<!-- 待执行入库执行入库取消 -->
<el-button
link
type="success"
@click="openForm('finish', scope.row.id)"
v-hasPermi="['mes:wm-item-receipt:finish']"
v-if="scope.row.status === MesWmItemReceiptStatusEnum.APPROVED"
>
执行入库
</el-button>
<el-button <el-button
link link
type="danger" type="danger"