feat: 质检工单结论、库位批量/筛选与协议样本接收质检摘要

落库并展示质检工单级结论(可编辑/任务派生),库位树支持批量新增子节点与货架格子检索,协议/捐赠列表补充接收与门禁质检摘要,并同步生产物料与工单卡片展示优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-07-28 18:46:24 +08:00
1 parent f554d77e59
commit a3af039e74
54 files changed
+42429 -35006

No files matched your search

@@ -1,4 +1,4 @@
<!-- 工单编辑(备注;质检工单可选工单状态) -->
<!-- 工单编辑(备注;质检工单可选工单状态、质检结论) -->
<template>
<el-dialog
v-model="dialogVisible"
@@ -24,6 +24,21 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="showQcConclusion" label="质检结论" class="form-col-span-2">
<el-select
v-model="qcConclusion"
placeholder="请选择"
clearable
style="width: 100%"
>
<el-option
v-for="opt in qcConclusionOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" class="form-col-span-2">
<el-input
v-model="remark"
@@ -50,11 +65,17 @@
<script setup lang="ts">
import { ref, computed, watch } from 'vue'
import { Close, Check } from '@element-plus/icons-vue'
import { workOrderStatus as workOrderStatusRegistry, workOrderStatusLabel } from '@/utils/status-tag-registry'
import {
workOrderStatus as workOrderStatusRegistry,
workOrderStatusLabel,
qcWorkOrderConclusionLabelMap,
qcWorkOrderConclusionLabel
} from '@/utils/status-tag-registry'
export type WorkOrderRemarkSubmitPayload = {
remark: string
workOrderStatus?: string
qcConclusion?: string
}
const props = withDefaults(
@@ -63,14 +84,18 @@
title?: string
initialRemark?: string
initialWorkOrderStatus?: string
initialQcConclusion?: string
showWorkOrderStatus?: boolean
showQcConclusion?: boolean
submitting?: boolean
}>(),
{
title: '编辑备注',
initialRemark: '',
initialWorkOrderStatus: '',
initialQcConclusion: '',
showWorkOrderStatus: false,
showQcConclusion: false,
submitting: false
}
)
@@ -87,6 +112,7 @@
const remark = ref('')
const workOrderStatus = ref('')
const qcConclusion = ref('')
const workOrderStatusOptions = computed(() =>
Object.keys(workOrderStatusRegistry).map((value) => ({
@@ -95,6 +121,13 @@
}))
)
const qcConclusionOptions = computed(() =>
Object.keys(qcWorkOrderConclusionLabelMap).map((value) => ({
value,
label: qcWorkOrderConclusionLabel(value)
}))
)
function handleClose() {
dialogVisible.value = false
}
@@ -106,6 +139,9 @@
if (props.showWorkOrderStatus) {
payload.workOrderStatus = workOrderStatus.value
}
if (props.showQcConclusion) {
payload.qcConclusion = qcConclusion.value || ''
}
emit('submit', payload)
}
@@ -115,6 +151,7 @@
if (val) {
remark.value = props.initialRemark || ''
workOrderStatus.value = props.initialWorkOrderStatus || ''
qcConclusion.value = props.initialQcConclusion || ''
}
}
)