feat(mes): 新增供应商和物料存在性校验功能

pull/871/MERGE
YunaiV 2026-02-24 04:55:28 +08:00
parent 251a7851a0
commit d7d22b8a8f
2 changed files with 61 additions and 47 deletions

View File

@ -8,6 +8,7 @@
:rules="formRules"
label-width="120px"
v-loading="formLoading"
:disabled="isDetail"
>
<el-row :gutter="16">
<el-col :span="8">
@ -143,43 +144,41 @@
</el-row>
<!-- 缺陷统计只读 -->
<template v-if="formType === 'update' && formData.id">
<el-divider content-position="left">缺陷情况</el-divider>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="致命缺陷数">
<el-input :model-value="formData.criticalQuantity" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="严重缺陷数">
<el-input :model-value="formData.majorQuantity" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="轻微缺陷数">
<el-input :model-value="formData.minorQuantity" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="致命缺陷率">
<el-input :model-value="formData.criticalRate + '%'" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="严重缺陷率">
<el-input :model-value="formData.majorRate + '%'" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="轻微缺陷率">
<el-input :model-value="formData.minorRate + '%'" disabled />
</el-form-item>
</el-col>
</el-row>
</template>
<el-divider content-position="left">缺陷情况</el-divider>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="致命缺陷数">
<el-input :model-value="formData.criticalQuantity" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="严重缺陷数">
<el-input :model-value="formData.majorQuantity" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="轻微缺陷数">
<el-input :model-value="formData.minorQuantity" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="致命缺陷率">
<el-input :model-value="formData.criticalRate + '%'" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="严重缺陷率">
<el-input :model-value="formData.majorRate + '%'" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="轻微缺陷率">
<el-input :model-value="formData.minorRate + '%'" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 子表标签页编辑模式下显示 -->
@ -196,7 +195,9 @@
</template>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="!isDetail">
</el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
@ -218,15 +219,21 @@ const { t } = useI18n() // 国际化
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formType = ref('') // create - update - detail -
const activeTab = ref('line') //
/** 是否来自待检任务(有预填的来源单据信息) */
const dialogTitle = computed(() => {
const titles = {
create: '新增来料检验单',
update: '修改来料检验单',
detail: '查看来料检验单'
}
return titles[formType.value] || t('action.' + formType.value)
}) // formType
const isDetail = computed(() => formType.value === 'detail') //
const isFromPendingTask = computed(
() => formType.value === 'create' && formData.value.sourceDocId != null
)
) //
const formData = ref({
id: undefined as number | undefined,
@ -274,7 +281,6 @@ const generateCode = () => {
/** 打开弹窗 */
const open = async (type: string, id?: number, data?: QcIqcVO) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
activeTab.value = 'line'
resetForm()
@ -305,13 +311,15 @@ const submitForm = async () => {
try {
const data = formData.value as unknown as QcIqcVO
if (formType.value === 'create') {
await QcIqcApi.createIqc(data)
const res = await QcIqcApi.createIqc(data)
message.success(t('common.createSuccess'))
// id
formData.value.id = res
formType.value = 'update'
} else {
await QcIqcApi.updateIqc(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {

View File

@ -115,7 +115,13 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="来料检验单编号" align="center" prop="code" width="160" />
<el-table-column label="来料检验单编号" align="center" prop="code" width="160">
<template #default="scope">
<el-link type="primary" @click="openForm('detail', scope.row.id)">
{{ scope.row.code }}
</el-link>
</template>
</el-table-column>
<el-table-column label="来料检验单名称" align="center" prop="name" min-width="180" />
<el-table-column label="供应商简称" align="center" prop="vendorNickname" width="120" />
<el-table-column label="供应商批次号" align="center" prop="vendorBatch" width="130" />