admin-vue3/src
YunaiV cba5c15604 feat(im): MessageInput / MentionPicker / ChatPanel 三连修——粘贴文件、切群清空、命名规范
【ChatPanel.vue】
- 加 messageInputKey computed(type-targetId)+ MessageInput :key 绑它,
  切会话强制 unmount + remount editor / mention range / 草稿全归零,
  避免 A 群打了一半的字 / @ token 漏到 B 群被发出去
  (早先用 inline template literal 做 :key,Vue SFC 编译没把表达式接到
  vnode.key 上,hmr / 完整 reload 都看到 key=null;改 computed 后正常)
【MessageInput.vue】
- onPaste 加 clipboardData.items 扫一轮:image/* → uploadAndSendImage,
  其它 file → uploadAndSendFile,纯文本兜底走 nativeExec('insertText');
  截图 / 拖入图片 / 拖入文件不再被默默吞掉
- 抽 uploadAndSendImage / uploadAndSendFile 两个共用函数,
  onImagePicked / onFilePicked 改成薄包装走它们,避免上传逻辑双份
- 删 nativeExec 里的 // eslint-disable-next-line @typescript-eslint/no-deprecated:
  项目当前 @typescript-eslint v7 没有这条规则,加了会让 lint 报"规则不存在",
  反而把 lint 拖红;改用单纯 JSDoc 解释为什么留着 execCommand
- 重命名 mentionPos → mentionPosition(prop / ref 一致),按"变量不缩写"
- 7 个方法补 JSDoc:onSelectionChange / insertText / onPaste / onInput /
  onKeydown / onImagePicked / onFilePicked / onVoiceSend;复杂的
  collectFromEditor 和 handleSend 加分步 1./2./3. 内联注释
- data-empty 改用属性"存在 / 缺失"模拟(template 里 data-empty="",JS 里
  raw 为空就 set ''、否则 delete),CSS 选择器同步改 [data-empty],
  比 [data-empty='true'] 直观
【MentionPicker.vue】
- prop pos → position(不缩写);ref / 内部解构 / 默认值都跟着改
- <el-icon><UserFilled /></el-icon> → <Icon icon="ep:user-filled">:
  用全局 Icon 组件走 Iconify,少一个 EP 图标 import
- scrollToTop / scrollToActive 局部变量 wrap → scrollWrap、
  itemH → itemHeight、activeTop → activeOffsetTop;
  v-for 与 handleSelect 的 (m) → (member)
2026-04-27 13:57:18 +08:00
..
api feat(im): 增加 useMessagePuller 用于首次消息的拉取 2026-04-26 10:38:14 +08:00
assets feat(im): 优化 im 前端的工具类 2026-04-24 21:36:09 +08:00
components fix: 完成 review c153ff93 的所有 TODO 修复 2026-02-11 17:27:07 +08:00
config/axios 解决登陆过期后加密接口数据二次加密问题 2026-01-23 11:06:34 +08:00
directives 【代码评审】Bpm:模型列表的优化 2025-01-23 19:40:49 +08:00
hooks feat:增加切换租户的功能 2025-05-05 17:02:48 +08:00
layout 🎨 style(Message): 修复铃铛对齐问题,调整样式为 flex-center 2026-04-19 00:30:34 +08:00
locales feat:新增输入字母数字类型的验证码Verify子组件 2025-07-24 15:30:49 +08:00
plugins feat(form-create): 新增 iframe 和省市区选择器组件 2026-02-08 11:56:18 +08:00
router 🐛 fix(im): 修复主壳初始化期间消息漏拉 / 缓冲回放失效 2026-04-26 23:32:55 +08:00
store feat(im): 重构部分老代码。 2026-04-24 22:55:58 +08:00
styles 🐞 fix:@import 修改为 @use 以应对 sass 升级弃用 @import。 2024-10-23 11:01:23 +08:00
types update src/types/descriptions.d.ts. 2024-01-22 01:40:08 +00:00
utils feat(im): 优化 im 前端的工具类 2026-04-24 21:36:09 +08:00
views feat(im): MessageInput / MentionPicker / ChatPanel 三连修——粘贴文件、切群清空、命名规范 2026-04-27 13:57:18 +08:00
App.vue 🐞 fix:删除scrollbar__view高度限制 2024-08-25 16:49:26 +08:00
main.ts feat: 代码评审修改 2025-09-04 09:16:29 +08:00
permission.ts fix:刷新令牌过期后,直接访问 /login 会报错的问题,对应 issue:https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ID9FLI 2025-12-26 20:47:39 +08:00