diff --git a/src/api/studentTrainingAnswer.js b/src/api/studentTrainingAnswer.js index 8477691..9531765 100644 --- a/src/api/studentTrainingAnswer.js +++ b/src/api/studentTrainingAnswer.js @@ -201,3 +201,39 @@ export function checkNewProductSurveyStepFour(form) { headers: { repeatSubmit: false }, }); } + +const productDevelopmentFactorsStepOneDimensions = ["用户需求真实性", "产品体验闭环", "生态与兼容"]; + +function validateProductDevelopmentFactorsStepOneDemo(payload) { + const factors = Array.isArray(payload?.factors) ? payload.factors : []; + if (factors.length !== productDevelopmentFactorsStepOneDimensions.length) { + throw new Error("请完成用户需求真实性、产品体验闭环和生态与兼容分析"); + } + const dimensions = factors.map((factor) => String(factor?.dimension || "").trim()); + if (new Set(dimensions).size !== productDevelopmentFactorsStepOneDimensions.length + || productDevelopmentFactorsStepOneDimensions.some((dimension) => !dimensions.includes(dimension))) { + throw new Error("提交的分析维度不完整或重复"); + } + const incompleteFactor = factors.find((factor) => !String(factor?.successAnalysis || "").trim() + || !String(factor?.failedAnalysis || "").trim()); + if (incompleteFactor) { + throw new Error(`请完成${incompleteFactor.dimension || "该项"}的成功产品和失败产品分析`); + } + return { valid: true, message: "校验通过" }; +} + +export function checkProductDevelopmentFactorsStepOne(payload) { + if (isStudentDemo()) { + try { + return Promise.resolve({ code: 200, data: validateProductDevelopmentFactorsStepOneDemo(payload) }); + } catch (error) { + return Promise.reject(error); + } + } + return request({ + url: "/api/student-training-answers/product-development-factors/step-1/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 727526d..1173886 100644 --- a/src/views/foundation/product-development-factors.vue +++ b/src/views/foundation/product-development-factors.vue @@ -49,81 +49,75 @@ -
用户角度分析,填写下表:
+ +| 维度 | +评估项 | +成功产品 | +失败产品 | +
|---|---|---|---|
| {{ row.dimension }} | +{{ row.criteria }} | ++ + | ++ + | +
| 维度 | -评估项 | -成功产品 | -失败产品 | -
|---|---|---|---|
| {{ row.dimension }} | -{{ row.criteria }} | -- - | -- - | -
第 {{ currentStep + 1 }} 步内容待配置
+ 第 1 步分析已保存,可从上方步骤栏返回查看。