You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dianshang-qianduan/src/views/training/taskKeyMap.js

63 lines
2.6 KiB
JavaScript

export const trainingTaskKeyByPath = {
"/foundation/new-product-survey": "new-product-survey",
"/foundation/product-development-factors": "product-development-factors",
"/foundation/product-development-process": "product-development-process",
"/demand/index": "industry-demand-analysis",
"/demand/environment": "competitive-environment-analysis",
"/demand/people": "target-user-profile",
"/demand/user": "target-user-profile",
"/demand/business-feasibility": "business-feasibility",
"/demand/consumer-behavior": "consumer-behavior",
"/demand/consumer-scenario": "consumer-scenario",
"/demand/feature-conversion": "feature-conversion",
"/product/index": "market-opportunity-selection",
"/product/differentiation": "product-value-positioning",
"/product/structure": "product-structure",
"/product/price": "product-pricing",
"/product/after-sales-service": "after-sales-service",
"/product/requirements-doc": "requirements-doc",
"/product/hardware-cost": "hardware-cost",
"/test/index": "release-channel-evaluation",
"/test/channelas": "release-channel-evaluation",
"/test/promotion": "promotion-effect-optimization",
"/test/marketing": "promotion-effect-optimization",
"/channel/index": "purchase-demand-forecast",
"/channel/purchase": "purchase-demand-forecast",
"/channel/supplier": "supplier-evaluation",
"/assessment/index": "product-diagnosis-iteration",
"/assessment/diagnosis": "product-diagnosis-iteration",
"/assessment/five": "product-diagnosis-iteration",
"/assessment/kano": "product-diagnosis-iteration",
"/assessment/market": "product-diagnosis-iteration",
"/assessment/traffic": "product-diagnosis-iteration",
"/assessment/optimization": "category-optimization",
};
export function resolveTrainingTaskKey(route, explicitTaskKey = "") {
return explicitTaskKey || route?.meta?.pageKey || trainingTaskKeyByPath[route?.path] || "";
}
export function parseTrainingArray(value, fallback = []) {
if (Array.isArray(value)) {
const result = value.map((item) => String(item || "").trim()).filter(Boolean);
return result.length ? result : fallback;
}
if (!value) {
return fallback;
}
try {
const parsed = JSON.parse(value);
if (Array.isArray(parsed)) {
const result = parsed.map((item) => String(item || "").trim()).filter(Boolean);
return result.length ? result : fallback;
}
} catch (error) {
// Fall through to delimiter parsing.
}
const result = String(value)
.split(/[;|\n]/)
.map((item) => item.trim())
.filter(Boolean);
return result.length ? result : fallback;
}