kuaifan
|
df4658cddf
|
feat(i18n): support contextual translation keys
|
2026-07-20 07:25:10 +00:00 |
|
kuaifan
|
df6c1fc04d
|
refactor(i18n): 完成前端国际化改造
|
2026-07-20 02:35:07 +00:00 |
|
kuaifan
|
9a3d9d3b9c
|
feat(license): 多授权选择登录 + 离线 license SN/MAC 绑定校验加固
- 在线授权登录时账号名下有多条可用授权则弹窗选择,选定后复用验证码确认签发(login/confirm)
- 新增 Doo::licenseDecode / licenseBindingError;保存离线 license 与创建用户前校验付费档 SN/MAC 与本机匹配
- 诊断展示与校验门槛纳入不限人数(people==0)档
|
2026-07-02 13:29:51 +00:00 |
|
kuaifan
|
c9f5296b73
|
feat(license): 在线异常浮告警卡+离线SN/MAC标签化,统一两Tab排版
- 在线:正常态只显示核心信息,提醒/过期/设备不匹配时浮出告警卡,SN/MAC 收进折叠诊断;frozen 状态文案统一为「已过期」
- 离线:SN/MAC 改行尾标签+失配整行标红,IP/域名/创建时间折叠进「更多」
- 统一在线/离线信息行的字号/行高/间距/label
- 清理死样式 .information 与死变量 onlineIng
- 同步 ai-kb online.md 状态措辞并登记新增文案
|
2026-07-02 07:45:16 +00:00 |
|
kuaifan
|
184fb27680
|
feat(upload): 分片上传统一链路,5 场景突破单文件 1G 限制
- 新增 api/upload/{init,chunk,merge} 入口与 ChunkUpload 模块(5MB 分片、3 并发、Redis 状态机)
- 5 场景接入:文件柜 / 聊天 / 任务附件 / 头像&系统图片 / 编辑器粘贴
- 秒传:同用户同 hash 复用 FileContent 物理文件,零传输
- 续传:Redis + localStorage 双索引,24h TTL
- 与老接口对齐:pid 锁、≤300 上限、webkit_relative_path 目录递归、overwrite 替换语义
- init 阶段读 file_upload_limit 拦截超限,避免传完分片才报错
- DeleteTmpTask 加 tmp_chunks case 兜底清理 24h 未合并目录
- files 表新增 hash 列(migration)
- 前端 chunkedUpload wrapper:主线程 spark-md5 流式 + 指数退避重试
- ai-kb 同步:upload / file-upload-limit / upload-size-limit 三个 chunk
|
2026-06-30 04:30:09 +00:00 |
|
kuaifan
|
bc8a2c9ded
|
refactor(license): 统一离线授权判断并优化在线绑定交互
- 在线/离线 Tab 套用 setting-component-item,提交按钮固定到底部,与其它设置子页一致
- 抽出 offlineValid 统一「有效离线授权」口径(非试用、sn/mac 匹配本机),用于默认 Tab 切换与替换确认,替代原先仅判断 license 非空的宽松逻辑
- 将替换有效离线授权的二次确认前置到发送验证码(流程起点),登录/试用不再重复确认
- 邮箱输入沿用 setting/email 的内联发送按钮样式
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 11:20:37 +00:00 |
|
kuaifan
|
889aca311a
|
feat(license): 在线授权数据缓存秒开 + 请求 loading
- 进页面读 localStorage 缓存即时渲染在线授权数据(key 按站点 host 隔离),
后台并发 license/refresh + system/license 刷新,右上角显示「刷新中」转圈,
数据回来静默替换并更新缓存;非在线状态自动清除缓存
- 首次无缓存显示骨架占位 + 加载中
- 发送验证码改回 setting/email 内联样式(iView search + enter-button +
spinner 全局 loading),去除独立按钮
|
2026-06-23 07:10:25 +00:00 |
|
kuaifan
|
fa9e56944a
|
feat(license): 在线授权 UI 优化 + 邮件语言透传
- license.vue:在线授权 Tab 移到离线前,默认 Tab 智能选择(未绑在线但已设
离线→离线,其余在线优先);按钮级 loading 互斥(onlineAction:发码/登录/
试用/退出各自 loading、其余禁用);登录/试用失败清空验证码并解除重发倒计时;
邮箱行改「Input + 独立发送按钮」承载 loading
- OnlineLicense.php:新增 lang() 透传请求语言到 appstore,邮件按语言渲染
|
2026-06-23 06:15:47 +00:00 |
|
kuaifan
|
87e05ef9c9
|
style(setting): 统一设置页底部按钮间距
各设置页底部按钮去除内联 margin-left:8px,改由 .setting-footer
统一 column-gap:12px。
|
2026-06-23 01:21:20 +00:00 |
|
kuaifan
|
7c6b8ce6f4
|
feat(license): 在线授权登录与试用改为邮箱+验证码
配合 appstore 账号体系统一,在线授权去除 App Store 账号+密码:
- OnlineLicense 新增 emailSend,login/trial 改 (email, code),call payload
去 account/password、加 email/code(fingerprint 续传)
- LicenseController 新增 email__send,login/trial 读 email/code
- license.vue 在线 Tab 改邮箱+发码+验证码(与试用复用状态防串台),
离线 Tab 与互斥链路不动
- 同步 i18n 文案与 ai-kb license/online、api-map
|
2026-06-23 01:21:11 +00:00 |
|
kuaifan
|
389cb6d709
|
feat(license): 在线授权前端与上报优化
- 替换离线授权二次确认:仅当离线为真实付费(people>3)且 sn/mac 匹配本机时才提示
- 上报 url 改用真实外网地址(RequestContext::replaceBaseUrl)、version 改用应用版本(Base::getVersion)
- trialSend 携带实例指纹,便于 appstore 发码前做试用资格校验
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-22 15:52:01 +00:00 |
|
kuaifan
|
4ca7fc10d1
|
feat(license): 新增在线授权(App Store 账号自助签发 + 自动续期)
- OnlineLicense 模块:登录/试用/续期/释放/状态机,离线↔在线互斥(last-write-wins)
- LicenseController + 动态路由;容器内 supervisor 独立进程定时续期(不依赖 LARAVELS_TIMER)
- license.vue 双 Tab:在线授权 + 离线绑定二次确认,已绑定在线时离线页提示+按需绑定
- 进入授权页静默刷新;同步 ai-kb 在线授权知识库
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-22 08:22:26 +00:00 |
|
kuaifan
|
39b9a72b16
|
refactor(ai-assistant): 用内联深链替代 driver.js 页面引导
「带我去」分步引导(driver.js + 四级元素定位 + show_guide)定位不稳、
二级菜单不可达、点高亮按钮触发跳转即被杀,体验差。改为 AI 回复正文里把
可定位的页面/面板渲染成可点深链 chip,点击直达那一屏。
- 新增深链目录:_meta/page-links.yaml(语义,供 AI 选择)+ deep-links.js
(可执行映射,21 个无需运行时 id 的导航目的地),两端 id 一致性由
tests/deep-links-parity.mjs 校验
- markdown.js 加 processDeepLinks:[文字](dootask://link/<id>) 合法 id →
chip,非法 id → 纯文字(绝不渲染死链);复用现有 dootask:// 点击拦截链路
- DialogMarkdown 加 link 分支调 openDeepLink;system.vue 支持 query.tab
初始化,系统设置二级 Tab 可深链直达
- 彻底移除 driver.js 引导:删 guide-renderer.js/guide.css、show_guide
前端通道、aiGuideStarted 监听、driver.js 依赖
- 同步 ai-kb:改写 guide/start-guide 两 chunk、tool-binding 去 show_guide
- 插件侧 prompt 改动规格见 docs/ai-deeplink-plugin-spec.md(独立仓库实施)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 23:55:09 +00:00 |
|
kuaifan
|
2eee171a50
|
feat(project): 系统设置新增「创建项目」权限开关
在系统设置「项目相关」新增「创建项目」权限范围(复选):
所有人 / 部门负责人(含部门管理员)/ 指定人员,三者与「所有人」互斥;
系统管理员始终可创建,不受开关限制。未授权用户隐藏「新建项目」入口
(顶部下拉、快捷键、移动端、应用宫格),后端 Project::userCanCreate()
兜底拦截,个人项目(注册自动创建)不受限。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-04 21:57:24 +00:00 |
|
kuaifan
|
daca384822
|
feat(todo): 待办设置权限放开系统管理员(任意群可设/取消他人待办)
- checkTodoOwnerPermission 最高优先级放行系统管理员,覆盖无群主的全员群等场景
- 同步设/取消待办、到点提醒接口报错文案与系统设置描述
- 补充管理员放行测试(user/project/全员群)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-01 15:02:20 +00:00 |
|
kuaifan
|
aa2e0acaba
|
feat(dialog): 系统设置支持禁止其他人员设置/取消聊天待办
新增系统级开关 todo_set_permission(open=允许默认 / close=禁止)。
开关为禁止时,仅本人、群主/群管理员、项目负责人/项目管理员、任务负责人
可设置或取消聊天消息待办,其他人由后端拦截;默认允许,保持现有行为。
- SystemController::setting 接入开关读写(白名单 + 默认 open)
- WebSocketDialog::checkTodoOwnerPermission 角色判断(复用 isOwner 等)
- WebSocketDialogMsg::toggleTodoMsg 内权限闸门:close 且影响到他人且
非放行角色时 retError;仅影响自己始终放行;open 时行为零变化
- SystemSetting.vue「消息相关」新增「待办设置权限」开关 UI
- 国际化文案(original-api.txt / original-web.txt)
- TodoSetPermissionTest 覆盖角色判断、闸门决策及真实拦截路径(8 用例)
任务 #124。系统后台 admin 不特殊放行;「完成待办」不在本次范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-05-31 15:12:46 +00:00 |
|
kuaifan
|
0863e5529a
|
feat(manage): 实现部门负责人视角,支持只读查看部门成员项目与任务
部门负责人/部门管理员可通过系统配置开启,选择管理部门后只读查看
本部门及下级部门成员的全部项目和任务。前端自动根据 department_readonly
标记禁用编辑操作,后端统一注入负责人视角上下文控制数据访问边界。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 00:14:36 +00:00 |
|
kuaifan
|
1059630b9d
|
feat(ldap): 支持非邮箱用户名登录,完善 AD 兼容性
- 登录页放宽校验:登录模式允许任意账号格式,注册模式仍强制邮箱
- 登录属性新增 userPrincipalName 选项(AD 常用且通常是邮箱格式)
- LDAP 用户缺少邮箱属性时返回明确错误提示,替代误导性的"请输入正确的邮箱地址"
- LDAP 登录合并已有本地账号时记录 info 日志,便于审计
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-16 11:48:40 +00:00 |
|
kuaifan
|
09edb14d56
|
fix(ldap): 使用 LDAP Bind 认证替代 userPassword 查询,兼容 Active Directory
- 认证方式从 userPassword 属性过滤改为标准 LDAP Bind,兼容所有 LDAP 服务器
- 新增可配置的登录属性(cn/uid/mail/sAMAccountName),AD 用户选 sAMAccountName 即可
- 移除 posixAccount objectClass,兼容 AD 目录结构
- 同步创建用户时移除 POSIX 专属属性,添加 mail 属性
- 用户查找改用 findByEmail 按 mail/cn/uid/userPrincipalName 依次匹配
- initConfig 从静态变量缓存改为 RequestContext 请求级缓存,修复 Swoole 下配置变更不生效的问题
- 默认登录属性为 cn,与旧版本行为一致,确保向后兼容
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-15 09:18:36 +00:00 |
|
kuaifan
|
9e65500748
|
refactor(ai): 简化AI模块逻辑
|
2026-04-04 23:18:21 +00:00 |
|
kuaifan
|
4b32472d64
|
feat(task): 增加AI自动分析开关(系统级+项目级)
系统设置新增 task_ai_auto_analyze 开关控制全局AI任务分析;项目设置新增 ai_auto_analyze 开关,系统关闭时项目无法开启。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 17:51:38 +08:00 |
|
kuaifan
|
22de7de87c
|
feat(manage): 优化新建菜单并添加 AI 助手快捷键
- 主按钮从「新建项目」改为「新建任务」
- 下拉菜单首位添加「AI 助手」选项(需安装 AI 插件)
- 添加 Ctrl/Cmd+I 快捷键打开 AI 助手
- 键盘设置页面同步显示 AI 助手快捷键
|
2026-01-16 07:46:50 +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
|
cd58b418af
|
refactor: 新增 updateWindow 接口并移除废弃的预加载窗口调用
- 新增 updateWindow IPC handler,支持窗口/标签页内部导航时更新 URL 和名称
- 将前端 updateChildWindow 调用替换为 updateWindow
- 移除 reloadPreloadWindow 调用(预加载窗口已删除)
|
2026-01-12 01:44:34 +00:00 |
|
kuaifan
|
ce42c2a660
|
refactor(frontend): 统一域名获取与比较逻辑
- 新增 mainDomain() 函数,简化 mainUrl 域名获取
- 新增 removeMainUrlPrefix() 函数,用于移除 URL 的服务器域名前缀
- getDomain() 返回值统一转为小写,确保域名比较不受大小写影响
- 将多处 getDomain(mainUrl()) 调用替换为 mainDomain(),提升代码可读性
|
2026-01-10 05:48:25 +00:00 |
|
kuaifan
|
4e99e398d6
|
feat: 添加动态时间提示和自动校正功能
- 在"最早可提前"下方动态显示最早可签到时间
- 在"最晚可延后"下方动态显示最晚可签到时间(跨天显示"次日"前缀)
- 输入值变化时自动校正到临界值,防止时间重叠
- 调整表单布局支持换行显示提示信息
|
2026-01-07 04:11:32 +00:00 |
|
kuaifan
|
6bdefc4f03
|
feat: 支持跨天打卡和时间重叠验证
- 允许签到"最晚可延后"时间超过 23:59:59,支持员工凌晨下班打卡
- 凌晨打卡记录自动归属前一天
- 前后端新增提前/延后时间重叠验证,防止产生歧义时间窗口
- 优化导出逻辑以正确处理跨天打卡记录
- 打卡消息提示归属日期信息
|
2026-01-06 12:31:41 +00:00 |
|
kuaifan
|
55303689ea
|
feat: support configurable default priority
|
2025-12-26 02:42:47 +00:00 |
|
kuaifan
|
f0e844c308
|
feat: 添加个人任务上限设置,限制负责人或协助人的未完成任务数量
|
2025-11-28 11:05:08 +00:00 |
|
kuaifan
|
425d6f9a06
|
feat: 移除冗余的AI助手设置方法,优化AI模块的模型配置逻辑
|
2025-11-09 04:28:51 +00:00 |
|
kuaifan
|
b9df277104
|
no message
|
2025-11-06 07:16:29 +00:00 |
|
kuaifan
|
ab4640382d
|
feat: 添加会员扩展信息接口,优化用户详情和个人设置页面
|
2025-11-06 02:01:15 +00:00 |
|
kuaifan
|
e4cfa4b405
|
feat: 优化个性标签
|
2025-11-05 22:19:45 +00:00 |
|
kuaifan
|
789062e85e
|
Merge pull request #288 from xxyijixx/dev-profile
Dev profile
|
2025-11-05 17:11:46 +08:00 |
|
kuaifan
|
5370bee369
|
Merge branch 'dev' into pro
# Conflicts:
# CHANGELOG.md
# cmd
# package.json
# public/js/build/404.5645cb91.js
# public/js/build/404.9598cd97.js
# public/js/build/404.a5736629.js
# public/js/build/AceEditor.8747edb1.js
# public/js/build/AceEditor.af35593f.js
# public/js/build/AceEditor.e7f5b602.js
# public/js/build/DialogWrapper.0c7cd033.js
# public/js/build/DialogWrapper.64072671.js
# public/js/build/DialogWrapper.7fcb5b27.js
# public/js/build/Drawio.2ca59c31.js
# public/js/build/Drawio.6691a6ef.js
# public/js/build/Drawio.e3576e4e.js
# public/js/build/FileContent.3a899bcc.js
# public/js/build/FileContent.c311c89c.js
# public/js/build/FileContent.d8e600e1.js
# public/js/build/FilePreview.87ca99d9.js
# public/js/build/FilePreview.f8134ee5.js
# public/js/build/FilePreview.f9f90ff4.js
# public/js/build/IFrame.02598edc.js
# public/js/build/IFrame.2a7489ee.js
# public/js/build/IFrame.be9780e1.js
# public/js/build/ImgUpload.29e2d88d.js
# public/js/build/ImgUpload.a4eff264.js
# public/js/build/ImgUpload.e96999cf.js
# public/js/build/Minder.2bce6c16.js
# public/js/build/Minder.b1d1145f.js
# public/js/build/Minder.f5bc5aca.js
# public/js/build/OnlyOffice.31e7af4f.js
# public/js/build/OnlyOffice.574ad560.js
# public/js/build/OnlyOffice.9ce921ed.js
# public/js/build/ReportEdit.5eb3a319.js
# public/js/build/ReportEdit.9141bb93.js
# public/js/build/ReportEdit.e3369e09.js
# public/js/build/SearchButton.906cea81.js
# public/js/build/SearchButton.cf201525.js
# public/js/build/SearchButton.d41addb6.js
# public/js/build/TEditor.7b9a9d91.js
# public/js/build/TEditor.971af80f.js
# public/js/build/TEditor.cc94d929.js
# public/js/build/TaskDetail.38815236.js
# public/js/build/TaskDetail.d1a9952e.js
# public/js/build/TaskDetail.dfd78b4a.js
# public/js/build/add.0cfbdd9e.js
# public/js/build/add.3673f91c.js
# public/js/build/add.423bc480.js
# public/js/build/application.005cc174.js
# public/js/build/application.5587ac3b.js
# public/js/build/application.5b8f123b.js
# public/js/build/apps.4e0bf65b.js
# public/js/build/apps.b0a3d4f5.js
# public/js/build/apps.f77a8c4e.js
# public/js/build/calendar.31470aa0.js
# public/js/build/calendar.ad5d85d5.js
# public/js/build/calendar.e08e7575.js
# public/js/build/checkin.5d4c364e.js
# public/js/build/checkin.ab08f01e.js
# public/js/build/checkin.c05284a9.js
# public/js/build/dashboard.7cced7be.js
# public/js/build/dashboard.c82415db.js
# public/js/build/dashboard.f6ed8299.js
# public/js/build/dayjs.495f600d.js
# public/js/build/dayjs.71653272.js
# public/js/build/dayjs.cf033d87.js
# public/js/build/delete.4072c68f.js
# public/js/build/delete.5f06c51d.js
# public/js/build/delete.b26aa3fd.js
# public/js/build/device.4cff22ad.js
# public/js/build/device.66a7e05a.js
# public/js/build/device.a13f3ef0.js
# public/js/build/dialog.97b951ce.js
# public/js/build/dialog.e9f6d55f.js
# public/js/build/dialog.eb7b795a.js
# public/js/build/editor.18a511b5.js
# public/js/build/editor.2cca497c.js
# public/js/build/editor.e034df4e.js
# public/js/build/email.0643f86b.js
# public/js/build/email.1d00cb0c.js
# public/js/build/email.d95a35c0.js
# public/js/build/file.4fe82c29.js
# public/js/build/file.684a63df.js
# public/js/build/file.9dceb82f.js
# public/js/build/fileMsg.0a0029c2.js
# public/js/build/fileMsg.1f4ecb0f.js
# public/js/build/fileMsg.f99b6f61.js
# public/js/build/fileTask.72914205.js
# public/js/build/fileTask.bf35fb6b.js
# public/js/build/fileTask.f4356f14.js
# public/js/build/index.236af26f.js
# public/js/build/index.299c9f99.js
# public/js/build/index.2ffa8f9e.js
# public/js/build/index.7d6e1bbe.js
# public/js/build/index.94a5d2da.css
# public/js/build/index.af34aeb9.js
# public/js/build/index.b0ae9460.js
# public/js/build/index.b69b5f25.js
# public/js/build/index.b71c2859.js
# public/js/build/index.c3968cad.js
# public/js/build/index.d1ae44be.js
# public/js/build/index.e07db7f9.css
# public/js/build/index.edee4b6e.css
# public/js/build/index.ef9e1e57.js
# public/js/build/index.fe32159a.js
# public/js/build/jquery.0909250e.js
# public/js/build/jquery.16b446fd.js
# public/js/build/jquery.27f590f5.js
# public/js/build/keyboard.3f5b3ac6.js
# public/js/build/keyboard.5de3dd2c.js
# public/js/build/keyboard.c3ef7d49.js
# public/js/build/language.1fadd54c.js
# public/js/build/language.8bb72294.js
# public/js/build/language.f3d03ece.js
# public/js/build/license.21482fde.js
# public/js/build/license.60871496.js
# public/js/build/license.add318a7.js
# public/js/build/localforage.65ac7a2a.js
# public/js/build/localforage.be4775a0.js
# public/js/build/localforage.dd58f5ac.js
# public/js/build/login.7560afa5.js
# public/js/build/login.75b3978c.js
# public/js/build/login.aa163163.js
# public/js/build/meeting.a60d7e8d.js
# public/js/build/meeting.aa5510c7.js
# public/js/build/meeting.fdb9793b.js
# public/js/build/password.267357fd.js
# public/js/build/password.749ce44d.js
# public/js/build/password.e6d81eb1.js
# public/js/build/personal.69279937.js
# public/js/build/personal.a27cef8e.js
# public/js/build/personal.c613af3c.js
# public/js/build/preload.5827bd38.js
# public/js/build/preload.8ec61a5b.js
# public/js/build/preload.c6189d87.js
# public/js/build/preview.29e49902.js
# public/js/build/preview.7329f0f4.js
# public/js/build/preview.b452b0ee.js
# public/js/build/preview.c64402ed.js
# public/js/build/preview.ec796a92.js
# public/js/build/preview.ec85a43c.js
# public/js/build/pro.2128a514.js
# public/js/build/pro.213d8da6.js
# public/js/build/pro.9fb60d27.js
# public/js/build/projectInvite.0b3bf524.js
# public/js/build/projectInvite.393920f8.js
# public/js/build/projectInvite.e9cee390.js
# public/js/build/reportDetail.2db50632.js
# public/js/build/reportDetail.90aaf973.js
# public/js/build/reportDetail.d93cc650.js
# public/js/build/reportEdit.84a81076.js
# public/js/build/reportEdit.8baf23d4.js
# public/js/build/reportEdit.d008dd34.js
# public/js/build/swipe.0c72cce1.js
# public/js/build/swipe.4567bb5d.js
# public/js/build/swipe.92aebd0c.js
# public/js/build/system.67c1b700.js
# public/js/build/system.c45c70de.js
# public/js/build/system.f3384133.js
# public/js/build/task.1b9e0e77.js
# public/js/build/task.a445c89e.js
# public/js/build/task.d43091db.js
# public/js/build/taskContent.20b80714.js
# public/js/build/taskContent.3ebbd2f9.js
# public/js/build/taskContent.9dc7a121.js
# public/js/build/theme.72d103d1.js
# public/js/build/theme.7f1b2ffd.js
# public/js/build/theme.df79fe8f.js
# public/js/build/token.0ecffef5.js
# public/js/build/token.a7f5ccf5.js
# public/js/build/token.ece75257.js
# public/js/build/validEmail.1462dd30.js
# public/js/build/validEmail.17a3e0d2.js
# public/js/build/validEmail.ee19c1f3.js
# public/js/build/version.137935c7.js
# public/js/build/version.1441c1fd.js
# public/js/build/version.b0154505.js
# public/js/build/video.03b62c93.js
# public/js/build/video.2dc7f3c6.js
# public/js/build/video.531c68e2.js
# public/js/build/view.18713f1b.js
# public/js/build/view.7770155e.js
# public/js/build/view.8c6a0cc1.js
# public/manifest.json
|
2025-11-05 16:55:17 +08:00 |
|
kuaifan
|
6f7656802f
|
no message
|
2025-11-05 06:20:04 +00:00 |
|
kuaifan
|
1b9c0ee4b8
|
feat: 优化AI助手入口
|
2025-11-05 01:55:59 +00:00 |
|
yatgei
|
dd7eee277e
|
feat: 添加共同群组对话框组件并在用户详情中集成
|
2025-10-13 18:22:25 +08:00 |
|
kuaifan
|
6d97bf1e88
|
feat: 添加个性标签管理功能
|
2025-10-12 23:02:34 +00:00 |
|
kuaifan
|
d58dd25dbb
|
feat: 添加用户生日、地址和个人简介
|
2025-10-12 15:05:05 +00:00 |
|
kuaifan
|
a8a54593e2
|
perf: 优化下载工具
|
2025-08-14 23:11:37 +08:00 |
|
kuaifan
|
0833018399
|
perf: 优化下载工具
|
2025-08-14 16:50:48 +08:00 |
|
kuaifan
|
9b12a829d2
|
perf: 签到记录窗口添加打开签到机器人
|
2025-08-11 05:15:35 +08:00 |
|
kuaifan
|
bfb4144e57
|
perf: 优化 css 语法
|
2025-08-08 07:58:49 +08:00 |
|
kuaifan
|
dc1bb72070
|
perf: 优化抽屉窗口
|
2025-08-07 14:53:09 +08:00 |
|
kuaifan
|
4c075b4d11
|
perf: 签到新增高德和腾讯地图
|
2025-07-28 06:22:20 +08:00 |
|
kuaifan
|
8c9c1c5afa
|
no message
|
2025-07-28 05:39:50 +08:00 |
|
kuaifan
|
01ff10385a
|
perf: 优化 AI 设置
|
2025-07-26 12:01:37 +08:00 |
|
kuaifan
|
ca353d747b
|
no message
|
2025-05-26 20:26:40 +08:00 |
|
kuaifan
|
434d8eabc8
|
no message
|
2025-05-15 08:09:56 +08:00 |
|