kuaifan
|
84f225f3f3
|
feat(mobile): 兼容新 Expo 壳(dootask_expo UA)
配合 dootask-app 仓库的 Expo 迁移(见 docs/migration-eeui-to-expo.md 的 Phase 5),
让服务端和前端同时识别旧 EEUI 壳与新 Expo 壳的 User-Agent,并让 eeui.js 的同步返回
方法在 Expo 壳下优先读取 injectedJS 启动时写入的 __EXPO_INIT_DATA__ / __EXPO_VARIATES__
缓存,避免原本同步 API 变成 Promise 后破坏调用方。
后端:
- Base::isEEUIApp():同时匹配 kuaifan_eeui / dootask_expo
- UserDevice:android_(kuaifan_eeui|dootask_expo) 正则捕获标识段,版本号按实际段名取
- IndexController PDF 预览:浏览器分类兼容 android_dootask_expo / ios_dootask_expo
- SystemController::prefetch:$isApp 同时接受两种 UA
- resources/views/download.blade.php:/eeui|dootask_expo/i
前端:
- app.js:
- isEEUIApp 正则新增 dootask_expo
- $preload 等待条件改为 requireModuleJs 可用 OR window.__EXPO_BRIDGE_READY__,
避免 Expo 壳下等 15 秒超时
- eeui.js:以下几个同步 getter 在 Expo 壳下先读 window.__EXPO_* 再回落到原生:
- eeuiAppVersion / eeuiAppLocalVersion → __EXPO_INIT_DATA__.version
- eeuiAppGetPageInfo → __EXPO_INIT_DATA__.pageInfo
- eeuiAppGetThemeName → __EXPO_INIT_DATA__.themeName
- eeuiAppKeyboardStatus → __EXPO_INIT_DATA__.keyboardVisible
- eeuiAppGetVariate → __EXPO_VARIATES__[key]
- eeuiAppGetCachesString → __EXPO_CACHES__[key](RN 侧后续要同步 broadcast)
旧 EEUI 壳不受影响:只读缓存不存在时自动回落到原有 $A.eeuiModule() 调用,
行为与改动前一致。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-17 09:44:53 +00:00 |
|
kuaifan
|
6a71964592
|
feat(dialog): 重构合并转发功能
- 合并转发消息体改为存储 msg_ids + preview,不再存储完整消息列表
- 新增 mergedetail API 按需加载合并转发详情
- 详情展示从 Modal 改为 DrawerOverlay,支持完整消息渲染
- 统一不可转发消息类型过滤(tag/top/todo/notice/word-chain/vote/template)
- 合并转发标题改为前端国际化拼接
- DialogWrapper 支持 staticMsgs 静态模式用于详情渲染
- 优化多选操作栏和转发确认界面样式
|
2026-04-05 09:31:41 +00:00 |
|
kuaifan
|
984b98e4fc
|
feat(task): 实现消息合并转发功能,支持批量选择和转发消息
|
2026-04-04 07:43:26 +08:00 |
|
kuaifan
|
3482e4b1a8
|
fix(file): 修复日期格式文件名被误转换导致创建失败的问题
newDateString 函数在处理请求参数时会将所有符合日期格式的字符串
(如 "2026-01-15")转换为完整日期时间格式("2026-01-15 00:00:00"),
导致文件名中出现冒号,触发后端文件名校验错误。
修复方案:
- 直接调用时(key=null),保持原有行为用于显示格式化
- 递归处理对象属性时,仅对白名单字段(times、*_at)进行转换
- 其他字段(如 name)保持原值不转换
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-20 22:33:45 +00:00 |
|
kuaifan
|
a34b0c88d5
|
refactor: 优化 webTab 管理和状态同步
- 封装 safeCloseWebTab 方法,复用标签关闭时的未保存数据检查逻辑
- 添加 recreatePreloadPool,支持主题切换后重建预加载池
- broadcastCommand 扩展到 webTab views,确保子窗口收到同步消息
- 修复 synchTheme 和 saveDialogDraft 的跨窗口参数传递
- IDBDel 返回 Promise 并正确 await
|
2026-01-14 10:11:41 +08:00 |
|
kuaifan
|
4f2d382fd6
|
fix: 移除 Markdown 消息中的工具使用标签
|
2026-01-13 12:57:54 +00:00 |
|
kuaifan
|
ce42c2a660
|
refactor(frontend): 统一域名获取与比较逻辑
- 新增 mainDomain() 函数,简化 mainUrl 域名获取
- 新增 removeMainUrlPrefix() 函数,用于移除 URL 的服务器域名前缀
- getDomain() 返回值统一转为小写,确保域名比较不受大小写影响
- 将多处 getDomain(mainUrl()) 调用替换为 mainDomain(),提升代码可读性
|
2026-01-10 05:48:25 +00:00 |
|
kuaifan
|
0d8e10b60e
|
feat: 优化 IDBClear 方法,支持保留指定键的缓存项
|
2026-01-04 01:40:13 +00:00 |
|
kuaifan
|
f0e844c308
|
feat: 添加个人任务上限设置,限制负责人或协助人的未完成任务数量
|
2025-11-28 11:05:08 +00:00 |
|
kuaifan
|
2f32b53d19
|
feat: 修改 getDomain 函数以支持可选的小写转换参数;更新 getObject 函数的默认值
|
2025-11-12 07:07:00 +00:00 |
|
kuaifan
|
ecb52c76b9
|
feat: 完善AI助手功能
|
2025-11-08 08:57:22 +00:00 |
|
kuaifan
|
d48287f93a
|
feat: 添加判断是否为iPad的功能,并在预加载时处理安全区域
|
2025-11-04 13:08:23 +08:00 |
|
kuaifan
|
5121739fe4
|
feat: 优化应用激活逻辑,增加 IndexedDB 测试失败时的提前返回处理
|
2025-11-03 00:34:32 +08:00 |
|
kuaifan
|
95bf70f568
|
no message
|
2025-09-26 19:02:09 +08:00 |
|
kuaifan
|
70b0538dd5
|
no message
|
2025-08-09 10:03:45 +08:00 |
|
kuaifan
|
e792ab7b4d
|
feat: 工作流支持自定义颜色
|
2025-08-01 11:27:00 +08:00 |
|
kuaifan
|
a437e3cbd3
|
no message
|
2025-07-30 21:25:04 +08:00 |
|
kuaifan
|
1a841c4b5d
|
perf: 优化预览消息
|
2025-07-18 13:05:27 +08:00 |
|
kuaifan
|
618e482507
|
perf: 优化iPadOS兼容性
|
2025-06-18 15:35:30 +08:00 |
|
kuaifan
|
259a040b7e
|
no message
|
2025-05-28 11:42:42 +08:00 |
|
kuaifan
|
1589d4df1c
|
no message
|
2025-05-26 20:12:51 +08:00 |
|
kuaifan
|
b3abe8af9c
|
no message
|
2025-05-26 17:45:16 +08:00 |
|
kuaifan
|
790b05880a
|
no message
|
2025-05-25 18:26:32 +08:00 |
|
kuaifan
|
7d28181b16
|
no message
|
2025-05-17 09:09:59 +08:00 |
|
kuaifan
|
98e4c81b9b
|
no message
|
2025-05-17 07:09:47 +08:00 |
|
kuaifan
|
006bc6ceda
|
no message
|
2025-05-08 07:11:58 +08:00 |
|
kuaifan
|
3018f3653c
|
no message
|
2025-05-07 12:21:09 +08:00 |
|
kuaifan
|
cb4b9a361f
|
no message
|
2025-05-06 16:13:37 +08:00 |
|
kuaifan
|
ae5ccfd775
|
no message
|
2025-04-22 11:48:54 +08:00 |
|
kuaifan
|
8e90ad69b1
|
no message
|
2025-04-21 12:06:47 +08:00 |
|
kuaifan
|
f801ae9b63
|
no message
|
2025-04-20 17:53:32 +08:00 |
|
kuaifan
|
cd0fcb903f
|
no message
|
2025-04-20 09:19:46 +08:00 |
|
kuaifan
|
94fd3197b3
|
no message
|
2025-04-18 20:26:35 +08:00 |
|
kuaifan
|
7ab94205e4
|
no message
|
2025-04-17 10:09:28 +08:00 |
|
kuaifan
|
8f2f68dffc
|
no message
|
2025-04-17 09:45:48 +08:00 |
|
kuaifan
|
18b7e17e95
|
no message
|
2025-04-16 21:34:33 +08:00 |
|
kuaifan
|
f3683bcc84
|
no message
|
2025-04-16 13:00:36 +08:00 |
|
kuaifan
|
df02a6b50f
|
no message
|
2025-04-12 11:55:43 +08:00 |
|
kuaifan
|
9e4f733c28
|
no message
|
2025-04-12 09:11:58 +08:00 |
|
kuaifan
|
bfdb72dd0a
|
no message
|
2025-04-11 09:55:18 +08:00 |
|
kuaifan
|
5489462f90
|
no message
|
2025-04-11 09:02:16 +08:00 |
|
kuaifan
|
bfb9795913
|
no message
|
2025-04-10 16:50:11 +08:00 |
|
kuaifan
|
095a238fff
|
perf: 优化移动端布局
|
2025-04-10 11:29:31 +08:00 |
|
kuaifan
|
841ed4e682
|
perf: 优化移动端布局
|
2025-04-09 23:25:48 +08:00 |
|
kuaifan
|
da7dc477c8
|
no message
|
2025-04-09 13:47:26 +08:00 |
|
kuaifan
|
6c519ebd61
|
no message
|
2025-04-08 21:43:41 +08:00 |
|
kuaifan
|
0f250dbafd
|
perf: 优化目录结构
|
2025-04-02 19:17:03 +08:00 |
|
kuaifan
|
82230d70a5
|
perf: 优化消息窗口
|
2025-03-30 08:50:50 +08:00 |
|
kuaifan
|
1f0ab02702
|
feat: 添加移动端提示可能要发送的图片
|
2025-03-28 17:01:07 +08:00 |
|
kuaifan
|
43d0a85061
|
feat: 添加移动端提示可能要发送的图片
|
2025-03-28 14:07:33 +08:00 |
|