23 Commits

Author SHA1 Message Date
weicw 98521fdc71 feat(declare): 申报项目列表展示审核状态并透传申报项目id
- 列表按本人状态显示草稿/审核中/已通过/已驳回/已作废,审核中与已通过时禁止进入
- 各申报页提交时透传 declareId,6 个通用模块此前不传导致无法判重
- 各模块列表显示审核状态并支持撤回
- 挑战杯页不再把申报项目 id 当作申报记录 id 加载详情
2026-11-02 19:28:57 +08:00
weicw 6acb8ba4b9 revert(manuscript): 移除「Mock 文稿」按钮
验收用的本地样例入口,验完就摘,别把测试数据入口留在正式页面里。
AI 原文快照、编辑/还原/草稿那一套逻辑不受影响。
2026-11-02 15:16:59 +08:00
weicw b7aa57b62d feat(manuscript): 文稿工作台加「Mock 文稿」按钮,不必等 dify 就能试编辑
点一下直接填进一份带标题层级/加粗/列表/引用/表格的样例结果,状态等同
「生成完成」:AI 原文快照一并写入,编辑正文、还原、草稿恢复都能立刻试。

- 样例用数组 join 拼,不用模板字符串:续行缩进在 markdown 里等于代码块,
  渲染出来是字面量星号和管道符(这次踩到了,已验证修复后 strong/table 正常)
- 按钮放在顶部操作条,虚线边框和真模板按钮区分开
- 只写本地状态与草稿,不落库、不调接口
2026-11-02 15:03:23 +08:00
weicw e3dcf8093a feat(manuscript): 文稿工作台支持编辑生成结果
生成后的正文可以就地改,不再只能复制出去:
- 正文区加「编辑正文 / 完成编辑」:编辑态换 textarea 编 markdown 源码,
  完成时按需回预览;三端(微信小程序 / H5 / App)行为一致
- 生成标题本来就可在结果区改,编辑正文时一起生效
- 「还原 AI 原文」把正文和标题一起回滚,AI 原文快照在生成完成时落存
- 编辑版本与 AI 原文存本地草稿(uni storage,单槽):退出再进能恢复,
  「清空结果」一并清除草稿
- 有编辑版本时重新生成先弹确认,避免改动被静默冲掉
- 「复制正文」复制的是当前生效版本(编辑过就是编辑后的)

改的是 pages/manuscript/index.vue:data/computed 增加编辑态与 displayMarkdown,
草稿读写走 setStorageSync/getStorageSync,纯前端改动,未动接口与入库
2026-11-02 14:55:24 +08:00
weicw c2fba0ffd1 fix(gxmu): 六张申报表输入框边框改画在外层 view,修复小程序端边框不显示
:deep(.field-input.uv-input) 在小程序里穿透不到 uv-input 宿主节点,边框完全丢失。改为包一层页面级 field-input-wrap 承载边框,并统一 picker/textarea 边框为 1px。#qmgc #未来学术之星 #挑战杯 #通用申报表
2026-11-02 14:20:27 +08:00
weicw a28a9ed86c feat(tygl): 已有档案时按钮显示「更新档案」,更新成功后返回上一页 2026-11-02 13:56:20 +08:00
weicw 08c6a1763b fix(gxmu): 稿件审核状态文案「不通过」改为「驳回」 2026-11-01 18:21:48 +08:00
weicw b2118525cf fix(gxmu): 审核状态文案「拒绝」统一改为「驳回」
审核流操作按钮、审核面板标题、状态筛选与状态文案同步调整。
2026-11-01 18:18:07 +08:00
weicw 26706a4e4c feat(gxmu): 审核流的审核意见改为必填项
审核面板文案改为「请输入审核意见(必填)」,提交前校验空值与纯空格并去除首尾空格,输入限制 500 字。
2026-11-01 17:06:29 +08:00
weicw 79373bb20e fix(ai): 产物地址兼容字符串元素,视频/图片卡片取得到链接
video_result/photo_files 的元素可能直接是地址字符串,原实现按对象取 url,
字符串元素一律取空——视频有文件却不播放、复制链接永远为空。
2026-10-25 15:55:49 +08:00
weicw 15f886259b feat(ai): 助手页支持写作/生图等记录的历史列表与按类型筛选
- 三模式各自独立工作区:切模式不丢消息、草稿与当前记录
- 历史面板加类型徽标与筛选(全部/聊天/写作/图片/创意/活动策划),文案改「历史记录」
- 生成成功认领末帧 chatId 并刷新列表;聊天 __END__ 帧的 chatId 同样接受
- 写作/图片记录支持「按原参数再来一次」(只回填、不自动发送)
- 文稿/创意/活动策划三页加历史入口,经 storage 传递筛选后 switchTab
- 面板提示仅展示最近 30 条
2026-10-24 17:37:51 +08:00
weicw-dshsa a66dee49e1 fix(manuscript): 稿件类型收敛到上游 doc_type 枚举
与 admin 同一处病根:picker 把界面标签直接当 doc_type 下发,
而「公众号推文」「宣传稿」「发言稿」「短视频脚本」上游一个都不认,
选中就是一次必失败的提交。

