feat(web-admin): add storage-cert QC fill entry on QC work-order cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-10-09 12:40:16 +08:00
1 parent df827e4344
commit f1dcafd33d
1 file changed
+33 -1
@@ -156,6 +156,13 @@
>
<el-icon><EditPen /></el-icon>特殊样本
</el-button>
<el-button
v-if="showStorageCertQcButton"
class="btn-op-item"
@click="openStorageCertQcDialog"
>
<el-icon><Document /></el-icon>填写储存证质检信息
</el-button>
</template>
<template v-else-if="showWorkOrderOps">
<el-button
@@ -177,6 +184,13 @@
>
<el-icon><EditPen /></el-icon>特殊样本
</el-button>
<el-button
v-if="showStorageCertQcButton"
class="btn-op-item"
@click="openStorageCertQcDialog"
>
<el-icon><Document /></el-icon>填写储存证质检信息
</el-button>
<el-dropdown
v-if="hasMoreWorkOrderActions(row)"
trigger="hover"
@@ -234,12 +248,21 @@
:target="sampleSpecialMarkTarget"
@success="emit('sample-special-changed')"
/>
<StorageCertQcDialog
v-model:visible="storageCertQcVisible"
mode="edit"
:sample-code="String(row.sampleCode || '')"
:sample-type-name="String(row.sampleTypeName || '')"
:qc-work-order-id="String(row.id || '')"
/>
</article>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import { Setting, View, More, EditPen, Delete } from '@element-plus/icons-vue'
import { Setting, View, More, EditPen, Delete, Document } from '@element-plus/icons-vue'
import StorageCertQcDialog from '@/components/business/storage-cert-qc-dialog/index.vue'
import { supportsStorageCertQc } from '@/utils/storage-cert-qc-fields'
import type { QcWorkOrder, OutboundQcDetailProduct } from '@/api/qc-work-order'
import type { QcTask } from '@/api/qc-task'
import type { QcInspectionBatch } from '@/utils/qc-inspection-batch'
@@ -314,6 +337,11 @@
}>()
const sampleSpecialDialogVisible = ref(false)
const storageCertQcVisible = ref(false)
const showStorageCertQcButton = computed(() =>
supportsStorageCertQc(String(props.row?.sampleTypeName || ''))
)
const sampleSpecialMarkTarget = computed(() =>
resolveInboundSampleSpecialMarkTargetFromRow(props.row)
@@ -328,6 +356,10 @@
sampleSpecialDialogVisible.value = true
}
function openStorageCertQcDialog() {
storageCertQcVisible.value = true
}
const effectiveCardMeta = computed(() =>
resolveCardMetaForRow(props.row, props.cardMetaConfig.tabKey)
)