diff --git a/src/views/mes/plan/index.vue b/src/views/mes/plan/index.vue
index 8e14a610..fc95076b 100644
--- a/src/views/mes/plan/index.vue
+++ b/src/views/mes/plan/index.vue
@@ -439,7 +439,7 @@ const handleInspectExpand = (row: PlanVO) => {
const zjTaskFormRef = ref()
const openZjTaskForm = (row: PlanVO) => {
- zjTaskFormRef.value.open('create', undefined, { ticketType: 1, ticket: row.id, ticketName: row.code })
+ zjTaskFormRef.value.open('create', undefined, { ticketType: 1, ticket: row.id, ticketName: row.code, productId: row.productId })
}
const setInspectable = (id: number | undefined, hasPending: boolean) => {
diff --git a/src/views/mes/zjTask/ZjTaskForm.vue b/src/views/mes/zjTask/ZjTaskForm.vue
index 0c2c9329..3ef010fd 100644
--- a/src/views/mes/zjTask/ZjTaskForm.vue
+++ b/src/views/mes/zjTask/ZjTaskForm.vue
@@ -19,7 +19,7 @@
+ :placeholder="t('QualityManagement.ZjTask.placeholderFormTicket')" @change="fetchProductIdByTicket">
@@ -30,7 +30,7 @@
:value="dict.value" />
-
+
([])
const selectedSchemaId = ref(undefined)
+const currentProductId = ref(undefined)
const orgTypeOptions = getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)
const userList = ref([])
@@ -193,10 +194,13 @@ const formatSchemaVal = (val: string | number | null | undefined) => {
}
const loadSchemaList = async () => {
- if (schemaList.value.length) return
schemaLoading.value = true
try {
- const data = await ZjSchemaApi.getZjSchemaList()
+ const params: any = {}
+ if (formData.value.ticketType === 1 && currentProductId.value) {
+ params.productId = currentProductId.value
+ }
+ const data = await ZjSchemaApi.getZjSchemaList(params)
schemaList.value = data || []
} finally {
schemaLoading.value = false
@@ -205,6 +209,7 @@ const loadSchemaList = async () => {
const openSchemaDialog = async () => {
schemaDialogVisible.value = true
+ schemaList.value = []
await loadSchemaList()
}
@@ -245,10 +250,11 @@ const resetForm = () => {
}
selectedSchemaId.value = undefined
lockedFields.value = {}
+ currentProductId.value = undefined
formRef.value?.resetFields()
}
-const open = async (type: string, record?: ZjTaskVO, preset?: { ticketType?: number; ticket?: number; ticketName?: string }) => {
+const open = async (type: string, record?: ZjTaskVO, preset?: { ticketType?: number; ticket?: number; ticketName?: string; productId?: number }) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
@@ -281,6 +287,9 @@ const open = async (type: string, record?: ZjTaskVO, preset?: { ticketType?: num
lockedFields.value.ticket = true
planList.value = [{ id: preset.ticket, code: preset.ticketName || '' }] as PlanVO[]
}
+ if (preset.productId !== undefined) {
+ currentProductId.value = preset.productId
+ }
}
}
@@ -317,10 +326,20 @@ const submitForm = async () => {
}
const ticketTypeChange = async () => {
+ formData.value.ticket = undefined
+ currentProductId.value = undefined
if (formData.value.ticketType != undefined) {
const type = formData.value.ticketType === 1 ? 8 : formData.value.ticketType
const data = await PlanApi.getPlanByTicketType(type)
planList.value = data || []
}
}
+
+const fetchProductIdByTicket = async () => {
+ if (!formData.value.ticket) return
+ const plan = planList.value.find((item: any) => item.id === formData.value.ticket)
+ if (plan?.productId) {
+ currentProductId.value = plan.productId
+ }
+}