Commit Graph
7 Commits
Author SHA1 Message Date
lijing 97cd25b0e0 feat(form): 表单卡支持审批流/部门名镜像/附件对象数组,并落地两步提交
build / build (push) Successful in 1m58s
配合后端把 5 个模块「新建/发布」页的字段完整搬进助手表单:

- FormCard 新增审批流控件(widget=flow):勾「走审批流程」后按步配置,
  每步可选或签/会签并多选审批人(来自教师组织树),提交时拼
  flow:[{name,vote,approverTeaIds}];发布方式选了「提交审批」却没配审批人则当场拦下
- 镜像字段(deptName)不渲染控件,提交时按源字段选中项反查显示名一起带上,
  与模块页「字典 id + 反查名称」的提交口径一致
- 附件支持对象数组形态(作业 attachments:[{fileId,fileUrl,fileType,fileName,sort}]);
  数组类字段在为空时也照常提交(模块页就是恒带 fileIds:"" / attachments:[])
- module-session:callModuleApi 支持 followUp —— 首步业务成功后用返回的资源 id 续跑第二步,
  并带上「第一步成功但没拿回编号」的如实报错
- types:BrowserToolCall 增加 followUp;widget 联合类型补 scopes / flow

验证:npm run build 通过;headless Chrome 真机跑「表单 → 浏览器代执行 → 模块接口」,
公告(镜像 + 审批流 + pushScopes)/ 作业(Create→Publish、Create→Schedule)/
宿舍(镜像 + 全部宿舍哨兵)/ 活动(分类存名称)共 50 项断言全绿
2026-10-13 11:29:12 +08:00
lijing 2b114829ab feat(chat): 例句与提示覆盖宿舍通知 / 家校活动
build / build (push) Successful in 2m47s
- EXAMPLES 新增「我要发布宿舍通知」「我要发布活动」两个裸句(按能力目录过滤,
  学生身份不会轮播),以及「这条宿舍通知还有谁没回执?」「秋季运动会的报名情况怎么样?」
- TIPS 的宿舍/活动提示改写:说明教师可直接说「我要发布宿舍通知」「我要发布活动」弹表单,
  也能问回执/名单情况。

(.env.dev 是本地配置,按约定不入库。)
2026-10-12 19:49:58 +08:00
lijing aaa08ddfd3 feat(chat): 例句与提示支持「我要发布校园公告」直达
build / build (push) Successful in 1m55s
- EXAMPLES 新增裸句「我要发布校园公告」(tool=notice.publish):
  按能力目录过滤,学生身份不会轮播这句,避免给出"照着说必被拒"的示范。
  保留带细节的「发一条关于社团招新的通知」。
- TIPS 的公告提示改为「直接说『我要发布校园公告』就会弹出发布表单
  (标题 + 正文 + 发文部门)」。

(.env.dev 的改动是本地配置,按约定不入库。)
2026-10-12 18:54:22 +08:00
lijing abd97adf9a feat(leave): 裸意图直达表单 + 按身份分离请假表单 + 前端代取下拉
build / build (push) Successful in 1m52s
- 说「我要请假」这类只有意图的短句时,直接弹出表单不再过模型:
  后端 IntentShortcut 在编排器入口做「去空白标点 + 剥前后缀后正好等于标准说法
  且原句 ≤12 字」的窄匹配,命中即跳过 LLM 直接下发表单。
- 按身份分离:学生 → leave.submit(提交申请),教师/管理员 → leave.register
  (帮学生登记,必填 classId+stuId);RolePolicy 把两者分别归入 STUDENT_ONLY
  与 STAFF_ONLY,模型视野里天然只有一个,不可能选错。
- 表单字段由各自必填参数推导;下拉选项改为后端下发 optionCall(含 {{占位符}}),
  由前端带用户登录态代取后按 valueKey/labelKey 映射(模块 /api/* 服务端必然 302)。
  stuId 依赖 classId,选完班级才解锁学生名单。
- 抽出 utils/module-session.ts(会话预热 / 带登录态调模块 / 字典项解析),
  Chat.vue 与 FormCard.vue 复用。
- 例句与提示改为「我要请假」「帮学生登记请假」。
2026-10-12 17:49:34 +08:00
lijing 946d953103 refactor(modules): 移除资源库模块对接
build / build (push) Successful in 1m56s
- modules.ts / QuickActions.vue / Chat.vue 去掉 resourcelibrary 的标签、落地页、快捷卡与例句
- 模块清单仍完全由后端 /api/agent/tools 下发驱动,前端不硬编码、不自行判权
2026-10-12 16:10:45 +08:00
lijing ab87a4b560 fix(chat): 模块会话缺失时自动预热一次 CAS 会话再重试
build / build (push) Successful in 2m50s
模块接口只认模块自己容器里的 CAS 会话(_const_cas_assertion_)。同源部署只能
保证 Cookie 送得到,送不到「还没建出来的会话」:模块 SPA 建会话靠整页跳 SSO
签票回跳,而代执行走 fetch —— 平台对 AJAX 只回 JSON code=302、不真跳转,
于是首次查询某模块必然失败,且每次重问都同样失败。

现在首次收到 code=302 时:用同源隐藏 iframe 对刚失败的接口地址做一次真实导航
(不带 yschapirequest),走完「模块 302 → SSO 凭已有 TGT 签票回跳 → 模块落会话」,
随后重试原请求;每模块 60s 内只尝试一次,用户无感。会话建好后同浏览器后续查询
直接命中,无额外开销。
2026-10-12 14:57:30 +08:00
lijing 37d292c5d2 feat: 提交校园智能助手前端工程源码(Vue3 + Vite + view-ui-plus)
build / build (push) Successful in 3m14s
2026-10-12 14:45:00 +08:00