diff --git a/src/App.vue b/src/App.vue
index 6d99f4f..8efdd62 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -13,16 +13,42 @@
\ No newline at end of file
+ if (cache.session.getJSON("sessionObj") === undefined) {
+ removeToken();
+ removeUserInfo();
+ }
+ queueStepNameTitleRefresh();
+ stepNameObserver = new MutationObserver(queueStepNameTitleRefresh);
+ stepNameObserver.observe(document.body, { childList: true, subtree: true });
+});
+
+onBeforeUnmount(() => stepNameObserver?.disconnect());
+
diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
index 8ab8f1a..b4be8c9 100644
--- a/src/assets/styles/element-ui.scss
+++ b/src/assets/styles/element-ui.scss
@@ -107,3 +107,11 @@
.el-loading-text {
color: #d7f8ff;
}
+
+// Keep textarea character counts readable on the application's dark training surfaces.
+// Element Plus uses a light fill by default, which appears as a white mask in the lower-right corner.
+.el-input__count,
+.el-input__count-inner {
+ color: #ffffff !important;
+ background: transparent !important;
+}
diff --git a/src/assets/styles/student-training.scss b/src/assets/styles/student-training.scss
index 8d8dda9..5e867d1 100644
--- a/src/assets/styles/student-training.scss
+++ b/src/assets/styles/student-training.scss
@@ -654,6 +654,31 @@
background: linear-gradient(95deg, #0a6b9e, #0a5c86) !important;
}
+// Keep long step names inside the navigation rail. Their complete name remains
+// available through the native title tooltip applied by App.vue.
+.student-training-shell .step-tab .step-copy,
+.legacy-training-page .step-tab .step-copy,
+.step-tabs .step-tab .step-copy,
+.step-indicator .step-tab .step-copy {
+ min-width: 0 !important;
+ overflow: hidden;
+}
+
+.student-training-shell .step-tab .step-copy > strong,
+.student-training-shell .step-tab .step-copy > b,
+.legacy-training-page .step-tab .step-copy > strong,
+.legacy-training-page .step-tab .step-copy > b,
+.step-tabs .step-tab .step-copy > strong,
+.step-tabs .step-tab .step-copy > b,
+.step-indicator .step-tab .step-copy > strong,
+.step-indicator .step-tab .step-copy > b {
+ display: block !important;
+ min-width: 0;
+ overflow: hidden !important;
+ text-overflow: ellipsis !important;
+ white-space: nowrap !important;
+}
+
@media (max-width: 1100px) {
#app .studentLayout .app-main:has(.student-training-shell) .student-training-shell,
#app .teacherLayout .app-main:has(.student-training-shell) .student-training-shell {
diff --git a/src/views/assessment/diagnosis.vue b/src/views/assessment/diagnosis.vue
index cbaca82..5332304 100644
--- a/src/views/assessment/diagnosis.vue
+++ b/src/views/assessment/diagnosis.vue
@@ -5,40 +5,35 @@
产品问题诊断与迭代 从用户触达产品的全路径出发,搭建从曝光到复购的完整数据漏斗,逐层计算各环节转化率并对比行业均值,定位产品在哪个环节出现了明显异常流失。 从用户触达产品的全路径出发,搭建从曝光到复购的完整数据漏斗,逐层计算各环节转化率并对比行业均值,定位产品在哪个环节出现了明显异常流失,精准锁定问题所在的运营环节。 3.导出数据表上传到通用AI大模型,通过AI大模型辅助完成计算,参考步骤及提示词如下:请根据表格数据,计算从曝光到复购链路节点转化率。 根据案例数据填写各渠道链路节点转化率,数值以百分比(%)填写。 根据上述转化率绘制各渠道与行业均值的节点转化漏斗对比图。 支持 PNG、JPG、WEBP 格式,图片不超过 5MB;上传后可点击预览。 对比行业均值数据,定位异常节点并填写分析与判定。 说明:默认展示一行可填写,最少一行,可增加行,最多 5 行;诊断异常节点须从上表已填写渠道中选择。 根据案例数据计算各个渠道链路节点转化率,参考方法及工具如下: 根据节点转化率计算结果,绘制各渠道转化率与行业均值的转化漏斗对比图,可视化呈现多环节情况,参考方法及工具如下: 3.导出数据表上传到通用AI大模型,通过AI大模型辅助完成,参考步骤及提示词如下:请根据表格数据绘制漏斗图,并与行业均值漏斗图进行对比。 支持 PNG、JPG、WEBP 格式,图片不超过 5MB;上传后可点击预览。 对比案例行业均值数据,定位异常节点。 说明:这个表格默认展示一行可填写,最少一行,可以增加行,最多5行,这里填写的渠道需要来源于第一个表的渠道。 漏斗只能定位“哪个环节出了问题”,本步骤通过词云和情感倾向分析,从真实用户评价中提取高频问题,验证异常背后的根本原因。 导入评论数据,系统自动生成高频问题词云。 请根据词云图填写词云中出现频次最高的 TOP3 问题。 点击分析后,系统自动填充评论数量;请自行计算占比,保留两位小数。 请结合词云 TOP3 与情感分析结果,说明本案例的核心问题根本原因;说明高频问题与情感数据是如何验证步骤一漏斗异常结论的。 漏斗只能定位“哪个环节出了问题”,要回答为什么出问题,需要分析用户最真实的反馈。本步骤通过词云分析和情感倾向分析,从用户评价中提取高频问题,判断整体口碑倾向,验证漏斗异常背后的真实根因。 导入数据,生成词云,基于案例评论数据自动生成高频问题词云。 支持 CSV、TXT、XLS、XLSX,文件不超过 5MB。 请根据词云图填写词云中出现频次最高的TOP3问题。 请结合词云TOP3与情感分析结果,说明本案例的核心问题根本原因;说明高频问题与情感数据是如何验证步骤一漏斗异常结论的 找到根因后,还需验证“改进方案是否真的有效”,避免拍脑袋迭代。AB测试对照诊断法将用户随机分为对照组(维持原方案)和实验组(应用改进方案),对比两组关键指标差异,用数据判断改进方案是否值得落地。 请基于案例资料,针对步骤一和步骤二分析结果,设计 AB 测试方案。 请从案例资料中获取 AB 测试两组数据,计算后填入下表并逐项判定。 绘制 AB 测试结果对比图并上传,作为改进方案的可视化证据。 支持 PNG、JPG、WEBP 格式,图片不超过 5MB;上传后可点击预览。 结合全链路数据漏斗诊断、售后评论分析法及 AB 测试对照诊断,分析产品存在的问题,并提出具体迭代优化建议。 找到根因后,还需验证“改进方案是否真的有效”,避免拍脑袋迭代。AB测试对照诊断法将用户随机分为对照组(维持原方案)和实验组(应用改进方案),对比两组的关键指标差异,用数据判断改进方案是否值得落地。 请基于案例资料,针对步骤一和步骤二分析结果,设计AB测试方案 请从案例资料中获取AB测试两组数据,计算后填入下表并逐项判定: 绘制AB测试结果对比图,参考方法及工具如下: 支持 PNG、JPG、WEBP 格式,图片不超过 5MB;上传后可点击预览。 结合全链路数据漏斗诊断、售后评论分析法及AB测试对照诊断,分析产品存在的问题,并提出具体的迭代优化建议。{{ currentStep === 1 ? '全链路转化漏斗诊断' : currentStep === 2 ? '用户评论根因分析' : 'AB 测试验证方案' }}
计算各节点转化率
链路节点 天猫 京东 抖音 拼多多 行业均值 {{ row.linkNode }} 全链路转化漏斗可视化
定位异常节点
渠道 链路节点 店铺转化率 行业均值转化率 异常分析与判定 计算各节点转化率
链路节点 天猫 京东 抖音 拼多多 行业均值 {{ row.linkNode }} 全链路转化漏斗可视化
定位异常节点
渠道 链路节点 店铺转化率 行业均值转化率 异常分析与判定 词云分析
情感倾向分析
情感类型 评论数量(条) 占比 {{ row.type }} {{ row.count ?? '—' }} 词云分析
情感倾向分析
情感类型 评论数量(条) 占比 {{ row.type }} {{ row.count ?? '—' }} 确定测试方案
AB测试数据填报
测试指标 对照组数据 实验组数据 判定与分析 {{ row.metric }} 可视化呈现
诊断结论与迭代优化建议
确定测试方案
AB测试数据填报
测试指标 对照组数据 实验组数据 判定与分析 {{ row.metric }} 可视化呈现
诊断结论与迭代优化建议
预算占比由学生填写,各渠道占比合计必须等于 100%。预算金额由系统按“试错预算总额 × 占比”自动计算;每个渠道的冷启动期、增长期和稳定期投放预算合计必须等于该渠道预算金额。默认显示一行,保存并进入下一步时至少填写两行、最多五行;渠道仅可从产品发布渠道评估已填写的渠道中选择。
尚未读取到产品发布渠道评估的渠道数据。请先完成并保存该模块的渠道数据。
@@ -89,7 +88,6 @@ -渠道由第一步自动同步,不可手动编辑;冷启动期、增长期、稳定期固定。每个“阶段 × 渠道”必须填写两项不重复的投放策略。策略池是参考内容,也可在下拉框中输入符合渠道实际情况的策略。
该表渠道与第一步一致,合计行为固定最后一行。点击率 = 点击量 ÷ 曝光量 × 100%;实际 ROI = 成交额 ÷ 推广花费。合计行的曝光量、点击量、成交额和推广花费必须为各渠道数据合计,点击率和实际 ROI 均按合计值重新计算。
@@ -157,7 +154,6 @@ -渠道和 ROI 从前序步骤自动同步。ROI 不低于保本 ROI 即为达标;学生自行选择达标结果,系统提交时校验。达标渠道的问题诊断和优化动作可不填,未达标渠道必须填写。
结合整体 ROI 与各渠道达标情况,总结本方案是否需要调整、调整方向,以及优先调整的渠道。
支持 CSV、TXT、XLS、XLSX,文件不超过 5MB。