diff --git a/src/api/studentTrainingAnswer.js b/src/api/studentTrainingAnswer.js index 28bbcf4..17c12a4 100644 --- a/src/api/studentTrainingAnswer.js +++ b/src/api/studentTrainingAnswer.js @@ -251,3 +251,27 @@ 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 } }); } + +const productDevelopmentFactorsStepThreeDimensions = ["供应链与成本控制", "商业模式", "市场反馈"]; + +function validateProductDevelopmentFactorsStepThreeDemo(payload) { + const factors = Array.isArray(payload?.factors) ? payload.factors : []; + const dimensions = factors.map((factor) => String(factor?.dimension || "").trim()); + if (factors.length !== productDevelopmentFactorsStepThreeDimensions.length + || new Set(dimensions).size !== productDevelopmentFactorsStepThreeDimensions.length + || productDevelopmentFactorsStepThreeDimensions.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 checkProductDevelopmentFactorsStepThree(payload) { + if (isStudentDemo()) { + try { return Promise.resolve({ code: 200, data: validateProductDevelopmentFactorsStepThreeDemo(payload) }); } + catch (error) { return Promise.reject(error); } + } + return request({ url: "/api/student-training-answers/product-development-factors/step-3/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 c219197..66d37ec 100644 --- a/src/views/foundation/product-development-factors.vue +++ b/src/views/foundation/product-development-factors.vue @@ -104,6 +104,14 @@
+