- 选项收敛为 新闻稿 / 活动总结 / 微信推文 / 通知公告(外加「自由创作」)
- picker 拆成 label / value 两份:界面仍显示「公众号推文」,下发「微信推文」
- 快捷模板「发言稿提纲」换成「通知公告」,补对应示例内容
2026-10-23 14:22:34 +08:00
weicw-dshsa d99f4406fe fix(ai): 生成收尾不再只依赖 __END__,并清掉 WS 死代码
与后台两页保持一致:

- handleGenerate 收尾改 finally:loading 一定复位,不会再出现生成完按钮永久
  不可点(issue 20);提示按「失败 / 无正文 / 成功」区分
- 删掉已不会调用的 WebSocket 栈:connectWebSocket / disconnectWebSocket /
  refreshUser / socketTask / socketConnectPromise / socketHeartbeatStop /
  wsConnected / activeConversationId / activeMessageId,以及 attachHeartbeat、
  buildWebSocketUrl、getCurrentUser 与未使用的 manuscriptGen 导入
2026-10-23 12:57:12 +08:00
weicw-dshsa f010fcd8ef refactor(ai): 小程序稿件与大纲页文案去掉接口术语与多余提示
与后台两页保持一致,页面不再暴露实现细节:

- 删除「提交说明」整块(含 `files`/`inputs`、接口路径、WebSocket 说明)
- 稿件页删除「接口摘要」区、模式说明 tip 与 `files` 字段说明,
  parseResult 不再产出 summary
