diff --git a/src/api/studentTrainingAnswer.js b/src/api/studentTrainingAnswer.js index 8762849..dcaf94f 100644 --- a/src/api/studentTrainingAnswer.js +++ b/src/api/studentTrainingAnswer.js @@ -109,6 +109,20 @@ export function checkMarketOpportunitySelectionStepOne(items) { return request({ url: "/api/student-training-answers/market-opportunity-selection/step-1/check", method: "post", data: { items }, headers: { repeatSubmit: false } }); } +export function checkMarketOpportunitySelectionStepTwo(payload) { + const weights = Array.isArray(payload?.weights) ? payload.weights : []; + const expectedIds = ["search-count", "transaction-amount", "transaction-growth", "category-transaction-growth", "demand-supply-ratio", "online-products", "online-merchants", "organic-traffic-ratio"]; + if (isStudentDemo()) { + const ids = new Set(weights.map((item) => item?.id)); + const total = weights.reduce((sum, item) => sum + Number(item?.weight || 0), 0); + if (weights.length !== expectedIds.length || expectedIds.some((id) => !ids.has(id)) || weights.some((item) => !Number.isInteger(Number(item?.weight)) || Number(item.weight) < 1 || Number(item.weight) > 100) || total !== 100) { + return Promise.reject(new Error("二级指标权重需为 1 至 100 的整数,且合计必须为 100%")); + } + return Promise.resolve({ code: 200, data: { valid: true, message: "校验通过" } }); + } + return request({ url: "/api/student-training-answers/market-opportunity-selection/step-2/validate", method: "post", data: { weights }, headers: { repeatSubmit: false } }); +} + function validateNewProductSurveyStepTwoDemo(form) { const value = form || {}; const images = Array.isArray(value.images) ? value.images : []; diff --git a/src/views/product/market-opportunity-selection.vue b/src/views/product/market-opportunity-selection.vue index b092468..e0d9379 100644 --- a/src/views/product/market-opportunity-selection.vue +++ b/src/views/product/market-opportunity-selection.vue @@ -13,7 +13,15 @@
序号指标分类
{{ index + 1 }}{{ item.name }}
-

第 {{ currentStep }} 步内容待配置

第 1 步指标分类已保存,可返回查看。
+ +

第 {{ currentStep }} 步内容待配置

已保存的步骤可从上方步骤栏返回查看。
@@ -23,7 +31,7 @@