diff --git a/src/api/studentTrainingAnswer.js b/src/api/studentTrainingAnswer.js index 5f70948..8b21bd6 100644 --- a/src/api/studentTrainingAnswer.js +++ b/src/api/studentTrainingAnswer.js @@ -119,6 +119,21 @@ export function checkCompetitiveEnvironmentAnalysisStepTwo(payload) { return request({ url: "/api/student-training-answers/competitive-environment-analysis/step-2/validate", method: "post", data: value, headers: { repeatSubmit: false } }); } +export function checkCompetitiveEnvironmentAnalysisStepThree(payload) { + const strategies = Array.isArray(payload?.strategies) ? payload.strategies : []; + if (isStudentDemo()) { + const requiredTypes = ["so", "wo", "st", "wt"]; + if (strategies.length !== requiredTypes.length || requiredTypes.some((type) => !strategies.some((item) => item?.strategyType === type))) { + return Promise.reject(new Error("请完成 SO、WO、ST 和 WT 四类策略")); + } + if (strategies.some((item) => !String(item?.recommendation || "").trim() || !String(item?.expectedEffect || "").trim())) { + return Promise.reject(new Error("请为每类策略填写建议和预期效果")); + } + return Promise.resolve({ code: 200, data: { valid: true, message: "校验通过" } }); + } + return request({ url: "/api/student-training-answers/competitive-environment-analysis/step-3/validate", method: "post", data: { strategies }, headers: { repeatSubmit: false } }); +} + function validateNewProductSurveyStepTwoDemo(form) { const value = form || {}; const images = Array.isArray(value.images) ? value.images : []; diff --git a/src/views/demand/competitive-environment-analysis.vue b/src/views/demand/competitive-environment-analysis.vue index 7470e85..3f62631 100644 --- a/src/views/demand/competitive-environment-analysis.vue +++ b/src/views/demand/competitive-environment-analysis.vue @@ -20,6 +20,13 @@
| 序号 | SWOT维度 | 补充信息要点 |
|---|---|---|
| {{ index + 1 }} | {{ row.label }} |
Step 03
结合 SWOT 因素矩阵,将内部因素与外部因素交叉组合,分别提出四种策略。每类策略至少提出 1 条。
+请先完成并保存第 2 步的 SWOT 补充信息,再填写本步骤。
+| 策略类型 | 组合逻辑(自动生成) | 具体策略建议 | 预期效果 |
|---|---|---|---|
| {{ row.label }} | {{ item.label }}{{ item.value || '暂无已保存信息' }} |
第 {{ currentStep }} 步内容待配置
第 1 步 SWOT 分类已保存,可从上方步骤栏返回查看。