From 9394595e036dab5243c55d51dd4a73ce6f5d67d3 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Fri, 7 Aug 2026 14:45:39 +0800 Subject: [PATCH] feat: add product factors step two analysis --- src/api/studentTrainingAnswer.js | 14 ++++ .../product-development-factors.vue | 80 ++++++++++++++----- ...velopment-factors-step-one.static.test.cjs | 14 +++- 3 files changed, 84 insertions(+), 24 deletions(-) diff --git a/src/api/studentTrainingAnswer.js b/src/api/studentTrainingAnswer.js index 9531765..28bbcf4 100644 --- a/src/api/studentTrainingAnswer.js +++ b/src/api/studentTrainingAnswer.js @@ -237,3 +237,17 @@ export function checkProductDevelopmentFactorsStepOne(payload) { headers: { repeatSubmit: false }, }); } + +const productDevelopmentFactorsStepTwoDimensions = ["技术应用", "合规与认证"]; +function validateProductDevelopmentFactorsStepTwoDemo(payload) { + const factors = Array.isArray(payload?.factors) ? payload.factors : []; + const dimensions = factors.map((factor) => String(factor?.dimension || "").trim()); + if (factors.length !== 2 || new Set(dimensions).size !== 2 || productDevelopmentFactorsStepTwoDimensions.some((dimension) => !dimensions.includes(dimension))) throw new Error("请完成技术应用和合规与认证分析"); + const incomplete = factors.find((factor) => !String(factor?.successAnalysis || "").trim() || !String(factor?.failedAnalysis || "").trim()); + if (incomplete) throw new Error(`请完成${incomplete.dimension || "该项"}的成功产品和失败产品分析`); + return { valid: true, message: "校验通过" }; +} +export function checkProductDevelopmentFactorsStepTwo(payload) { + if (isStudentDemo()) { try { return Promise.resolve({ code: 200, data: validateProductDevelopmentFactorsStepTwoDemo(payload) }); } catch (error) { return Promise.reject(error); } } + return request({ url: "/api/student-training-answers/product-development-factors/step-2/validate", method: "post", data: payload, headers: { repeatSubmit: false } }); +} diff --git a/src/views/foundation/product-development-factors.vue b/src/views/foundation/product-development-factors.vue index 1173886..c219197 100644 --- a/src/views/foundation/product-development-factors.vue +++ b/src/views/foundation/product-development-factors.vue @@ -63,7 +63,7 @@ - + {{ row.dimension }} {{ row.criteria }} @@ -96,9 +96,17 @@ +