- 大纲页删除 resultSummary 与 buildSummary,加载态压成一行
- 空态与占位提示统一改为一句人话
2026-10-23 12:23:36 +08:00
weicw-dshsa 3309818160 feat(manuscripts): 正文按后端 contentFormat 渲染
- content-format 增加 normalizeFormat;toPlainText / getRenderPayload 支持显式格式
- 列表行与阅读抽屉透传 contentFormat,字段缺失时仍回退到按内容猜
2026-10-22 14:37:47 +08:00
weicw-dshsa 63295e98c5 fix(manuscripts): 我的稿件正文改用阅读抽屉渲染富文本
列表把 cms_manuscript.content 当纯文本输出,后台 wangEditor 存的 HTML
(<p>、<img>)和早期 AI 草稿的 markdown(##、**)都会原样露出来。

- 列表只留元数据:标题、首行摘要、状态、更新时间、字数;点一行从底部升起阅读抽屉
- 新增 components/manuscript-reader:mp-html 渲染正文(HTML / markdown / 纯文本按内容判定),
  支持长按选择、点击图片预览、复制标题、复制正文,有封面时展示封面
- 新增 utils/content-format:格式判定、纯文本化、渲染参数准备
- 搜索改为匹配标题 + 纯文本正文,不再直接匹配带标签的原始 content
- 正文每篇只解析一次(加载列表时),摘要、字数、搜索复用同一份纯文本
- 顺带修掉 hero 统计标签在浅色玻璃卡上不可见的问题
2026-10-22 12:55:53 +08:00
weicw-dshsa d449abe966 feat(ai): 小程序 AI 链路改走 HTTP 流式,WS 细节收敛到 utils/chat-socket
与 web 端同因:生成期间普通 POST 零字节,会被 60s 空闲超时掐成 504。

- 新增 utils/chat-socket.js:地址统一拼 /api/chat/{userId}(网关只放行 /api),
  attachHeartbeat 每 25s 发 ping;三个页面不再各抄一份
- chat-service 新增 streamAiRequest:H5 走 fetch + ReadableStream,小程序走
  enableChunked + onChunkReceived,并手写 UTF-8 分块解码,避免中文被切半
- 写作 / 图片 / 大纲 / 稿件改走 /stream,结构化结果从末帧 {type:'final'} 取;
  流断但有正文时保留已生成部分,不整块覆盖成错误文案
- 对话仍先试 WebSocket,连不上回退 /ai/chat/message/stream,帧处理复用
  handleSocketMessage
2026-10-21 19:18:13 +08:00
weicw-dshsa 5ce66be025 feat(ai): 创意助手各页下线参考素材上传,图片模式改传 mode(issue 19)
- 聊天页「图片」模式与独立创意助手页都删掉上传入口、上传状态与相关样式;
  上游出图工具只做文生图,开始节点的 file-list 变量没有任何节点消费(issue 16)。
- 图片模式请求体改为 { user_content, mode: 'image' },由后端包装意图声明;
  独立页不传 mode(通用入口,视频/脚本/图片靠用户文字说明)。
2026-10-21 15:43:02 +08:00
weicw-dshsa eaeba6120a feat(ai): 写作模式加「写作参数」面板,可选填活动信息
选了文体(走「内容创作与宣传助手」)后,输入框上方出现可折叠的写作参数面板:
活动类型 chip(含「不限」)、活动主题/时间/地点/参与人员四格,字数并入同一块。
自由创作(走「AI 创意助手」)时整块不出现。

- 面板 body 限高 340rpx 并在内部滚动:不限高会把底部输入框顶到 tabbar 后面。
- 只填参数、不写正文也能发送,气泡上用生成摘要占位。
- 活动类型默认空串(= 不限),不替用户猜类型。
2026-10-21 13:31:45 +08:00
weicw-dshsa a7a143bb26 feat(ai): 写作模式拆成自由创作与模板两条路(issue 18)
自由创作不再解析自然语言:原话整段作为 userContent 下发,docType 留空,由后端转
「AI 创意助手」。选了文体才提交 docType 等结构化条件,走「内容创作与宣传助手」。

- writing-params.js 删掉 parseWritingRequest 与关键字表,只留选项常量;`auto`
  改语义为「自由创作」。
- 字数选择器只在选中文体后显示;未选文体时不下发 number。
- 撤掉图片比例选择器:上游创意助手开始节点没有比例变量,只能拼进 user_content,
  那等于替上游写 prompt。要恢复需先在上游加变量。
- 稿件页同步:默认「自由创作」,选了模板才展开标题、活动类型、时间地点等可选项。
2026-10-21 12:39:48 +08:00
weicw-dshsa cf20f06cba chore(config): 生产环境 API 域名切到 twai-api.gxmu.edu.cn 2026-10-21 12:39:38 +08:00
weicw-dshsa e6db59a925 chore(cli): 删除残留的空壳目录 uni_modules/uv-ui 2026-10-15 15:23:33 +08:00
ticket-02 agent 81a093120c build(cli): 迁移到 uni-app 官方 Vite CLI 骨架(src/ 布局)
按地图口径把 HBuilderX 工程改成官方 #vite(JS 版)CLI 工程:

- 业务代码 git mv 进 src/(176 个 rename,逐文件字节比对零内容改动):
  App.vue / main.js / manifest.json / pages.json / uni.scss /
  pages/ / packageMine/ / components/ / utils/ / static/ /
  uni_modules/ / uni.promisify.adaptor.js
- 新增官方骨架:package.json(@dcloudio/* 同版本 pin
  3.0.0-5020620260917001,vite 精确 5.2.8,vue ^3.4.21;只留 h5 与
  mp-weixin 脚本)、vite.config.js、shims-uni.d.ts;补 sass devDependency
  以支持既有 lang="scss"
- index.html 沿用本仓文件,入口改为 /src/main.js
- manifest.json 删除 app-plus / quickapp / mp-alipay / mp-baidu /
  mp-toutiao 五个死平台段,只留 mp-weixin
- .gitignore 加 dist/
- pnpm-workspace.yaml 新增 allowBuilds 白名单:pnpm 12 起
  onlyBuiltDependencies 已被移除,且 strictDepBuilds 默认 true 会把
  「未复核构建脚本」判成非零退出。白名单只列传递依赖
  esbuild / @parcel/watcher / core-js / core-js-pure。
  未使用 shamefully-hoist 或 node-linker=hoisted。

验收:pnpm build:mp-weixin 退出码 0,产物 app.json 的
pages / subPackages / tabBar / window 与改造前基线逐项一致;
project.config.json 落产物且 appid = wxf7ee9cd5801bf7a6。
2026-10-15 15:17:32 +08:00