Commit Graph

8 Commits

Author SHA1 Message Date
weicw-dshsa ffd10ee242 fix(tygl): 学院选项补上 organizationName/organizationId 映射
上一次修复(7245008)只把 listColleges() 的接口从 /gxmu/college 换成了
/system/organization?parentId=24,配套的 normalizeCollegeOptions 仍读
gxmu_college 时代的键名 collegeName/collegeId——这两个键在新接口里都不存在,
每项映射成 {label:'', value:''},随即被末尾的 .filter(item => item.label && item.value !== '')
整列表滤空,学院下拉没有任何可选值。

- normalizeCollegeOptions 的 label/rawLabel 补 organizationName,value 补 organizationId
  (保留旧键,兼容本地草稿缓存)
- 该映射此前无人核对:openCollegePicker 无条件弹面板,空选项表现为「没有匹配的选项」,
  静默吞掉了字段不匹配,不像原来的「只有 2 个选项」那样显眼

实测(本机 API):/system/organization?parentId=24 返回 103 条,修复前映射后 0 条,
修复后 103 条;护理学院(id=54) 仍能带出 69 个班级。班级映射未受影响。
2026-10-12 19:11:22 +08:00
weicw-dshsa 024d3dd122 fix(ai): 兜底收敛公共模块,失败态不再 stringify 整包(issue 03)
「拿不到字段就 stringify 整包」的兜底此前在 3 个页面各写一份,
其中 activity-outline:332 显式把 payload.raw 当兜底内容源,是最严重的一例。

- 新增 utils/ai-result.js:getPayloadStatus / isFailedPayload /
  isDisplayableAnswer / pickDisplayable / resolveDisplayText /
  logRawPayload 统一一处;解析不出内容给可读文案,原始报文只进
  console.error 不进 UI;UUID 与无空格长 token 不算可展示内容
- manuscript parseResult:失败态短路、pickDisplayable 挡标识符、
  summary 不再回显内部字段名
- activity-outline parseOutline:删掉 payload.raw 显式兜底,失败态短路
- assistant 页删除自带副本,改为 import 公共模块
- 流式收尾:appendAssistantChunk / appendOutlineChunk 支持 reset——
  后端判定失败时丢弃已累积的半截内容;新增 streamFailed 跟踪,
  失败后不再 toast「内容生成完成」/「活动策划大纲生成完成」
- 删除死代码:两页 stringifyUnknown、大纲页 pickNonEmptyString

验证:verify-other-links.js 27/27(修复前代码跑同脚本 13 失败,判别力已证伪);
verify-frontend-fallback.js 17/17 回归通过。

Refs: .scratch/ai-assistant/issues/03-other-links-raw-payload-fallback.md
2026-09-24 04:22:41 +08:00
weicw-dshsa 6bbbd386c8 fix(ai): 补齐失败态判定的三处遗漏(评审跟进)
对抗式评审发现上一版仍有三处同类缺口,一并修掉:

- formatCreativeResult 不再回落 payload.answer:失败报文里 answer 是
  workflow_run_id(UUID),而 status 缺失时(message_end 事件、后端流式兜底
  分支)失败短路不生效,裸 UUID 会进气泡
- 新增 isDisplayableAnswer / pickDisplayable:把 UUID 与无空格长 token
  这类内部标识符挡在展示之外,formatOutlineResult 与 formatManuscriptResult
  复用;大纳/稿件也一并加失败态短路,避免 03 落地后端后渲染成
  「标题 + 失败文案」
- creative-assistant 的 workflowFailed 补 data.status 回退,与 assistant 页
  及后端 workflowStatus(两处都看)对齐,避免退回误导性的「待执行」空态

验证:verify-frontend-fallback.js 17/17;verify-frontend-e2e.js 以后端真实产出
为输入跑通,渲染结果无内部标识符与原始 JSON。

Refs: .scratch/ai-assistant/issues/01-creative-assistant-raw-json-bubble.md
2026-09-24 03:51:53 +08:00
weicw-dshsa 4e022b4cca fix(ai): 失败态给出可读文案,不再 stringify 整包兜底
后端判定工作流失败后不再下发 outputs / raw,前端需据此给出可读提示,
而不是把整包对象 JSON.stringify 进气泡(含 workflow_id / req_id 等内部标识符)。

- assistant/index.vue:新增 getPayloadStatus / isFailedPayload / buildFallbackText;
  formatCreativeResult 与 formatOutlineResult 失败态短路为固定文案;
  formatManuscriptResult、formatOutlineResult、formatCreativeResult 的整包
  stringifyUnknown 兜底一律改为可读兜底文案
- 失败文案不取自 payload.answer:失败报文里它是 workflow_run_id(UUID),
  原样展示等于把内部标识符贴给用户
- creative-assistant/index.vue:新增 workflowFailed,状态标签显示「执行失败」,
  结果区给出失败文案,不再停在误导性的「待执行」空态

Refs: .scratch/ai-assistant/issues/01-creative-assistant-raw-json-bubble.md
2026-09-24 03:44:12 +08:00
weicw-dshsa 4dca69a807 修改端口号 2026-09-22 20:35:14 +08:00
weicw-dshsa 7175fb3070 小程序登录页新增统一身份认证入口
登录方式由两种扩为三种(密码 / 微信授权 / 统一身份认证),
新增 loginByGxmuSso 与 fetchGxmuSsoAvailable 两个接口封装。
2026-09-18 23:31:05 +08:00
weicw-dshsa 7245008497 团员档案:学院改从组织树取,班级改为选填
学院级联修复:
- 原先 listColleges() 取 /gxmu/college,读的是已废弃的 gxmu_college 表,
  其 id 域(1、4)与班级的 collegeId(sys_organization.organization_id,53~79)
  不重合,导致学院只列出 2 个选项、选完选不出真实班级
- 改为取组织树中「广西医科大学」(parentId=24) 的直接子节点;
  loadClassOptions 传的本来就是 organizationId,正好对齐

班级改选填:
- 研究生在开放平台体系中本就没有班级(1584 个班级里一个研究生班都没有),
  强制必填会把 15538 名研究生挡在团员档案之外
- 去掉 classId 的 required 与「有学院就必须有班级」的强校验,学院仍保持必填
2026-09-15 15:55:00 +08:00
b2894lxlx 2dcae4165b 260720 2026-07-20 11:56:02 +08:00