diff --git a/src/views/app/AppForm.vue b/src/views/app/AppForm.vue index d269655..4ede284 100644 --- a/src/views/app/AppForm.vue +++ b/src/views/app/AppForm.vue @@ -250,8 +250,8 @@ const rules = computed(() => ({ ...(props.schoolMode ? {} : { categoryId: [{ required: true, type: 'number' as const, message: '请选择应用类型', trigger: 'change' }], }), - // 技术标识仅新增必填(后端 Create 组同口径);编辑留空 = 保持原值(存量孤儿行允许继续观察) - ...((props.schoolMode || props.isEdit) ? {} : { + // 技术标识新增与编辑均必填(2026-09-28 拍板,后端 Create/Update 组同口径);学校模式不展示该字段 + ...(props.schoolMode ? {} : { appCode: [{ required: true, message: '请输入技术标识', trigger: 'blur' }], }), })); diff --git a/src/views/app/EditAppContainer.vue b/src/views/app/EditAppContainer.vue index 2c9a8e8..47f36f8 100644 --- a/src/views/app/EditAppContainer.vue +++ b/src/views/app/EditAppContainer.vue @@ -67,11 +67,15 @@ function open(id: number, row: any, categories: any[], onSuccess?: () => void) { async function handleSubmit(formData: Record) { if (!currentId.value) return; if (isSchoolMode) { - // 学校模式:仅 名称/描述/Pc图标 三字段写学校覆盖表,其余字段一律不提交 + // 学校模式:仅 名称/描述/Pc图标 三字段写学校覆盖表(后端 editAppForSchool 只读这三个); + // categoryId/appCode/appNature 原样回传仅为满足平台级 Update 校验(后端不落平台表),缺失会 400 form.value = { id: currentId.value, name: formData.name, + categoryId: formData.categoryId, desc: formData.desc, + appCode: formData.appCode, + appNature: formData.appNature, pcIcon: formData.pcIcon, }; } else {