feat:聊天信息支持 文件、图片、语音发送,增加一键启停脚本
This commit is contained in:
@@ -20,10 +20,11 @@ alwaysApply: true
|
|||||||
- 分支:`feature/phase2b-instant-messaging`
|
- 分支:`feature/phase2b-instant-messaging`
|
||||||
- **Phase 2c(群聊与已读回执)**:✅ 全部完成(14 个 Task + 代码审查修复 14 项 + 浏览器测试修复 21 项),设计文档 `docs/plans/2026-03-04-phase2c-design.md`
|
- **Phase 2c(群聊与已读回执)**:✅ 全部完成(14 个 Task + 代码审查修复 14 项 + 浏览器测试修复 21 项),设计文档 `docs/plans/2026-03-04-phase2c-design.md`
|
||||||
- 分支:`feature/phase2c-group-read-receipt`
|
- 分支:`feature/phase2c-group-read-receipt`
|
||||||
- 范围:群聊全功能(三级角色/禁言/@提醒/群公告/入群审批)+ 已读回执(单聊会话级 + 群聊消息级)+ MinIO 文件存储 + 管理端群组管理
|
- **Phase 2d(消息类型扩展)**:✅ 全部完成(14 个 Task + 代码审查修复 2 项 + 富媒体 Bug 修复 4 项),设计文档 `docs/plans/2026-03-04-phase2d-design.md`
|
||||||
- 代码审查修复:Critical×5(角色类型/公告字段/at_user_ids/@导航/Wire 注册)+ Important×4 + Minor×2 + Suggestion×3
|
- 分支:`feature/phase2d-message-types`
|
||||||
- 浏览器测试修复:搜索 ILIKE 替换 to_tsvector、管理端群详情 UI 重设计、群搜索已加入状态、创建/邀请支持非好友搜索、全角色身份标识、全局错误信息路径修复(8文件18处)、自定义操作弹窗替代 uni.showActionSheet、已读详情页群昵称展示、免打扰 API 补全(DAO/Service/Controller/Router)、联系人 Tab 页 onShow 刷新
|
- **开发者运维脚本(2026-04-20)**:新增 `scripts/{start,stop,status}.sh` 三件套,`scripts/dev-setup.sh` 补齐 MinIO 健康检查;遵循 setup/start 职责分离(Rails/Django 社区模式)
|
||||||
- **跨模块通信模式**:接口注入标准(ws.FriendIDsGetter / im.FriendChecker / im.UserInfoGetter → contact.FriendshipDAO,im.OfflineMessagePusher → ws.Handler,contact.OnlineChecker → ws.OnlineService,im.GroupInfoGetter → group.GroupDAO,im.MessageReadRecorder → group.MessageReadDAO,group.UserInfoProvider → auth.UserDAO,group.MessageWriter → im.MessageDAO)
|
- 范围:图片/语音/文件消息完整流程 + 管理端消息管理(列表+统计+撤回+删除)+ ECharts 仪表板
|
||||||
|
- **跨模块通信模式**:接口注入标准(ws.FriendIDsGetter / im.FriendChecker / im.UserInfoGetter → contact.FriendshipDAO,im.OfflineMessagePusher → ws.Handler,contact.OnlineChecker → ws.OnlineService,im.GroupInfoGetter → group.GroupDAO,im.MessageReadRecorder → group.MessageReadDAO,group.UserInfoProvider → auth.UserDAO,group.MessageWriter → im.MessageDAO,admin.MessageManageService → im.ConversationDAO + ws.PubSub)
|
||||||
|
|
||||||
## 项目概述
|
## 项目概述
|
||||||
|
|
||||||
@@ -32,7 +33,7 @@ EchoChat 是一个实时音视频通讯平台,包含三个子项目:
|
|||||||
- `frontend/` — 前台用户端(uni-app + Vue 3.4 + Pinia 2.x)
|
- `frontend/` — 前台用户端(uni-app + Vue 3.4 + Pinia 2.x)
|
||||||
- `admin/` — 后台管理端(Vue 3.5+ + Element Plus + Pinia 3.x)
|
- `admin/` — 后台管理端(Vue 3.5+ + Element Plus + Pinia 3.x)
|
||||||
|
|
||||||
已实现模块:auth(认证)、contact(联系人)、ws(WebSocket)、admin(管理端)、im(即时通讯 + 已读回执)、group(群聊管理)、file(文件上传/MinIO)
|
已实现模块:auth(认证)、contact(联系人)、ws(WebSocket)、im(即时通讯)、group(群聊)、file(文件上传)、admin(管理端含消息管理)、im(即时通讯 + 已读回执)、group(群聊管理)、file(文件上传/MinIO)
|
||||||
前端常量:`frontend/src/constants/group.js`(GROUP_ROLE / GROUP_STATUS / JOIN_REQUEST_STATUS,与后端 constants/group.go 对齐)
|
前端常量:`frontend/src/constants/group.js`(GROUP_ROLE / GROUP_STATUS / JOIN_REQUEST_STATUS,与后端 constants/group.go 对齐)
|
||||||
|
|
||||||
## 核心开发规则
|
## 核心开发规则
|
||||||
@@ -52,6 +53,12 @@ EchoChat 是一个实时音视频通讯平台,包含三个子项目:
|
|||||||
13. **验证方式**:使用 Playwright MCP 进行页面自动化验证
|
13. **验证方式**:使用 Playwright MCP 进行页面自动化验证
|
||||||
14. **代码审查**:每个 Task 完成后,使用 `code-reviewer` 子代理进行结构化审查,确保代码质量和计划一致性
|
14. **代码审查**:每个 Task 完成后,使用 `code-reviewer` 子代理进行结构化审查,确保代码质量和计划一致性
|
||||||
15. **完成验证**:使用 `verification-before-completion` 技能,在声称完成前运行验证命令并确认输出
|
15. **完成验证**:使用 `verification-before-completion` 技能,在声称完成前运行验证命令并确认输出
|
||||||
|
16. **本地启停脚本(强制)**:启动/停止三端服务统一使用 `scripts/` 下的脚本,**禁止在聊天中直接指导用户敲 `cd backend && go run ...` 等原始命令**:
|
||||||
|
- 首次初始化:`./scripts/dev-setup.sh`(检查 Docker、拉起 Postgres/Redis/MinIO 并健康等待)
|
||||||
|
- 日常启动:`./scripts/start.sh`(端口占用自动跳过,支持 `backend|frontend|admin|docker|--no-docker` 单项启动)
|
||||||
|
- 日常停止:`./scripts/stop.sh`(默认保留 Docker 容器,`--all` 全关)
|
||||||
|
- 状态查看:`./scripts/status.sh`
|
||||||
|
- 后台进程的 PID 与日志位于 `.run/`(已 gitignore),排障优先查看 `.run/logs/*.log`
|
||||||
|
|
||||||
## 代码风格全局一致规则(最高优先级,强制执行)
|
## 代码风格全局一致规则(最高优先级,强制执行)
|
||||||
|
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -14,6 +14,9 @@ Thumbs.db
|
|||||||
*.swo
|
*.swo
|
||||||
*~
|
*~
|
||||||
|
|
||||||
|
# --- Local runtime ---
|
||||||
|
.run/
|
||||||
|
|
||||||
# --- Go ---
|
# --- Go ---
|
||||||
backend/go-service/tmp/
|
backend/go-service/tmp/
|
||||||
*.exe
|
*.exe
|
||||||
|
|||||||
12
.playwright-mcp/page-2026-04-17T07-25-16-028Z.yml
Normal file
12
.playwright-mcp/page-2026-04-17T07-25-16-028Z.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e8]: 消息
|
||||||
|
- generic [ref=e15]:
|
||||||
|
- generic [ref=e19] [cursor=pointer]: 消息
|
||||||
|
- generic [ref=e22] [cursor=pointer]: 联系人
|
||||||
|
- generic [ref=e25] [cursor=pointer]: 会议
|
||||||
|
- generic [ref=e28] [cursor=pointer]: 我的
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- paragraph: 认证已过期或无效,请重新登录
|
||||||
52
.playwright-mcp/page-2026-04-17T07-27-09-460Z.yml
Normal file
52
.playwright-mcp/page-2026-04-17T07-27-09-460Z.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e169]:
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- generic [ref=e173]: 测试用户3
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e179]:
|
||||||
|
- generic [ref=e181]:
|
||||||
|
- generic [ref=e182]:
|
||||||
|
- generic [ref=e185]: 哈哈哈
|
||||||
|
- generic [ref=e188]: 新
|
||||||
|
- generic [ref=e189]: 未读
|
||||||
|
- generic [ref=e191]:
|
||||||
|
- generic [ref=e192]:
|
||||||
|
- generic [ref=e195]: 123hah
|
||||||
|
- generic [ref=e198]: 新
|
||||||
|
- generic [ref=e199]: 未读
|
||||||
|
- generic [ref=e201]:
|
||||||
|
- generic [ref=e202]:
|
||||||
|
- generic [ref=e205]: "2344"
|
||||||
|
- generic [ref=e208]: 新
|
||||||
|
- generic [ref=e209]: 未读
|
||||||
|
- generic [ref=e211]:
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- generic [ref=e215]: 12134哈哈哈哈
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e221]:
|
||||||
|
- generic [ref=e222]:
|
||||||
|
- generic [ref=e225]: 2312312313是大大大阿萨 噶傻撒撒Ashas阿萨说啊啊哈说爱上
|
||||||
|
- generic [ref=e228]: 新
|
||||||
|
- generic [ref=e229]: 未读
|
||||||
|
- generic [ref=e231]:
|
||||||
|
- generic [ref=e232]:
|
||||||
|
- generic [ref=e235]: Phase2c测试单聊消息
|
||||||
|
- generic [ref=e238]: 新
|
||||||
|
- generic [ref=e239]: 未读
|
||||||
|
- generic [ref=e241]:
|
||||||
|
- generic [ref=e242]:
|
||||||
|
- generic [ref=e245]: "2222"
|
||||||
|
- generic [ref=e248]: 新
|
||||||
|
- generic [ref=e249]: 未读
|
||||||
|
- generic [ref=e251]:
|
||||||
|
- generic [ref=e252]:
|
||||||
|
- generic [ref=e255]: 已读回执测试消息
|
||||||
|
- generic [ref=e258]: 新
|
||||||
|
- generic [ref=e259]: 未读
|
||||||
|
- generic [ref=e261]:
|
||||||
|
- generic [ref=e263]:
|
||||||
|
- generic [ref=e266]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e267]
|
||||||
|
- generic [ref=e269]:
|
||||||
59
.playwright-mcp/page-2026-04-17T07-27-25-356Z.yml
Normal file
59
.playwright-mcp/page-2026-04-17T07-27-25-356Z.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e169]:
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- generic [ref=e173]: 测试用户3
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e179]:
|
||||||
|
- generic [ref=e181]:
|
||||||
|
- generic [ref=e182]:
|
||||||
|
- generic [ref=e185]: 哈哈哈
|
||||||
|
- generic [ref=e188]: 新
|
||||||
|
- generic [ref=e189]: 未读
|
||||||
|
- generic [ref=e191]:
|
||||||
|
- generic [ref=e192]:
|
||||||
|
- generic [ref=e195]: 123hah
|
||||||
|
- generic [ref=e198]: 新
|
||||||
|
- generic [ref=e199]: 未读
|
||||||
|
- generic [ref=e201]:
|
||||||
|
- generic [ref=e202]:
|
||||||
|
- generic [ref=e205]: "2344"
|
||||||
|
- generic [ref=e208]: 新
|
||||||
|
- generic [ref=e209]: 未读
|
||||||
|
- generic [ref=e211]:
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- generic [ref=e215]: 12134哈哈哈哈
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e221]:
|
||||||
|
- generic [ref=e222]:
|
||||||
|
- generic [ref=e225]: 2312312313是大大大阿萨 噶傻撒撒Ashas阿萨说啊啊哈说爱上
|
||||||
|
- generic [ref=e228]: 新
|
||||||
|
- generic [ref=e229]: 未读
|
||||||
|
- generic [ref=e231]:
|
||||||
|
- generic [ref=e232]:
|
||||||
|
- generic [ref=e235]: Phase2c测试单聊消息
|
||||||
|
- generic [ref=e238]: 新
|
||||||
|
- generic [ref=e239]: 未读
|
||||||
|
- generic [ref=e241]:
|
||||||
|
- generic [ref=e242]:
|
||||||
|
- generic [ref=e245]: "2222"
|
||||||
|
- generic [ref=e248]: 新
|
||||||
|
- generic [ref=e249]: 未读
|
||||||
|
- generic [ref=e251]:
|
||||||
|
- generic [ref=e252]:
|
||||||
|
- generic [ref=e255]: 已读回执测试消息
|
||||||
|
- generic [ref=e258]: 新
|
||||||
|
- generic [ref=e259]: 未读
|
||||||
|
- generic [ref=e261]:
|
||||||
|
- generic [ref=e263]:
|
||||||
|
- generic [ref=e266]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e267]
|
||||||
|
- generic [ref=e269]:
|
||||||
|
- generic [ref=e271]:
|
||||||
|
- generic [ref=e272]:
|
||||||
|
- generic [ref=e274]:
|
||||||
|
- generic [ref=e275]: 图片
|
||||||
|
- generic [ref=e276]:
|
||||||
|
- generic [ref=e278]:
|
||||||
|
- generic [ref=e279]: 文件
|
||||||
50
.playwright-mcp/page-2026-04-17T07-27-36-905Z.yml
Normal file
50
.playwright-mcp/page-2026-04-17T07-27-36-905Z.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e169]:
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- generic [ref=e173]: 测试用户3
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e179]:
|
||||||
|
- generic [ref=e181]:
|
||||||
|
- generic [ref=e182]:
|
||||||
|
- generic [ref=e185]: 哈哈哈
|
||||||
|
- generic [ref=e188]: 新
|
||||||
|
- generic [ref=e189]: 未读
|
||||||
|
- generic [ref=e191]:
|
||||||
|
- generic [ref=e192]:
|
||||||
|
- generic [ref=e195]: 123hah
|
||||||
|
- generic [ref=e198]: 新
|
||||||
|
- generic [ref=e199]: 未读
|
||||||
|
- generic [ref=e201]:
|
||||||
|
- generic [ref=e202]:
|
||||||
|
- generic [ref=e205]: "2344"
|
||||||
|
- generic [ref=e208]: 新
|
||||||
|
- generic [ref=e209]: 未读
|
||||||
|
- generic [ref=e211]:
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- generic [ref=e215]: 12134哈哈哈哈
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e221]:
|
||||||
|
- generic [ref=e222]:
|
||||||
|
- generic [ref=e225]: 2312312313是大大大阿萨 噶傻撒撒Ashas阿萨说啊啊哈说爱上
|
||||||
|
- generic [ref=e228]: 新
|
||||||
|
- generic [ref=e229]: 未读
|
||||||
|
- generic [ref=e231]:
|
||||||
|
- generic [ref=e232]:
|
||||||
|
- generic [ref=e235]: Phase2c测试单聊消息
|
||||||
|
- generic [ref=e238]: 新
|
||||||
|
- generic [ref=e239]: 未读
|
||||||
|
- generic [ref=e241]:
|
||||||
|
- generic [ref=e242]:
|
||||||
|
- generic [ref=e245]: "2222"
|
||||||
|
- generic [ref=e248]: 新
|
||||||
|
- generic [ref=e249]: 未读
|
||||||
|
- generic [ref=e251]:
|
||||||
|
- generic [ref=e252]:
|
||||||
|
- generic [ref=e255]: 已读回执测试消息
|
||||||
|
- generic [ref=e258]: 新
|
||||||
|
- generic [ref=e259]: 未读
|
||||||
|
- generic [ref=e261]:
|
||||||
|
- generic [ref=e263]:
|
||||||
|
- generic [ref=e282]: 按住 说话
|
||||||
|
- generic [ref=e269]:
|
||||||
52
.playwright-mcp/page-2026-04-17T07-27-50-887Z.yml
Normal file
52
.playwright-mcp/page-2026-04-17T07-27-50-887Z.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e169]:
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- generic [ref=e173]: 测试用户3
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e179]:
|
||||||
|
- generic [ref=e181]:
|
||||||
|
- generic [ref=e182]:
|
||||||
|
- generic [ref=e185]: 哈哈哈
|
||||||
|
- generic [ref=e188]: 新
|
||||||
|
- generic [ref=e189]: 未读
|
||||||
|
- generic [ref=e191]:
|
||||||
|
- generic [ref=e192]:
|
||||||
|
- generic [ref=e195]: 123hah
|
||||||
|
- generic [ref=e198]: 新
|
||||||
|
- generic [ref=e199]: 未读
|
||||||
|
- generic [ref=e201]:
|
||||||
|
- generic [ref=e202]:
|
||||||
|
- generic [ref=e205]: "2344"
|
||||||
|
- generic [ref=e208]: 新
|
||||||
|
- generic [ref=e209]: 未读
|
||||||
|
- generic [ref=e211]:
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- generic [ref=e215]: 12134哈哈哈哈
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e221]:
|
||||||
|
- generic [ref=e222]:
|
||||||
|
- generic [ref=e225]: 2312312313是大大大阿萨 噶傻撒撒Ashas阿萨说啊啊哈说爱上
|
||||||
|
- generic [ref=e228]: 新
|
||||||
|
- generic [ref=e229]: 未读
|
||||||
|
- generic [ref=e231]:
|
||||||
|
- generic [ref=e232]:
|
||||||
|
- generic [ref=e235]: Phase2c测试单聊消息
|
||||||
|
- generic [ref=e238]: 新
|
||||||
|
- generic [ref=e239]: 未读
|
||||||
|
- generic [ref=e241]:
|
||||||
|
- generic [ref=e242]:
|
||||||
|
- generic [ref=e245]: "2222"
|
||||||
|
- generic [ref=e248]: 新
|
||||||
|
- generic [ref=e249]: 未读
|
||||||
|
- generic [ref=e251]:
|
||||||
|
- generic [ref=e252]:
|
||||||
|
- generic [ref=e255]: 已读回执测试消息
|
||||||
|
- generic [ref=e258]: 新
|
||||||
|
- generic [ref=e259]: 未读
|
||||||
|
- generic [ref=e261]:
|
||||||
|
- generic [ref=e263]:
|
||||||
|
- generic [ref=e285]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e286]
|
||||||
|
- generic [ref=e269]:
|
||||||
71
.playwright-mcp/page-2026-04-17T07-27-56-740Z.yml
Normal file
71
.playwright-mcp/page-2026-04-17T07-27-56-740Z.yml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e287]:
|
||||||
|
- generic [ref=e291]: 消息
|
||||||
|
- generic [ref=e295]:
|
||||||
|
- generic [ref=e296]:
|
||||||
|
- generic [ref=e297]: 消息
|
||||||
|
- generic [ref=e298]:
|
||||||
|
- generic [ref=e300]:
|
||||||
|
- generic [ref=e302]:
|
||||||
|
- generic [ref=e303]:
|
||||||
|
- generic [ref=e305]: 全部
|
||||||
|
- generic [ref=e307]: 单聊
|
||||||
|
- generic [ref=e309]: 群聊
|
||||||
|
- generic [ref=e313]:
|
||||||
|
- generic [ref=e314]:
|
||||||
|
- generic [ref=e317]: 测
|
||||||
|
- generic [ref=e318]:
|
||||||
|
- generic [ref=e319]:
|
||||||
|
- generic [ref=e320]: 测试用户3
|
||||||
|
- generic [ref=e321]: 3/4
|
||||||
|
- generic [ref=e322]:
|
||||||
|
- generic [ref=e324]: 已读回执测试消息
|
||||||
|
- generic [ref=e326]:
|
||||||
|
- generic [ref=e327]:
|
||||||
|
- generic [ref=e328]:
|
||||||
|
- generic [ref=e330]: 两
|
||||||
|
- generic [ref=e332]: "3"
|
||||||
|
- generic [ref=e333]:
|
||||||
|
- generic [ref=e334]:
|
||||||
|
- generic [ref=e335]: 两人群测试
|
||||||
|
- generic [ref=e336]: 3/12
|
||||||
|
- generic [ref=e339]: 换届大会打卡还贷款
|
||||||
|
- generic [ref=e340]:
|
||||||
|
- generic [ref=e343]: 卜
|
||||||
|
- generic [ref=e344]:
|
||||||
|
- generic [ref=e345]:
|
||||||
|
- generic [ref=e346]: 卜锦元
|
||||||
|
- generic [ref=e347]: 3/4
|
||||||
|
- generic [ref=e350]: "112121212"
|
||||||
|
- generic [ref=e351]:
|
||||||
|
- generic [ref=e354]: 测
|
||||||
|
- generic [ref=e356]:
|
||||||
|
- generic [ref=e357]: 测试用户2
|
||||||
|
- generic [ref=e358]: 3/4
|
||||||
|
- generic [ref=e359]:
|
||||||
|
- generic [ref=e362]: E
|
||||||
|
- generic [ref=e363]:
|
||||||
|
- generic [ref=e364]:
|
||||||
|
- generic [ref=e365]: EchoChat测试群
|
||||||
|
- generic [ref=e366]: 3/4
|
||||||
|
- generic [ref=e369]: 测试已读回执功能
|
||||||
|
- generic [ref=e370]:
|
||||||
|
- generic [ref=e371]:
|
||||||
|
- generic [ref=e372]:
|
||||||
|
- generic [ref=e373]:
|
||||||
|
- generic [ref=e374]: "3"
|
||||||
|
- generic [ref=e375]: 消息
|
||||||
|
- generic [ref=e376]:
|
||||||
|
- generic [ref=e378]:
|
||||||
|
- generic [ref=e379]: 联系人
|
||||||
|
- generic [ref=e380]:
|
||||||
|
- generic [ref=e382]:
|
||||||
|
- generic [ref=e383]: 会议
|
||||||
|
- generic [ref=e384]:
|
||||||
|
- generic [ref=e386]:
|
||||||
|
- generic [ref=e387]: 我的
|
||||||
|
- generic [ref=e15]:
|
||||||
|
- generic [ref=e19] [cursor=pointer]: 消息
|
||||||
|
- generic [ref=e22] [cursor=pointer]: 联系人
|
||||||
|
- generic [ref=e25] [cursor=pointer]: 会议
|
||||||
|
- generic [ref=e28] [cursor=pointer]: 我的
|
||||||
141
.playwright-mcp/page-2026-04-17T07-28-11-843Z.yml
Normal file
141
.playwright-mcp/page-2026-04-17T07-28-11-843Z.yml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
- generic [ref=e391]:
|
||||||
|
- generic [ref=e392]:
|
||||||
|
- generic [ref=e394]:
|
||||||
|
- generic [ref=e395]:
|
||||||
|
- generic [ref=e396]: 两人群测试
|
||||||
|
- generic [ref=e397]: (5)
|
||||||
|
- generic [ref=e399]:
|
||||||
|
- generic [ref=e403]:
|
||||||
|
- generic [ref=e405]: 加载更多
|
||||||
|
- generic [ref=e408]:
|
||||||
|
- generic [ref=e409]:
|
||||||
|
- generic [ref=e412]: 测试,哈哈
|
||||||
|
- generic [ref=e415]: 新
|
||||||
|
- generic [ref=e416]: 0人已读
|
||||||
|
- generic [ref=e419]: 新昵称 更新了群公告
|
||||||
|
- generic [ref=e422]: 新昵称 邀请 测试用户3 加入了群聊
|
||||||
|
- generic [ref=e425]: 新昵称 邀请 卜锦元 加入了群聊
|
||||||
|
- generic [ref=e428]:
|
||||||
|
- generic [ref=e429]:
|
||||||
|
- generic [ref=e432]: 测试群聊功能
|
||||||
|
- generic [ref=e435]: 新
|
||||||
|
- generic [ref=e436]: 0人已读
|
||||||
|
- generic [ref=e439]:
|
||||||
|
- generic [ref=e440]:
|
||||||
|
- generic [ref=e443]: 再次测试
|
||||||
|
- generic [ref=e446]: 新
|
||||||
|
- generic [ref=e447]: 0人已读
|
||||||
|
- generic [ref=e450]:
|
||||||
|
- generic [ref=e451]:
|
||||||
|
- generic [ref=e454]: 哈哈哈,我要再次测试
|
||||||
|
- generic [ref=e457]: 新
|
||||||
|
- generic [ref=e458]: 0人已读
|
||||||
|
- generic [ref=e460]:
|
||||||
|
- generic [ref=e463]: 卜
|
||||||
|
- generic [ref=e464]:
|
||||||
|
- generic [ref=e465]: 卜锦元
|
||||||
|
- generic [ref=e468]: "1111"
|
||||||
|
- generic [ref=e470]:
|
||||||
|
- generic [ref=e473]: 卜
|
||||||
|
- generic [ref=e474]:
|
||||||
|
- generic [ref=e475]: 卜锦元
|
||||||
|
- generic [ref=e478]: "1111"
|
||||||
|
- generic [ref=e480]:
|
||||||
|
- generic [ref=e483]: 卜
|
||||||
|
- generic [ref=e484]:
|
||||||
|
- generic [ref=e485]: 卜锦元
|
||||||
|
- generic [ref=e488]: "3333"
|
||||||
|
- generic [ref=e490]:
|
||||||
|
- generic [ref=e493]: 卜
|
||||||
|
- generic [ref=e494]:
|
||||||
|
- generic [ref=e495]: 卜锦元
|
||||||
|
- generic [ref=e498]: "1111"
|
||||||
|
- generic [ref=e500]:
|
||||||
|
- generic [ref=e503]: 卜
|
||||||
|
- generic [ref=e504]:
|
||||||
|
- generic [ref=e505]: 卜锦元
|
||||||
|
- generic [ref=e508]: 测试111
|
||||||
|
- generic [ref=e510]:
|
||||||
|
- generic [ref=e513]: 卜
|
||||||
|
- generic [ref=e514]:
|
||||||
|
- generic [ref=e515]: 卜锦元
|
||||||
|
- generic [ref=e518]: "2222"
|
||||||
|
- generic [ref=e520]:
|
||||||
|
- generic [ref=e523]: 卜
|
||||||
|
- generic [ref=e524]:
|
||||||
|
- generic [ref=e525]: 卜锦元
|
||||||
|
- generic [ref=e528]: "1211212"
|
||||||
|
- generic [ref=e530]:
|
||||||
|
- generic [ref=e533]: 卜
|
||||||
|
- generic [ref=e534]:
|
||||||
|
- generic [ref=e535]: 卜锦元
|
||||||
|
- generic [ref=e538]: 测试消费
|
||||||
|
- generic [ref=e541]:
|
||||||
|
- generic [ref=e542]:
|
||||||
|
- generic [ref=e545]: 测试哈哈
|
||||||
|
- generic [ref=e548]: 新
|
||||||
|
- generic [ref=e549]: 0人已读
|
||||||
|
- generic [ref=e552]:
|
||||||
|
- generic [ref=e553]:
|
||||||
|
- generic [ref=e556]: "1111"
|
||||||
|
- generic [ref=e559]: 新
|
||||||
|
- generic [ref=e560]: 0人已读
|
||||||
|
- generic [ref=e563]:
|
||||||
|
- generic [ref=e564]:
|
||||||
|
- generic [ref=e567]: 测试你是死是1
|
||||||
|
- generic [ref=e570]: 新
|
||||||
|
- generic [ref=e571]: 0人已读
|
||||||
|
- generic [ref=e574]: 卜锦元 被设为管理员
|
||||||
|
- generic [ref=e577]:
|
||||||
|
- generic [ref=e578]:
|
||||||
|
- generic [ref=e581]: "112212"
|
||||||
|
- generic [ref=e584]: 新
|
||||||
|
- generic [ref=e585]: 0人已读
|
||||||
|
- generic [ref=e587]:
|
||||||
|
- generic [ref=e590]: 卜
|
||||||
|
- generic [ref=e591]:
|
||||||
|
- generic [ref=e592]: 卜锦元
|
||||||
|
- generic [ref=e595]: 哈哈哈,知道我是谁吗
|
||||||
|
- generic [ref=e597]:
|
||||||
|
- generic [ref=e600]: 卜
|
||||||
|
- generic [ref=e601]:
|
||||||
|
- generic [ref=e602]: 卜锦元
|
||||||
|
- generic [ref=e605]: 再次测试
|
||||||
|
- generic [ref=e607]:
|
||||||
|
- generic [ref=e610]: 卜
|
||||||
|
- generic [ref=e611]:
|
||||||
|
- generic [ref=e612]: 卜锦元
|
||||||
|
- generic [ref=e615]: "111112"
|
||||||
|
- generic [ref=e618]:
|
||||||
|
- generic [ref=e619]:
|
||||||
|
- generic [ref=e622]: 我知道你是谁
|
||||||
|
- generic [ref=e625]: 新
|
||||||
|
- generic [ref=e626]: 0人已读
|
||||||
|
- generic [ref=e629]: 卜锦元 更新了群公告
|
||||||
|
- generic [ref=e632]:
|
||||||
|
- generic [ref=e633]:
|
||||||
|
- generic [ref=e636]: 哈哈哈,测试
|
||||||
|
- generic [ref=e639]: 新
|
||||||
|
- generic [ref=e640]: 0人已读
|
||||||
|
- generic [ref=e643]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- generic [ref=e645]:
|
||||||
|
- generic [ref=e648]: 卜
|
||||||
|
- generic [ref=e649]:
|
||||||
|
- generic [ref=e650]: 卜锦元
|
||||||
|
- generic [ref=e653]: "@周和智 1111"
|
||||||
|
- generic [ref=e655]:
|
||||||
|
- generic [ref=e658]: 卜
|
||||||
|
- generic [ref=e659]:
|
||||||
|
- generic [ref=e660]: 卜锦元
|
||||||
|
- generic [ref=e663]: 你能看到吗
|
||||||
|
- generic [ref=e665]:
|
||||||
|
- generic [ref=e668]: 周
|
||||||
|
- generic [ref=e669]:
|
||||||
|
- generic [ref=e670]: 周和智
|
||||||
|
- generic [ref=e673]: 换届大会打卡还贷款
|
||||||
|
- generic [ref=e675]:
|
||||||
|
- generic [ref=e677]:
|
||||||
|
- generic [ref=e680]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e681]
|
||||||
|
- generic [ref=e683]:
|
||||||
67
.playwright-mcp/page-2026-04-17T07-28-22-476Z.yml
Normal file
67
.playwright-mcp/page-2026-04-17T07-28-22-476Z.yml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- complementary [ref=e4]:
|
||||||
|
- generic [ref=e5]:
|
||||||
|
- generic [ref=e6]: E
|
||||||
|
- generic [ref=e7]: EchoChat
|
||||||
|
- menubar [ref=e8]:
|
||||||
|
- menuitem "仪表盘" [ref=e9] [cursor=pointer]:
|
||||||
|
- img [ref=e11]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e13]:
|
||||||
|
- generic [ref=e14] [cursor=pointer]:
|
||||||
|
- img [ref=e16]
|
||||||
|
- generic [ref=e18]: 用户管理
|
||||||
|
- img [ref=e20]
|
||||||
|
- menuitem "联系人管理" [ref=e22]:
|
||||||
|
- generic [ref=e23] [cursor=pointer]:
|
||||||
|
- img [ref=e25]
|
||||||
|
- generic [ref=e28]: 联系人管理
|
||||||
|
- img [ref=e30]
|
||||||
|
- menuitem "群组管理" [ref=e32]:
|
||||||
|
- generic [ref=e33] [cursor=pointer]:
|
||||||
|
- img [ref=e35]
|
||||||
|
- generic [ref=e38]: 群组管理
|
||||||
|
- img [ref=e40]
|
||||||
|
- menuitem "消息管理" [ref=e42]:
|
||||||
|
- generic [ref=e43] [cursor=pointer]:
|
||||||
|
- img [ref=e45]
|
||||||
|
- generic [ref=e47]: 消息管理
|
||||||
|
- img [ref=e49]
|
||||||
|
- menuitem "在线监控" [ref=e51] [cursor=pointer]:
|
||||||
|
- img [ref=e53]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e55]:
|
||||||
|
- generic [ref=e56]:
|
||||||
|
- img [ref=e59] [cursor=pointer]
|
||||||
|
- button "新 testuser1" [ref=e63] [cursor=pointer]:
|
||||||
|
- generic [ref=e64]: 新
|
||||||
|
- generic [ref=e65]: testuser1
|
||||||
|
- img [ref=e67]
|
||||||
|
- main [ref=e69]:
|
||||||
|
- generic [ref=e70]:
|
||||||
|
- heading "仪表盘" [level=2] [ref=e71]
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e75]:
|
||||||
|
- img [ref=e78]
|
||||||
|
- generic [ref=e80]: "--"
|
||||||
|
- generic [ref=e81]: 总用户数
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e87]
|
||||||
|
- generic [ref=e90]: "--"
|
||||||
|
- generic [ref=e91]: 在线用户
|
||||||
|
- generic [ref=e94]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- generic [ref=e99]: "--"
|
||||||
|
- generic [ref=e100]: 今日会议
|
||||||
|
- generic [ref=e103]:
|
||||||
|
- img [ref=e106]
|
||||||
|
- generic [ref=e109]: "--"
|
||||||
|
- generic [ref=e110]: 系统消息
|
||||||
|
- generic [ref=e111]:
|
||||||
|
- generic [ref=e112]: 开发进度
|
||||||
|
- generic [ref=e113]:
|
||||||
|
- paragraph [ref=e114]:
|
||||||
|
- text: "Phase 1: 基础设施与用户认证模块 —"
|
||||||
|
- generic:
|
||||||
|
- generic: 进行中
|
||||||
|
- paragraph [ref=e115]: 更多数据面板将在后续阶段中完善(IM 统计、会议统计、系统监控等)
|
||||||
66
.playwright-mcp/page-2026-04-17T07-28-27-950Z.yml
Normal file
66
.playwright-mcp/page-2026-04-17T07-28-27-950Z.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- complementary [ref=e4]:
|
||||||
|
- generic [ref=e5]:
|
||||||
|
- generic [ref=e6]: E
|
||||||
|
- generic [ref=e7]: EchoChat
|
||||||
|
- menubar [ref=e8]:
|
||||||
|
- menuitem "仪表盘" [ref=e9] [cursor=pointer]:
|
||||||
|
- img [ref=e11]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e13]:
|
||||||
|
- generic [ref=e14] [cursor=pointer]:
|
||||||
|
- img [ref=e16]
|
||||||
|
- generic [ref=e18]: 用户管理
|
||||||
|
- img [ref=e20]
|
||||||
|
- menuitem "联系人管理" [ref=e22]:
|
||||||
|
- generic [ref=e23] [cursor=pointer]:
|
||||||
|
- img [ref=e25]
|
||||||
|
- generic [ref=e28]: 联系人管理
|
||||||
|
- img [ref=e30]
|
||||||
|
- menuitem "群组管理" [ref=e32]:
|
||||||
|
- generic [ref=e33] [cursor=pointer]:
|
||||||
|
- img [ref=e35]
|
||||||
|
- generic [ref=e38]: 群组管理
|
||||||
|
- img [ref=e40]
|
||||||
|
- menuitem "消息管理" [ref=e42]:
|
||||||
|
- generic [ref=e43] [cursor=pointer]:
|
||||||
|
- img [ref=e45]
|
||||||
|
- generic [ref=e47]: 消息管理
|
||||||
|
- img [ref=e49]
|
||||||
|
- menuitem "在线监控" [ref=e51] [cursor=pointer]:
|
||||||
|
- img [ref=e53]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e55]:
|
||||||
|
- generic [ref=e56]:
|
||||||
|
- img [ref=e59] [cursor=pointer]
|
||||||
|
- button "新 testuser1" [ref=e63] [cursor=pointer]:
|
||||||
|
- generic [ref=e64]: 新
|
||||||
|
- generic [ref=e65]: testuser1
|
||||||
|
- img [ref=e67]
|
||||||
|
- main [ref=e69]:
|
||||||
|
- generic [ref=e70]:
|
||||||
|
- heading "仪表盘" [level=2] [ref=e71]
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e75]:
|
||||||
|
- img [ref=e78]
|
||||||
|
- generic [ref=e80]: "--"
|
||||||
|
- generic [ref=e81]: 总用户数
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e87]
|
||||||
|
- generic [ref=e90]: "--"
|
||||||
|
- generic [ref=e91]: 在线用户
|
||||||
|
- generic [ref=e94]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- generic [ref=e99]: "--"
|
||||||
|
- generic [ref=e100]: 今日会议
|
||||||
|
- generic [ref=e103]:
|
||||||
|
- img [ref=e106]
|
||||||
|
- generic [ref=e109]: "--"
|
||||||
|
- generic [ref=e110]: 系统消息
|
||||||
|
- generic [ref=e111]:
|
||||||
|
- generic [ref=e112]: 开发进度
|
||||||
|
- generic [ref=e113]:
|
||||||
|
- paragraph [ref=e114]:
|
||||||
|
- text: "Phase 1: 基础设施与用户认证模块 —"
|
||||||
|
- generic [ref=e117]: 进行中
|
||||||
|
- paragraph [ref=e115]: 更多数据面板将在后续阶段中完善(IM 统计、会议统计、系统监控等)
|
||||||
70
.playwright-mcp/page-2026-04-17T07-28-50-885Z.yml
Normal file
70
.playwright-mcp/page-2026-04-17T07-28-50-885Z.yml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e229]:
|
||||||
|
- heading "仪表盘" [level=2] [ref=e230]
|
||||||
|
- generic [ref=e231]:
|
||||||
|
- generic [ref=e234]:
|
||||||
|
- img [ref=e237]
|
||||||
|
- generic [ref=e239]: "--"
|
||||||
|
- generic [ref=e240]: 总用户数
|
||||||
|
- generic [ref=e243]:
|
||||||
|
- img [ref=e246]
|
||||||
|
- generic [ref=e249]: "--"
|
||||||
|
- generic [ref=e250]: 在线用户
|
||||||
|
- generic [ref=e253]:
|
||||||
|
- img [ref=e256]
|
||||||
|
- generic [ref=e258]: "--"
|
||||||
|
- generic [ref=e259]: 今日会议
|
||||||
|
- generic [ref=e262]:
|
||||||
|
- img [ref=e265]
|
||||||
|
- generic [ref=e268]: "--"
|
||||||
|
- generic [ref=e269]: 系统消息
|
||||||
|
- generic [ref=e270]:
|
||||||
|
- generic [ref=e271]: 开发进度
|
||||||
|
- generic [ref=e272]:
|
||||||
|
- paragraph [ref=e273]:
|
||||||
|
- text: "Phase 1: 基础设施与用户认证模块 —"
|
||||||
|
- generic [ref=e275]: 进行中
|
||||||
|
- paragraph [ref=e276]: 更多数据面板将在后续阶段中完善(IM 统计、会议统计、系统监控等)
|
||||||
|
- alert [ref=e277]:
|
||||||
|
- img [ref=e279]
|
||||||
|
- paragraph [ref=e281]: 登录成功
|
||||||
127
.playwright-mcp/page-2026-04-17T07-28-59-150Z.yml
Normal file
127
.playwright-mcp/page-2026-04-17T07-28-59-150Z.yml
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e284]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e286]
|
||||||
|
- generic [ref=e289]:
|
||||||
|
- generic [ref=e290]:
|
||||||
|
- generic [ref=e291]: 关键词
|
||||||
|
- generic [ref=e294]:
|
||||||
|
- img [ref=e297]
|
||||||
|
- textbox "关键词" [ref=e299]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e300]:
|
||||||
|
- generic [ref=e301]: 类型
|
||||||
|
- generic [ref=e304] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e306]
|
||||||
|
- generic [ref=e307]: 全部
|
||||||
|
- img [ref=e310]
|
||||||
|
- generic [ref=e312]:
|
||||||
|
- generic [ref=e313]: 状态
|
||||||
|
- generic [ref=e316] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e318]
|
||||||
|
- generic [ref=e319]: 全部
|
||||||
|
- img [ref=e322]
|
||||||
|
- generic [ref=e324]:
|
||||||
|
- generic [ref=e325]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e329]
|
||||||
|
- generic [ref=e330]:
|
||||||
|
- generic [ref=e331]: 时间范围
|
||||||
|
- generic [ref=e333]:
|
||||||
|
- img [ref=e335]
|
||||||
|
- combobox "时间范围" [ref=e337]
|
||||||
|
- generic [ref=e338]: 至
|
||||||
|
- combobox "结束日期" [ref=e339]
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- button "搜索" [ref=e342] [cursor=pointer]:
|
||||||
|
- generic [ref=e343]: 搜索
|
||||||
|
- button "重置" [ref=e344] [cursor=pointer]:
|
||||||
|
- generic [ref=e345]: 重置
|
||||||
|
- generic [ref=e347]:
|
||||||
|
- generic [ref=e348]:
|
||||||
|
- generic [ref=e349]:
|
||||||
|
- table [ref=e351]:
|
||||||
|
- rowgroup [ref=e361]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e362]:
|
||||||
|
- columnheader "ID" [ref=e363]:
|
||||||
|
- generic [ref=e364]: ID
|
||||||
|
- columnheader "发送者" [ref=e365]:
|
||||||
|
- generic [ref=e366]: 发送者
|
||||||
|
- columnheader "类型" [ref=e367]:
|
||||||
|
- generic [ref=e368]: 类型
|
||||||
|
- columnheader "内容" [ref=e369]:
|
||||||
|
- generic [ref=e370]: 内容
|
||||||
|
- columnheader "状态" [ref=e371]:
|
||||||
|
- generic [ref=e372]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e373]:
|
||||||
|
- generic [ref=e374]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e375]:
|
||||||
|
- generic [ref=e376]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e377]:
|
||||||
|
- generic [ref=e378]: 操作
|
||||||
|
- generic [ref=e382]:
|
||||||
|
- table:
|
||||||
|
- rowgroup
|
||||||
|
- generic [ref=e384]: 暂无数据
|
||||||
|
- img [ref=e388]
|
||||||
|
- generic [ref=e391]:
|
||||||
|
- generic [ref=e392]: 共 0 条
|
||||||
|
- generic [ref=e395] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e397]
|
||||||
|
- generic [ref=e398]: 20条/页
|
||||||
|
- img [ref=e401]
|
||||||
|
- button "上一页" [disabled] [ref=e403]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e404]:
|
||||||
|
- listitem "第 1 页" [ref=e405]: "1"
|
||||||
|
- button "下一页" [disabled] [ref=e406]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e407]:
|
||||||
|
- generic [ref=e408]: 前往
|
||||||
|
- spinbutton "页" [ref=e411]: "1"
|
||||||
|
- generic [ref=e412]: 页
|
||||||
700
.playwright-mcp/page-2026-04-17T07-29-16-130Z.yml
Normal file
700
.playwright-mcp/page-2026-04-17T07-29-16-130Z.yml
Normal file
@@ -0,0 +1,700 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e284]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e286]
|
||||||
|
- generic [ref=e289]:
|
||||||
|
- generic [ref=e290]:
|
||||||
|
- generic [ref=e291]: 关键词
|
||||||
|
- generic [ref=e294]:
|
||||||
|
- img [ref=e297]
|
||||||
|
- textbox "关键词" [ref=e299]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e300]:
|
||||||
|
- generic [ref=e301]: 类型
|
||||||
|
- generic [ref=e304] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e306]
|
||||||
|
- generic [ref=e307]: 全部
|
||||||
|
- img [ref=e310]
|
||||||
|
- generic [ref=e312]:
|
||||||
|
- generic [ref=e313]: 状态
|
||||||
|
- generic [ref=e316] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e318]
|
||||||
|
- generic [ref=e319]: 全部
|
||||||
|
- img [ref=e322]
|
||||||
|
- generic [ref=e324]:
|
||||||
|
- generic [ref=e325]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e329]
|
||||||
|
- generic [ref=e330]:
|
||||||
|
- generic [ref=e331]: 时间范围
|
||||||
|
- generic [ref=e333]:
|
||||||
|
- img [ref=e335]
|
||||||
|
- combobox "时间范围" [ref=e337]
|
||||||
|
- generic [ref=e338]: 至
|
||||||
|
- combobox "结束日期" [ref=e339]
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- button "搜索" [ref=e342] [cursor=pointer]:
|
||||||
|
- generic [ref=e343]: 搜索
|
||||||
|
- button "重置" [ref=e344] [cursor=pointer]:
|
||||||
|
- generic [ref=e345]: 重置
|
||||||
|
- generic [ref=e347]:
|
||||||
|
- generic [ref=e349]:
|
||||||
|
- table [ref=e351]:
|
||||||
|
- rowgroup [ref=e361]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e362]:
|
||||||
|
- columnheader "ID" [ref=e363]:
|
||||||
|
- generic [ref=e364]: ID
|
||||||
|
- columnheader "发送者" [ref=e365]:
|
||||||
|
- generic [ref=e366]: 发送者
|
||||||
|
- columnheader "类型" [ref=e367]:
|
||||||
|
- generic [ref=e368]: 类型
|
||||||
|
- columnheader "内容" [ref=e369]:
|
||||||
|
- generic [ref=e370]: 内容
|
||||||
|
- columnheader "状态" [ref=e371]:
|
||||||
|
- generic [ref=e372]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e373]:
|
||||||
|
- generic [ref=e374]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e375]:
|
||||||
|
- generic [ref=e376]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e377]:
|
||||||
|
- generic [ref=e378]: 操作
|
||||||
|
- table [ref=e414]:
|
||||||
|
- rowgroup [ref=e424]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e425]':
|
||||||
|
- cell "145" [ref=e426]:
|
||||||
|
- generic [ref=e427]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e428]':
|
||||||
|
- generic [ref=e430]:
|
||||||
|
- generic [ref=e432]: 卜
|
||||||
|
- generic [ref=e433]:
|
||||||
|
- generic [ref=e434]: 卜锦元
|
||||||
|
- generic [ref=e435]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e436]:
|
||||||
|
- generic [ref=e439]: 文本
|
||||||
|
- cell "1111" [ref=e440]:
|
||||||
|
- generic [ref=e442]: "1111"
|
||||||
|
- cell "正常" [ref=e443]:
|
||||||
|
- generic [ref=e446]: 正常
|
||||||
|
- cell "6" [ref=e447]:
|
||||||
|
- generic [ref=e448]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e449]:
|
||||||
|
- generic [ref=e450]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e451]:
|
||||||
|
- generic [ref=e452]:
|
||||||
|
- button "详情" [ref=e453] [cursor=pointer]:
|
||||||
|
- generic [ref=e454]: 详情
|
||||||
|
- button "撤回" [ref=e455] [cursor=pointer]:
|
||||||
|
- generic [ref=e456]: 撤回
|
||||||
|
- button "删除" [ref=e457] [cursor=pointer]:
|
||||||
|
- generic [ref=e458]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e459]':
|
||||||
|
- cell "144" [ref=e460]:
|
||||||
|
- generic [ref=e461]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e462]':
|
||||||
|
- generic [ref=e464]:
|
||||||
|
- generic [ref=e466]: 卜
|
||||||
|
- generic [ref=e467]:
|
||||||
|
- generic [ref=e468]: 卜锦元
|
||||||
|
- generic [ref=e469]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e470]:
|
||||||
|
- generic [ref=e473]: 文本
|
||||||
|
- cell "1112122" [ref=e474]:
|
||||||
|
- generic [ref=e476]: "1112122"
|
||||||
|
- cell "正常" [ref=e477]:
|
||||||
|
- generic [ref=e480]: 正常
|
||||||
|
- cell "6" [ref=e481]:
|
||||||
|
- generic [ref=e482]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e483]:
|
||||||
|
- generic [ref=e484]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e485]:
|
||||||
|
- generic [ref=e486]:
|
||||||
|
- button "详情" [ref=e487] [cursor=pointer]:
|
||||||
|
- generic [ref=e488]: 详情
|
||||||
|
- button "撤回" [ref=e489] [cursor=pointer]:
|
||||||
|
- generic [ref=e490]: 撤回
|
||||||
|
- button "删除" [ref=e491] [cursor=pointer]:
|
||||||
|
- generic [ref=e492]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e493]':
|
||||||
|
- cell "143" [ref=e494]:
|
||||||
|
- generic [ref=e495]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e496]':
|
||||||
|
- generic [ref=e498]:
|
||||||
|
- generic [ref=e500]: 卜
|
||||||
|
- generic [ref=e501]:
|
||||||
|
- generic [ref=e502]: 卜锦元
|
||||||
|
- generic [ref=e503]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e504]:
|
||||||
|
- generic [ref=e507]: 文本
|
||||||
|
- cell "1111" [ref=e508]:
|
||||||
|
- generic [ref=e510]: "1111"
|
||||||
|
- cell "正常" [ref=e511]:
|
||||||
|
- generic [ref=e514]: 正常
|
||||||
|
- cell "6" [ref=e515]:
|
||||||
|
- generic [ref=e516]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e517]:
|
||||||
|
- generic [ref=e518]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e519]:
|
||||||
|
- generic [ref=e520]:
|
||||||
|
- button "详情" [ref=e521] [cursor=pointer]:
|
||||||
|
- generic [ref=e522]: 详情
|
||||||
|
- button "撤回" [ref=e523] [cursor=pointer]:
|
||||||
|
- generic [ref=e524]: 撤回
|
||||||
|
- button "删除" [ref=e525] [cursor=pointer]:
|
||||||
|
- generic [ref=e526]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e527]':
|
||||||
|
- cell "142" [ref=e528]:
|
||||||
|
- generic [ref=e529]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e530]':
|
||||||
|
- generic [ref=e532]:
|
||||||
|
- generic [ref=e534]: 段
|
||||||
|
- generic [ref=e535]:
|
||||||
|
- generic [ref=e536]: 段凌云
|
||||||
|
- generic [ref=e537]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e538]:
|
||||||
|
- generic [ref=e541]: 文本
|
||||||
|
- cell "111111111223" [ref=e542]:
|
||||||
|
- generic [ref=e544]: "111111111223"
|
||||||
|
- cell "正常" [ref=e545]:
|
||||||
|
- generic [ref=e548]: 正常
|
||||||
|
- cell "6" [ref=e549]:
|
||||||
|
- generic [ref=e550]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e551]:
|
||||||
|
- generic [ref=e552]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e553]:
|
||||||
|
- generic [ref=e554]:
|
||||||
|
- button "详情" [ref=e555] [cursor=pointer]:
|
||||||
|
- generic [ref=e556]: 详情
|
||||||
|
- button "撤回" [ref=e557] [cursor=pointer]:
|
||||||
|
- generic [ref=e558]: 撤回
|
||||||
|
- button "删除" [ref=e559] [cursor=pointer]:
|
||||||
|
- generic [ref=e560]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e561]':
|
||||||
|
- cell "141" [ref=e562]:
|
||||||
|
- generic [ref=e563]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e564]':
|
||||||
|
- generic [ref=e566]:
|
||||||
|
- generic [ref=e568]: 周
|
||||||
|
- generic [ref=e569]:
|
||||||
|
- generic [ref=e570]: 周和智
|
||||||
|
- generic [ref=e571]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e572]:
|
||||||
|
- generic [ref=e575]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e576]:
|
||||||
|
- generic [ref=e578]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e579]:
|
||||||
|
- generic [ref=e582]: 正常
|
||||||
|
- cell "8" [ref=e583]:
|
||||||
|
- generic [ref=e584]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e585]:
|
||||||
|
- generic [ref=e586]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e587]:
|
||||||
|
- generic [ref=e588]:
|
||||||
|
- button "详情" [ref=e589] [cursor=pointer]:
|
||||||
|
- generic [ref=e590]: 详情
|
||||||
|
- button "撤回" [ref=e591] [cursor=pointer]:
|
||||||
|
- generic [ref=e592]: 撤回
|
||||||
|
- button "删除" [ref=e593] [cursor=pointer]:
|
||||||
|
- generic [ref=e594]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e595]':
|
||||||
|
- cell "140" [ref=e596]:
|
||||||
|
- generic [ref=e597]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e598]':
|
||||||
|
- generic [ref=e600]:
|
||||||
|
- generic [ref=e602]: 卜
|
||||||
|
- generic [ref=e603]:
|
||||||
|
- generic [ref=e604]: 卜锦元
|
||||||
|
- generic [ref=e605]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e606]:
|
||||||
|
- generic [ref=e609]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e610]:
|
||||||
|
- generic [ref=e612]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e613]:
|
||||||
|
- generic [ref=e616]: 正常
|
||||||
|
- cell "8" [ref=e617]:
|
||||||
|
- generic [ref=e618]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e619]:
|
||||||
|
- generic [ref=e620]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e621]:
|
||||||
|
- generic [ref=e622]:
|
||||||
|
- button "详情" [ref=e623] [cursor=pointer]:
|
||||||
|
- generic [ref=e624]: 详情
|
||||||
|
- button "撤回" [ref=e625] [cursor=pointer]:
|
||||||
|
- generic [ref=e626]: 撤回
|
||||||
|
- button "删除" [ref=e627] [cursor=pointer]:
|
||||||
|
- generic [ref=e628]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e629]':
|
||||||
|
- cell "139" [ref=e630]:
|
||||||
|
- generic [ref=e631]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e632]':
|
||||||
|
- generic [ref=e634]:
|
||||||
|
- generic [ref=e636]: 卜
|
||||||
|
- generic [ref=e637]:
|
||||||
|
- generic [ref=e638]: 卜锦元
|
||||||
|
- generic [ref=e639]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e640]:
|
||||||
|
- generic [ref=e643]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e644]:
|
||||||
|
- generic [ref=e646]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e647]:
|
||||||
|
- generic [ref=e650]: 正常
|
||||||
|
- cell "8" [ref=e651]:
|
||||||
|
- generic [ref=e652]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e653]:
|
||||||
|
- generic [ref=e654]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e655]:
|
||||||
|
- generic [ref=e656]:
|
||||||
|
- button "详情" [ref=e657] [cursor=pointer]:
|
||||||
|
- generic [ref=e658]: 详情
|
||||||
|
- button "撤回" [ref=e659] [cursor=pointer]:
|
||||||
|
- generic [ref=e660]: 撤回
|
||||||
|
- button "删除" [ref=e661] [cursor=pointer]:
|
||||||
|
- generic [ref=e662]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e663]':
|
||||||
|
- cell "138" [ref=e664]:
|
||||||
|
- generic [ref=e665]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e666]':
|
||||||
|
- generic [ref=e668]:
|
||||||
|
- generic [ref=e670]: "?"
|
||||||
|
- generic [ref=e671]:
|
||||||
|
- generic [ref=e672]: "-"
|
||||||
|
- generic [ref=e673]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e674]:
|
||||||
|
- generic [ref=e677]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e678]:
|
||||||
|
- generic [ref=e680]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e681]:
|
||||||
|
- generic [ref=e684]: 正常
|
||||||
|
- cell "8" [ref=e685]:
|
||||||
|
- generic [ref=e686]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e687]:
|
||||||
|
- generic [ref=e688]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e689]:
|
||||||
|
- generic [ref=e690]:
|
||||||
|
- button "详情" [ref=e691] [cursor=pointer]:
|
||||||
|
- generic [ref=e692]: 详情
|
||||||
|
- button "撤回" [ref=e693] [cursor=pointer]:
|
||||||
|
- generic [ref=e694]: 撤回
|
||||||
|
- button "删除" [ref=e695] [cursor=pointer]:
|
||||||
|
- generic [ref=e696]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e697]':
|
||||||
|
- cell "137" [ref=e698]:
|
||||||
|
- generic [ref=e699]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e700]':
|
||||||
|
- generic [ref=e702]:
|
||||||
|
- generic [ref=e704]: 卜
|
||||||
|
- generic [ref=e705]:
|
||||||
|
- generic [ref=e706]: 卜锦元
|
||||||
|
- generic [ref=e707]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e708]:
|
||||||
|
- generic [ref=e711]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e712]:
|
||||||
|
- generic [ref=e714]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e715]:
|
||||||
|
- generic [ref=e718]: 正常
|
||||||
|
- cell "10" [ref=e719]:
|
||||||
|
- generic [ref=e720]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e721]:
|
||||||
|
- generic [ref=e722]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e723]:
|
||||||
|
- generic [ref=e724]:
|
||||||
|
- button "详情" [ref=e725] [cursor=pointer]:
|
||||||
|
- generic [ref=e726]: 详情
|
||||||
|
- button "撤回" [ref=e727] [cursor=pointer]:
|
||||||
|
- generic [ref=e728]: 撤回
|
||||||
|
- button "删除" [ref=e729] [cursor=pointer]:
|
||||||
|
- generic [ref=e730]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e731]':
|
||||||
|
- cell "136" [ref=e732]:
|
||||||
|
- generic [ref=e733]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e734]':
|
||||||
|
- generic [ref=e736]:
|
||||||
|
- generic [ref=e738]: 卜
|
||||||
|
- generic [ref=e739]:
|
||||||
|
- generic [ref=e740]: 卜锦元
|
||||||
|
- generic [ref=e741]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e742]:
|
||||||
|
- generic [ref=e745]: 文本
|
||||||
|
- cell "23213123" [ref=e746]:
|
||||||
|
- generic [ref=e748]: "23213123"
|
||||||
|
- cell "正常" [ref=e749]:
|
||||||
|
- generic [ref=e752]: 正常
|
||||||
|
- cell "10" [ref=e753]:
|
||||||
|
- generic [ref=e754]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e755]:
|
||||||
|
- generic [ref=e756]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e757]:
|
||||||
|
- generic [ref=e758]:
|
||||||
|
- button "详情" [ref=e759] [cursor=pointer]:
|
||||||
|
- generic [ref=e760]: 详情
|
||||||
|
- button "撤回" [ref=e761] [cursor=pointer]:
|
||||||
|
- generic [ref=e762]: 撤回
|
||||||
|
- button "删除" [ref=e763] [cursor=pointer]:
|
||||||
|
- generic [ref=e764]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e765]':
|
||||||
|
- cell "135" [ref=e766]:
|
||||||
|
- generic [ref=e767]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e768]':
|
||||||
|
- generic [ref=e770]:
|
||||||
|
- generic [ref=e772]: 周
|
||||||
|
- generic [ref=e773]:
|
||||||
|
- generic [ref=e774]: 周和智
|
||||||
|
- generic [ref=e775]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e776]:
|
||||||
|
- generic [ref=e779]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e780]:
|
||||||
|
- generic [ref=e782]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e783]:
|
||||||
|
- generic [ref=e786]: 正常
|
||||||
|
- cell "10" [ref=e787]:
|
||||||
|
- generic [ref=e788]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e789]:
|
||||||
|
- generic [ref=e790]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e791]:
|
||||||
|
- generic [ref=e792]:
|
||||||
|
- button "详情" [ref=e793] [cursor=pointer]:
|
||||||
|
- generic [ref=e794]: 详情
|
||||||
|
- button "撤回" [ref=e795] [cursor=pointer]:
|
||||||
|
- generic [ref=e796]: 撤回
|
||||||
|
- button "删除" [ref=e797] [cursor=pointer]:
|
||||||
|
- generic [ref=e798]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e799]':
|
||||||
|
- cell "134" [ref=e800]:
|
||||||
|
- generic [ref=e801]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e802]':
|
||||||
|
- generic [ref=e804]:
|
||||||
|
- generic [ref=e806]: 周
|
||||||
|
- generic [ref=e807]:
|
||||||
|
- generic [ref=e808]: 周和智
|
||||||
|
- generic [ref=e809]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e810]:
|
||||||
|
- generic [ref=e813]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e814]:
|
||||||
|
- generic [ref=e816]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e817]:
|
||||||
|
- generic [ref=e820]: 正常
|
||||||
|
- cell "10" [ref=e821]:
|
||||||
|
- generic [ref=e822]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e823]:
|
||||||
|
- generic [ref=e824]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e825]:
|
||||||
|
- generic [ref=e826]:
|
||||||
|
- button "详情" [ref=e827] [cursor=pointer]:
|
||||||
|
- generic [ref=e828]: 详情
|
||||||
|
- button "撤回" [ref=e829] [cursor=pointer]:
|
||||||
|
- generic [ref=e830]: 撤回
|
||||||
|
- button "删除" [ref=e831] [cursor=pointer]:
|
||||||
|
- generic [ref=e832]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e833]':
|
||||||
|
- cell "133" [ref=e834]:
|
||||||
|
- generic [ref=e835]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e836]':
|
||||||
|
- generic [ref=e838]:
|
||||||
|
- generic [ref=e840]: 周
|
||||||
|
- generic [ref=e841]:
|
||||||
|
- generic [ref=e842]: 周和智
|
||||||
|
- generic [ref=e843]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e844]:
|
||||||
|
- generic [ref=e847]: 文本
|
||||||
|
- cell "哈喽" [ref=e848]:
|
||||||
|
- generic [ref=e850]: 哈喽
|
||||||
|
- cell "正常" [ref=e851]:
|
||||||
|
- generic [ref=e854]: 正常
|
||||||
|
- cell "10" [ref=e855]:
|
||||||
|
- generic [ref=e856]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e857]:
|
||||||
|
- generic [ref=e858]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e859]:
|
||||||
|
- generic [ref=e860]:
|
||||||
|
- button "详情" [ref=e861] [cursor=pointer]:
|
||||||
|
- generic [ref=e862]: 详情
|
||||||
|
- button "撤回" [ref=e863] [cursor=pointer]:
|
||||||
|
- generic [ref=e864]: 撤回
|
||||||
|
- button "删除" [ref=e865] [cursor=pointer]:
|
||||||
|
- generic [ref=e866]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e867]':
|
||||||
|
- cell "132" [ref=e868]:
|
||||||
|
- generic [ref=e869]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e870]':
|
||||||
|
- generic [ref=e872]:
|
||||||
|
- generic [ref=e874]: 卜
|
||||||
|
- generic [ref=e875]:
|
||||||
|
- generic [ref=e876]: 卜锦元
|
||||||
|
- generic [ref=e877]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e878]:
|
||||||
|
- generic [ref=e881]: 文本
|
||||||
|
- cell "niahha a" [ref=e882]:
|
||||||
|
- generic [ref=e884]: niahha a
|
||||||
|
- cell "正常" [ref=e885]:
|
||||||
|
- generic [ref=e888]: 正常
|
||||||
|
- cell "10" [ref=e889]:
|
||||||
|
- generic [ref=e890]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e891]:
|
||||||
|
- generic [ref=e892]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e893]:
|
||||||
|
- generic [ref=e894]:
|
||||||
|
- button "详情" [ref=e895] [cursor=pointer]:
|
||||||
|
- generic [ref=e896]: 详情
|
||||||
|
- button "撤回" [ref=e897] [cursor=pointer]:
|
||||||
|
- generic [ref=e898]: 撤回
|
||||||
|
- button "删除" [ref=e899] [cursor=pointer]:
|
||||||
|
- generic [ref=e900]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e901]':
|
||||||
|
- cell "131" [ref=e902]:
|
||||||
|
- generic [ref=e903]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e904]':
|
||||||
|
- generic [ref=e906]:
|
||||||
|
- generic [ref=e908]: 新
|
||||||
|
- generic [ref=e909]:
|
||||||
|
- generic [ref=e910]: 新昵称
|
||||||
|
- generic [ref=e911]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e912]:
|
||||||
|
- generic [ref=e915]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e916]:
|
||||||
|
- generic [ref=e918]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e919]:
|
||||||
|
- generic [ref=e922]: 正常
|
||||||
|
- cell "8" [ref=e923]:
|
||||||
|
- generic [ref=e924]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e925]:
|
||||||
|
- generic [ref=e926]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e927]:
|
||||||
|
- generic [ref=e928]:
|
||||||
|
- button "详情" [ref=e929] [cursor=pointer]:
|
||||||
|
- generic [ref=e930]: 详情
|
||||||
|
- button "撤回" [ref=e931] [cursor=pointer]:
|
||||||
|
- generic [ref=e932]: 撤回
|
||||||
|
- button "删除" [ref=e933] [cursor=pointer]:
|
||||||
|
- generic [ref=e934]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e935]':
|
||||||
|
- cell "130" [ref=e936]:
|
||||||
|
- generic [ref=e937]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e938]':
|
||||||
|
- generic [ref=e940]:
|
||||||
|
- generic [ref=e942]: "?"
|
||||||
|
- generic [ref=e943]:
|
||||||
|
- generic [ref=e944]: "-"
|
||||||
|
- generic [ref=e945]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e946]:
|
||||||
|
- generic [ref=e949]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e950]:
|
||||||
|
- generic [ref=e952]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e953]:
|
||||||
|
- generic [ref=e956]: 正常
|
||||||
|
- cell "8" [ref=e957]:
|
||||||
|
- generic [ref=e958]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e959]:
|
||||||
|
- generic [ref=e960]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e961]:
|
||||||
|
- generic [ref=e962]:
|
||||||
|
- button "详情" [ref=e963] [cursor=pointer]:
|
||||||
|
- generic [ref=e964]: 详情
|
||||||
|
- button "撤回" [ref=e965] [cursor=pointer]:
|
||||||
|
- generic [ref=e966]: 撤回
|
||||||
|
- button "删除" [ref=e967] [cursor=pointer]:
|
||||||
|
- generic [ref=e968]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e969]':
|
||||||
|
- cell "129" [ref=e970]:
|
||||||
|
- generic [ref=e971]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e972]':
|
||||||
|
- generic [ref=e974]:
|
||||||
|
- generic [ref=e976]: 新
|
||||||
|
- generic [ref=e977]:
|
||||||
|
- generic [ref=e978]: 新昵称
|
||||||
|
- generic [ref=e979]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e980]:
|
||||||
|
- generic [ref=e983]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e984]:
|
||||||
|
- generic [ref=e986]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e987]:
|
||||||
|
- generic [ref=e990]: 正常
|
||||||
|
- cell "8" [ref=e991]:
|
||||||
|
- generic [ref=e992]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e993]:
|
||||||
|
- generic [ref=e994]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e995]:
|
||||||
|
- generic [ref=e996]:
|
||||||
|
- button "详情" [ref=e997] [cursor=pointer]:
|
||||||
|
- generic [ref=e998]: 详情
|
||||||
|
- button "撤回" [ref=e999] [cursor=pointer]:
|
||||||
|
- generic [ref=e1000]: 撤回
|
||||||
|
- button "删除" [ref=e1001] [cursor=pointer]:
|
||||||
|
- generic [ref=e1002]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e1003]':
|
||||||
|
- cell "128" [ref=e1004]:
|
||||||
|
- generic [ref=e1005]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1006]':
|
||||||
|
- generic [ref=e1008]:
|
||||||
|
- generic [ref=e1010]: 卜
|
||||||
|
- generic [ref=e1011]:
|
||||||
|
- generic [ref=e1012]: 卜锦元
|
||||||
|
- generic [ref=e1013]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1014]:
|
||||||
|
- generic [ref=e1017]: 文本
|
||||||
|
- cell "111112" [ref=e1018]:
|
||||||
|
- generic [ref=e1020]: "111112"
|
||||||
|
- cell "正常" [ref=e1021]:
|
||||||
|
- generic [ref=e1024]: 正常
|
||||||
|
- cell "8" [ref=e1025]:
|
||||||
|
- generic [ref=e1026]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e1027]:
|
||||||
|
- generic [ref=e1028]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1029]:
|
||||||
|
- generic [ref=e1030]:
|
||||||
|
- button "详情" [ref=e1031] [cursor=pointer]:
|
||||||
|
- generic [ref=e1032]: 详情
|
||||||
|
- button "撤回" [ref=e1033] [cursor=pointer]:
|
||||||
|
- generic [ref=e1034]: 撤回
|
||||||
|
- button "删除" [ref=e1035] [cursor=pointer]:
|
||||||
|
- generic [ref=e1036]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e1037]':
|
||||||
|
- cell "127" [ref=e1038]:
|
||||||
|
- generic [ref=e1039]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1040]':
|
||||||
|
- generic [ref=e1042]:
|
||||||
|
- generic [ref=e1044]: 卜
|
||||||
|
- generic [ref=e1045]:
|
||||||
|
- generic [ref=e1046]: 卜锦元
|
||||||
|
- generic [ref=e1047]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1048]:
|
||||||
|
- generic [ref=e1051]: 文本
|
||||||
|
- cell "再次测试" [ref=e1052]:
|
||||||
|
- generic [ref=e1054]: 再次测试
|
||||||
|
- cell "正常" [ref=e1055]:
|
||||||
|
- generic [ref=e1058]: 正常
|
||||||
|
- cell "8" [ref=e1059]:
|
||||||
|
- generic [ref=e1060]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e1061]:
|
||||||
|
- generic [ref=e1062]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1063]:
|
||||||
|
- generic [ref=e1064]:
|
||||||
|
- button "详情" [ref=e1065] [cursor=pointer]:
|
||||||
|
- generic [ref=e1066]: 详情
|
||||||
|
- button "撤回" [ref=e1067] [cursor=pointer]:
|
||||||
|
- generic [ref=e1068]: 撤回
|
||||||
|
- button "删除" [ref=e1069] [cursor=pointer]:
|
||||||
|
- generic [ref=e1070]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e1071]':
|
||||||
|
- cell "126" [ref=e1072]:
|
||||||
|
- generic [ref=e1073]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1074]':
|
||||||
|
- generic [ref=e1076]:
|
||||||
|
- generic [ref=e1078]: 卜
|
||||||
|
- generic [ref=e1079]:
|
||||||
|
- generic [ref=e1080]: 卜锦元
|
||||||
|
- generic [ref=e1081]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1082]:
|
||||||
|
- generic [ref=e1085]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e1086]:
|
||||||
|
- generic [ref=e1088]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e1089]:
|
||||||
|
- generic [ref=e1092]: 正常
|
||||||
|
- cell "8" [ref=e1093]:
|
||||||
|
- generic [ref=e1094]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e1095]:
|
||||||
|
- generic [ref=e1096]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e1097]:
|
||||||
|
- generic [ref=e1098]:
|
||||||
|
- button "详情" [ref=e1099] [cursor=pointer]:
|
||||||
|
- generic [ref=e1100]: 详情
|
||||||
|
- button "撤回" [ref=e1101] [cursor=pointer]:
|
||||||
|
- generic [ref=e1102]: 撤回
|
||||||
|
- button "删除" [ref=e1103] [cursor=pointer]:
|
||||||
|
- generic [ref=e1104]: 删除
|
||||||
|
- generic [ref=e391]:
|
||||||
|
- generic [ref=e392]: 共 141 条
|
||||||
|
- generic [ref=e395] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e397]
|
||||||
|
- generic [ref=e398]: 20条/页
|
||||||
|
- img [ref=e401]
|
||||||
|
- button "上一页" [disabled] [ref=e403]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e404]:
|
||||||
|
- listitem "第 1 页" [ref=e405]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e1105] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e1106] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e1107] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e1108] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e1109] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e1110] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e1111] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e406] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e407]:
|
||||||
|
- generic [ref=e408]: 前往
|
||||||
|
- spinbutton "页" [ref=e411]: "1"
|
||||||
|
- generic [ref=e412]: 页
|
||||||
|
- dialog "消息详情" [ref=e1113]:
|
||||||
|
- generic [active] [ref=e1114]:
|
||||||
|
- generic [ref=e1115]:
|
||||||
|
- heading "消息详情" [level=2] [ref=e1116]
|
||||||
|
- button "关闭此对话框" [ref=e1117] [cursor=pointer]:
|
||||||
|
- img [ref=e1119]
|
||||||
|
- generic [ref=e1122]:
|
||||||
|
- generic [ref=e1123]:
|
||||||
|
- generic [ref=e1125]: 卜
|
||||||
|
- generic [ref=e1126]:
|
||||||
|
- generic [ref=e1127]:
|
||||||
|
- generic [ref=e1128]: 卜锦元
|
||||||
|
- generic [ref=e1130]: 正常
|
||||||
|
- generic [ref=e1131]:
|
||||||
|
- generic [ref=e1132]: "ID: 145"
|
||||||
|
- separator [ref=e1133]
|
||||||
|
- generic [ref=e1134]: "发送者ID: 7"
|
||||||
|
- separator [ref=e1135]
|
||||||
|
- generic [ref=e1136]: "会话ID: 6"
|
||||||
|
- generic [ref=e1137]:
|
||||||
|
- generic [ref=e1138]:
|
||||||
|
- generic [ref=e1139]: 消息类型
|
||||||
|
- generic [ref=e1142]: 文本
|
||||||
|
- generic [ref=e1143]:
|
||||||
|
- generic [ref=e1144]: 发送时间
|
||||||
|
- generic [ref=e1145]: 2026-04-17 14:10:04
|
||||||
|
- generic [ref=e1146]:
|
||||||
|
- generic [ref=e1147]: 消息内容
|
||||||
|
- paragraph [ref=e1149]: "1111"
|
||||||
700
.playwright-mcp/page-2026-04-17T07-29-39-798Z.yml
Normal file
700
.playwright-mcp/page-2026-04-17T07-29-39-798Z.yml
Normal file
@@ -0,0 +1,700 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e284]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e286]
|
||||||
|
- generic [ref=e289]:
|
||||||
|
- generic [ref=e290]:
|
||||||
|
- generic [ref=e291]: 关键词
|
||||||
|
- generic [ref=e294]:
|
||||||
|
- img [ref=e297]
|
||||||
|
- textbox "关键词" [ref=e299]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e300]:
|
||||||
|
- generic [ref=e301]: 类型
|
||||||
|
- generic [ref=e304] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e306]
|
||||||
|
- generic [ref=e307]: 全部
|
||||||
|
- img [ref=e310]
|
||||||
|
- generic [ref=e312]:
|
||||||
|
- generic [ref=e313]: 状态
|
||||||
|
- generic [ref=e316] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e318]
|
||||||
|
- generic [ref=e319]: 全部
|
||||||
|
- img [ref=e322]
|
||||||
|
- generic [ref=e324]:
|
||||||
|
- generic [ref=e325]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e329]
|
||||||
|
- generic [ref=e330]:
|
||||||
|
- generic [ref=e331]: 时间范围
|
||||||
|
- generic [ref=e333]:
|
||||||
|
- img [ref=e335]
|
||||||
|
- combobox "时间范围" [ref=e337]
|
||||||
|
- generic [ref=e338]: 至
|
||||||
|
- combobox "结束日期" [ref=e339]
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- button "搜索" [ref=e342] [cursor=pointer]:
|
||||||
|
- generic [ref=e343]: 搜索
|
||||||
|
- button "重置" [ref=e344] [cursor=pointer]:
|
||||||
|
- generic [ref=e345]: 重置
|
||||||
|
- generic [ref=e347]:
|
||||||
|
- generic [ref=e349]:
|
||||||
|
- table [ref=e351]:
|
||||||
|
- rowgroup [ref=e361]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e362]:
|
||||||
|
- columnheader "ID" [ref=e363]:
|
||||||
|
- generic [ref=e364]: ID
|
||||||
|
- columnheader "发送者" [ref=e365]:
|
||||||
|
- generic [ref=e366]: 发送者
|
||||||
|
- columnheader "类型" [ref=e367]:
|
||||||
|
- generic [ref=e368]: 类型
|
||||||
|
- columnheader "内容" [ref=e369]:
|
||||||
|
- generic [ref=e370]: 内容
|
||||||
|
- columnheader "状态" [ref=e371]:
|
||||||
|
- generic [ref=e372]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e373]:
|
||||||
|
- generic [ref=e374]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e375]:
|
||||||
|
- generic [ref=e376]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e377]:
|
||||||
|
- generic [ref=e378]: 操作
|
||||||
|
- table [ref=e414]:
|
||||||
|
- rowgroup [ref=e424]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e425]':
|
||||||
|
- cell "145" [ref=e426]:
|
||||||
|
- generic [ref=e427]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e428]':
|
||||||
|
- generic [ref=e430]:
|
||||||
|
- generic [ref=e432]: 卜
|
||||||
|
- generic [ref=e433]:
|
||||||
|
- generic [ref=e434]: 卜锦元
|
||||||
|
- generic [ref=e435]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e436]:
|
||||||
|
- generic [ref=e439]: 文本
|
||||||
|
- cell "1111" [ref=e440]:
|
||||||
|
- generic [ref=e442]: "1111"
|
||||||
|
- cell "正常" [ref=e443]:
|
||||||
|
- generic [ref=e446]: 正常
|
||||||
|
- cell "6" [ref=e447]:
|
||||||
|
- generic [ref=e448]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e449]:
|
||||||
|
- generic [ref=e450]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e451]:
|
||||||
|
- generic [ref=e452]:
|
||||||
|
- button "详情" [ref=e453] [cursor=pointer]:
|
||||||
|
- generic [ref=e454]: 详情
|
||||||
|
- button "撤回" [ref=e455] [cursor=pointer]:
|
||||||
|
- generic [ref=e456]: 撤回
|
||||||
|
- button "删除" [ref=e457] [cursor=pointer]:
|
||||||
|
- generic [ref=e458]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e459]':
|
||||||
|
- cell "144" [ref=e460]:
|
||||||
|
- generic [ref=e461]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e462]':
|
||||||
|
- generic [ref=e464]:
|
||||||
|
- generic [ref=e466]: 卜
|
||||||
|
- generic [ref=e467]:
|
||||||
|
- generic [ref=e468]: 卜锦元
|
||||||
|
- generic [ref=e469]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e470]:
|
||||||
|
- generic [ref=e473]: 文本
|
||||||
|
- cell "1112122" [ref=e474]:
|
||||||
|
- generic [ref=e476]: "1112122"
|
||||||
|
- cell "正常" [ref=e477]:
|
||||||
|
- generic [ref=e480]: 正常
|
||||||
|
- cell "6" [ref=e481]:
|
||||||
|
- generic [ref=e482]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e483]:
|
||||||
|
- generic [ref=e484]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e485]:
|
||||||
|
- generic [ref=e486]:
|
||||||
|
- button "详情" [ref=e487] [cursor=pointer]:
|
||||||
|
- generic [ref=e488]: 详情
|
||||||
|
- button "撤回" [ref=e489] [cursor=pointer]:
|
||||||
|
- generic [ref=e490]: 撤回
|
||||||
|
- button "删除" [ref=e491] [cursor=pointer]:
|
||||||
|
- generic [ref=e492]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e493]':
|
||||||
|
- cell "143" [ref=e494]:
|
||||||
|
- generic [ref=e495]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e496]':
|
||||||
|
- generic [ref=e498]:
|
||||||
|
- generic [ref=e500]: 卜
|
||||||
|
- generic [ref=e501]:
|
||||||
|
- generic [ref=e502]: 卜锦元
|
||||||
|
- generic [ref=e503]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e504]:
|
||||||
|
- generic [ref=e507]: 文本
|
||||||
|
- cell "1111" [ref=e508]:
|
||||||
|
- generic [ref=e510]: "1111"
|
||||||
|
- cell "正常" [ref=e511]:
|
||||||
|
- generic [ref=e514]: 正常
|
||||||
|
- cell "6" [ref=e515]:
|
||||||
|
- generic [ref=e516]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e517]:
|
||||||
|
- generic [ref=e518]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e519]:
|
||||||
|
- generic [ref=e520]:
|
||||||
|
- button "详情" [ref=e521] [cursor=pointer]:
|
||||||
|
- generic [ref=e522]: 详情
|
||||||
|
- button "撤回" [ref=e523] [cursor=pointer]:
|
||||||
|
- generic [ref=e524]: 撤回
|
||||||
|
- button "删除" [ref=e525] [cursor=pointer]:
|
||||||
|
- generic [ref=e526]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e527]':
|
||||||
|
- cell "142" [ref=e528]:
|
||||||
|
- generic [ref=e529]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e530]':
|
||||||
|
- generic [ref=e532]:
|
||||||
|
- generic [ref=e534]: 段
|
||||||
|
- generic [ref=e535]:
|
||||||
|
- generic [ref=e536]: 段凌云
|
||||||
|
- generic [ref=e537]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e538]:
|
||||||
|
- generic [ref=e541]: 文本
|
||||||
|
- cell "111111111223" [ref=e542]:
|
||||||
|
- generic [ref=e544]: "111111111223"
|
||||||
|
- cell "正常" [ref=e545]:
|
||||||
|
- generic [ref=e548]: 正常
|
||||||
|
- cell "6" [ref=e549]:
|
||||||
|
- generic [ref=e550]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e551]:
|
||||||
|
- generic [ref=e552]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e553]:
|
||||||
|
- generic [ref=e554]:
|
||||||
|
- button "详情" [ref=e555] [cursor=pointer]:
|
||||||
|
- generic [ref=e556]: 详情
|
||||||
|
- button "撤回" [ref=e557] [cursor=pointer]:
|
||||||
|
- generic [ref=e558]: 撤回
|
||||||
|
- button "删除" [ref=e559] [cursor=pointer]:
|
||||||
|
- generic [ref=e560]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e561]':
|
||||||
|
- cell "141" [ref=e562]:
|
||||||
|
- generic [ref=e563]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e564]':
|
||||||
|
- generic [ref=e566]:
|
||||||
|
- generic [ref=e568]: 周
|
||||||
|
- generic [ref=e569]:
|
||||||
|
- generic [ref=e570]: 周和智
|
||||||
|
- generic [ref=e571]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e572]:
|
||||||
|
- generic [ref=e575]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e576]:
|
||||||
|
- generic [ref=e578]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e579]:
|
||||||
|
- generic [ref=e582]: 正常
|
||||||
|
- cell "8" [ref=e583]:
|
||||||
|
- generic [ref=e584]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e585]:
|
||||||
|
- generic [ref=e586]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e587]:
|
||||||
|
- generic [ref=e588]:
|
||||||
|
- button "详情" [ref=e589] [cursor=pointer]:
|
||||||
|
- generic [ref=e590]: 详情
|
||||||
|
- button "撤回" [ref=e591] [cursor=pointer]:
|
||||||
|
- generic [ref=e592]: 撤回
|
||||||
|
- button "删除" [ref=e593] [cursor=pointer]:
|
||||||
|
- generic [ref=e594]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e595]':
|
||||||
|
- cell "140" [ref=e596]:
|
||||||
|
- generic [ref=e597]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e598]':
|
||||||
|
- generic [ref=e600]:
|
||||||
|
- generic [ref=e602]: 卜
|
||||||
|
- generic [ref=e603]:
|
||||||
|
- generic [ref=e604]: 卜锦元
|
||||||
|
- generic [ref=e605]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e606]:
|
||||||
|
- generic [ref=e609]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e610]:
|
||||||
|
- generic [ref=e612]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e613]:
|
||||||
|
- generic [ref=e616]: 正常
|
||||||
|
- cell "8" [ref=e617]:
|
||||||
|
- generic [ref=e618]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e619]:
|
||||||
|
- generic [ref=e620]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e621]:
|
||||||
|
- generic [ref=e622]:
|
||||||
|
- button "详情" [ref=e623] [cursor=pointer]:
|
||||||
|
- generic [ref=e624]: 详情
|
||||||
|
- button "撤回" [ref=e625] [cursor=pointer]:
|
||||||
|
- generic [ref=e626]: 撤回
|
||||||
|
- button "删除" [ref=e627] [cursor=pointer]:
|
||||||
|
- generic [ref=e628]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e629]':
|
||||||
|
- cell "139" [ref=e630]:
|
||||||
|
- generic [ref=e631]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e632]':
|
||||||
|
- generic [ref=e634]:
|
||||||
|
- generic [ref=e636]: 卜
|
||||||
|
- generic [ref=e637]:
|
||||||
|
- generic [ref=e638]: 卜锦元
|
||||||
|
- generic [ref=e639]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e640]:
|
||||||
|
- generic [ref=e643]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e644]:
|
||||||
|
- generic [ref=e646]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e647]:
|
||||||
|
- generic [ref=e650]: 正常
|
||||||
|
- cell "8" [ref=e651]:
|
||||||
|
- generic [ref=e652]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e653]:
|
||||||
|
- generic [ref=e654]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e655]:
|
||||||
|
- generic [ref=e656]:
|
||||||
|
- button "详情" [ref=e657] [cursor=pointer]:
|
||||||
|
- generic [ref=e658]: 详情
|
||||||
|
- button "撤回" [ref=e659] [cursor=pointer]:
|
||||||
|
- generic [ref=e660]: 撤回
|
||||||
|
- button "删除" [ref=e661] [cursor=pointer]:
|
||||||
|
- generic [ref=e662]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e663]':
|
||||||
|
- cell "138" [ref=e664]:
|
||||||
|
- generic [ref=e665]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e666]':
|
||||||
|
- generic [ref=e668]:
|
||||||
|
- generic [ref=e670]: "?"
|
||||||
|
- generic [ref=e671]:
|
||||||
|
- generic [ref=e672]: "-"
|
||||||
|
- generic [ref=e673]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e674]:
|
||||||
|
- generic [ref=e677]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e678]:
|
||||||
|
- generic [ref=e680]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e681]:
|
||||||
|
- generic [ref=e684]: 正常
|
||||||
|
- cell "8" [ref=e685]:
|
||||||
|
- generic [ref=e686]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e687]:
|
||||||
|
- generic [ref=e688]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e689]:
|
||||||
|
- generic [ref=e690]:
|
||||||
|
- button "详情" [ref=e691] [cursor=pointer]:
|
||||||
|
- generic [ref=e692]: 详情
|
||||||
|
- button "撤回" [ref=e693] [cursor=pointer]:
|
||||||
|
- generic [ref=e694]: 撤回
|
||||||
|
- button "删除" [ref=e695] [cursor=pointer]:
|
||||||
|
- generic [ref=e696]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e697]':
|
||||||
|
- cell "137" [ref=e698]:
|
||||||
|
- generic [ref=e699]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e700]':
|
||||||
|
- generic [ref=e702]:
|
||||||
|
- generic [ref=e704]: 卜
|
||||||
|
- generic [ref=e705]:
|
||||||
|
- generic [ref=e706]: 卜锦元
|
||||||
|
- generic [ref=e707]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e708]:
|
||||||
|
- generic [ref=e711]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e712]:
|
||||||
|
- generic [ref=e714]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e715]:
|
||||||
|
- generic [ref=e718]: 正常
|
||||||
|
- cell "10" [ref=e719]:
|
||||||
|
- generic [ref=e720]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e721]:
|
||||||
|
- generic [ref=e722]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e723]:
|
||||||
|
- generic [ref=e724]:
|
||||||
|
- button "详情" [ref=e725] [cursor=pointer]:
|
||||||
|
- generic [ref=e726]: 详情
|
||||||
|
- button "撤回" [ref=e727] [cursor=pointer]:
|
||||||
|
- generic [ref=e728]: 撤回
|
||||||
|
- button "删除" [ref=e729] [cursor=pointer]:
|
||||||
|
- generic [ref=e730]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e731]':
|
||||||
|
- cell "136" [ref=e732]:
|
||||||
|
- generic [ref=e733]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e734]':
|
||||||
|
- generic [ref=e736]:
|
||||||
|
- generic [ref=e738]: 卜
|
||||||
|
- generic [ref=e739]:
|
||||||
|
- generic [ref=e740]: 卜锦元
|
||||||
|
- generic [ref=e741]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e742]:
|
||||||
|
- generic [ref=e745]: 文本
|
||||||
|
- cell "23213123" [ref=e746]:
|
||||||
|
- generic [ref=e748]: "23213123"
|
||||||
|
- cell "正常" [ref=e749]:
|
||||||
|
- generic [ref=e752]: 正常
|
||||||
|
- cell "10" [ref=e753]:
|
||||||
|
- generic [ref=e754]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e755]:
|
||||||
|
- generic [ref=e756]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e757]:
|
||||||
|
- generic [ref=e758]:
|
||||||
|
- button "详情" [ref=e759] [cursor=pointer]:
|
||||||
|
- generic [ref=e760]: 详情
|
||||||
|
- button "撤回" [ref=e761] [cursor=pointer]:
|
||||||
|
- generic [ref=e762]: 撤回
|
||||||
|
- button "删除" [ref=e763] [cursor=pointer]:
|
||||||
|
- generic [ref=e764]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e765]':
|
||||||
|
- cell "135" [ref=e766]:
|
||||||
|
- generic [ref=e767]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e768]':
|
||||||
|
- generic [ref=e770]:
|
||||||
|
- generic [ref=e772]: 周
|
||||||
|
- generic [ref=e773]:
|
||||||
|
- generic [ref=e774]: 周和智
|
||||||
|
- generic [ref=e775]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e776]:
|
||||||
|
- generic [ref=e779]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e780]:
|
||||||
|
- generic [ref=e782]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e783]:
|
||||||
|
- generic [ref=e786]: 正常
|
||||||
|
- cell "10" [ref=e787]:
|
||||||
|
- generic [ref=e788]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e789]:
|
||||||
|
- generic [ref=e790]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e791]:
|
||||||
|
- generic [ref=e792]:
|
||||||
|
- button "详情" [ref=e793] [cursor=pointer]:
|
||||||
|
- generic [ref=e794]: 详情
|
||||||
|
- button "撤回" [ref=e795] [cursor=pointer]:
|
||||||
|
- generic [ref=e796]: 撤回
|
||||||
|
- button "删除" [ref=e797] [cursor=pointer]:
|
||||||
|
- generic [ref=e798]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e799]':
|
||||||
|
- cell "134" [ref=e800]:
|
||||||
|
- generic [ref=e801]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e802]':
|
||||||
|
- generic [ref=e804]:
|
||||||
|
- generic [ref=e806]: 周
|
||||||
|
- generic [ref=e807]:
|
||||||
|
- generic [ref=e808]: 周和智
|
||||||
|
- generic [ref=e809]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e810]:
|
||||||
|
- generic [ref=e813]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e814]:
|
||||||
|
- generic [ref=e816]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e817]:
|
||||||
|
- generic [ref=e820]: 正常
|
||||||
|
- cell "10" [ref=e821]:
|
||||||
|
- generic [ref=e822]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e823]:
|
||||||
|
- generic [ref=e824]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e825]:
|
||||||
|
- generic [ref=e826]:
|
||||||
|
- button "详情" [ref=e827] [cursor=pointer]:
|
||||||
|
- generic [ref=e828]: 详情
|
||||||
|
- button "撤回" [ref=e829] [cursor=pointer]:
|
||||||
|
- generic [ref=e830]: 撤回
|
||||||
|
- button "删除" [ref=e831] [cursor=pointer]:
|
||||||
|
- generic [ref=e832]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e833]':
|
||||||
|
- cell "133" [ref=e834]:
|
||||||
|
- generic [ref=e835]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e836]':
|
||||||
|
- generic [ref=e838]:
|
||||||
|
- generic [ref=e840]: 周
|
||||||
|
- generic [ref=e841]:
|
||||||
|
- generic [ref=e842]: 周和智
|
||||||
|
- generic [ref=e843]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e844]:
|
||||||
|
- generic [ref=e847]: 文本
|
||||||
|
- cell "哈喽" [ref=e848]:
|
||||||
|
- generic [ref=e850]: 哈喽
|
||||||
|
- cell "正常" [ref=e851]:
|
||||||
|
- generic [ref=e854]: 正常
|
||||||
|
- cell "10" [ref=e855]:
|
||||||
|
- generic [ref=e856]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e857]:
|
||||||
|
- generic [ref=e858]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e859]:
|
||||||
|
- generic [ref=e860]:
|
||||||
|
- button "详情" [ref=e861] [cursor=pointer]:
|
||||||
|
- generic [ref=e862]: 详情
|
||||||
|
- button "撤回" [ref=e863] [cursor=pointer]:
|
||||||
|
- generic [ref=e864]: 撤回
|
||||||
|
- button "删除" [ref=e865] [cursor=pointer]:
|
||||||
|
- generic [ref=e866]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e867]':
|
||||||
|
- cell "132" [ref=e868]:
|
||||||
|
- generic [ref=e869]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e870]':
|
||||||
|
- generic [ref=e872]:
|
||||||
|
- generic [ref=e874]: 卜
|
||||||
|
- generic [ref=e875]:
|
||||||
|
- generic [ref=e876]: 卜锦元
|
||||||
|
- generic [ref=e877]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e878]:
|
||||||
|
- generic [ref=e881]: 文本
|
||||||
|
- cell "niahha a" [ref=e882]:
|
||||||
|
- generic [ref=e884]: niahha a
|
||||||
|
- cell "正常" [ref=e885]:
|
||||||
|
- generic [ref=e888]: 正常
|
||||||
|
- cell "10" [ref=e889]:
|
||||||
|
- generic [ref=e890]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e891]:
|
||||||
|
- generic [ref=e892]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e893]:
|
||||||
|
- generic [ref=e894]:
|
||||||
|
- button "详情" [ref=e895] [cursor=pointer]:
|
||||||
|
- generic [ref=e896]: 详情
|
||||||
|
- button "撤回" [ref=e897] [cursor=pointer]:
|
||||||
|
- generic [ref=e898]: 撤回
|
||||||
|
- button "删除" [ref=e899] [cursor=pointer]:
|
||||||
|
- generic [ref=e900]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e901]':
|
||||||
|
- cell "131" [ref=e902]:
|
||||||
|
- generic [ref=e903]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e904]':
|
||||||
|
- generic [ref=e906]:
|
||||||
|
- generic [ref=e908]: 新
|
||||||
|
- generic [ref=e909]:
|
||||||
|
- generic [ref=e910]: 新昵称
|
||||||
|
- generic [ref=e911]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e912]:
|
||||||
|
- generic [ref=e915]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e916]:
|
||||||
|
- generic [ref=e918]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e919]:
|
||||||
|
- generic [ref=e922]: 正常
|
||||||
|
- cell "8" [ref=e923]:
|
||||||
|
- generic [ref=e924]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e925]:
|
||||||
|
- generic [ref=e926]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e927]:
|
||||||
|
- generic [ref=e928]:
|
||||||
|
- button "详情" [ref=e929] [cursor=pointer]:
|
||||||
|
- generic [ref=e930]: 详情
|
||||||
|
- button "撤回" [ref=e931] [cursor=pointer]:
|
||||||
|
- generic [ref=e932]: 撤回
|
||||||
|
- button "删除" [ref=e933] [cursor=pointer]:
|
||||||
|
- generic [ref=e934]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e935]':
|
||||||
|
- cell "130" [ref=e936]:
|
||||||
|
- generic [ref=e937]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e938]':
|
||||||
|
- generic [ref=e940]:
|
||||||
|
- generic [ref=e942]: "?"
|
||||||
|
- generic [ref=e943]:
|
||||||
|
- generic [ref=e944]: "-"
|
||||||
|
- generic [ref=e945]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e946]:
|
||||||
|
- generic [ref=e949]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e950]:
|
||||||
|
- generic [ref=e952]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e953]:
|
||||||
|
- generic [ref=e956]: 正常
|
||||||
|
- cell "8" [ref=e957]:
|
||||||
|
- generic [ref=e958]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e959]:
|
||||||
|
- generic [ref=e960]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e961]:
|
||||||
|
- generic [ref=e962]:
|
||||||
|
- button "详情" [ref=e963] [cursor=pointer]:
|
||||||
|
- generic [ref=e964]: 详情
|
||||||
|
- button "撤回" [ref=e965] [cursor=pointer]:
|
||||||
|
- generic [ref=e966]: 撤回
|
||||||
|
- button "删除" [ref=e967] [cursor=pointer]:
|
||||||
|
- generic [ref=e968]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e969]':
|
||||||
|
- cell "129" [ref=e970]:
|
||||||
|
- generic [ref=e971]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e972]':
|
||||||
|
- generic [ref=e974]:
|
||||||
|
- generic [ref=e976]: 新
|
||||||
|
- generic [ref=e977]:
|
||||||
|
- generic [ref=e978]: 新昵称
|
||||||
|
- generic [ref=e979]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e980]:
|
||||||
|
- generic [ref=e983]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e984]:
|
||||||
|
- generic [ref=e986]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e987]:
|
||||||
|
- generic [ref=e990]: 正常
|
||||||
|
- cell "8" [ref=e991]:
|
||||||
|
- generic [ref=e992]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e993]:
|
||||||
|
- generic [ref=e994]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e995]:
|
||||||
|
- generic [ref=e996]:
|
||||||
|
- button "详情" [ref=e997] [cursor=pointer]:
|
||||||
|
- generic [ref=e998]: 详情
|
||||||
|
- button "撤回" [ref=e999] [cursor=pointer]:
|
||||||
|
- generic [ref=e1000]: 撤回
|
||||||
|
- button "删除" [ref=e1001] [cursor=pointer]:
|
||||||
|
- generic [ref=e1002]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e1003]':
|
||||||
|
- cell "128" [ref=e1004]:
|
||||||
|
- generic [ref=e1005]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1006]':
|
||||||
|
- generic [ref=e1008]:
|
||||||
|
- generic [ref=e1010]: 卜
|
||||||
|
- generic [ref=e1011]:
|
||||||
|
- generic [ref=e1012]: 卜锦元
|
||||||
|
- generic [ref=e1013]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1014]:
|
||||||
|
- generic [ref=e1017]: 文本
|
||||||
|
- cell "111112" [ref=e1018]:
|
||||||
|
- generic [ref=e1020]: "111112"
|
||||||
|
- cell "正常" [ref=e1021]:
|
||||||
|
- generic [ref=e1024]: 正常
|
||||||
|
- cell "8" [ref=e1025]:
|
||||||
|
- generic [ref=e1026]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e1027]:
|
||||||
|
- generic [ref=e1028]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1029]:
|
||||||
|
- generic [ref=e1030]:
|
||||||
|
- button "详情" [ref=e1031] [cursor=pointer]:
|
||||||
|
- generic [ref=e1032]: 详情
|
||||||
|
- button "撤回" [ref=e1033] [cursor=pointer]:
|
||||||
|
- generic [ref=e1034]: 撤回
|
||||||
|
- button "删除" [ref=e1035] [cursor=pointer]:
|
||||||
|
- generic [ref=e1036]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e1037]':
|
||||||
|
- cell "127" [ref=e1038]:
|
||||||
|
- generic [ref=e1039]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1040]':
|
||||||
|
- generic [ref=e1042]:
|
||||||
|
- generic [ref=e1044]: 卜
|
||||||
|
- generic [ref=e1045]:
|
||||||
|
- generic [ref=e1046]: 卜锦元
|
||||||
|
- generic [ref=e1047]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1048]:
|
||||||
|
- generic [ref=e1051]: 文本
|
||||||
|
- cell "再次测试" [ref=e1052]:
|
||||||
|
- generic [ref=e1054]: 再次测试
|
||||||
|
- cell "正常" [ref=e1055]:
|
||||||
|
- generic [ref=e1058]: 正常
|
||||||
|
- cell "8" [ref=e1059]:
|
||||||
|
- generic [ref=e1060]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e1061]:
|
||||||
|
- generic [ref=e1062]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1063]:
|
||||||
|
- generic [ref=e1064]:
|
||||||
|
- button "详情" [ref=e1065] [cursor=pointer]:
|
||||||
|
- generic [ref=e1066]: 详情
|
||||||
|
- button "撤回" [ref=e1067] [cursor=pointer]:
|
||||||
|
- generic [ref=e1068]: 撤回
|
||||||
|
- button "删除" [ref=e1069] [cursor=pointer]:
|
||||||
|
- generic [ref=e1070]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e1071]':
|
||||||
|
- cell "126" [ref=e1072]:
|
||||||
|
- generic [ref=e1073]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1074]':
|
||||||
|
- generic [ref=e1076]:
|
||||||
|
- generic [ref=e1078]: 卜
|
||||||
|
- generic [ref=e1079]:
|
||||||
|
- generic [ref=e1080]: 卜锦元
|
||||||
|
- generic [ref=e1081]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1082]:
|
||||||
|
- generic [ref=e1085]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e1086]:
|
||||||
|
- generic [ref=e1088]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e1089]:
|
||||||
|
- generic [ref=e1092]: 正常
|
||||||
|
- cell "8" [ref=e1093]:
|
||||||
|
- generic [ref=e1094]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e1095]:
|
||||||
|
- generic [ref=e1096]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e1097]:
|
||||||
|
- generic [ref=e1098]:
|
||||||
|
- button "详情" [ref=e1099] [cursor=pointer]:
|
||||||
|
- generic [ref=e1100]: 详情
|
||||||
|
- button "撤回" [ref=e1101] [cursor=pointer]:
|
||||||
|
- generic [ref=e1102]: 撤回
|
||||||
|
- button "删除" [ref=e1103] [cursor=pointer]:
|
||||||
|
- generic [ref=e1104]: 删除
|
||||||
|
- generic [ref=e391]:
|
||||||
|
- generic [ref=e392]: 共 141 条
|
||||||
|
- generic [ref=e395] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e397]
|
||||||
|
- generic [ref=e398]: 20条/页
|
||||||
|
- img [ref=e401]
|
||||||
|
- button "上一页" [disabled] [ref=e403]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e404]:
|
||||||
|
- listitem "第 1 页" [ref=e405]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e1105] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e1106] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e1107] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e1108] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e1109] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e1110] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e1111] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e406] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e407]:
|
||||||
|
- generic [ref=e408]: 前往
|
||||||
|
- spinbutton "页" [ref=e411]: "1"
|
||||||
|
- generic [ref=e412]: 页
|
||||||
|
- dialog "消息详情" [ref=e1113]:
|
||||||
|
- generic [active] [ref=e1114]:
|
||||||
|
- generic [ref=e1115]:
|
||||||
|
- heading "消息详情" [level=2] [ref=e1116]
|
||||||
|
- button "关闭此对话框" [ref=e1117] [cursor=pointer]:
|
||||||
|
- img [ref=e1119]
|
||||||
|
- generic [ref=e1122]:
|
||||||
|
- generic [ref=e1123]:
|
||||||
|
- generic [ref=e1125]: 卜
|
||||||
|
- generic [ref=e1126]:
|
||||||
|
- generic [ref=e1127]:
|
||||||
|
- generic [ref=e1128]: 卜锦元
|
||||||
|
- generic [ref=e1130]: 正常
|
||||||
|
- generic [ref=e1131]:
|
||||||
|
- generic [ref=e1132]: "ID: 145"
|
||||||
|
- separator [ref=e1133]
|
||||||
|
- generic [ref=e1134]: "发送者ID: 7"
|
||||||
|
- separator [ref=e1135]
|
||||||
|
- generic [ref=e1136]: "会话ID: 6"
|
||||||
|
- generic [ref=e1137]:
|
||||||
|
- generic [ref=e1138]:
|
||||||
|
- generic [ref=e1139]: 消息类型
|
||||||
|
- generic [ref=e1142]: 文本
|
||||||
|
- generic [ref=e1143]:
|
||||||
|
- generic [ref=e1144]: 发送时间
|
||||||
|
- generic [ref=e1145]: 2026-04-17 14:10:04
|
||||||
|
- generic [ref=e1146]:
|
||||||
|
- generic [ref=e1147]: 消息内容
|
||||||
|
- paragraph [ref=e1149]: "1111"
|
||||||
127
.playwright-mcp/page-2026-04-17T07-30-05-249Z.yml
Normal file
127
.playwright-mcp/page-2026-04-17T07-30-05-249Z.yml
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e1230]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1268]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- generic [ref=e1302]:
|
||||||
|
- table:
|
||||||
|
- rowgroup
|
||||||
|
- generic [ref=e1304]: 暂无数据
|
||||||
|
- img [ref=e1308]
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 0 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- button "下一页" [disabled] [ref=e1326]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-30-22-418Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-30-22-418Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [active] [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e1230]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e1344]':
|
||||||
|
- cell "145" [ref=e1345]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1347]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1355]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e1359]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e1366]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e1368]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e1378]':
|
||||||
|
- cell "144" [ref=e1379]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1381]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1389]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e1393]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e1400]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e1402]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e1412]':
|
||||||
|
- cell "143" [ref=e1413]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1415]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1423]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e1427]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e1434]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e1436]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e1446]':
|
||||||
|
- cell "142" [ref=e1447]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e1449]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e1457]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e1461]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e1468]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e1470]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e1480]':
|
||||||
|
- cell "141" [ref=e1481]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e1483]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1491]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e1495]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e1502]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e1504]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e1514]':
|
||||||
|
- cell "140" [ref=e1515]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1517]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1525]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e1529]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e1536]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e1538]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e1548]':
|
||||||
|
- cell "139" [ref=e1549]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1551]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1559]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e1563]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e1570]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e1572]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e1582]':
|
||||||
|
- cell "138" [ref=e1583]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e1597]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e1604]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e1606]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e1616]':
|
||||||
|
- cell "137" [ref=e1617]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1619]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1627]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e1631]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e1638]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e1640]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e1650]':
|
||||||
|
- cell "136" [ref=e1651]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1653]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1661]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e1665]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e1672]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e1674]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e1684]':
|
||||||
|
- cell "135" [ref=e1685]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e1687]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1695]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e1699]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e1706]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e1708]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e1718]':
|
||||||
|
- cell "134" [ref=e1719]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e1721]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1729]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e1733]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e1740]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e1742]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e1752]':
|
||||||
|
- cell "133" [ref=e1753]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e1755]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1763]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e1767]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e1774]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e1776]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e1786]':
|
||||||
|
- cell "132" [ref=e1787]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1789]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1797]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e1801]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e1808]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e1810]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e1820]':
|
||||||
|
- cell "131" [ref=e1821]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1823]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1831]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e1835]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e1842]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e1844]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e1854]':
|
||||||
|
- cell "130" [ref=e1855]:
|
||||||
|
- generic [ref=e1856]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1857]':
|
||||||
|
- generic [ref=e1859]:
|
||||||
|
- generic [ref=e1861]: "?"
|
||||||
|
- generic [ref=e1862]:
|
||||||
|
- generic [ref=e1863]: "-"
|
||||||
|
- generic [ref=e1864]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1865]:
|
||||||
|
- generic [ref=e1868]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e1869]:
|
||||||
|
- generic [ref=e1871]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e1872]:
|
||||||
|
- generic [ref=e1875]: 正常
|
||||||
|
- cell "8" [ref=e1876]:
|
||||||
|
- generic [ref=e1877]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e1878]:
|
||||||
|
- generic [ref=e1879]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1880]:
|
||||||
|
- generic [ref=e1881]:
|
||||||
|
- button "详情" [ref=e1882] [cursor=pointer]:
|
||||||
|
- generic [ref=e1883]: 详情
|
||||||
|
- button "撤回" [ref=e1884] [cursor=pointer]:
|
||||||
|
- generic [ref=e1885]: 撤回
|
||||||
|
- button "删除" [ref=e1886] [cursor=pointer]:
|
||||||
|
- generic [ref=e1887]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e1888]':
|
||||||
|
- cell "129" [ref=e1889]:
|
||||||
|
- generic [ref=e1890]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1891]':
|
||||||
|
- generic [ref=e1893]:
|
||||||
|
- generic [ref=e1895]: 新
|
||||||
|
- generic [ref=e1896]:
|
||||||
|
- generic [ref=e1897]: 新昵称
|
||||||
|
- generic [ref=e1898]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1899]:
|
||||||
|
- generic [ref=e1902]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e1903]:
|
||||||
|
- generic [ref=e1905]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e1906]:
|
||||||
|
- generic [ref=e1909]: 正常
|
||||||
|
- cell "8" [ref=e1910]:
|
||||||
|
- generic [ref=e1911]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e1912]:
|
||||||
|
- generic [ref=e1913]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e1914]:
|
||||||
|
- generic [ref=e1915]:
|
||||||
|
- button "详情" [ref=e1916] [cursor=pointer]:
|
||||||
|
- generic [ref=e1917]: 详情
|
||||||
|
- button "撤回" [ref=e1918] [cursor=pointer]:
|
||||||
|
- generic [ref=e1919]: 撤回
|
||||||
|
- button "删除" [ref=e1920] [cursor=pointer]:
|
||||||
|
- generic [ref=e1921]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e1922]':
|
||||||
|
- cell "128" [ref=e1923]:
|
||||||
|
- generic [ref=e1924]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1925]':
|
||||||
|
- generic [ref=e1927]:
|
||||||
|
- generic [ref=e1929]: 卜
|
||||||
|
- generic [ref=e1930]:
|
||||||
|
- generic [ref=e1931]: 卜锦元
|
||||||
|
- generic [ref=e1932]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1933]:
|
||||||
|
- generic [ref=e1936]: 文本
|
||||||
|
- cell "111112" [ref=e1937]:
|
||||||
|
- generic [ref=e1939]: "111112"
|
||||||
|
- cell "正常" [ref=e1940]:
|
||||||
|
- generic [ref=e1943]: 正常
|
||||||
|
- cell "8" [ref=e1944]:
|
||||||
|
- generic [ref=e1945]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e1946]:
|
||||||
|
- generic [ref=e1947]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1948]:
|
||||||
|
- generic [ref=e1949]:
|
||||||
|
- button "详情" [ref=e1950] [cursor=pointer]:
|
||||||
|
- generic [ref=e1951]: 详情
|
||||||
|
- button "撤回" [ref=e1952] [cursor=pointer]:
|
||||||
|
- generic [ref=e1953]: 撤回
|
||||||
|
- button "删除" [ref=e1954] [cursor=pointer]:
|
||||||
|
- generic [ref=e1955]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e1956]':
|
||||||
|
- cell "127" [ref=e1957]:
|
||||||
|
- generic [ref=e1958]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1959]':
|
||||||
|
- generic [ref=e1961]:
|
||||||
|
- generic [ref=e1963]: 卜
|
||||||
|
- generic [ref=e1964]:
|
||||||
|
- generic [ref=e1965]: 卜锦元
|
||||||
|
- generic [ref=e1966]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1967]:
|
||||||
|
- generic [ref=e1970]: 文本
|
||||||
|
- cell "再次测试" [ref=e1971]:
|
||||||
|
- generic [ref=e1973]: 再次测试
|
||||||
|
- cell "正常" [ref=e1974]:
|
||||||
|
- generic [ref=e1977]: 正常
|
||||||
|
- cell "8" [ref=e1978]:
|
||||||
|
- generic [ref=e1979]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e1980]:
|
||||||
|
- generic [ref=e1981]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1982]:
|
||||||
|
- generic [ref=e1983]:
|
||||||
|
- button "详情" [ref=e1984] [cursor=pointer]:
|
||||||
|
- generic [ref=e1985]: 详情
|
||||||
|
- button "撤回" [ref=e1986] [cursor=pointer]:
|
||||||
|
- generic [ref=e1987]: 撤回
|
||||||
|
- button "删除" [ref=e1988] [cursor=pointer]:
|
||||||
|
- generic [ref=e1989]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e1990]':
|
||||||
|
- cell "126" [ref=e1991]:
|
||||||
|
- generic [ref=e1992]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1993]':
|
||||||
|
- generic [ref=e1995]:
|
||||||
|
- generic [ref=e1997]: 卜
|
||||||
|
- generic [ref=e1998]:
|
||||||
|
- generic [ref=e1999]: 卜锦元
|
||||||
|
- generic [ref=e2000]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2001]:
|
||||||
|
- generic [ref=e2004]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2005]:
|
||||||
|
- generic [ref=e2007]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2008]:
|
||||||
|
- generic [ref=e2011]: 正常
|
||||||
|
- cell "8" [ref=e2012]:
|
||||||
|
- generic [ref=e2013]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2014]:
|
||||||
|
- generic [ref=e2015]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2016]:
|
||||||
|
- generic [ref=e2017]:
|
||||||
|
- button "详情" [ref=e2018] [cursor=pointer]:
|
||||||
|
- generic [ref=e2019]: 详情
|
||||||
|
- button "撤回" [ref=e2020] [cursor=pointer]:
|
||||||
|
- generic [ref=e2021]: 撤回
|
||||||
|
- button "删除" [ref=e2022] [cursor=pointer]:
|
||||||
|
- generic [ref=e2023]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2024] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2025] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2026] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2027] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2028] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2029] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2030] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
665
.playwright-mcp/page-2026-04-17T07-30-32-504Z.yml
Normal file
665
.playwright-mcp/page-2026-04-17T07-30-32-504Z.yml
Normal file
@@ -0,0 +1,665 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- text: 测试
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e1230]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [active] [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2036]':
|
||||||
|
- cell "131" [ref=e2037]:
|
||||||
|
- generic [ref=e1346]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2038]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1355]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2039]:
|
||||||
|
- generic [ref=e1361]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "8" [ref=e2040]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2041]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2042]':
|
||||||
|
- cell "127" [ref=e2043]:
|
||||||
|
- generic [ref=e1380]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1381]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1389]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "再次测试" [ref=e2044]:
|
||||||
|
- generic [ref=e1395]: 再次测试
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "8" [ref=e2045]:
|
||||||
|
- generic [ref=e1401]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2046]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e2047]':
|
||||||
|
- cell "124" [ref=e2048]:
|
||||||
|
- generic [ref=e1414]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2049]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2050]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2051]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e2052]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e2053]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e2054]':
|
||||||
|
- cell "123" [ref=e2055]:
|
||||||
|
- generic [ref=e1448]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2056]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2057]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2058]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e2059]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e2060]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e2061]':
|
||||||
|
- cell "122" [ref=e2062]:
|
||||||
|
- generic [ref=e1482]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2063]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: "?"
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: "-"
|
||||||
|
- generic [ref=e1490]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2064]:
|
||||||
|
- generic [ref=e1494]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2065]:
|
||||||
|
- generic [ref=e1497]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "7" [ref=e2066]:
|
||||||
|
- generic [ref=e1503]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e2067]:
|
||||||
|
- generic [ref=e1505]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e2068]':
|
||||||
|
- cell "121" [ref=e2069]:
|
||||||
|
- generic [ref=e1516]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2070]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: "?"
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: "-"
|
||||||
|
- generic [ref=e1524]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2071]:
|
||||||
|
- generic [ref=e1528]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2072]:
|
||||||
|
- generic [ref=e1531]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "7" [ref=e2073]:
|
||||||
|
- generic [ref=e1537]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e2074]:
|
||||||
|
- generic [ref=e1539]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e2075]':
|
||||||
|
- cell "119" [ref=e2076]:
|
||||||
|
- generic [ref=e1550]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2077]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: "?"
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: "-"
|
||||||
|
- generic [ref=e1558]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2078]:
|
||||||
|
- generic [ref=e1562]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e2079]:
|
||||||
|
- generic [ref=e1565]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "7" [ref=e2080]:
|
||||||
|
- generic [ref=e1571]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e2081]:
|
||||||
|
- generic [ref=e1573]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e2082]':
|
||||||
|
- cell "118" [ref=e2083]:
|
||||||
|
- generic [ref=e1584]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2084]:
|
||||||
|
- generic [ref=e1599]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "7" [ref=e2085]:
|
||||||
|
- generic [ref=e1605]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e2086]:
|
||||||
|
- generic [ref=e1607]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e2087]':
|
||||||
|
- cell "117" [ref=e2088]:
|
||||||
|
- generic [ref=e1618]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2089]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: "?"
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: "-"
|
||||||
|
- generic [ref=e1626]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2090]:
|
||||||
|
- generic [ref=e1630]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2091]:
|
||||||
|
- generic [ref=e1633]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "7" [ref=e2092]:
|
||||||
|
- generic [ref=e1639]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e2093]:
|
||||||
|
- generic [ref=e1641]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e2094]':
|
||||||
|
- cell "113" [ref=e2095]:
|
||||||
|
- generic [ref=e1652]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2096]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 新
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 新昵称
|
||||||
|
- generic [ref=e1660]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1661]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e2097]:
|
||||||
|
- generic [ref=e1667]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "8" [ref=e2098]:
|
||||||
|
- generic [ref=e1673]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e2099]:
|
||||||
|
- generic [ref=e1675]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e2100]':
|
||||||
|
- cell "112" [ref=e2101]:
|
||||||
|
- generic [ref=e1686]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2102]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 新
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 新昵称
|
||||||
|
- generic [ref=e1694]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1695]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e2103]:
|
||||||
|
- generic [ref=e1701]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "9" [ref=e2104]:
|
||||||
|
- generic [ref=e1707]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e2105]:
|
||||||
|
- generic [ref=e1709]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e2106]':
|
||||||
|
- cell "109" [ref=e2107]:
|
||||||
|
- generic [ref=e1720]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2108]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 新
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 新昵称
|
||||||
|
- generic [ref=e1728]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1729]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e2109]:
|
||||||
|
- generic [ref=e1735]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "8" [ref=e2110]:
|
||||||
|
- generic [ref=e1741]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e2111]:
|
||||||
|
- generic [ref=e1743]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e2112]':
|
||||||
|
- cell "107" [ref=e2113]:
|
||||||
|
- generic [ref=e1754]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2114]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 卜
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 卜锦元
|
||||||
|
- generic [ref=e1762]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1763]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "在测试" [ref=e2115]:
|
||||||
|
- generic [ref=e1769]: 在测试
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "9" [ref=e2116]:
|
||||||
|
- generic [ref=e1775]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e2117]:
|
||||||
|
- generic [ref=e1777]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e2118]':
|
||||||
|
- cell "106" [ref=e2119]:
|
||||||
|
- generic [ref=e1788]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1789]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1797]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e2120]:
|
||||||
|
- generic [ref=e1803]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "9" [ref=e2121]:
|
||||||
|
- generic [ref=e1809]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e2122]:
|
||||||
|
- generic [ref=e1811]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "105 新 新昵称 ID: 4 文本 已读回执测试消息 正常 4 2026-03-04 16:52:06 详情 撤回 删除" [ref=e2123]':
|
||||||
|
- cell "105" [ref=e2124]:
|
||||||
|
- generic [ref=e1822]: "105"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1823]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1831]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "已读回执测试消息" [ref=e2125]:
|
||||||
|
- generic [ref=e1837]: 已读回执测试消息
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "4" [ref=e2126]:
|
||||||
|
- generic [ref=e1843]: "4"
|
||||||
|
- cell "2026-03-04 16:52:06" [ref=e2127]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 16:52:06
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "104 新 新昵称 ID: 4 文本 测试已读回执功能 正常 9 2026-03-04 16:51:00 详情 撤回 删除" [ref=e2128]':
|
||||||
|
- cell "104" [ref=e2129]:
|
||||||
|
- generic [ref=e1856]: "104"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2130]':
|
||||||
|
- generic [ref=e1859]:
|
||||||
|
- generic [ref=e1861]: 新
|
||||||
|
- generic [ref=e1862]:
|
||||||
|
- generic [ref=e1863]: 新昵称
|
||||||
|
- generic [ref=e1864]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2131]:
|
||||||
|
- generic [ref=e1868]: 文本
|
||||||
|
- cell "测试已读回执功能" [ref=e2132]:
|
||||||
|
- generic [ref=e1871]: 测试已读回执功能
|
||||||
|
- cell "正常" [ref=e1872]:
|
||||||
|
- generic [ref=e1875]: 正常
|
||||||
|
- cell "9" [ref=e2133]:
|
||||||
|
- generic [ref=e1877]: "9"
|
||||||
|
- cell "2026-03-04 16:51:00" [ref=e2134]:
|
||||||
|
- generic [ref=e1879]: 2026-03-04 16:51:00
|
||||||
|
- cell "详情 撤回 删除" [ref=e1880]:
|
||||||
|
- generic [ref=e1881]:
|
||||||
|
- button "详情" [ref=e1882] [cursor=pointer]:
|
||||||
|
- generic [ref=e1883]: 详情
|
||||||
|
- button "撤回" [ref=e1884] [cursor=pointer]:
|
||||||
|
- generic [ref=e1885]: 撤回
|
||||||
|
- button "删除" [ref=e1886] [cursor=pointer]:
|
||||||
|
- generic [ref=e1887]: 删除
|
||||||
|
- 'row "103 新 新昵称 ID: 4 文本 测试单聊已读回执 正常 3 2026-03-04 16:50:01 详情 撤回 删除" [ref=e2135]':
|
||||||
|
- cell "103" [ref=e2136]:
|
||||||
|
- generic [ref=e1890]: "103"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1891]':
|
||||||
|
- generic [ref=e1893]:
|
||||||
|
- generic [ref=e1895]: 新
|
||||||
|
- generic [ref=e1896]:
|
||||||
|
- generic [ref=e1897]: 新昵称
|
||||||
|
- generic [ref=e1898]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1899]:
|
||||||
|
- generic [ref=e1902]: 文本
|
||||||
|
- cell "测试单聊已读回执" [ref=e2137]:
|
||||||
|
- generic [ref=e1905]: 测试单聊已读回执
|
||||||
|
- cell "正常" [ref=e1906]:
|
||||||
|
- generic [ref=e1909]: 正常
|
||||||
|
- cell "3" [ref=e2138]:
|
||||||
|
- generic [ref=e1911]: "3"
|
||||||
|
- cell "2026-03-04 16:50:01" [ref=e2139]:
|
||||||
|
- generic [ref=e1913]: 2026-03-04 16:50:01
|
||||||
|
- cell "详情 撤回 删除" [ref=e1914]:
|
||||||
|
- generic [ref=e1915]:
|
||||||
|
- button "详情" [ref=e1916] [cursor=pointer]:
|
||||||
|
- generic [ref=e1917]: 详情
|
||||||
|
- button "撤回" [ref=e1918] [cursor=pointer]:
|
||||||
|
- generic [ref=e1919]: 撤回
|
||||||
|
- button "删除" [ref=e1920] [cursor=pointer]:
|
||||||
|
- generic [ref=e1921]: 删除
|
||||||
|
- 'row "102 卜 卜锦元 ID: 7 文本 测试 正常 9 2026-03-04 16:43:19 详情 撤回 删除" [ref=e2140]':
|
||||||
|
- cell "102" [ref=e2141]:
|
||||||
|
- generic [ref=e1924]: "102"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1925]':
|
||||||
|
- generic [ref=e1927]:
|
||||||
|
- generic [ref=e1929]: 卜
|
||||||
|
- generic [ref=e1930]:
|
||||||
|
- generic [ref=e1931]: 卜锦元
|
||||||
|
- generic [ref=e1932]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1933]:
|
||||||
|
- generic [ref=e1936]: 文本
|
||||||
|
- cell "测试" [ref=e2142]:
|
||||||
|
- generic [ref=e1939]: 测试
|
||||||
|
- cell "正常" [ref=e1940]:
|
||||||
|
- generic [ref=e1943]: 正常
|
||||||
|
- cell "9" [ref=e2143]:
|
||||||
|
- generic [ref=e1945]: "9"
|
||||||
|
- cell "2026-03-04 16:43:19" [ref=e2144]:
|
||||||
|
- generic [ref=e1947]: 2026-03-04 16:43:19
|
||||||
|
- cell "详情 撤回 删除" [ref=e1948]:
|
||||||
|
- generic [ref=e1949]:
|
||||||
|
- button "详情" [ref=e1950] [cursor=pointer]:
|
||||||
|
- generic [ref=e1951]: 详情
|
||||||
|
- button "撤回" [ref=e1952] [cursor=pointer]:
|
||||||
|
- generic [ref=e1953]: 撤回
|
||||||
|
- button "删除" [ref=e1954] [cursor=pointer]:
|
||||||
|
- generic [ref=e1955]: 删除
|
||||||
|
- 'row "101 卜 卜锦元 ID: 7 文本 测试消费 正常 8 2026-03-04 16:43:01 详情 撤回 删除" [ref=e2145]':
|
||||||
|
- cell "101" [ref=e2146]:
|
||||||
|
- generic [ref=e1958]: "101"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1959]':
|
||||||
|
- generic [ref=e1961]:
|
||||||
|
- generic [ref=e1963]: 卜
|
||||||
|
- generic [ref=e1964]:
|
||||||
|
- generic [ref=e1965]: 卜锦元
|
||||||
|
- generic [ref=e1966]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1967]:
|
||||||
|
- generic [ref=e1970]: 文本
|
||||||
|
- cell "测试消费" [ref=e2147]:
|
||||||
|
- generic [ref=e1973]: 测试消费
|
||||||
|
- cell "正常" [ref=e1974]:
|
||||||
|
- generic [ref=e1977]: 正常
|
||||||
|
- cell "8" [ref=e1978]:
|
||||||
|
- generic [ref=e1979]: "8"
|
||||||
|
- cell "2026-03-04 16:43:01" [ref=e2148]:
|
||||||
|
- generic [ref=e1981]: 2026-03-04 16:43:01
|
||||||
|
- cell "详情 撤回 删除" [ref=e1982]:
|
||||||
|
- generic [ref=e1983]:
|
||||||
|
- button "详情" [ref=e1984] [cursor=pointer]:
|
||||||
|
- generic [ref=e1985]: 详情
|
||||||
|
- button "撤回" [ref=e1986] [cursor=pointer]:
|
||||||
|
- generic [ref=e1987]: 撤回
|
||||||
|
- button "删除" [ref=e1988] [cursor=pointer]:
|
||||||
|
- generic [ref=e1989]: 删除
|
||||||
|
- 'row "98 卜 卜锦元 ID: 7 文本 测试111 正常 8 2026-03-04 16:39:57 详情 撤回 删除" [ref=e2149]':
|
||||||
|
- cell "98" [ref=e2150]:
|
||||||
|
- generic [ref=e1992]: "98"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1993]':
|
||||||
|
- generic [ref=e1995]:
|
||||||
|
- generic [ref=e1997]: 卜
|
||||||
|
- generic [ref=e1998]:
|
||||||
|
- generic [ref=e1999]: 卜锦元
|
||||||
|
- generic [ref=e2000]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2001]:
|
||||||
|
- generic [ref=e2004]: 文本
|
||||||
|
- cell "测试111" [ref=e2151]:
|
||||||
|
- generic [ref=e2007]: 测试111
|
||||||
|
- cell "正常" [ref=e2008]:
|
||||||
|
- generic [ref=e2011]: 正常
|
||||||
|
- cell "8" [ref=e2012]:
|
||||||
|
- generic [ref=e2013]: "8"
|
||||||
|
- cell "2026-03-04 16:39:57" [ref=e2152]:
|
||||||
|
- generic [ref=e2015]: 2026-03-04 16:39:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e2016]:
|
||||||
|
- generic [ref=e2017]:
|
||||||
|
- button "详情" [ref=e2018] [cursor=pointer]:
|
||||||
|
- generic [ref=e2019]: 详情
|
||||||
|
- button "撤回" [ref=e2020] [cursor=pointer]:
|
||||||
|
- generic [ref=e2021]: 撤回
|
||||||
|
- button "删除" [ref=e2022] [cursor=pointer]:
|
||||||
|
- generic [ref=e2023]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 31 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2153] [cursor=pointer]: "2"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-30-43-199Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-30-43-199Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e1230]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [active] [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2154]':
|
||||||
|
- cell "145" [ref=e2155]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2156]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1355]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2157]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2158]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2159]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2160]':
|
||||||
|
- cell "144" [ref=e2161]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1381]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1389]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2162]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2163]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2164]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2165]':
|
||||||
|
- cell "143" [ref=e2166]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2167]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2168]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2169]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2170]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2171]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2172]':
|
||||||
|
- cell "142" [ref=e2173]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2174]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2175]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2176]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2177]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2178]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2179]':
|
||||||
|
- cell "141" [ref=e2180]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2181]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2182]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2183]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e2184]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2185]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2186]':
|
||||||
|
- cell "140" [ref=e2187]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2188]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2189]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2190]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e2191]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2192]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2193]':
|
||||||
|
- cell "139" [ref=e2194]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2195]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2196]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2197]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2199]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2200]':
|
||||||
|
- cell "138" [ref=e2201]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2202]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e2203]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2204]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2205]':
|
||||||
|
- cell "137" [ref=e2206]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2207]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2208]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2209]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e2210]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2211]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2212]':
|
||||||
|
- cell "136" [ref=e2213]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2214]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1661]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e2215]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e2216]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2217]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2218]':
|
||||||
|
- cell "135" [ref=e2219]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2220]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1695]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2221]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e2222]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2223]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2224]':
|
||||||
|
- cell "134" [ref=e2225]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2226]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1729]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2227]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e2228]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2229]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2230]':
|
||||||
|
- cell "133" [ref=e2231]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2232]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1763]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e2233]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e2234]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2235]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e2236]':
|
||||||
|
- cell "132" [ref=e2237]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1789]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1797]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e2238]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e2239]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e2240]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2241]':
|
||||||
|
- cell "131" [ref=e2242]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1823]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1831]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2243]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e2244]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2245]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2246]':
|
||||||
|
- cell "130" [ref=e2247]:
|
||||||
|
- generic [ref=e1856]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2248]':
|
||||||
|
- generic [ref=e1859]:
|
||||||
|
- generic [ref=e1861]: "?"
|
||||||
|
- generic [ref=e1862]:
|
||||||
|
- generic [ref=e1863]: "-"
|
||||||
|
- generic [ref=e1864]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2249]:
|
||||||
|
- generic [ref=e1868]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2250]:
|
||||||
|
- generic [ref=e1871]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e1872]:
|
||||||
|
- generic [ref=e1875]: 正常
|
||||||
|
- cell "8" [ref=e2251]:
|
||||||
|
- generic [ref=e1877]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2252]:
|
||||||
|
- generic [ref=e1879]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1880]:
|
||||||
|
- generic [ref=e1881]:
|
||||||
|
- button "详情" [ref=e1882] [cursor=pointer]:
|
||||||
|
- generic [ref=e1883]: 详情
|
||||||
|
- button "撤回" [ref=e1884] [cursor=pointer]:
|
||||||
|
- generic [ref=e1885]: 撤回
|
||||||
|
- button "删除" [ref=e1886] [cursor=pointer]:
|
||||||
|
- generic [ref=e1887]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e2253]':
|
||||||
|
- cell "129" [ref=e2254]:
|
||||||
|
- generic [ref=e1890]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1891]':
|
||||||
|
- generic [ref=e1893]:
|
||||||
|
- generic [ref=e1895]: 新
|
||||||
|
- generic [ref=e1896]:
|
||||||
|
- generic [ref=e1897]: 新昵称
|
||||||
|
- generic [ref=e1898]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1899]:
|
||||||
|
- generic [ref=e1902]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e2255]:
|
||||||
|
- generic [ref=e1905]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e1906]:
|
||||||
|
- generic [ref=e1909]: 正常
|
||||||
|
- cell "8" [ref=e2256]:
|
||||||
|
- generic [ref=e1911]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e2257]:
|
||||||
|
- generic [ref=e1913]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e1914]:
|
||||||
|
- generic [ref=e1915]:
|
||||||
|
- button "详情" [ref=e1916] [cursor=pointer]:
|
||||||
|
- generic [ref=e1917]: 详情
|
||||||
|
- button "撤回" [ref=e1918] [cursor=pointer]:
|
||||||
|
- generic [ref=e1919]: 撤回
|
||||||
|
- button "删除" [ref=e1920] [cursor=pointer]:
|
||||||
|
- generic [ref=e1921]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e2258]':
|
||||||
|
- cell "128" [ref=e2259]:
|
||||||
|
- generic [ref=e1924]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1925]':
|
||||||
|
- generic [ref=e1927]:
|
||||||
|
- generic [ref=e1929]: 卜
|
||||||
|
- generic [ref=e1930]:
|
||||||
|
- generic [ref=e1931]: 卜锦元
|
||||||
|
- generic [ref=e1932]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1933]:
|
||||||
|
- generic [ref=e1936]: 文本
|
||||||
|
- cell "111112" [ref=e2260]:
|
||||||
|
- generic [ref=e1939]: "111112"
|
||||||
|
- cell "正常" [ref=e1940]:
|
||||||
|
- generic [ref=e1943]: 正常
|
||||||
|
- cell "8" [ref=e2261]:
|
||||||
|
- generic [ref=e1945]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e2262]:
|
||||||
|
- generic [ref=e1947]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1948]:
|
||||||
|
- generic [ref=e1949]:
|
||||||
|
- button "详情" [ref=e1950] [cursor=pointer]:
|
||||||
|
- generic [ref=e1951]: 详情
|
||||||
|
- button "撤回" [ref=e1952] [cursor=pointer]:
|
||||||
|
- generic [ref=e1953]: 撤回
|
||||||
|
- button "删除" [ref=e1954] [cursor=pointer]:
|
||||||
|
- generic [ref=e1955]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2263]':
|
||||||
|
- cell "127" [ref=e2264]:
|
||||||
|
- generic [ref=e1958]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1959]':
|
||||||
|
- generic [ref=e1961]:
|
||||||
|
- generic [ref=e1963]: 卜
|
||||||
|
- generic [ref=e1964]:
|
||||||
|
- generic [ref=e1965]: 卜锦元
|
||||||
|
- generic [ref=e1966]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1967]:
|
||||||
|
- generic [ref=e1970]: 文本
|
||||||
|
- cell "再次测试" [ref=e2265]:
|
||||||
|
- generic [ref=e1973]: 再次测试
|
||||||
|
- cell "正常" [ref=e1974]:
|
||||||
|
- generic [ref=e1977]: 正常
|
||||||
|
- cell "8" [ref=e1978]:
|
||||||
|
- generic [ref=e1979]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2266]:
|
||||||
|
- generic [ref=e1981]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1982]:
|
||||||
|
- generic [ref=e1983]:
|
||||||
|
- button "详情" [ref=e1984] [cursor=pointer]:
|
||||||
|
- generic [ref=e1985]: 详情
|
||||||
|
- button "撤回" [ref=e1986] [cursor=pointer]:
|
||||||
|
- generic [ref=e1987]: 撤回
|
||||||
|
- button "删除" [ref=e1988] [cursor=pointer]:
|
||||||
|
- generic [ref=e1989]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e2267]':
|
||||||
|
- cell "126" [ref=e2268]:
|
||||||
|
- generic [ref=e1992]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1993]':
|
||||||
|
- generic [ref=e1995]:
|
||||||
|
- generic [ref=e1997]: 卜
|
||||||
|
- generic [ref=e1998]:
|
||||||
|
- generic [ref=e1999]: 卜锦元
|
||||||
|
- generic [ref=e2000]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2001]:
|
||||||
|
- generic [ref=e2004]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2269]:
|
||||||
|
- generic [ref=e2007]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2008]:
|
||||||
|
- generic [ref=e2011]: 正常
|
||||||
|
- cell "8" [ref=e2012]:
|
||||||
|
- generic [ref=e2013]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2270]:
|
||||||
|
- generic [ref=e2015]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2016]:
|
||||||
|
- generic [ref=e2017]:
|
||||||
|
- button "详情" [ref=e2018] [cursor=pointer]:
|
||||||
|
- generic [ref=e2019]: 详情
|
||||||
|
- button "撤回" [ref=e2020] [cursor=pointer]:
|
||||||
|
- generic [ref=e2021]: 撤回
|
||||||
|
- button "删除" [ref=e2022] [cursor=pointer]:
|
||||||
|
- generic [ref=e2023]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2271] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2272] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2273] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2274] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2275] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2276] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2277] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
679
.playwright-mcp/page-2026-04-17T07-30-58-043Z.yml
Normal file
679
.playwright-mcp/page-2026-04-17T07-30-58-043Z.yml
Normal file
@@ -0,0 +1,679 @@
|
|||||||
|
- generic [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [expanded] [active] [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e1230]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2154]':
|
||||||
|
- cell "145" [ref=e2155]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2156]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1355]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2157]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2158]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2159]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2160]':
|
||||||
|
- cell "144" [ref=e2161]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1381]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1389]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2162]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2163]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2164]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2165]':
|
||||||
|
- cell "143" [ref=e2166]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2167]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2168]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2169]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2170]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2171]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2172]':
|
||||||
|
- cell "142" [ref=e2173]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2174]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2175]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2176]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2177]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2178]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2179]':
|
||||||
|
- cell "141" [ref=e2180]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2181]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2182]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2183]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e2184]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2185]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2186]':
|
||||||
|
- cell "140" [ref=e2187]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2188]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2189]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2190]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e2191]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2192]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2193]':
|
||||||
|
- cell "139" [ref=e2194]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2195]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2196]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2197]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2199]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2200]':
|
||||||
|
- cell "138" [ref=e2201]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2202]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e2203]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2204]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2205]':
|
||||||
|
- cell "137" [ref=e2206]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2207]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2208]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2209]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e2210]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2211]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2212]':
|
||||||
|
- cell "136" [ref=e2213]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2214]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1661]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e2215]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e2216]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2217]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2218]':
|
||||||
|
- cell "135" [ref=e2219]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2220]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1695]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2221]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e2222]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2223]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2224]':
|
||||||
|
- cell "134" [ref=e2225]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2226]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1729]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2227]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e2228]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2229]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2230]':
|
||||||
|
- cell "133" [ref=e2231]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2232]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1763]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e2233]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e2234]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2235]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e2236]':
|
||||||
|
- cell "132" [ref=e2237]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1789]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1797]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e2238]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e2239]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e2240]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2241]':
|
||||||
|
- cell "131" [ref=e2242]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1823]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1831]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2243]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e2244]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2245]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2246]':
|
||||||
|
- cell "130" [ref=e2247]:
|
||||||
|
- generic [ref=e1856]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2248]':
|
||||||
|
- generic [ref=e1859]:
|
||||||
|
- generic [ref=e1861]: "?"
|
||||||
|
- generic [ref=e1862]:
|
||||||
|
- generic [ref=e1863]: "-"
|
||||||
|
- generic [ref=e1864]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2249]:
|
||||||
|
- generic [ref=e1868]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2250]:
|
||||||
|
- generic [ref=e1871]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e1872]:
|
||||||
|
- generic [ref=e1875]: 正常
|
||||||
|
- cell "8" [ref=e2251]:
|
||||||
|
- generic [ref=e1877]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2252]:
|
||||||
|
- generic [ref=e1879]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1880]:
|
||||||
|
- generic [ref=e1881]:
|
||||||
|
- button "详情" [ref=e1882] [cursor=pointer]:
|
||||||
|
- generic [ref=e1883]: 详情
|
||||||
|
- button "撤回" [ref=e1884] [cursor=pointer]:
|
||||||
|
- generic [ref=e1885]: 撤回
|
||||||
|
- button "删除" [ref=e1886] [cursor=pointer]:
|
||||||
|
- generic [ref=e1887]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e2253]':
|
||||||
|
- cell "129" [ref=e2254]:
|
||||||
|
- generic [ref=e1890]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1891]':
|
||||||
|
- generic [ref=e1893]:
|
||||||
|
- generic [ref=e1895]: 新
|
||||||
|
- generic [ref=e1896]:
|
||||||
|
- generic [ref=e1897]: 新昵称
|
||||||
|
- generic [ref=e1898]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1899]:
|
||||||
|
- generic [ref=e1902]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e2255]:
|
||||||
|
- generic [ref=e1905]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e1906]:
|
||||||
|
- generic [ref=e1909]: 正常
|
||||||
|
- cell "8" [ref=e2256]:
|
||||||
|
- generic [ref=e1911]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e2257]:
|
||||||
|
- generic [ref=e1913]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e1914]:
|
||||||
|
- generic [ref=e1915]:
|
||||||
|
- button "详情" [ref=e1916] [cursor=pointer]:
|
||||||
|
- generic [ref=e1917]: 详情
|
||||||
|
- button "撤回" [ref=e1918] [cursor=pointer]:
|
||||||
|
- generic [ref=e1919]: 撤回
|
||||||
|
- button "删除" [ref=e1920] [cursor=pointer]:
|
||||||
|
- generic [ref=e1921]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e2258]':
|
||||||
|
- cell "128" [ref=e2259]:
|
||||||
|
- generic [ref=e1924]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1925]':
|
||||||
|
- generic [ref=e1927]:
|
||||||
|
- generic [ref=e1929]: 卜
|
||||||
|
- generic [ref=e1930]:
|
||||||
|
- generic [ref=e1931]: 卜锦元
|
||||||
|
- generic [ref=e1932]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1933]:
|
||||||
|
- generic [ref=e1936]: 文本
|
||||||
|
- cell "111112" [ref=e2260]:
|
||||||
|
- generic [ref=e1939]: "111112"
|
||||||
|
- cell "正常" [ref=e1940]:
|
||||||
|
- generic [ref=e1943]: 正常
|
||||||
|
- cell "8" [ref=e2261]:
|
||||||
|
- generic [ref=e1945]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e2262]:
|
||||||
|
- generic [ref=e1947]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1948]:
|
||||||
|
- generic [ref=e1949]:
|
||||||
|
- button "详情" [ref=e1950] [cursor=pointer]:
|
||||||
|
- generic [ref=e1951]: 详情
|
||||||
|
- button "撤回" [ref=e1952] [cursor=pointer]:
|
||||||
|
- generic [ref=e1953]: 撤回
|
||||||
|
- button "删除" [ref=e1954] [cursor=pointer]:
|
||||||
|
- generic [ref=e1955]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2263]':
|
||||||
|
- cell "127" [ref=e2264]:
|
||||||
|
- generic [ref=e1958]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1959]':
|
||||||
|
- generic [ref=e1961]:
|
||||||
|
- generic [ref=e1963]: 卜
|
||||||
|
- generic [ref=e1964]:
|
||||||
|
- generic [ref=e1965]: 卜锦元
|
||||||
|
- generic [ref=e1966]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1967]:
|
||||||
|
- generic [ref=e1970]: 文本
|
||||||
|
- cell "再次测试" [ref=e2265]:
|
||||||
|
- generic [ref=e1973]: 再次测试
|
||||||
|
- cell "正常" [ref=e1974]:
|
||||||
|
- generic [ref=e1977]: 正常
|
||||||
|
- cell "8" [ref=e1978]:
|
||||||
|
- generic [ref=e1979]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2266]:
|
||||||
|
- generic [ref=e1981]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1982]:
|
||||||
|
- generic [ref=e1983]:
|
||||||
|
- button "详情" [ref=e1984] [cursor=pointer]:
|
||||||
|
- generic [ref=e1985]: 详情
|
||||||
|
- button "撤回" [ref=e1986] [cursor=pointer]:
|
||||||
|
- generic [ref=e1987]: 撤回
|
||||||
|
- button "删除" [ref=e1988] [cursor=pointer]:
|
||||||
|
- generic [ref=e1989]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e2267]':
|
||||||
|
- cell "126" [ref=e2268]:
|
||||||
|
- generic [ref=e1992]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1993]':
|
||||||
|
- generic [ref=e1995]:
|
||||||
|
- generic [ref=e1997]: 卜
|
||||||
|
- generic [ref=e1998]:
|
||||||
|
- generic [ref=e1999]: 卜锦元
|
||||||
|
- generic [ref=e2000]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2001]:
|
||||||
|
- generic [ref=e2004]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2269]:
|
||||||
|
- generic [ref=e2007]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2008]:
|
||||||
|
- generic [ref=e2011]: 正常
|
||||||
|
- cell "8" [ref=e2012]:
|
||||||
|
- generic [ref=e2013]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2270]:
|
||||||
|
- generic [ref=e2015]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2016]:
|
||||||
|
- generic [ref=e2017]:
|
||||||
|
- button "详情" [ref=e2018] [cursor=pointer]:
|
||||||
|
- generic [ref=e2019]: 详情
|
||||||
|
- button "撤回" [ref=e2020] [cursor=pointer]:
|
||||||
|
- generic [ref=e2021]: 撤回
|
||||||
|
- button "删除" [ref=e2022] [cursor=pointer]:
|
||||||
|
- generic [ref=e2023]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2271] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2272] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2273] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2274] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2275] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2276] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2277] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
|
- tooltip [ref=e2278]:
|
||||||
|
- listbox [ref=e2282]:
|
||||||
|
- option "文本" [ref=e2283] [cursor=pointer]
|
||||||
|
- option "图片" [ref=e2284] [cursor=pointer]
|
||||||
|
- option "语音" [ref=e2285] [cursor=pointer]
|
||||||
|
- option "文件" [ref=e2286] [cursor=pointer]
|
||||||
|
- option "系统" [ref=e2287] [cursor=pointer]
|
||||||
671
.playwright-mcp/page-2026-04-17T07-31-10-998Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-31-10-998Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [active] [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 系统
|
||||||
|
- img [ref=e2290]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2154]':
|
||||||
|
- cell "145" [ref=e2155]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2156]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1355]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2157]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2158]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2159]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2160]':
|
||||||
|
- cell "144" [ref=e2161]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1381]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1389]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2162]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2163]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2164]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2165]':
|
||||||
|
- cell "143" [ref=e2166]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2167]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2168]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2169]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2170]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2171]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2172]':
|
||||||
|
- cell "142" [ref=e2173]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2174]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2175]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2176]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2177]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2178]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2179]':
|
||||||
|
- cell "141" [ref=e2180]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2181]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2182]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2183]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e2184]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2185]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2186]':
|
||||||
|
- cell "140" [ref=e2187]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2188]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2189]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2190]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e2191]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2192]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2193]':
|
||||||
|
- cell "139" [ref=e2194]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2195]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2196]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2197]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2199]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2200]':
|
||||||
|
- cell "138" [ref=e2201]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2202]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e2203]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2204]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2205]':
|
||||||
|
- cell "137" [ref=e2206]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2207]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2208]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2209]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e2210]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2211]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2212]':
|
||||||
|
- cell "136" [ref=e2213]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2214]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1661]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e2215]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e2216]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2217]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2218]':
|
||||||
|
- cell "135" [ref=e2219]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2220]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1695]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2221]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e2222]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2223]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2224]':
|
||||||
|
- cell "134" [ref=e2225]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2226]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1729]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2227]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e2228]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2229]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2230]':
|
||||||
|
- cell "133" [ref=e2231]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2232]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e1763]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e2233]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e2234]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2235]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e2236]':
|
||||||
|
- cell "132" [ref=e2237]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1789]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1797]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e2238]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e2239]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e2240]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2241]':
|
||||||
|
- cell "131" [ref=e2242]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1823]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1831]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2243]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e2244]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2245]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2246]':
|
||||||
|
- cell "130" [ref=e2247]:
|
||||||
|
- generic [ref=e1856]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2248]':
|
||||||
|
- generic [ref=e1859]:
|
||||||
|
- generic [ref=e1861]: "?"
|
||||||
|
- generic [ref=e1862]:
|
||||||
|
- generic [ref=e1863]: "-"
|
||||||
|
- generic [ref=e1864]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2249]:
|
||||||
|
- generic [ref=e1868]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2250]:
|
||||||
|
- generic [ref=e1871]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e1872]:
|
||||||
|
- generic [ref=e1875]: 正常
|
||||||
|
- cell "8" [ref=e2251]:
|
||||||
|
- generic [ref=e1877]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2252]:
|
||||||
|
- generic [ref=e1879]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1880]:
|
||||||
|
- generic [ref=e1881]:
|
||||||
|
- button "详情" [ref=e1882] [cursor=pointer]:
|
||||||
|
- generic [ref=e1883]: 详情
|
||||||
|
- button "撤回" [ref=e1884] [cursor=pointer]:
|
||||||
|
- generic [ref=e1885]: 撤回
|
||||||
|
- button "删除" [ref=e1886] [cursor=pointer]:
|
||||||
|
- generic [ref=e1887]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e2253]':
|
||||||
|
- cell "129" [ref=e2254]:
|
||||||
|
- generic [ref=e1890]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e1891]':
|
||||||
|
- generic [ref=e1893]:
|
||||||
|
- generic [ref=e1895]: 新
|
||||||
|
- generic [ref=e1896]:
|
||||||
|
- generic [ref=e1897]: 新昵称
|
||||||
|
- generic [ref=e1898]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e1899]:
|
||||||
|
- generic [ref=e1902]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e2255]:
|
||||||
|
- generic [ref=e1905]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e1906]:
|
||||||
|
- generic [ref=e1909]: 正常
|
||||||
|
- cell "8" [ref=e2256]:
|
||||||
|
- generic [ref=e1911]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e2257]:
|
||||||
|
- generic [ref=e1913]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e1914]:
|
||||||
|
- generic [ref=e1915]:
|
||||||
|
- button "详情" [ref=e1916] [cursor=pointer]:
|
||||||
|
- generic [ref=e1917]: 详情
|
||||||
|
- button "撤回" [ref=e1918] [cursor=pointer]:
|
||||||
|
- generic [ref=e1919]: 撤回
|
||||||
|
- button "删除" [ref=e1920] [cursor=pointer]:
|
||||||
|
- generic [ref=e1921]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e2258]':
|
||||||
|
- cell "128" [ref=e2259]:
|
||||||
|
- generic [ref=e1924]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1925]':
|
||||||
|
- generic [ref=e1927]:
|
||||||
|
- generic [ref=e1929]: 卜
|
||||||
|
- generic [ref=e1930]:
|
||||||
|
- generic [ref=e1931]: 卜锦元
|
||||||
|
- generic [ref=e1932]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1933]:
|
||||||
|
- generic [ref=e1936]: 文本
|
||||||
|
- cell "111112" [ref=e2260]:
|
||||||
|
- generic [ref=e1939]: "111112"
|
||||||
|
- cell "正常" [ref=e1940]:
|
||||||
|
- generic [ref=e1943]: 正常
|
||||||
|
- cell "8" [ref=e2261]:
|
||||||
|
- generic [ref=e1945]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e2262]:
|
||||||
|
- generic [ref=e1947]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1948]:
|
||||||
|
- generic [ref=e1949]:
|
||||||
|
- button "详情" [ref=e1950] [cursor=pointer]:
|
||||||
|
- generic [ref=e1951]: 详情
|
||||||
|
- button "撤回" [ref=e1952] [cursor=pointer]:
|
||||||
|
- generic [ref=e1953]: 撤回
|
||||||
|
- button "删除" [ref=e1954] [cursor=pointer]:
|
||||||
|
- generic [ref=e1955]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2263]':
|
||||||
|
- cell "127" [ref=e2264]:
|
||||||
|
- generic [ref=e1958]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1959]':
|
||||||
|
- generic [ref=e1961]:
|
||||||
|
- generic [ref=e1963]: 卜
|
||||||
|
- generic [ref=e1964]:
|
||||||
|
- generic [ref=e1965]: 卜锦元
|
||||||
|
- generic [ref=e1966]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e1967]:
|
||||||
|
- generic [ref=e1970]: 文本
|
||||||
|
- cell "再次测试" [ref=e2265]:
|
||||||
|
- generic [ref=e1973]: 再次测试
|
||||||
|
- cell "正常" [ref=e1974]:
|
||||||
|
- generic [ref=e1977]: 正常
|
||||||
|
- cell "8" [ref=e1978]:
|
||||||
|
- generic [ref=e1979]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2266]:
|
||||||
|
- generic [ref=e1981]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e1982]:
|
||||||
|
- generic [ref=e1983]:
|
||||||
|
- button "详情" [ref=e1984] [cursor=pointer]:
|
||||||
|
- generic [ref=e1985]: 详情
|
||||||
|
- button "撤回" [ref=e1986] [cursor=pointer]:
|
||||||
|
- generic [ref=e1987]: 撤回
|
||||||
|
- button "删除" [ref=e1988] [cursor=pointer]:
|
||||||
|
- generic [ref=e1989]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e2267]':
|
||||||
|
- cell "126" [ref=e2268]:
|
||||||
|
- generic [ref=e1992]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e1993]':
|
||||||
|
- generic [ref=e1995]:
|
||||||
|
- generic [ref=e1997]: 卜
|
||||||
|
- generic [ref=e1998]:
|
||||||
|
- generic [ref=e1999]: 卜锦元
|
||||||
|
- generic [ref=e2000]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2001]:
|
||||||
|
- generic [ref=e2004]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2269]:
|
||||||
|
- generic [ref=e2007]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2008]:
|
||||||
|
- generic [ref=e2011]: 正常
|
||||||
|
- cell "8" [ref=e2012]:
|
||||||
|
- generic [ref=e2013]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2270]:
|
||||||
|
- generic [ref=e2015]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2016]:
|
||||||
|
- generic [ref=e2017]:
|
||||||
|
- button "详情" [ref=e2018] [cursor=pointer]:
|
||||||
|
- generic [ref=e2019]: 详情
|
||||||
|
- button "撤回" [ref=e2020] [cursor=pointer]:
|
||||||
|
- generic [ref=e2021]: 撤回
|
||||||
|
- button "删除" [ref=e2022] [cursor=pointer]:
|
||||||
|
- generic [ref=e2023]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2271] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2272] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2273] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2274] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2275] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2276] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2277] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
528
.playwright-mcp/page-2026-04-17T07-31-19-029Z.yml
Normal file
528
.playwright-mcp/page-2026-04-17T07-31-19-029Z.yml
Normal file
@@ -0,0 +1,528 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 系统
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [active] [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2296]':
|
||||||
|
- cell "138" [ref=e2297]:
|
||||||
|
- generic [ref=e1346]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2298]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: "?"
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: "-"
|
||||||
|
- generic [ref=e1354]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2299]:
|
||||||
|
- generic [ref=e1358]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2300]:
|
||||||
|
- generic [ref=e1361]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "8" [ref=e2301]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2302]:
|
||||||
|
- generic [ref=e1369]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2303]':
|
||||||
|
- cell "130" [ref=e2304]:
|
||||||
|
- generic [ref=e1380]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2305]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2306]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2307]:
|
||||||
|
- generic [ref=e1395]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "8" [ref=e2308]:
|
||||||
|
- generic [ref=e1401]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2309]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e2310]':
|
||||||
|
- cell "124" [ref=e2311]:
|
||||||
|
- generic [ref=e1414]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2312]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2313]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2314]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e2315]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e2316]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e2317]':
|
||||||
|
- cell "123" [ref=e2318]:
|
||||||
|
- generic [ref=e1448]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2319]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2320]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2321]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e2322]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e2323]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e2324]':
|
||||||
|
- cell "122" [ref=e2325]:
|
||||||
|
- generic [ref=e1482]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2326]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: "?"
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: "-"
|
||||||
|
- generic [ref=e1490]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2327]:
|
||||||
|
- generic [ref=e1494]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2328]:
|
||||||
|
- generic [ref=e1497]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "7" [ref=e2329]:
|
||||||
|
- generic [ref=e1503]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e2330]:
|
||||||
|
- generic [ref=e1505]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e2331]':
|
||||||
|
- cell "121" [ref=e2332]:
|
||||||
|
- generic [ref=e1516]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2333]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: "?"
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: "-"
|
||||||
|
- generic [ref=e1524]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2334]:
|
||||||
|
- generic [ref=e1528]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2335]:
|
||||||
|
- generic [ref=e1531]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "7" [ref=e2336]:
|
||||||
|
- generic [ref=e1537]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e2337]:
|
||||||
|
- generic [ref=e1539]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e2338]':
|
||||||
|
- cell "120" [ref=e2339]:
|
||||||
|
- generic [ref=e1550]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2340]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: "?"
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: "-"
|
||||||
|
- generic [ref=e1558]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2341]:
|
||||||
|
- generic [ref=e1562]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e2342]:
|
||||||
|
- generic [ref=e1565]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e2343]:
|
||||||
|
- generic [ref=e1573]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e2344]':
|
||||||
|
- cell "119" [ref=e2345]:
|
||||||
|
- generic [ref=e1584]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e2346]:
|
||||||
|
- generic [ref=e1599]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "7" [ref=e2347]:
|
||||||
|
- generic [ref=e1605]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e2348]:
|
||||||
|
- generic [ref=e1607]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e2349]':
|
||||||
|
- cell "118" [ref=e2350]:
|
||||||
|
- generic [ref=e1618]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2351]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: "?"
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: "-"
|
||||||
|
- generic [ref=e1626]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2352]:
|
||||||
|
- generic [ref=e1630]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e2353]:
|
||||||
|
- generic [ref=e1633]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "7" [ref=e2354]:
|
||||||
|
- generic [ref=e1639]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e2355]:
|
||||||
|
- generic [ref=e1641]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e2356]':
|
||||||
|
- cell "117" [ref=e2357]:
|
||||||
|
- generic [ref=e1652]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2358]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: "?"
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: "-"
|
||||||
|
- generic [ref=e1660]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2359]:
|
||||||
|
- generic [ref=e1664]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e2360]:
|
||||||
|
- generic [ref=e1667]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "7" [ref=e2361]:
|
||||||
|
- generic [ref=e1673]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e2362]:
|
||||||
|
- generic [ref=e1675]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "87 ? - ID: 0 系统消息 新昵称 邀请 卜锦元 加入了群聊 正常 8 2026-03-04 16:16:14 详情 撤回 删除" [ref=e2363]':
|
||||||
|
- cell "87" [ref=e2364]:
|
||||||
|
- generic [ref=e1686]: "87"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2365]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: "?"
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: "-"
|
||||||
|
- generic [ref=e1694]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2366]:
|
||||||
|
- generic [ref=e1698]: 系统消息
|
||||||
|
- cell "新昵称 邀请 卜锦元 加入了群聊" [ref=e2367]:
|
||||||
|
- generic [ref=e1701]: 新昵称 邀请 卜锦元 加入了群聊
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "8" [ref=e2368]:
|
||||||
|
- generic [ref=e1707]: "8"
|
||||||
|
- cell "2026-03-04 16:16:14" [ref=e2369]:
|
||||||
|
- generic [ref=e1709]: 2026-03-04 16:16:14
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "86 ? - ID: 0 系统消息 新昵称 邀请 测试用户3 加入了群聊 正常 8 2026-03-04 16:14:25 详情 撤回 删除" [ref=e2370]':
|
||||||
|
- cell "86" [ref=e2371]:
|
||||||
|
- generic [ref=e1720]: "86"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2372]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: "?"
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: "-"
|
||||||
|
- generic [ref=e1728]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2373]:
|
||||||
|
- generic [ref=e1732]: 系统消息
|
||||||
|
- cell "新昵称 邀请 测试用户3 加入了群聊" [ref=e2374]:
|
||||||
|
- generic [ref=e1735]: 新昵称 邀请 测试用户3 加入了群聊
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "8" [ref=e2375]:
|
||||||
|
- generic [ref=e1741]: "8"
|
||||||
|
- cell "2026-03-04 16:14:25" [ref=e2376]:
|
||||||
|
- generic [ref=e1743]: 2026-03-04 16:14:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "85 ? - ID: 0 系统消息 新昵称 更新了群公告 正常 8 2026-03-04 16:14:07 详情 撤回 删除" [ref=e2377]':
|
||||||
|
- cell "85" [ref=e2378]:
|
||||||
|
- generic [ref=e1754]: "85"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2379]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: "?"
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: "-"
|
||||||
|
- generic [ref=e1762]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2380]:
|
||||||
|
- generic [ref=e1766]: 系统消息
|
||||||
|
- cell "新昵称 更新了群公告" [ref=e2381]:
|
||||||
|
- generic [ref=e1769]: 新昵称 更新了群公告
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "8" [ref=e2382]:
|
||||||
|
- generic [ref=e1775]: "8"
|
||||||
|
- cell "2026-03-04 16:14:07" [ref=e2383]:
|
||||||
|
- generic [ref=e1777]: 2026-03-04 16:14:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "83 ? - ID: 0 系统消息 新昵称 创建了群聊 正常 8 2026-03-04 16:00:37 详情 撤回 删除" [ref=e2384]':
|
||||||
|
- cell "83" [ref=e2385]:
|
||||||
|
- generic [ref=e1788]: "83"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2386]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: "?"
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: "-"
|
||||||
|
- generic [ref=e1796]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2387]:
|
||||||
|
- generic [ref=e1800]: 系统消息
|
||||||
|
- cell "新昵称 创建了群聊" [ref=e2388]:
|
||||||
|
- generic [ref=e1803]: 新昵称 创建了群聊
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "8" [ref=e2389]:
|
||||||
|
- generic [ref=e1809]: "8"
|
||||||
|
- cell "2026-03-04 16:00:37" [ref=e2390]:
|
||||||
|
- generic [ref=e1811]: 2026-03-04 16:00:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "76 ? - ID: 0 系统消息 新昵称 创建了群聊 正常 7 2026-03-04 15:34:52 详情 撤回 删除" [ref=e2391]':
|
||||||
|
- cell "76" [ref=e2392]:
|
||||||
|
- generic [ref=e1822]: "76"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2393]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: "?"
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: "-"
|
||||||
|
- generic [ref=e1830]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2394]:
|
||||||
|
- generic [ref=e1834]: 系统消息
|
||||||
|
- cell "新昵称 创建了群聊" [ref=e2395]:
|
||||||
|
- generic [ref=e1837]: 新昵称 创建了群聊
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "7" [ref=e2396]:
|
||||||
|
- generic [ref=e1843]: "7"
|
||||||
|
- cell "2026-03-04 15:34:52" [ref=e2397]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 15:34:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 15 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- button "下一页" [disabled] [ref=e1326]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-31-30-327Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-31-30-327Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [active] [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2398]':
|
||||||
|
- cell "145" [ref=e2399]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2400]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2402]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2403]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2404]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2405]':
|
||||||
|
- cell "144" [ref=e2406]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2407]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2408]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2409]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2410]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2411]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2412]':
|
||||||
|
- cell "143" [ref=e2413]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2414]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2415]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2416]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2417]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2418]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2419]':
|
||||||
|
- cell "142" [ref=e2420]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2421]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2422]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2423]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2424]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2425]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2426]':
|
||||||
|
- cell "141" [ref=e2427]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2428]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2429]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2430]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e2431]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2432]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2433]':
|
||||||
|
- cell "140" [ref=e2434]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2435]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2436]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2437]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e2438]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2439]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2440]':
|
||||||
|
- cell "139" [ref=e2441]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2442]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2443]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2444]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2445]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2446]':
|
||||||
|
- cell "138" [ref=e2447]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2448]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e2449]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2450]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2451]':
|
||||||
|
- cell "137" [ref=e2452]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2453]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2454]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2455]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e2456]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2457]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2458]':
|
||||||
|
- cell "136" [ref=e2459]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2460]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2461]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e2462]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e2463]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2464]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2465]':
|
||||||
|
- cell "135" [ref=e2466]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2467]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2468]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2469]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e2470]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2471]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2472]':
|
||||||
|
- cell "134" [ref=e2473]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2474]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2475]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2476]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e2477]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2478]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2479]':
|
||||||
|
- cell "133" [ref=e2480]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2481]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2482]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e2483]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e2484]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2485]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e2486]':
|
||||||
|
- cell "132" [ref=e2487]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2488]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2489]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e2490]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e2491]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e2492]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2493]':
|
||||||
|
- cell "131" [ref=e2494]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2495]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2496]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2497]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e2498]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2499]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2500]':
|
||||||
|
- cell "130" [ref=e2501]:
|
||||||
|
- generic [ref=e2502]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2503]':
|
||||||
|
- generic [ref=e2505]:
|
||||||
|
- generic [ref=e2507]: "?"
|
||||||
|
- generic [ref=e2508]:
|
||||||
|
- generic [ref=e2509]: "-"
|
||||||
|
- generic [ref=e2510]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2511]:
|
||||||
|
- generic [ref=e2514]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2515]:
|
||||||
|
- generic [ref=e2517]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e2518]:
|
||||||
|
- generic [ref=e2521]: 正常
|
||||||
|
- cell "8" [ref=e2522]:
|
||||||
|
- generic [ref=e2523]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2524]:
|
||||||
|
- generic [ref=e2525]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e2526]:
|
||||||
|
- generic [ref=e2527]:
|
||||||
|
- button "详情" [ref=e2528] [cursor=pointer]:
|
||||||
|
- generic [ref=e2529]: 详情
|
||||||
|
- button "撤回" [ref=e2530] [cursor=pointer]:
|
||||||
|
- generic [ref=e2531]: 撤回
|
||||||
|
- button "删除" [ref=e2532] [cursor=pointer]:
|
||||||
|
- generic [ref=e2533]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e2534]':
|
||||||
|
- cell "129" [ref=e2535]:
|
||||||
|
- generic [ref=e2536]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2537]':
|
||||||
|
- generic [ref=e2539]:
|
||||||
|
- generic [ref=e2541]: 新
|
||||||
|
- generic [ref=e2542]:
|
||||||
|
- generic [ref=e2543]: 新昵称
|
||||||
|
- generic [ref=e2544]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2545]:
|
||||||
|
- generic [ref=e2548]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e2549]:
|
||||||
|
- generic [ref=e2551]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e2552]:
|
||||||
|
- generic [ref=e2555]: 正常
|
||||||
|
- cell "8" [ref=e2556]:
|
||||||
|
- generic [ref=e2557]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e2558]:
|
||||||
|
- generic [ref=e2559]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2560]:
|
||||||
|
- generic [ref=e2561]:
|
||||||
|
- button "详情" [ref=e2562] [cursor=pointer]:
|
||||||
|
- generic [ref=e2563]: 详情
|
||||||
|
- button "撤回" [ref=e2564] [cursor=pointer]:
|
||||||
|
- generic [ref=e2565]: 撤回
|
||||||
|
- button "删除" [ref=e2566] [cursor=pointer]:
|
||||||
|
- generic [ref=e2567]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e2568]':
|
||||||
|
- cell "128" [ref=e2569]:
|
||||||
|
- generic [ref=e2570]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2571]':
|
||||||
|
- generic [ref=e2573]:
|
||||||
|
- generic [ref=e2575]: 卜
|
||||||
|
- generic [ref=e2576]:
|
||||||
|
- generic [ref=e2577]: 卜锦元
|
||||||
|
- generic [ref=e2578]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2579]:
|
||||||
|
- generic [ref=e2582]: 文本
|
||||||
|
- cell "111112" [ref=e2583]:
|
||||||
|
- generic [ref=e2585]: "111112"
|
||||||
|
- cell "正常" [ref=e2586]:
|
||||||
|
- generic [ref=e2589]: 正常
|
||||||
|
- cell "8" [ref=e2590]:
|
||||||
|
- generic [ref=e2591]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e2592]:
|
||||||
|
- generic [ref=e2593]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e2594]:
|
||||||
|
- generic [ref=e2595]:
|
||||||
|
- button "详情" [ref=e2596] [cursor=pointer]:
|
||||||
|
- generic [ref=e2597]: 详情
|
||||||
|
- button "撤回" [ref=e2598] [cursor=pointer]:
|
||||||
|
- generic [ref=e2599]: 撤回
|
||||||
|
- button "删除" [ref=e2600] [cursor=pointer]:
|
||||||
|
- generic [ref=e2601]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2602]':
|
||||||
|
- cell "127" [ref=e2603]:
|
||||||
|
- generic [ref=e2604]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2605]':
|
||||||
|
- generic [ref=e2607]:
|
||||||
|
- generic [ref=e2609]: 卜
|
||||||
|
- generic [ref=e2610]:
|
||||||
|
- generic [ref=e2611]: 卜锦元
|
||||||
|
- generic [ref=e2612]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2613]:
|
||||||
|
- generic [ref=e2616]: 文本
|
||||||
|
- cell "再次测试" [ref=e2617]:
|
||||||
|
- generic [ref=e2619]: 再次测试
|
||||||
|
- cell "正常" [ref=e2620]:
|
||||||
|
- generic [ref=e2623]: 正常
|
||||||
|
- cell "8" [ref=e2624]:
|
||||||
|
- generic [ref=e2625]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2626]:
|
||||||
|
- generic [ref=e2627]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e2628]:
|
||||||
|
- generic [ref=e2629]:
|
||||||
|
- button "详情" [ref=e2630] [cursor=pointer]:
|
||||||
|
- generic [ref=e2631]: 详情
|
||||||
|
- button "撤回" [ref=e2632] [cursor=pointer]:
|
||||||
|
- generic [ref=e2633]: 撤回
|
||||||
|
- button "删除" [ref=e2634] [cursor=pointer]:
|
||||||
|
- generic [ref=e2635]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e2636]':
|
||||||
|
- cell "126" [ref=e2637]:
|
||||||
|
- generic [ref=e2638]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2639]':
|
||||||
|
- generic [ref=e2641]:
|
||||||
|
- generic [ref=e2643]: 卜
|
||||||
|
- generic [ref=e2644]:
|
||||||
|
- generic [ref=e2645]: 卜锦元
|
||||||
|
- generic [ref=e2646]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2647]:
|
||||||
|
- generic [ref=e2650]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2651]:
|
||||||
|
- generic [ref=e2653]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2654]:
|
||||||
|
- generic [ref=e2657]: 正常
|
||||||
|
- cell "8" [ref=e2658]:
|
||||||
|
- generic [ref=e2659]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2660]:
|
||||||
|
- generic [ref=e2661]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2662]:
|
||||||
|
- generic [ref=e2663]:
|
||||||
|
- button "详情" [ref=e2664] [cursor=pointer]:
|
||||||
|
- generic [ref=e2665]: 详情
|
||||||
|
- button "撤回" [ref=e2666] [cursor=pointer]:
|
||||||
|
- generic [ref=e2667]: 撤回
|
||||||
|
- button "删除" [ref=e2668] [cursor=pointer]:
|
||||||
|
- generic [ref=e2669]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2670] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2671] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2672] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2673] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2674] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2675] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2676] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-31-35-872Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-31-35-872Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [active] [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2398]':
|
||||||
|
- cell "145" [ref=e2399]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2400]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2402]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2403]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2404]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2405]':
|
||||||
|
- cell "144" [ref=e2406]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2407]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2408]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2409]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2410]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2411]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2412]':
|
||||||
|
- cell "143" [ref=e2413]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2414]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2415]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2416]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2417]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2418]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2419]':
|
||||||
|
- cell "142" [ref=e2420]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2421]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2422]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2423]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2424]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2425]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2426]':
|
||||||
|
- cell "141" [ref=e2427]:
|
||||||
|
- generic [ref=e1482]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2428]':
|
||||||
|
- generic [ref=e1485]:
|
||||||
|
- generic [ref=e1487]: 周
|
||||||
|
- generic [ref=e1488]:
|
||||||
|
- generic [ref=e1489]: 周和智
|
||||||
|
- generic [ref=e1490]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2429]:
|
||||||
|
- generic [ref=e1494]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2430]:
|
||||||
|
- generic [ref=e1497]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1498]:
|
||||||
|
- generic [ref=e1501]: 正常
|
||||||
|
- cell "8" [ref=e2431]:
|
||||||
|
- generic [ref=e1503]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2432]:
|
||||||
|
- generic [ref=e1505]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1506]:
|
||||||
|
- generic [ref=e1507]:
|
||||||
|
- button "详情" [ref=e1508] [cursor=pointer]:
|
||||||
|
- generic [ref=e1509]: 详情
|
||||||
|
- button "撤回" [ref=e1510] [cursor=pointer]:
|
||||||
|
- generic [ref=e1511]: 撤回
|
||||||
|
- button "删除" [ref=e1512] [cursor=pointer]:
|
||||||
|
- generic [ref=e1513]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2433]':
|
||||||
|
- cell "140" [ref=e2434]:
|
||||||
|
- generic [ref=e1516]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2435]':
|
||||||
|
- generic [ref=e1519]:
|
||||||
|
- generic [ref=e1521]: 卜
|
||||||
|
- generic [ref=e1522]:
|
||||||
|
- generic [ref=e1523]: 卜锦元
|
||||||
|
- generic [ref=e1524]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2436]:
|
||||||
|
- generic [ref=e1528]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2437]:
|
||||||
|
- generic [ref=e1531]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e1532]:
|
||||||
|
- generic [ref=e1535]: 正常
|
||||||
|
- cell "8" [ref=e2438]:
|
||||||
|
- generic [ref=e1537]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2439]:
|
||||||
|
- generic [ref=e1539]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1540]:
|
||||||
|
- generic [ref=e1541]:
|
||||||
|
- button "详情" [ref=e1542] [cursor=pointer]:
|
||||||
|
- generic [ref=e1543]: 详情
|
||||||
|
- button "撤回" [ref=e1544] [cursor=pointer]:
|
||||||
|
- generic [ref=e1545]: 撤回
|
||||||
|
- button "删除" [ref=e1546] [cursor=pointer]:
|
||||||
|
- generic [ref=e1547]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2440]':
|
||||||
|
- cell "139" [ref=e2441]:
|
||||||
|
- generic [ref=e1550]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2442]':
|
||||||
|
- generic [ref=e1553]:
|
||||||
|
- generic [ref=e1555]: 卜
|
||||||
|
- generic [ref=e1556]:
|
||||||
|
- generic [ref=e1557]: 卜锦元
|
||||||
|
- generic [ref=e1558]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2443]:
|
||||||
|
- generic [ref=e1562]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2444]:
|
||||||
|
- generic [ref=e1565]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e1566]:
|
||||||
|
- generic [ref=e1569]: 正常
|
||||||
|
- cell "8" [ref=e2198]:
|
||||||
|
- generic [ref=e1571]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2445]:
|
||||||
|
- generic [ref=e1573]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e1574]:
|
||||||
|
- generic [ref=e1575]:
|
||||||
|
- button "详情" [ref=e1576] [cursor=pointer]:
|
||||||
|
- generic [ref=e1577]: 详情
|
||||||
|
- button "撤回" [ref=e1578] [cursor=pointer]:
|
||||||
|
- generic [ref=e1579]: 撤回
|
||||||
|
- button "删除" [ref=e1580] [cursor=pointer]:
|
||||||
|
- generic [ref=e1581]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2446]':
|
||||||
|
- cell "138" [ref=e2447]:
|
||||||
|
- generic [ref=e1584]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e1585]':
|
||||||
|
- generic [ref=e1587]:
|
||||||
|
- generic [ref=e1589]: "?"
|
||||||
|
- generic [ref=e1590]:
|
||||||
|
- generic [ref=e1591]: "-"
|
||||||
|
- generic [ref=e1592]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e1593]:
|
||||||
|
- generic [ref=e1596]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2448]:
|
||||||
|
- generic [ref=e1599]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e1600]:
|
||||||
|
- generic [ref=e1603]: 正常
|
||||||
|
- cell "8" [ref=e2449]:
|
||||||
|
- generic [ref=e1605]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2450]:
|
||||||
|
- generic [ref=e1607]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1608]:
|
||||||
|
- generic [ref=e1609]:
|
||||||
|
- button "详情" [ref=e1610] [cursor=pointer]:
|
||||||
|
- generic [ref=e1611]: 详情
|
||||||
|
- button "撤回" [ref=e1612] [cursor=pointer]:
|
||||||
|
- generic [ref=e1613]: 撤回
|
||||||
|
- button "删除" [ref=e1614] [cursor=pointer]:
|
||||||
|
- generic [ref=e1615]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2451]':
|
||||||
|
- cell "137" [ref=e2452]:
|
||||||
|
- generic [ref=e1618]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2453]':
|
||||||
|
- generic [ref=e1621]:
|
||||||
|
- generic [ref=e1623]: 卜
|
||||||
|
- generic [ref=e1624]:
|
||||||
|
- generic [ref=e1625]: 卜锦元
|
||||||
|
- generic [ref=e1626]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2454]:
|
||||||
|
- generic [ref=e1630]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2455]:
|
||||||
|
- generic [ref=e1633]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e1634]:
|
||||||
|
- generic [ref=e1637]: 正常
|
||||||
|
- cell "10" [ref=e2456]:
|
||||||
|
- generic [ref=e1639]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2457]:
|
||||||
|
- generic [ref=e1641]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1642]:
|
||||||
|
- generic [ref=e1643]:
|
||||||
|
- button "详情" [ref=e1644] [cursor=pointer]:
|
||||||
|
- generic [ref=e1645]: 详情
|
||||||
|
- button "撤回" [ref=e1646] [cursor=pointer]:
|
||||||
|
- generic [ref=e1647]: 撤回
|
||||||
|
- button "删除" [ref=e1648] [cursor=pointer]:
|
||||||
|
- generic [ref=e1649]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2458]':
|
||||||
|
- cell "136" [ref=e2459]:
|
||||||
|
- generic [ref=e1652]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2460]':
|
||||||
|
- generic [ref=e1655]:
|
||||||
|
- generic [ref=e1657]: 卜
|
||||||
|
- generic [ref=e1658]:
|
||||||
|
- generic [ref=e1659]: 卜锦元
|
||||||
|
- generic [ref=e1660]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2461]:
|
||||||
|
- generic [ref=e1664]: 文本
|
||||||
|
- cell "23213123" [ref=e2462]:
|
||||||
|
- generic [ref=e1667]: "23213123"
|
||||||
|
- cell "正常" [ref=e1668]:
|
||||||
|
- generic [ref=e1671]: 正常
|
||||||
|
- cell "10" [ref=e2463]:
|
||||||
|
- generic [ref=e1673]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2464]:
|
||||||
|
- generic [ref=e1675]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1676]:
|
||||||
|
- generic [ref=e1677]:
|
||||||
|
- button "详情" [ref=e1678] [cursor=pointer]:
|
||||||
|
- generic [ref=e1679]: 详情
|
||||||
|
- button "撤回" [ref=e1680] [cursor=pointer]:
|
||||||
|
- generic [ref=e1681]: 撤回
|
||||||
|
- button "删除" [ref=e1682] [cursor=pointer]:
|
||||||
|
- generic [ref=e1683]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2465]':
|
||||||
|
- cell "135" [ref=e2466]:
|
||||||
|
- generic [ref=e1686]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2467]':
|
||||||
|
- generic [ref=e1689]:
|
||||||
|
- generic [ref=e1691]: 周
|
||||||
|
- generic [ref=e1692]:
|
||||||
|
- generic [ref=e1693]: 周和智
|
||||||
|
- generic [ref=e1694]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2468]:
|
||||||
|
- generic [ref=e1698]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2469]:
|
||||||
|
- generic [ref=e1701]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1702]:
|
||||||
|
- generic [ref=e1705]: 正常
|
||||||
|
- cell "10" [ref=e2470]:
|
||||||
|
- generic [ref=e1707]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2471]:
|
||||||
|
- generic [ref=e1709]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1710]:
|
||||||
|
- generic [ref=e1711]:
|
||||||
|
- button "详情" [ref=e1712] [cursor=pointer]:
|
||||||
|
- generic [ref=e1713]: 详情
|
||||||
|
- button "撤回" [ref=e1714] [cursor=pointer]:
|
||||||
|
- generic [ref=e1715]: 撤回
|
||||||
|
- button "删除" [ref=e1716] [cursor=pointer]:
|
||||||
|
- generic [ref=e1717]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2472]':
|
||||||
|
- cell "134" [ref=e2473]:
|
||||||
|
- generic [ref=e1720]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2474]':
|
||||||
|
- generic [ref=e1723]:
|
||||||
|
- generic [ref=e1725]: 周
|
||||||
|
- generic [ref=e1726]:
|
||||||
|
- generic [ref=e1727]: 周和智
|
||||||
|
- generic [ref=e1728]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2475]:
|
||||||
|
- generic [ref=e1732]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2476]:
|
||||||
|
- generic [ref=e1735]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1736]:
|
||||||
|
- generic [ref=e1739]: 正常
|
||||||
|
- cell "10" [ref=e2477]:
|
||||||
|
- generic [ref=e1741]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2478]:
|
||||||
|
- generic [ref=e1743]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1744]:
|
||||||
|
- generic [ref=e1745]:
|
||||||
|
- button "详情" [ref=e1746] [cursor=pointer]:
|
||||||
|
- generic [ref=e1747]: 详情
|
||||||
|
- button "撤回" [ref=e1748] [cursor=pointer]:
|
||||||
|
- generic [ref=e1749]: 撤回
|
||||||
|
- button "删除" [ref=e1750] [cursor=pointer]:
|
||||||
|
- generic [ref=e1751]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2479]':
|
||||||
|
- cell "133" [ref=e2480]:
|
||||||
|
- generic [ref=e1754]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2481]':
|
||||||
|
- generic [ref=e1757]:
|
||||||
|
- generic [ref=e1759]: 周
|
||||||
|
- generic [ref=e1760]:
|
||||||
|
- generic [ref=e1761]: 周和智
|
||||||
|
- generic [ref=e1762]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2482]:
|
||||||
|
- generic [ref=e1766]: 文本
|
||||||
|
- cell "哈喽" [ref=e2483]:
|
||||||
|
- generic [ref=e1769]: 哈喽
|
||||||
|
- cell "正常" [ref=e1770]:
|
||||||
|
- generic [ref=e1773]: 正常
|
||||||
|
- cell "10" [ref=e2484]:
|
||||||
|
- generic [ref=e1775]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2485]:
|
||||||
|
- generic [ref=e1777]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1778]:
|
||||||
|
- generic [ref=e1779]:
|
||||||
|
- button "详情" [ref=e1780] [cursor=pointer]:
|
||||||
|
- generic [ref=e1781]: 详情
|
||||||
|
- button "撤回" [ref=e1782] [cursor=pointer]:
|
||||||
|
- generic [ref=e1783]: 撤回
|
||||||
|
- button "删除" [ref=e1784] [cursor=pointer]:
|
||||||
|
- generic [ref=e1785]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e2486]':
|
||||||
|
- cell "132" [ref=e2487]:
|
||||||
|
- generic [ref=e1788]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2488]':
|
||||||
|
- generic [ref=e1791]:
|
||||||
|
- generic [ref=e1793]: 卜
|
||||||
|
- generic [ref=e1794]:
|
||||||
|
- generic [ref=e1795]: 卜锦元
|
||||||
|
- generic [ref=e1796]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2489]:
|
||||||
|
- generic [ref=e1800]: 文本
|
||||||
|
- cell "niahha a" [ref=e2490]:
|
||||||
|
- generic [ref=e1803]: niahha a
|
||||||
|
- cell "正常" [ref=e1804]:
|
||||||
|
- generic [ref=e1807]: 正常
|
||||||
|
- cell "10" [ref=e2491]:
|
||||||
|
- generic [ref=e1809]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e2492]:
|
||||||
|
- generic [ref=e1811]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e1812]:
|
||||||
|
- generic [ref=e1813]:
|
||||||
|
- button "详情" [ref=e1814] [cursor=pointer]:
|
||||||
|
- generic [ref=e1815]: 详情
|
||||||
|
- button "撤回" [ref=e1816] [cursor=pointer]:
|
||||||
|
- generic [ref=e1817]: 撤回
|
||||||
|
- button "删除" [ref=e1818] [cursor=pointer]:
|
||||||
|
- generic [ref=e1819]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e2493]':
|
||||||
|
- cell "131" [ref=e2494]:
|
||||||
|
- generic [ref=e1822]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2495]':
|
||||||
|
- generic [ref=e1825]:
|
||||||
|
- generic [ref=e1827]: 新
|
||||||
|
- generic [ref=e1828]:
|
||||||
|
- generic [ref=e1829]: 新昵称
|
||||||
|
- generic [ref=e1830]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2496]:
|
||||||
|
- generic [ref=e1834]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e2497]:
|
||||||
|
- generic [ref=e1837]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e1838]:
|
||||||
|
- generic [ref=e1841]: 正常
|
||||||
|
- cell "8" [ref=e2498]:
|
||||||
|
- generic [ref=e1843]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e2499]:
|
||||||
|
- generic [ref=e1845]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e1846]:
|
||||||
|
- generic [ref=e1847]:
|
||||||
|
- button "详情" [ref=e1848] [cursor=pointer]:
|
||||||
|
- generic [ref=e1849]: 详情
|
||||||
|
- button "撤回" [ref=e1850] [cursor=pointer]:
|
||||||
|
- generic [ref=e1851]: 撤回
|
||||||
|
- button "删除" [ref=e1852] [cursor=pointer]:
|
||||||
|
- generic [ref=e1853]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e2500]':
|
||||||
|
- cell "130" [ref=e2501]:
|
||||||
|
- generic [ref=e2502]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2503]':
|
||||||
|
- generic [ref=e2505]:
|
||||||
|
- generic [ref=e2507]: "?"
|
||||||
|
- generic [ref=e2508]:
|
||||||
|
- generic [ref=e2509]: "-"
|
||||||
|
- generic [ref=e2510]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2511]:
|
||||||
|
- generic [ref=e2514]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e2515]:
|
||||||
|
- generic [ref=e2517]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e2518]:
|
||||||
|
- generic [ref=e2521]: 正常
|
||||||
|
- cell "8" [ref=e2522]:
|
||||||
|
- generic [ref=e2523]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e2524]:
|
||||||
|
- generic [ref=e2525]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e2526]:
|
||||||
|
- generic [ref=e2527]:
|
||||||
|
- button "详情" [ref=e2528] [cursor=pointer]:
|
||||||
|
- generic [ref=e2529]: 详情
|
||||||
|
- button "撤回" [ref=e2530] [cursor=pointer]:
|
||||||
|
- generic [ref=e2531]: 撤回
|
||||||
|
- button "删除" [ref=e2532] [cursor=pointer]:
|
||||||
|
- generic [ref=e2533]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e2534]':
|
||||||
|
- cell "129" [ref=e2535]:
|
||||||
|
- generic [ref=e2536]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e2537]':
|
||||||
|
- generic [ref=e2539]:
|
||||||
|
- generic [ref=e2541]: 新
|
||||||
|
- generic [ref=e2542]:
|
||||||
|
- generic [ref=e2543]: 新昵称
|
||||||
|
- generic [ref=e2544]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2545]:
|
||||||
|
- generic [ref=e2548]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e2549]:
|
||||||
|
- generic [ref=e2551]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e2552]:
|
||||||
|
- generic [ref=e2555]: 正常
|
||||||
|
- cell "8" [ref=e2556]:
|
||||||
|
- generic [ref=e2557]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e2558]:
|
||||||
|
- generic [ref=e2559]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2560]:
|
||||||
|
- generic [ref=e2561]:
|
||||||
|
- button "详情" [ref=e2562] [cursor=pointer]:
|
||||||
|
- generic [ref=e2563]: 详情
|
||||||
|
- button "撤回" [ref=e2564] [cursor=pointer]:
|
||||||
|
- generic [ref=e2565]: 撤回
|
||||||
|
- button "删除" [ref=e2566] [cursor=pointer]:
|
||||||
|
- generic [ref=e2567]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e2568]':
|
||||||
|
- cell "128" [ref=e2569]:
|
||||||
|
- generic [ref=e2570]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2571]':
|
||||||
|
- generic [ref=e2573]:
|
||||||
|
- generic [ref=e2575]: 卜
|
||||||
|
- generic [ref=e2576]:
|
||||||
|
- generic [ref=e2577]: 卜锦元
|
||||||
|
- generic [ref=e2578]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2579]:
|
||||||
|
- generic [ref=e2582]: 文本
|
||||||
|
- cell "111112" [ref=e2583]:
|
||||||
|
- generic [ref=e2585]: "111112"
|
||||||
|
- cell "正常" [ref=e2586]:
|
||||||
|
- generic [ref=e2589]: 正常
|
||||||
|
- cell "8" [ref=e2590]:
|
||||||
|
- generic [ref=e2591]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e2592]:
|
||||||
|
- generic [ref=e2593]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e2594]:
|
||||||
|
- generic [ref=e2595]:
|
||||||
|
- button "详情" [ref=e2596] [cursor=pointer]:
|
||||||
|
- generic [ref=e2597]: 详情
|
||||||
|
- button "撤回" [ref=e2598] [cursor=pointer]:
|
||||||
|
- generic [ref=e2599]: 撤回
|
||||||
|
- button "删除" [ref=e2600] [cursor=pointer]:
|
||||||
|
- generic [ref=e2601]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e2602]':
|
||||||
|
- cell "127" [ref=e2603]:
|
||||||
|
- generic [ref=e2604]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2605]':
|
||||||
|
- generic [ref=e2607]:
|
||||||
|
- generic [ref=e2609]: 卜
|
||||||
|
- generic [ref=e2610]:
|
||||||
|
- generic [ref=e2611]: 卜锦元
|
||||||
|
- generic [ref=e2612]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2613]:
|
||||||
|
- generic [ref=e2616]: 文本
|
||||||
|
- cell "再次测试" [ref=e2617]:
|
||||||
|
- generic [ref=e2619]: 再次测试
|
||||||
|
- cell "正常" [ref=e2620]:
|
||||||
|
- generic [ref=e2623]: 正常
|
||||||
|
- cell "8" [ref=e2624]:
|
||||||
|
- generic [ref=e2625]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e2626]:
|
||||||
|
- generic [ref=e2627]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e2628]:
|
||||||
|
- generic [ref=e2629]:
|
||||||
|
- button "详情" [ref=e2630] [cursor=pointer]:
|
||||||
|
- generic [ref=e2631]: 详情
|
||||||
|
- button "撤回" [ref=e2632] [cursor=pointer]:
|
||||||
|
- generic [ref=e2633]: 撤回
|
||||||
|
- button "删除" [ref=e2634] [cursor=pointer]:
|
||||||
|
- generic [ref=e2635]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e2636]':
|
||||||
|
- cell "126" [ref=e2637]:
|
||||||
|
- generic [ref=e2638]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2639]':
|
||||||
|
- generic [ref=e2641]:
|
||||||
|
- generic [ref=e2643]: 卜
|
||||||
|
- generic [ref=e2644]:
|
||||||
|
- generic [ref=e2645]: 卜锦元
|
||||||
|
- generic [ref=e2646]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2647]:
|
||||||
|
- generic [ref=e2650]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e2651]:
|
||||||
|
- generic [ref=e2653]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e2654]:
|
||||||
|
- generic [ref=e2657]: 正常
|
||||||
|
- cell "8" [ref=e2658]:
|
||||||
|
- generic [ref=e2659]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e2660]:
|
||||||
|
- generic [ref=e2661]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e2662]:
|
||||||
|
- generic [ref=e2663]:
|
||||||
|
- button "详情" [ref=e2664] [cursor=pointer]:
|
||||||
|
- generic [ref=e2665]: 详情
|
||||||
|
- button "撤回" [ref=e2666] [cursor=pointer]:
|
||||||
|
- generic [ref=e2667]: 撤回
|
||||||
|
- button "删除" [ref=e2668] [cursor=pointer]:
|
||||||
|
- generic [ref=e2669]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e2670] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e2671] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e2672] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e2673] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e2674] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e2675] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e2676] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
231
.playwright-mcp/page-2026-04-17T07-31-45-858Z.yml
Normal file
231
.playwright-mcp/page-2026-04-17T07-31-45-858Z.yml
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]: "15"
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [active] [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2682]':
|
||||||
|
- cell "141" [ref=e2683]:
|
||||||
|
- generic [ref=e1346]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2684]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 周
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 周和智
|
||||||
|
- generic [ref=e1354]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2685]:
|
||||||
|
- generic [ref=e1361]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "8" [ref=e2686]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2687]:
|
||||||
|
- generic [ref=e1369]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2688]':
|
||||||
|
- cell "135" [ref=e2689]:
|
||||||
|
- generic [ref=e1380]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2690]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 周
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 周和智
|
||||||
|
- generic [ref=e1388]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2408]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2691]:
|
||||||
|
- generic [ref=e1395]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "10" [ref=e2692]:
|
||||||
|
- generic [ref=e1401]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2693]:
|
||||||
|
- generic [ref=e1403]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2694]':
|
||||||
|
- cell "134" [ref=e2695]:
|
||||||
|
- generic [ref=e1414]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2696]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 周
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 周和智
|
||||||
|
- generic [ref=e1422]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2415]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2697]:
|
||||||
|
- generic [ref=e1429]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "10" [ref=e2698]:
|
||||||
|
- generic [ref=e1435]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2699]:
|
||||||
|
- generic [ref=e1437]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e2700]':
|
||||||
|
- cell "133" [ref=e2701]:
|
||||||
|
- generic [ref=e1448]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2702]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 周
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 周和智
|
||||||
|
- generic [ref=e1456]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2422]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "哈喽" [ref=e2703]:
|
||||||
|
- generic [ref=e1463]: 哈喽
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "10" [ref=e2704]:
|
||||||
|
- generic [ref=e1469]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e2705]:
|
||||||
|
- generic [ref=e1471]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 4 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- button "下一页" [disabled] [ref=e1326]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-32-05-601Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-32-05-601Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [active] [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e2706]':
|
||||||
|
- cell "145" [ref=e2707]:
|
||||||
|
- generic [ref=e1346]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2708]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 卜
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 卜锦元
|
||||||
|
- generic [ref=e1354]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "1111" [ref=e2709]:
|
||||||
|
- generic [ref=e1361]: "1111"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "6" [ref=e2710]:
|
||||||
|
- generic [ref=e1367]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e2711]:
|
||||||
|
- generic [ref=e1369]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e2712]':
|
||||||
|
- cell "144" [ref=e2713]:
|
||||||
|
- generic [ref=e1380]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2714]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: 卜
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: 卜锦元
|
||||||
|
- generic [ref=e1388]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2408]:
|
||||||
|
- generic [ref=e1392]: 文本
|
||||||
|
- cell "1112122" [ref=e2715]:
|
||||||
|
- generic [ref=e1395]: "1112122"
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "6" [ref=e2716]:
|
||||||
|
- generic [ref=e1401]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e2717]:
|
||||||
|
- generic [ref=e1403]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e2718]':
|
||||||
|
- cell "143" [ref=e2719]:
|
||||||
|
- generic [ref=e1414]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2720]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: 卜
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: 卜锦元
|
||||||
|
- generic [ref=e1422]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2415]:
|
||||||
|
- generic [ref=e1426]: 文本
|
||||||
|
- cell "1111" [ref=e2721]:
|
||||||
|
- generic [ref=e1429]: "1111"
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "6" [ref=e2722]:
|
||||||
|
- generic [ref=e1435]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e2723]:
|
||||||
|
- generic [ref=e1437]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e2724]':
|
||||||
|
- cell "142" [ref=e2725]:
|
||||||
|
- generic [ref=e1448]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e2726]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: 段
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: 段凌云
|
||||||
|
- generic [ref=e1456]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e2422]:
|
||||||
|
- generic [ref=e1460]: 文本
|
||||||
|
- cell "111111111223" [ref=e2727]:
|
||||||
|
- generic [ref=e1463]: "111111111223"
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "6" [ref=e2728]:
|
||||||
|
- generic [ref=e1469]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e2729]:
|
||||||
|
- generic [ref=e1471]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e2730]':
|
||||||
|
- cell "141" [ref=e2731]:
|
||||||
|
- generic [ref=e2732]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2733]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: 周
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: 周和智
|
||||||
|
- generic [ref=e2740]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2741]:
|
||||||
|
- generic [ref=e2744]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e2745]:
|
||||||
|
- generic [ref=e2747]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "8" [ref=e2752]:
|
||||||
|
- generic [ref=e2753]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e2754]:
|
||||||
|
- generic [ref=e2755]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e2764]':
|
||||||
|
- cell "140" [ref=e2765]:
|
||||||
|
- generic [ref=e2766]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2767]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: 卜
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: 卜锦元
|
||||||
|
- generic [ref=e2774]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2775]:
|
||||||
|
- generic [ref=e2778]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e2779]:
|
||||||
|
- generic [ref=e2781]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e2788]:
|
||||||
|
- generic [ref=e2789]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e2798]':
|
||||||
|
- cell "139" [ref=e2799]:
|
||||||
|
- generic [ref=e2800]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2801]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: 卜
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: 卜锦元
|
||||||
|
- generic [ref=e2808]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2809]:
|
||||||
|
- generic [ref=e2812]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e2813]:
|
||||||
|
- generic [ref=e2815]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "8" [ref=e2820]:
|
||||||
|
- generic [ref=e2821]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e2822]:
|
||||||
|
- generic [ref=e2823]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e2832]':
|
||||||
|
- cell "138" [ref=e2833]:
|
||||||
|
- generic [ref=e2834]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e2847]:
|
||||||
|
- generic [ref=e2849]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "8" [ref=e2854]:
|
||||||
|
- generic [ref=e2855]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e2856]:
|
||||||
|
- generic [ref=e2857]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e2866]':
|
||||||
|
- cell "137" [ref=e2867]:
|
||||||
|
- generic [ref=e2868]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2869]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: 卜
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: 卜锦元
|
||||||
|
- generic [ref=e2876]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2877]:
|
||||||
|
- generic [ref=e2880]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e2881]:
|
||||||
|
- generic [ref=e2883]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "10" [ref=e2888]:
|
||||||
|
- generic [ref=e2889]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e2890]:
|
||||||
|
- generic [ref=e2891]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e2900]':
|
||||||
|
- cell "136" [ref=e2901]:
|
||||||
|
- generic [ref=e2902]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e2903]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 卜
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 卜锦元
|
||||||
|
- generic [ref=e2910]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "23213123" [ref=e2915]:
|
||||||
|
- generic [ref=e2917]: "23213123"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "10" [ref=e2922]:
|
||||||
|
- generic [ref=e2923]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e2924]:
|
||||||
|
- generic [ref=e2925]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e2934]':
|
||||||
|
- cell "135" [ref=e2935]:
|
||||||
|
- generic [ref=e2936]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2937]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 周
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 周和智
|
||||||
|
- generic [ref=e2944]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e2949]:
|
||||||
|
- generic [ref=e2951]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "10" [ref=e2956]:
|
||||||
|
- generic [ref=e2957]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e2958]:
|
||||||
|
- generic [ref=e2959]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e2968]':
|
||||||
|
- cell "134" [ref=e2969]:
|
||||||
|
- generic [ref=e2970]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e2971]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 周
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 周和智
|
||||||
|
- generic [ref=e2978]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e2983]:
|
||||||
|
- generic [ref=e2985]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "10" [ref=e2990]:
|
||||||
|
- generic [ref=e2991]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e2992]:
|
||||||
|
- generic [ref=e2993]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e3002]':
|
||||||
|
- cell "133" [ref=e3003]:
|
||||||
|
- generic [ref=e3004]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e3005]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 周
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 周和智
|
||||||
|
- generic [ref=e3012]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "哈喽" [ref=e3017]:
|
||||||
|
- generic [ref=e3019]: 哈喽
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "10" [ref=e3024]:
|
||||||
|
- generic [ref=e3025]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e3026]:
|
||||||
|
- generic [ref=e3027]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e3036]':
|
||||||
|
- cell "132" [ref=e3037]:
|
||||||
|
- generic [ref=e3038]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3039]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 卜
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 卜锦元
|
||||||
|
- generic [ref=e3046]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "niahha a" [ref=e3051]:
|
||||||
|
- generic [ref=e3053]: niahha a
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "10" [ref=e3058]:
|
||||||
|
- generic [ref=e3059]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e3060]:
|
||||||
|
- generic [ref=e3061]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e3070]':
|
||||||
|
- cell "131" [ref=e3071]:
|
||||||
|
- generic [ref=e3072]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e3085]:
|
||||||
|
- generic [ref=e3087]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "8" [ref=e3092]:
|
||||||
|
- generic [ref=e3093]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e3094]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "130 ? - ID: 0 系统消息 卜锦元 更新了群公告 正常 8 2026-03-04 18:35:52 详情 撤回 删除" [ref=e3104]':
|
||||||
|
- cell "130" [ref=e3105]:
|
||||||
|
- generic [ref=e3106]: "130"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3107]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: "?"
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: "-"
|
||||||
|
- generic [ref=e3114]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3115]:
|
||||||
|
- generic [ref=e3118]: 系统消息
|
||||||
|
- cell "卜锦元 更新了群公告" [ref=e3119]:
|
||||||
|
- generic [ref=e3121]: 卜锦元 更新了群公告
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 18:35:52" [ref=e3128]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 18:35:52
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "129 新 新昵称 ID: 4 文本 我知道你是谁 正常 8 2026-03-04 18:31:51 详情 撤回 删除" [ref=e3138]':
|
||||||
|
- cell "129" [ref=e3139]:
|
||||||
|
- generic [ref=e3140]: "129"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "我知道你是谁" [ref=e3153]:
|
||||||
|
- generic [ref=e3155]: 我知道你是谁
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 18:31:51" [ref=e3162]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 18:31:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "128 卜 卜锦元 ID: 7 文本 111112 正常 8 2026-03-04 18:31:37 详情 撤回 删除" [ref=e3172]':
|
||||||
|
- cell "128" [ref=e3173]:
|
||||||
|
- generic [ref=e3174]: "128"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "111112" [ref=e3187]:
|
||||||
|
- generic [ref=e3189]: "111112"
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "8" [ref=e3194]:
|
||||||
|
- generic [ref=e3195]: "8"
|
||||||
|
- cell "2026-03-04 18:31:37" [ref=e3196]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 18:31:37
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "127 卜 卜锦元 ID: 7 文本 再次测试 正常 8 2026-03-04 18:25:29 详情 撤回 删除" [ref=e3206]':
|
||||||
|
- cell "127" [ref=e3207]:
|
||||||
|
- generic [ref=e3208]: "127"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "再次测试" [ref=e3221]:
|
||||||
|
- generic [ref=e3223]: 再次测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "8" [ref=e3228]:
|
||||||
|
- generic [ref=e3229]: "8"
|
||||||
|
- cell "2026-03-04 18:25:29" [ref=e3230]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 18:25:29
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "126 卜 卜锦元 ID: 7 文本 哈哈哈,知道我是谁吗 正常 8 2026-03-04 18:08:32 详情 撤回 删除" [ref=e3240]':
|
||||||
|
- cell "126" [ref=e3241]:
|
||||||
|
- generic [ref=e3242]: "126"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈哈,知道我是谁吗" [ref=e3255]:
|
||||||
|
- generic [ref=e3257]: 哈哈哈,知道我是谁吗
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "8" [ref=e3262]:
|
||||||
|
- generic [ref=e3263]: "8"
|
||||||
|
- cell "2026-03-04 18:08:32" [ref=e3264]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 18:08:32
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [disabled] [ref=e1323]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e3274] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "1"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
671
.playwright-mcp/page-2026-04-17T07-32-19-098Z.yml
Normal file
671
.playwright-mcp/page-2026-04-17T07-32-19-098Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "125 新 新昵称 ID: 4 文本 112212 正常 8 2026-03-04 18:06:48 详情 撤回 删除" [ref=e3281]':
|
||||||
|
- cell "125" [ref=e3282]:
|
||||||
|
- generic [ref=e1346]: "125"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3283]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "112212" [ref=e3284]:
|
||||||
|
- generic [ref=e1361]: "112212"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "8" [ref=e3285]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:06:48" [ref=e3286]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:06:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e3287]':
|
||||||
|
- cell "124" [ref=e3288]:
|
||||||
|
- generic [ref=e1380]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3289]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3290]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3291]:
|
||||||
|
- generic [ref=e1395]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "7" [ref=e3292]:
|
||||||
|
- generic [ref=e1401]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e3293]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e3294]':
|
||||||
|
- cell "123" [ref=e3295]:
|
||||||
|
- generic [ref=e1414]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3296]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3297]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3298]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e3299]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e3300]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e3301]':
|
||||||
|
- cell "122" [ref=e3302]:
|
||||||
|
- generic [ref=e1448]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3303]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3304]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3305]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e3306]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e3307]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e3308]':
|
||||||
|
- cell "121" [ref=e3309]:
|
||||||
|
- generic [ref=e2732]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3310]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: "?"
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: "-"
|
||||||
|
- generic [ref=e2740]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3311]:
|
||||||
|
- generic [ref=e2744]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3312]:
|
||||||
|
- generic [ref=e2747]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "7" [ref=e3313]:
|
||||||
|
- generic [ref=e2753]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e3314]:
|
||||||
|
- generic [ref=e2755]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e3315]':
|
||||||
|
- cell "120" [ref=e3316]:
|
||||||
|
- generic [ref=e2766]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3317]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: "?"
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: "-"
|
||||||
|
- generic [ref=e2774]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3318]:
|
||||||
|
- generic [ref=e2778]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e3319]:
|
||||||
|
- generic [ref=e2781]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e3320]:
|
||||||
|
- generic [ref=e2789]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e3321]':
|
||||||
|
- cell "119" [ref=e3322]:
|
||||||
|
- generic [ref=e2800]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3323]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: "?"
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: "-"
|
||||||
|
- generic [ref=e2808]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3324]:
|
||||||
|
- generic [ref=e2812]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e3325]:
|
||||||
|
- generic [ref=e2815]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "7" [ref=e3326]:
|
||||||
|
- generic [ref=e2821]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e3327]:
|
||||||
|
- generic [ref=e2823]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e3328]':
|
||||||
|
- cell "118" [ref=e3329]:
|
||||||
|
- generic [ref=e2834]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3330]:
|
||||||
|
- generic [ref=e2849]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "7" [ref=e3331]:
|
||||||
|
- generic [ref=e2855]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e3332]:
|
||||||
|
- generic [ref=e2857]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e3333]':
|
||||||
|
- cell "117" [ref=e3334]:
|
||||||
|
- generic [ref=e2868]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3335]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: "?"
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: "-"
|
||||||
|
- generic [ref=e2876]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3336]:
|
||||||
|
- generic [ref=e2880]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3337]:
|
||||||
|
- generic [ref=e2883]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "7" [ref=e3338]:
|
||||||
|
- generic [ref=e2889]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e3339]:
|
||||||
|
- generic [ref=e2891]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "116 新 新昵称 ID: 4 文本 112121212 正常 9 2026-03-04 17:09:04 详情 撤回 删除" [ref=e3340]':
|
||||||
|
- cell "116" [ref=e3341]:
|
||||||
|
- generic [ref=e2902]: "116"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3342]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 新
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 新昵称
|
||||||
|
- generic [ref=e2910]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "112121212" [ref=e3343]:
|
||||||
|
- generic [ref=e2917]: "112121212"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "9" [ref=e3344]:
|
||||||
|
- generic [ref=e2923]: "9"
|
||||||
|
- cell "2026-03-04 17:09:04" [ref=e3345]:
|
||||||
|
- generic [ref=e2925]: 2026-03-04 17:09:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "115 卜 卜锦元 ID: 7 文本 111 正常 9 2026-03-04 17:08:51 详情 撤回 删除" [ref=e3346]':
|
||||||
|
- cell "115" [ref=e3347]:
|
||||||
|
- generic [ref=e2936]: "115"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3348]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 卜
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 卜锦元
|
||||||
|
- generic [ref=e2944]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "111" [ref=e3349]:
|
||||||
|
- generic [ref=e2951]: "111"
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "9" [ref=e3350]:
|
||||||
|
- generic [ref=e2957]: "9"
|
||||||
|
- cell "2026-03-04 17:08:51" [ref=e3351]:
|
||||||
|
- generic [ref=e2959]: 2026-03-04 17:08:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "114 卜 卜锦元 ID: 7 文本 111122fas 正常 9 2026-03-04 17:07:49 详情 撤回 删除" [ref=e3352]':
|
||||||
|
- cell "114" [ref=e3353]:
|
||||||
|
- generic [ref=e2970]: "114"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3354]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 卜
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 卜锦元
|
||||||
|
- generic [ref=e2978]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "111122fas" [ref=e3355]:
|
||||||
|
- generic [ref=e2985]: 111122fas
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "9" [ref=e3356]:
|
||||||
|
- generic [ref=e2991]: "9"
|
||||||
|
- cell "2026-03-04 17:07:49" [ref=e3357]:
|
||||||
|
- generic [ref=e2993]: 2026-03-04 17:07:49
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e3358]':
|
||||||
|
- cell "113" [ref=e3359]:
|
||||||
|
- generic [ref=e3004]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3360]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 新
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 新昵称
|
||||||
|
- generic [ref=e3012]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e3361]:
|
||||||
|
- generic [ref=e3019]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "8" [ref=e3362]:
|
||||||
|
- generic [ref=e3025]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e3363]:
|
||||||
|
- generic [ref=e3027]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e3364]':
|
||||||
|
- cell "112" [ref=e3365]:
|
||||||
|
- generic [ref=e3038]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3366]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 新
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 新昵称
|
||||||
|
- generic [ref=e3046]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e3367]:
|
||||||
|
- generic [ref=e3053]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "9" [ref=e3368]:
|
||||||
|
- generic [ref=e3059]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e3369]:
|
||||||
|
- generic [ref=e3061]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "111 新 新昵称 ID: 4 文本 21433 正常 9 2026-03-04 16:54:46 详情 撤回 删除" [ref=e3370]':
|
||||||
|
- cell "111" [ref=e3371]:
|
||||||
|
- generic [ref=e3072]: "111"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "21433" [ref=e3372]:
|
||||||
|
- generic [ref=e3087]: "21433"
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "9" [ref=e3373]:
|
||||||
|
- generic [ref=e3093]: "9"
|
||||||
|
- cell "2026-03-04 16:54:46" [ref=e3374]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 16:54:46
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "110 新 新昵称 ID: 4 文本 1111 正常 8 2026-03-04 16:54:36 详情 撤回 删除" [ref=e3375]':
|
||||||
|
- cell "110" [ref=e3376]:
|
||||||
|
- generic [ref=e3106]: "110"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3377]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: 新
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: 新昵称
|
||||||
|
- generic [ref=e3114]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3378]:
|
||||||
|
- generic [ref=e3118]: 文本
|
||||||
|
- cell "1111" [ref=e3379]:
|
||||||
|
- generic [ref=e3121]: "1111"
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 16:54:36" [ref=e3380]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 16:54:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e3381]':
|
||||||
|
- cell "109" [ref=e3382]:
|
||||||
|
- generic [ref=e3140]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e3383]:
|
||||||
|
- generic [ref=e3155]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e3384]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "108 卜 卜锦元 ID: 7 文本 咋子爱爱在 正常 9 2026-03-04 16:54:12 详情 撤回 删除" [ref=e3385]':
|
||||||
|
- cell "108" [ref=e3386]:
|
||||||
|
- generic [ref=e3174]: "108"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "咋子爱爱在" [ref=e3387]:
|
||||||
|
- generic [ref=e3189]: 咋子爱爱在
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "9" [ref=e3388]:
|
||||||
|
- generic [ref=e3195]: "9"
|
||||||
|
- cell "2026-03-04 16:54:12" [ref=e3389]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 16:54:12
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e3390]':
|
||||||
|
- cell "107" [ref=e3391]:
|
||||||
|
- generic [ref=e3208]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "在测试" [ref=e3392]:
|
||||||
|
- generic [ref=e3223]: 在测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "9" [ref=e3393]:
|
||||||
|
- generic [ref=e3229]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e3394]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e3395]':
|
||||||
|
- cell "106" [ref=e3396]:
|
||||||
|
- generic [ref=e3242]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e3397]:
|
||||||
|
- generic [ref=e3257]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "9" [ref=e3398]:
|
||||||
|
- generic [ref=e3263]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e3399]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [ref=e1323] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325] [cursor=pointer]: "1"
|
||||||
|
- listitem "第 2 页" [active] [ref=e3274]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "2"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
686
.playwright-mcp/page-2026-04-17T07-32-31-353Z.yml
Normal file
686
.playwright-mcp/page-2026-04-17T07-32-31-353Z.yml
Normal file
@@ -0,0 +1,686 @@
|
|||||||
|
- generic [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "125 新 新昵称 ID: 4 文本 112212 正常 8 2026-03-04 18:06:48 详情 撤回 删除" [ref=e3281]':
|
||||||
|
- cell "125" [ref=e3282]:
|
||||||
|
- generic [ref=e1346]: "125"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3283]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "112212" [ref=e3284]:
|
||||||
|
- generic [ref=e1361]: "112212"
|
||||||
|
- cell "正常" [ref=e1362]:
|
||||||
|
- generic [ref=e1365]: 正常
|
||||||
|
- cell "8" [ref=e3285]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:06:48" [ref=e3286]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:06:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e1370]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "撤回" [ref=e1374] [cursor=pointer]:
|
||||||
|
- generic [ref=e1375]: 撤回
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e3287]':
|
||||||
|
- cell "124" [ref=e3288]:
|
||||||
|
- generic [ref=e1380]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3289]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3290]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3291]:
|
||||||
|
- generic [ref=e1395]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "7" [ref=e3292]:
|
||||||
|
- generic [ref=e1401]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e3293]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e3294]':
|
||||||
|
- cell "123" [ref=e3295]:
|
||||||
|
- generic [ref=e1414]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3296]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3297]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3298]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e3299]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e3300]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e3301]':
|
||||||
|
- cell "122" [ref=e3302]:
|
||||||
|
- generic [ref=e1448]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3303]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3304]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3305]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e3306]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e3307]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e3308]':
|
||||||
|
- cell "121" [ref=e3309]:
|
||||||
|
- generic [ref=e2732]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3310]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: "?"
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: "-"
|
||||||
|
- generic [ref=e2740]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3311]:
|
||||||
|
- generic [ref=e2744]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3312]:
|
||||||
|
- generic [ref=e2747]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "7" [ref=e3313]:
|
||||||
|
- generic [ref=e2753]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e3314]:
|
||||||
|
- generic [ref=e2755]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e3315]':
|
||||||
|
- cell "120" [ref=e3316]:
|
||||||
|
- generic [ref=e2766]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3317]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: "?"
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: "-"
|
||||||
|
- generic [ref=e2774]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3318]:
|
||||||
|
- generic [ref=e2778]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e3319]:
|
||||||
|
- generic [ref=e2781]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e3320]:
|
||||||
|
- generic [ref=e2789]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e3321]':
|
||||||
|
- cell "119" [ref=e3322]:
|
||||||
|
- generic [ref=e2800]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3323]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: "?"
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: "-"
|
||||||
|
- generic [ref=e2808]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3324]:
|
||||||
|
- generic [ref=e2812]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e3325]:
|
||||||
|
- generic [ref=e2815]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "7" [ref=e3326]:
|
||||||
|
- generic [ref=e2821]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e3327]:
|
||||||
|
- generic [ref=e2823]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e3328]':
|
||||||
|
- cell "118" [ref=e3329]:
|
||||||
|
- generic [ref=e2834]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3330]:
|
||||||
|
- generic [ref=e2849]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "7" [ref=e3331]:
|
||||||
|
- generic [ref=e2855]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e3332]:
|
||||||
|
- generic [ref=e2857]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e3333]':
|
||||||
|
- cell "117" [ref=e3334]:
|
||||||
|
- generic [ref=e2868]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3335]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: "?"
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: "-"
|
||||||
|
- generic [ref=e2876]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3336]:
|
||||||
|
- generic [ref=e2880]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3337]:
|
||||||
|
- generic [ref=e2883]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "7" [ref=e3338]:
|
||||||
|
- generic [ref=e2889]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e3339]:
|
||||||
|
- generic [ref=e2891]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "116 新 新昵称 ID: 4 文本 112121212 正常 9 2026-03-04 17:09:04 详情 撤回 删除" [ref=e3340]':
|
||||||
|
- cell "116" [ref=e3341]:
|
||||||
|
- generic [ref=e2902]: "116"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3342]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 新
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 新昵称
|
||||||
|
- generic [ref=e2910]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "112121212" [ref=e3343]:
|
||||||
|
- generic [ref=e2917]: "112121212"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "9" [ref=e3344]:
|
||||||
|
- generic [ref=e2923]: "9"
|
||||||
|
- cell "2026-03-04 17:09:04" [ref=e3345]:
|
||||||
|
- generic [ref=e2925]: 2026-03-04 17:09:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "115 卜 卜锦元 ID: 7 文本 111 正常 9 2026-03-04 17:08:51 详情 撤回 删除" [ref=e3346]':
|
||||||
|
- cell "115" [ref=e3347]:
|
||||||
|
- generic [ref=e2936]: "115"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3348]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 卜
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 卜锦元
|
||||||
|
- generic [ref=e2944]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "111" [ref=e3349]:
|
||||||
|
- generic [ref=e2951]: "111"
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "9" [ref=e3350]:
|
||||||
|
- generic [ref=e2957]: "9"
|
||||||
|
- cell "2026-03-04 17:08:51" [ref=e3351]:
|
||||||
|
- generic [ref=e2959]: 2026-03-04 17:08:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "114 卜 卜锦元 ID: 7 文本 111122fas 正常 9 2026-03-04 17:07:49 详情 撤回 删除" [ref=e3352]':
|
||||||
|
- cell "114" [ref=e3353]:
|
||||||
|
- generic [ref=e2970]: "114"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3354]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 卜
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 卜锦元
|
||||||
|
- generic [ref=e2978]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "111122fas" [ref=e3355]:
|
||||||
|
- generic [ref=e2985]: 111122fas
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "9" [ref=e3356]:
|
||||||
|
- generic [ref=e2991]: "9"
|
||||||
|
- cell "2026-03-04 17:07:49" [ref=e3357]:
|
||||||
|
- generic [ref=e2993]: 2026-03-04 17:07:49
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e3358]':
|
||||||
|
- cell "113" [ref=e3359]:
|
||||||
|
- generic [ref=e3004]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3360]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 新
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 新昵称
|
||||||
|
- generic [ref=e3012]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e3361]:
|
||||||
|
- generic [ref=e3019]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "8" [ref=e3362]:
|
||||||
|
- generic [ref=e3025]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e3363]:
|
||||||
|
- generic [ref=e3027]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e3364]':
|
||||||
|
- cell "112" [ref=e3365]:
|
||||||
|
- generic [ref=e3038]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3366]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 新
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 新昵称
|
||||||
|
- generic [ref=e3046]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e3367]:
|
||||||
|
- generic [ref=e3053]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "9" [ref=e3368]:
|
||||||
|
- generic [ref=e3059]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e3369]:
|
||||||
|
- generic [ref=e3061]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "111 新 新昵称 ID: 4 文本 21433 正常 9 2026-03-04 16:54:46 详情 撤回 删除" [ref=e3370]':
|
||||||
|
- cell "111" [ref=e3371]:
|
||||||
|
- generic [ref=e3072]: "111"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "21433" [ref=e3372]:
|
||||||
|
- generic [ref=e3087]: "21433"
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "9" [ref=e3373]:
|
||||||
|
- generic [ref=e3093]: "9"
|
||||||
|
- cell "2026-03-04 16:54:46" [ref=e3374]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 16:54:46
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "110 新 新昵称 ID: 4 文本 1111 正常 8 2026-03-04 16:54:36 详情 撤回 删除" [ref=e3375]':
|
||||||
|
- cell "110" [ref=e3376]:
|
||||||
|
- generic [ref=e3106]: "110"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3377]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: 新
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: 新昵称
|
||||||
|
- generic [ref=e3114]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3378]:
|
||||||
|
- generic [ref=e3118]: 文本
|
||||||
|
- cell "1111" [ref=e3379]:
|
||||||
|
- generic [ref=e3121]: "1111"
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 16:54:36" [ref=e3380]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 16:54:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e3381]':
|
||||||
|
- cell "109" [ref=e3382]:
|
||||||
|
- generic [ref=e3140]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e3383]:
|
||||||
|
- generic [ref=e3155]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e3384]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "108 卜 卜锦元 ID: 7 文本 咋子爱爱在 正常 9 2026-03-04 16:54:12 详情 撤回 删除" [ref=e3385]':
|
||||||
|
- cell "108" [ref=e3386]:
|
||||||
|
- generic [ref=e3174]: "108"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "咋子爱爱在" [ref=e3387]:
|
||||||
|
- generic [ref=e3189]: 咋子爱爱在
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "9" [ref=e3388]:
|
||||||
|
- generic [ref=e3195]: "9"
|
||||||
|
- cell "2026-03-04 16:54:12" [ref=e3389]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 16:54:12
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e3390]':
|
||||||
|
- cell "107" [ref=e3391]:
|
||||||
|
- generic [ref=e3208]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "在测试" [ref=e3392]:
|
||||||
|
- generic [ref=e3223]: 在测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "9" [ref=e3393]:
|
||||||
|
- generic [ref=e3229]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e3394]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e3395]':
|
||||||
|
- cell "106" [ref=e3396]:
|
||||||
|
- generic [ref=e3242]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e3397]:
|
||||||
|
- generic [ref=e3257]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "9" [ref=e3398]:
|
||||||
|
- generic [ref=e3263]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e3399]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [ref=e1323] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325] [cursor=pointer]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e3274]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "2"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
|
- dialog "撤回消息" [ref=e3401]:
|
||||||
|
- generic [ref=e3402]:
|
||||||
|
- generic [ref=e3403]:
|
||||||
|
- generic [ref=e3404]: 撤回消息
|
||||||
|
- button "关闭此对话框" [ref=e3405] [cursor=pointer]:
|
||||||
|
- img [ref=e3407]
|
||||||
|
- generic [ref=e3410]:
|
||||||
|
- img [ref=e3412]
|
||||||
|
- paragraph [ref=e3415]: "确定要撤回消息 #125 吗?撤回后该消息对所有用户不可见。"
|
||||||
|
- generic [ref=e3416]:
|
||||||
|
- button "取消" [ref=e3417] [cursor=pointer]:
|
||||||
|
- generic [ref=e3418]: 取消
|
||||||
|
- button "确定撤回" [active] [ref=e3419] [cursor=pointer]:
|
||||||
|
- generic [ref=e3420]: 确定撤回
|
||||||
673
.playwright-mcp/page-2026-04-17T07-32-43-783Z.yml
Normal file
673
.playwright-mcp/page-2026-04-17T07-32-43-783Z.yml
Normal file
@@ -0,0 +1,673 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "125 新 新昵称 ID: 4 文本 [已撤回] 已撤回 8 2026-03-04 18:06:48 详情 删除" [ref=e3421]':
|
||||||
|
- cell "125" [ref=e3282]:
|
||||||
|
- generic [ref=e1346]: "125"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3283]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "[已撤回]" [ref=e3422]:
|
||||||
|
- generic [ref=e1361]: "[已撤回]"
|
||||||
|
- cell "已撤回" [ref=e3423]:
|
||||||
|
- generic [ref=e1365]: 已撤回
|
||||||
|
- cell "8" [ref=e3285]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:06:48" [ref=e3286]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:06:48
|
||||||
|
- cell "详情 删除" [ref=e3424]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e3287]':
|
||||||
|
- cell "124" [ref=e3288]:
|
||||||
|
- generic [ref=e1380]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3289]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3290]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3291]:
|
||||||
|
- generic [ref=e1395]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "7" [ref=e3292]:
|
||||||
|
- generic [ref=e1401]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e3293]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e3294]':
|
||||||
|
- cell "123" [ref=e3295]:
|
||||||
|
- generic [ref=e1414]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3296]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3297]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3298]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e3299]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e3300]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e3301]':
|
||||||
|
- cell "122" [ref=e3302]:
|
||||||
|
- generic [ref=e1448]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3303]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3304]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3305]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e3306]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e3307]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e3308]':
|
||||||
|
- cell "121" [ref=e3309]:
|
||||||
|
- generic [ref=e2732]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3310]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: "?"
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: "-"
|
||||||
|
- generic [ref=e2740]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3311]:
|
||||||
|
- generic [ref=e2744]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3312]:
|
||||||
|
- generic [ref=e2747]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "7" [ref=e3313]:
|
||||||
|
- generic [ref=e2753]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e3314]:
|
||||||
|
- generic [ref=e2755]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e3315]':
|
||||||
|
- cell "120" [ref=e3316]:
|
||||||
|
- generic [ref=e2766]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3317]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: "?"
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: "-"
|
||||||
|
- generic [ref=e2774]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3318]:
|
||||||
|
- generic [ref=e2778]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e3319]:
|
||||||
|
- generic [ref=e2781]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e3320]:
|
||||||
|
- generic [ref=e2789]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e3321]':
|
||||||
|
- cell "119" [ref=e3322]:
|
||||||
|
- generic [ref=e2800]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3323]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: "?"
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: "-"
|
||||||
|
- generic [ref=e2808]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3324]:
|
||||||
|
- generic [ref=e2812]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e3325]:
|
||||||
|
- generic [ref=e2815]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "7" [ref=e3326]:
|
||||||
|
- generic [ref=e2821]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e3327]:
|
||||||
|
- generic [ref=e2823]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e3328]':
|
||||||
|
- cell "118" [ref=e3329]:
|
||||||
|
- generic [ref=e2834]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3330]:
|
||||||
|
- generic [ref=e2849]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "7" [ref=e3331]:
|
||||||
|
- generic [ref=e2855]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e3332]:
|
||||||
|
- generic [ref=e2857]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e3333]':
|
||||||
|
- cell "117" [ref=e3334]:
|
||||||
|
- generic [ref=e2868]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3335]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: "?"
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: "-"
|
||||||
|
- generic [ref=e2876]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3336]:
|
||||||
|
- generic [ref=e2880]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3337]:
|
||||||
|
- generic [ref=e2883]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "7" [ref=e3338]:
|
||||||
|
- generic [ref=e2889]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e3339]:
|
||||||
|
- generic [ref=e2891]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "116 新 新昵称 ID: 4 文本 112121212 正常 9 2026-03-04 17:09:04 详情 撤回 删除" [ref=e3340]':
|
||||||
|
- cell "116" [ref=e3341]:
|
||||||
|
- generic [ref=e2902]: "116"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3342]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 新
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 新昵称
|
||||||
|
- generic [ref=e2910]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "112121212" [ref=e3343]:
|
||||||
|
- generic [ref=e2917]: "112121212"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "9" [ref=e3344]:
|
||||||
|
- generic [ref=e2923]: "9"
|
||||||
|
- cell "2026-03-04 17:09:04" [ref=e3345]:
|
||||||
|
- generic [ref=e2925]: 2026-03-04 17:09:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "115 卜 卜锦元 ID: 7 文本 111 正常 9 2026-03-04 17:08:51 详情 撤回 删除" [ref=e3346]':
|
||||||
|
- cell "115" [ref=e3347]:
|
||||||
|
- generic [ref=e2936]: "115"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3348]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 卜
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 卜锦元
|
||||||
|
- generic [ref=e2944]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "111" [ref=e3349]:
|
||||||
|
- generic [ref=e2951]: "111"
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "9" [ref=e3350]:
|
||||||
|
- generic [ref=e2957]: "9"
|
||||||
|
- cell "2026-03-04 17:08:51" [ref=e3351]:
|
||||||
|
- generic [ref=e2959]: 2026-03-04 17:08:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "114 卜 卜锦元 ID: 7 文本 111122fas 正常 9 2026-03-04 17:07:49 详情 撤回 删除" [ref=e3352]':
|
||||||
|
- cell "114" [ref=e3353]:
|
||||||
|
- generic [ref=e2970]: "114"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3354]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 卜
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 卜锦元
|
||||||
|
- generic [ref=e2978]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "111122fas" [ref=e3355]:
|
||||||
|
- generic [ref=e2985]: 111122fas
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "9" [ref=e3356]:
|
||||||
|
- generic [ref=e2991]: "9"
|
||||||
|
- cell "2026-03-04 17:07:49" [ref=e3357]:
|
||||||
|
- generic [ref=e2993]: 2026-03-04 17:07:49
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e3358]':
|
||||||
|
- cell "113" [ref=e3359]:
|
||||||
|
- generic [ref=e3004]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3360]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 新
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 新昵称
|
||||||
|
- generic [ref=e3012]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e3361]:
|
||||||
|
- generic [ref=e3019]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "8" [ref=e3362]:
|
||||||
|
- generic [ref=e3025]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e3363]:
|
||||||
|
- generic [ref=e3027]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e3364]':
|
||||||
|
- cell "112" [ref=e3365]:
|
||||||
|
- generic [ref=e3038]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3366]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 新
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 新昵称
|
||||||
|
- generic [ref=e3046]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e3367]:
|
||||||
|
- generic [ref=e3053]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "9" [ref=e3368]:
|
||||||
|
- generic [ref=e3059]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e3369]:
|
||||||
|
- generic [ref=e3061]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "111 新 新昵称 ID: 4 文本 21433 正常 9 2026-03-04 16:54:46 详情 撤回 删除" [ref=e3370]':
|
||||||
|
- cell "111" [ref=e3371]:
|
||||||
|
- generic [ref=e3072]: "111"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "21433" [ref=e3372]:
|
||||||
|
- generic [ref=e3087]: "21433"
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "9" [ref=e3373]:
|
||||||
|
- generic [ref=e3093]: "9"
|
||||||
|
- cell "2026-03-04 16:54:46" [ref=e3374]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 16:54:46
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "110 新 新昵称 ID: 4 文本 1111 正常 8 2026-03-04 16:54:36 详情 撤回 删除" [ref=e3375]':
|
||||||
|
- cell "110" [ref=e3376]:
|
||||||
|
- generic [ref=e3106]: "110"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3377]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: 新
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: 新昵称
|
||||||
|
- generic [ref=e3114]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3378]:
|
||||||
|
- generic [ref=e3118]: 文本
|
||||||
|
- cell "1111" [ref=e3379]:
|
||||||
|
- generic [ref=e3121]: "1111"
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 16:54:36" [ref=e3380]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 16:54:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e3381]':
|
||||||
|
- cell "109" [ref=e3382]:
|
||||||
|
- generic [ref=e3140]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e3383]:
|
||||||
|
- generic [ref=e3155]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e3384]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "108 卜 卜锦元 ID: 7 文本 咋子爱爱在 正常 9 2026-03-04 16:54:12 详情 撤回 删除" [ref=e3385]':
|
||||||
|
- cell "108" [ref=e3386]:
|
||||||
|
- generic [ref=e3174]: "108"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "咋子爱爱在" [ref=e3387]:
|
||||||
|
- generic [ref=e3189]: 咋子爱爱在
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "9" [ref=e3388]:
|
||||||
|
- generic [ref=e3195]: "9"
|
||||||
|
- cell "2026-03-04 16:54:12" [ref=e3389]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 16:54:12
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e3390]':
|
||||||
|
- cell "107" [ref=e3391]:
|
||||||
|
- generic [ref=e3208]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "在测试" [ref=e3392]:
|
||||||
|
- generic [ref=e3223]: 在测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "9" [ref=e3393]:
|
||||||
|
- generic [ref=e3229]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e3394]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e3395]':
|
||||||
|
- cell "106" [ref=e3396]:
|
||||||
|
- generic [ref=e3242]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e3397]:
|
||||||
|
- generic [ref=e3257]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "9" [ref=e3398]:
|
||||||
|
- generic [ref=e3263]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e3399]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [ref=e1323] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325] [cursor=pointer]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e3274]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "2"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
|
- alert [ref=e3425]:
|
||||||
|
- img [ref=e3427]
|
||||||
|
- paragraph [ref=e3429]: 消息已撤回
|
||||||
684
.playwright-mcp/page-2026-04-17T07-33-08-064Z.yml
Normal file
684
.playwright-mcp/page-2026-04-17T07-33-08-064Z.yml
Normal file
@@ -0,0 +1,684 @@
|
|||||||
|
- generic [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "125 新 新昵称 ID: 4 文本 [已撤回] 已撤回 8 2026-03-04 18:06:48 详情 删除" [ref=e3421]':
|
||||||
|
- cell "125" [ref=e3282]:
|
||||||
|
- generic [ref=e1346]: "125"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3283]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "[已撤回]" [ref=e3422]:
|
||||||
|
- generic [ref=e1361]: "[已撤回]"
|
||||||
|
- cell "已撤回" [ref=e3423]:
|
||||||
|
- generic [ref=e1365]: 已撤回
|
||||||
|
- cell "8" [ref=e3285]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:06:48" [ref=e3286]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:06:48
|
||||||
|
- cell "详情 删除" [ref=e3424]:
|
||||||
|
- generic [ref=e1371]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- button "删除" [ref=e1376] [cursor=pointer]:
|
||||||
|
- generic [ref=e1377]: 删除
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e3287]':
|
||||||
|
- cell "124" [ref=e3288]:
|
||||||
|
- generic [ref=e1380]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3289]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3290]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3291]:
|
||||||
|
- generic [ref=e1395]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "7" [ref=e3292]:
|
||||||
|
- generic [ref=e1401]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e3293]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e3294]':
|
||||||
|
- cell "123" [ref=e3295]:
|
||||||
|
- generic [ref=e1414]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3296]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3297]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3298]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e3299]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e3300]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e3301]':
|
||||||
|
- cell "122" [ref=e3302]:
|
||||||
|
- generic [ref=e1448]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3303]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3304]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3305]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e3306]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e3307]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e3308]':
|
||||||
|
- cell "121" [ref=e3309]:
|
||||||
|
- generic [ref=e2732]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3310]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: "?"
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: "-"
|
||||||
|
- generic [ref=e2740]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3311]:
|
||||||
|
- generic [ref=e2744]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3312]:
|
||||||
|
- generic [ref=e2747]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "7" [ref=e3313]:
|
||||||
|
- generic [ref=e2753]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e3314]:
|
||||||
|
- generic [ref=e2755]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e3315]':
|
||||||
|
- cell "120" [ref=e3316]:
|
||||||
|
- generic [ref=e2766]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3317]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: "?"
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: "-"
|
||||||
|
- generic [ref=e2774]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3318]:
|
||||||
|
- generic [ref=e2778]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e3319]:
|
||||||
|
- generic [ref=e2781]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e3320]:
|
||||||
|
- generic [ref=e2789]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e3321]':
|
||||||
|
- cell "119" [ref=e3322]:
|
||||||
|
- generic [ref=e2800]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3323]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: "?"
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: "-"
|
||||||
|
- generic [ref=e2808]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3324]:
|
||||||
|
- generic [ref=e2812]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e3325]:
|
||||||
|
- generic [ref=e2815]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "7" [ref=e3326]:
|
||||||
|
- generic [ref=e2821]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e3327]:
|
||||||
|
- generic [ref=e2823]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e3328]':
|
||||||
|
- cell "118" [ref=e3329]:
|
||||||
|
- generic [ref=e2834]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3330]:
|
||||||
|
- generic [ref=e2849]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "7" [ref=e3331]:
|
||||||
|
- generic [ref=e2855]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e3332]:
|
||||||
|
- generic [ref=e2857]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e3333]':
|
||||||
|
- cell "117" [ref=e3334]:
|
||||||
|
- generic [ref=e2868]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3335]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: "?"
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: "-"
|
||||||
|
- generic [ref=e2876]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3336]:
|
||||||
|
- generic [ref=e2880]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3337]:
|
||||||
|
- generic [ref=e2883]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "7" [ref=e3338]:
|
||||||
|
- generic [ref=e2889]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e3339]:
|
||||||
|
- generic [ref=e2891]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "116 新 新昵称 ID: 4 文本 112121212 正常 9 2026-03-04 17:09:04 详情 撤回 删除" [ref=e3340]':
|
||||||
|
- cell "116" [ref=e3341]:
|
||||||
|
- generic [ref=e2902]: "116"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3342]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 新
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 新昵称
|
||||||
|
- generic [ref=e2910]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "112121212" [ref=e3343]:
|
||||||
|
- generic [ref=e2917]: "112121212"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "9" [ref=e3344]:
|
||||||
|
- generic [ref=e2923]: "9"
|
||||||
|
- cell "2026-03-04 17:09:04" [ref=e3345]:
|
||||||
|
- generic [ref=e2925]: 2026-03-04 17:09:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "115 卜 卜锦元 ID: 7 文本 111 正常 9 2026-03-04 17:08:51 详情 撤回 删除" [ref=e3346]':
|
||||||
|
- cell "115" [ref=e3347]:
|
||||||
|
- generic [ref=e2936]: "115"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3348]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 卜
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 卜锦元
|
||||||
|
- generic [ref=e2944]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "111" [ref=e3349]:
|
||||||
|
- generic [ref=e2951]: "111"
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "9" [ref=e3350]:
|
||||||
|
- generic [ref=e2957]: "9"
|
||||||
|
- cell "2026-03-04 17:08:51" [ref=e3351]:
|
||||||
|
- generic [ref=e2959]: 2026-03-04 17:08:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "114 卜 卜锦元 ID: 7 文本 111122fas 正常 9 2026-03-04 17:07:49 详情 撤回 删除" [ref=e3352]':
|
||||||
|
- cell "114" [ref=e3353]:
|
||||||
|
- generic [ref=e2970]: "114"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3354]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 卜
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 卜锦元
|
||||||
|
- generic [ref=e2978]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "111122fas" [ref=e3355]:
|
||||||
|
- generic [ref=e2985]: 111122fas
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "9" [ref=e3356]:
|
||||||
|
- generic [ref=e2991]: "9"
|
||||||
|
- cell "2026-03-04 17:07:49" [ref=e3357]:
|
||||||
|
- generic [ref=e2993]: 2026-03-04 17:07:49
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e3358]':
|
||||||
|
- cell "113" [ref=e3359]:
|
||||||
|
- generic [ref=e3004]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3360]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 新
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 新昵称
|
||||||
|
- generic [ref=e3012]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e3361]:
|
||||||
|
- generic [ref=e3019]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "8" [ref=e3362]:
|
||||||
|
- generic [ref=e3025]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e3363]:
|
||||||
|
- generic [ref=e3027]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e3364]':
|
||||||
|
- cell "112" [ref=e3365]:
|
||||||
|
- generic [ref=e3038]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3366]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 新
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 新昵称
|
||||||
|
- generic [ref=e3046]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e3367]:
|
||||||
|
- generic [ref=e3053]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "9" [ref=e3368]:
|
||||||
|
- generic [ref=e3059]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e3369]:
|
||||||
|
- generic [ref=e3061]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "111 新 新昵称 ID: 4 文本 21433 正常 9 2026-03-04 16:54:46 详情 撤回 删除" [ref=e3370]':
|
||||||
|
- cell "111" [ref=e3371]:
|
||||||
|
- generic [ref=e3072]: "111"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "21433" [ref=e3372]:
|
||||||
|
- generic [ref=e3087]: "21433"
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "9" [ref=e3373]:
|
||||||
|
- generic [ref=e3093]: "9"
|
||||||
|
- cell "2026-03-04 16:54:46" [ref=e3374]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 16:54:46
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "110 新 新昵称 ID: 4 文本 1111 正常 8 2026-03-04 16:54:36 详情 撤回 删除" [ref=e3375]':
|
||||||
|
- cell "110" [ref=e3376]:
|
||||||
|
- generic [ref=e3106]: "110"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3377]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: 新
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: 新昵称
|
||||||
|
- generic [ref=e3114]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3378]:
|
||||||
|
- generic [ref=e3118]: 文本
|
||||||
|
- cell "1111" [ref=e3379]:
|
||||||
|
- generic [ref=e3121]: "1111"
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 16:54:36" [ref=e3380]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 16:54:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e3381]':
|
||||||
|
- cell "109" [ref=e3382]:
|
||||||
|
- generic [ref=e3140]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e3383]:
|
||||||
|
- generic [ref=e3155]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e3384]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "108 卜 卜锦元 ID: 7 文本 咋子爱爱在 正常 9 2026-03-04 16:54:12 详情 撤回 删除" [ref=e3385]':
|
||||||
|
- cell "108" [ref=e3386]:
|
||||||
|
- generic [ref=e3174]: "108"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "咋子爱爱在" [ref=e3387]:
|
||||||
|
- generic [ref=e3189]: 咋子爱爱在
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "9" [ref=e3388]:
|
||||||
|
- generic [ref=e3195]: "9"
|
||||||
|
- cell "2026-03-04 16:54:12" [ref=e3389]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 16:54:12
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e3390]':
|
||||||
|
- cell "107" [ref=e3391]:
|
||||||
|
- generic [ref=e3208]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "在测试" [ref=e3392]:
|
||||||
|
- generic [ref=e3223]: 在测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "9" [ref=e3393]:
|
||||||
|
- generic [ref=e3229]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e3394]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e3395]':
|
||||||
|
- cell "106" [ref=e3396]:
|
||||||
|
- generic [ref=e3242]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e3397]:
|
||||||
|
- generic [ref=e3257]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "9" [ref=e3398]:
|
||||||
|
- generic [ref=e3263]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e3399]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [ref=e1323] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325] [cursor=pointer]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e3274]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "2"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
|
- dialog "删除消息" [ref=e3431]:
|
||||||
|
- generic [ref=e3432]:
|
||||||
|
- generic [ref=e3433]:
|
||||||
|
- generic [ref=e3434]: 删除消息
|
||||||
|
- button "关闭此对话框" [ref=e3435] [cursor=pointer]:
|
||||||
|
- img [ref=e3437]
|
||||||
|
- generic [ref=e3440]:
|
||||||
|
- img [ref=e3442]
|
||||||
|
- paragraph [ref=e3445]: "确定要删除消息 #125 吗?"
|
||||||
|
- generic [ref=e3446]:
|
||||||
|
- button "取消" [ref=e3447] [cursor=pointer]:
|
||||||
|
- generic [ref=e3448]: 取消
|
||||||
|
- button "确定删除" [active] [ref=e3449] [cursor=pointer]:
|
||||||
|
- generic [ref=e3450]: 确定删除
|
||||||
670
.playwright-mcp/page-2026-04-17T07-33-19-732Z.yml
Normal file
670
.playwright-mcp/page-2026-04-17T07-33-19-732Z.yml
Normal file
@@ -0,0 +1,670 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e1204]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e1206]
|
||||||
|
- generic [ref=e1209]:
|
||||||
|
- generic [ref=e1210]:
|
||||||
|
- generic [ref=e1211]: 关键词
|
||||||
|
- generic [ref=e1214]:
|
||||||
|
- img [ref=e1217]
|
||||||
|
- textbox "关键词" [ref=e1219]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e1220]:
|
||||||
|
- generic [ref=e1221]: 类型
|
||||||
|
- generic [ref=e1224] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e1226]
|
||||||
|
- generic [ref=e1227]: 全部
|
||||||
|
- img [ref=e2294]
|
||||||
|
- generic [ref=e1232]:
|
||||||
|
- generic [ref=e1233]: 状态
|
||||||
|
- generic [ref=e1236] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e1238]
|
||||||
|
- generic [ref=e1239]: 全部
|
||||||
|
- img [ref=e1242]
|
||||||
|
- generic [ref=e1244]:
|
||||||
|
- generic [ref=e1245]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e1249]
|
||||||
|
- generic [ref=e1250]:
|
||||||
|
- generic [ref=e1251]: 时间范围
|
||||||
|
- generic [ref=e1253]:
|
||||||
|
- img [ref=e1255]
|
||||||
|
- combobox "时间范围" [ref=e1257]
|
||||||
|
- generic [ref=e1258]: 至
|
||||||
|
- combobox "结束日期" [ref=e1259]
|
||||||
|
- generic [ref=e1261]:
|
||||||
|
- button "搜索" [ref=e1262] [cursor=pointer]:
|
||||||
|
- generic [ref=e1263]: 搜索
|
||||||
|
- button "重置" [ref=e1264] [cursor=pointer]:
|
||||||
|
- generic [ref=e1265]: 重置
|
||||||
|
- generic [ref=e1267]:
|
||||||
|
- generic [ref=e1269]:
|
||||||
|
- table [ref=e1271]:
|
||||||
|
- rowgroup [ref=e1281]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e1282]:
|
||||||
|
- columnheader "ID" [ref=e1283]:
|
||||||
|
- generic [ref=e1284]: ID
|
||||||
|
- columnheader "发送者" [ref=e1285]:
|
||||||
|
- generic [ref=e1286]: 发送者
|
||||||
|
- columnheader "类型" [ref=e1287]:
|
||||||
|
- generic [ref=e1288]: 类型
|
||||||
|
- columnheader "内容" [ref=e1289]:
|
||||||
|
- generic [ref=e1290]: 内容
|
||||||
|
- columnheader "状态" [ref=e1291]:
|
||||||
|
- generic [ref=e1292]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e1293]:
|
||||||
|
- generic [ref=e1294]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e1295]:
|
||||||
|
- generic [ref=e1296]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e1297]:
|
||||||
|
- generic [ref=e1298]: 操作
|
||||||
|
- table [ref=e1333]:
|
||||||
|
- rowgroup [ref=e1343]:
|
||||||
|
- 'row "125 新 新昵称 ID: 4 文本 [已删除] 已删除 8 2026-03-04 18:06:48 详情" [ref=e3451]':
|
||||||
|
- cell "125" [ref=e3282]:
|
||||||
|
- generic [ref=e1346]: "125"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3283]':
|
||||||
|
- generic [ref=e1349]:
|
||||||
|
- generic [ref=e1351]: 新
|
||||||
|
- generic [ref=e1352]:
|
||||||
|
- generic [ref=e1353]: 新昵称
|
||||||
|
- generic [ref=e1354]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2401]:
|
||||||
|
- generic [ref=e1358]: 文本
|
||||||
|
- cell "[已删除]" [ref=e3452]:
|
||||||
|
- generic [ref=e1361]: "[已删除]"
|
||||||
|
- cell "已删除" [ref=e3453]:
|
||||||
|
- generic [ref=e1365]: 已删除
|
||||||
|
- cell "8" [ref=e3285]:
|
||||||
|
- generic [ref=e1367]: "8"
|
||||||
|
- cell "2026-03-04 18:06:48" [ref=e3286]:
|
||||||
|
- generic [ref=e1369]: 2026-03-04 18:06:48
|
||||||
|
- cell "详情" [ref=e3454]:
|
||||||
|
- button "详情" [ref=e1372] [cursor=pointer]:
|
||||||
|
- generic [ref=e1373]: 详情
|
||||||
|
- 'row "124 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:26:07 详情 撤回 删除" [ref=e3287]':
|
||||||
|
- cell "124" [ref=e3288]:
|
||||||
|
- generic [ref=e1380]: "124"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3289]':
|
||||||
|
- generic [ref=e1383]:
|
||||||
|
- generic [ref=e1385]: "?"
|
||||||
|
- generic [ref=e1386]:
|
||||||
|
- generic [ref=e1387]: "-"
|
||||||
|
- generic [ref=e1388]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3290]:
|
||||||
|
- generic [ref=e1392]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3291]:
|
||||||
|
- generic [ref=e1395]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1396]:
|
||||||
|
- generic [ref=e1399]: 正常
|
||||||
|
- cell "7" [ref=e3292]:
|
||||||
|
- generic [ref=e1401]: "7"
|
||||||
|
- cell "2026-03-04 17:26:07" [ref=e3293]:
|
||||||
|
- generic [ref=e1403]: 2026-03-04 17:26:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e1404]:
|
||||||
|
- generic [ref=e1405]:
|
||||||
|
- button "详情" [ref=e1406] [cursor=pointer]:
|
||||||
|
- generic [ref=e1407]: 详情
|
||||||
|
- button "撤回" [ref=e1408] [cursor=pointer]:
|
||||||
|
- generic [ref=e1409]: 撤回
|
||||||
|
- button "删除" [ref=e1410] [cursor=pointer]:
|
||||||
|
- generic [ref=e1411]: 删除
|
||||||
|
- 'row "123 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:26:03 详情 撤回 删除" [ref=e3294]':
|
||||||
|
- cell "123" [ref=e3295]:
|
||||||
|
- generic [ref=e1414]: "123"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3296]':
|
||||||
|
- generic [ref=e1417]:
|
||||||
|
- generic [ref=e1419]: "?"
|
||||||
|
- generic [ref=e1420]:
|
||||||
|
- generic [ref=e1421]: "-"
|
||||||
|
- generic [ref=e1422]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3297]:
|
||||||
|
- generic [ref=e1426]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3298]:
|
||||||
|
- generic [ref=e1429]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e1430]:
|
||||||
|
- generic [ref=e1433]: 正常
|
||||||
|
- cell "7" [ref=e3299]:
|
||||||
|
- generic [ref=e1435]: "7"
|
||||||
|
- cell "2026-03-04 17:26:03" [ref=e3300]:
|
||||||
|
- generic [ref=e1437]: 2026-03-04 17:26:03
|
||||||
|
- cell "详情 撤回 删除" [ref=e1438]:
|
||||||
|
- generic [ref=e1439]:
|
||||||
|
- button "详情" [ref=e1440] [cursor=pointer]:
|
||||||
|
- generic [ref=e1441]: 详情
|
||||||
|
- button "撤回" [ref=e1442] [cursor=pointer]:
|
||||||
|
- generic [ref=e1443]: 撤回
|
||||||
|
- button "删除" [ref=e1444] [cursor=pointer]:
|
||||||
|
- generic [ref=e1445]: 删除
|
||||||
|
- 'row "122 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:25:54 详情 撤回 删除" [ref=e3301]':
|
||||||
|
- cell "122" [ref=e3302]:
|
||||||
|
- generic [ref=e1448]: "122"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3303]':
|
||||||
|
- generic [ref=e1451]:
|
||||||
|
- generic [ref=e1453]: "?"
|
||||||
|
- generic [ref=e1454]:
|
||||||
|
- generic [ref=e1455]: "-"
|
||||||
|
- generic [ref=e1456]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3304]:
|
||||||
|
- generic [ref=e1460]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3305]:
|
||||||
|
- generic [ref=e1463]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e1464]:
|
||||||
|
- generic [ref=e1467]: 正常
|
||||||
|
- cell "7" [ref=e3306]:
|
||||||
|
- generic [ref=e1469]: "7"
|
||||||
|
- cell "2026-03-04 17:25:54" [ref=e3307]:
|
||||||
|
- generic [ref=e1471]: 2026-03-04 17:25:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e1472]:
|
||||||
|
- generic [ref=e1473]:
|
||||||
|
- button "详情" [ref=e1474] [cursor=pointer]:
|
||||||
|
- generic [ref=e1475]: 详情
|
||||||
|
- button "撤回" [ref=e1476] [cursor=pointer]:
|
||||||
|
- generic [ref=e1477]: 撤回
|
||||||
|
- button "删除" [ref=e1478] [cursor=pointer]:
|
||||||
|
- generic [ref=e1479]: 删除
|
||||||
|
- 'row "121 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:25:50 详情 撤回 删除" [ref=e3308]':
|
||||||
|
- cell "121" [ref=e3309]:
|
||||||
|
- generic [ref=e2732]: "121"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3310]':
|
||||||
|
- generic [ref=e2735]:
|
||||||
|
- generic [ref=e2737]: "?"
|
||||||
|
- generic [ref=e2738]:
|
||||||
|
- generic [ref=e2739]: "-"
|
||||||
|
- generic [ref=e2740]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3311]:
|
||||||
|
- generic [ref=e2744]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3312]:
|
||||||
|
- generic [ref=e2747]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2748]:
|
||||||
|
- generic [ref=e2751]: 正常
|
||||||
|
- cell "7" [ref=e3313]:
|
||||||
|
- generic [ref=e2753]: "7"
|
||||||
|
- cell "2026-03-04 17:25:50" [ref=e3314]:
|
||||||
|
- generic [ref=e2755]: 2026-03-04 17:25:50
|
||||||
|
- cell "详情 撤回 删除" [ref=e2756]:
|
||||||
|
- generic [ref=e2757]:
|
||||||
|
- button "详情" [ref=e2758] [cursor=pointer]:
|
||||||
|
- generic [ref=e2759]: 详情
|
||||||
|
- button "撤回" [ref=e2760] [cursor=pointer]:
|
||||||
|
- generic [ref=e2761]: 撤回
|
||||||
|
- button "删除" [ref=e2762] [cursor=pointer]:
|
||||||
|
- generic [ref=e2763]: 删除
|
||||||
|
- 'row "120 ? - ID: 0 系统消息 卜锦元 被设为管理员 正常 8 2026-03-04 17:21:43 详情 撤回 删除" [ref=e3315]':
|
||||||
|
- cell "120" [ref=e3316]:
|
||||||
|
- generic [ref=e2766]: "120"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3317]':
|
||||||
|
- generic [ref=e2769]:
|
||||||
|
- generic [ref=e2771]: "?"
|
||||||
|
- generic [ref=e2772]:
|
||||||
|
- generic [ref=e2773]: "-"
|
||||||
|
- generic [ref=e2774]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3318]:
|
||||||
|
- generic [ref=e2778]: 系统消息
|
||||||
|
- cell "卜锦元 被设为管理员" [ref=e3319]:
|
||||||
|
- generic [ref=e2781]: 卜锦元 被设为管理员
|
||||||
|
- cell "正常" [ref=e2782]:
|
||||||
|
- generic [ref=e2785]: 正常
|
||||||
|
- cell "8" [ref=e2786]:
|
||||||
|
- generic [ref=e2787]: "8"
|
||||||
|
- cell "2026-03-04 17:21:43" [ref=e3320]:
|
||||||
|
- generic [ref=e2789]: 2026-03-04 17:21:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e2790]:
|
||||||
|
- generic [ref=e2791]:
|
||||||
|
- button "详情" [ref=e2792] [cursor=pointer]:
|
||||||
|
- generic [ref=e2793]: 详情
|
||||||
|
- button "撤回" [ref=e2794] [cursor=pointer]:
|
||||||
|
- generic [ref=e2795]: 撤回
|
||||||
|
- button "删除" [ref=e2796] [cursor=pointer]:
|
||||||
|
- generic [ref=e2797]: 删除
|
||||||
|
- 'row "119 ? - ID: 0 系统消息 测试用户3 被设为管理员 正常 7 2026-03-04 17:21:13 详情 撤回 删除" [ref=e3321]':
|
||||||
|
- cell "119" [ref=e3322]:
|
||||||
|
- generic [ref=e2800]: "119"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3323]':
|
||||||
|
- generic [ref=e2803]:
|
||||||
|
- generic [ref=e2805]: "?"
|
||||||
|
- generic [ref=e2806]:
|
||||||
|
- generic [ref=e2807]: "-"
|
||||||
|
- generic [ref=e2808]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3324]:
|
||||||
|
- generic [ref=e2812]: 系统消息
|
||||||
|
- cell "测试用户3 被设为管理员" [ref=e3325]:
|
||||||
|
- generic [ref=e2815]: 测试用户3 被设为管理员
|
||||||
|
- cell "正常" [ref=e2816]:
|
||||||
|
- generic [ref=e2819]: 正常
|
||||||
|
- cell "7" [ref=e3326]:
|
||||||
|
- generic [ref=e2821]: "7"
|
||||||
|
- cell "2026-03-04 17:21:13" [ref=e3327]:
|
||||||
|
- generic [ref=e2823]: 2026-03-04 17:21:13
|
||||||
|
- cell "详情 撤回 删除" [ref=e2824]:
|
||||||
|
- generic [ref=e2825]:
|
||||||
|
- button "详情" [ref=e2826] [cursor=pointer]:
|
||||||
|
- generic [ref=e2827]: 详情
|
||||||
|
- button "撤回" [ref=e2828] [cursor=pointer]:
|
||||||
|
- generic [ref=e2829]: 撤回
|
||||||
|
- button "删除" [ref=e2830] [cursor=pointer]:
|
||||||
|
- generic [ref=e2831]: 删除
|
||||||
|
- 'row "118 ? - ID: 0 系统消息 测试用户2 被取消管理员 正常 7 2026-03-04 17:21:07 详情 撤回 删除" [ref=e3328]':
|
||||||
|
- cell "118" [ref=e3329]:
|
||||||
|
- generic [ref=e2834]: "118"
|
||||||
|
- 'cell "? - ID: 0" [ref=e2835]':
|
||||||
|
- generic [ref=e2837]:
|
||||||
|
- generic [ref=e2839]: "?"
|
||||||
|
- generic [ref=e2840]:
|
||||||
|
- generic [ref=e2841]: "-"
|
||||||
|
- generic [ref=e2842]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e2843]:
|
||||||
|
- generic [ref=e2846]: 系统消息
|
||||||
|
- cell "测试用户2 被取消管理员" [ref=e3330]:
|
||||||
|
- generic [ref=e2849]: 测试用户2 被取消管理员
|
||||||
|
- cell "正常" [ref=e2850]:
|
||||||
|
- generic [ref=e2853]: 正常
|
||||||
|
- cell "7" [ref=e3331]:
|
||||||
|
- generic [ref=e2855]: "7"
|
||||||
|
- cell "2026-03-04 17:21:07" [ref=e3332]:
|
||||||
|
- generic [ref=e2857]: 2026-03-04 17:21:07
|
||||||
|
- cell "详情 撤回 删除" [ref=e2858]:
|
||||||
|
- generic [ref=e2859]:
|
||||||
|
- button "详情" [ref=e2860] [cursor=pointer]:
|
||||||
|
- generic [ref=e2861]: 详情
|
||||||
|
- button "撤回" [ref=e2862] [cursor=pointer]:
|
||||||
|
- generic [ref=e2863]: 撤回
|
||||||
|
- button "删除" [ref=e2864] [cursor=pointer]:
|
||||||
|
- generic [ref=e2865]: 删除
|
||||||
|
- 'row "117 ? - ID: 0 系统消息 测试用户2 被设为管理员 正常 7 2026-03-04 17:20:31 详情 撤回 删除" [ref=e3333]':
|
||||||
|
- cell "117" [ref=e3334]:
|
||||||
|
- generic [ref=e2868]: "117"
|
||||||
|
- 'cell "? - ID: 0" [ref=e3335]':
|
||||||
|
- generic [ref=e2871]:
|
||||||
|
- generic [ref=e2873]: "?"
|
||||||
|
- generic [ref=e2874]:
|
||||||
|
- generic [ref=e2875]: "-"
|
||||||
|
- generic [ref=e2876]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e3336]:
|
||||||
|
- generic [ref=e2880]: 系统消息
|
||||||
|
- cell "测试用户2 被设为管理员" [ref=e3337]:
|
||||||
|
- generic [ref=e2883]: 测试用户2 被设为管理员
|
||||||
|
- cell "正常" [ref=e2884]:
|
||||||
|
- generic [ref=e2887]: 正常
|
||||||
|
- cell "7" [ref=e3338]:
|
||||||
|
- generic [ref=e2889]: "7"
|
||||||
|
- cell "2026-03-04 17:20:31" [ref=e3339]:
|
||||||
|
- generic [ref=e2891]: 2026-03-04 17:20:31
|
||||||
|
- cell "详情 撤回 删除" [ref=e2892]:
|
||||||
|
- generic [ref=e2893]:
|
||||||
|
- button "详情" [ref=e2894] [cursor=pointer]:
|
||||||
|
- generic [ref=e2895]: 详情
|
||||||
|
- button "撤回" [ref=e2896] [cursor=pointer]:
|
||||||
|
- generic [ref=e2897]: 撤回
|
||||||
|
- button "删除" [ref=e2898] [cursor=pointer]:
|
||||||
|
- generic [ref=e2899]: 删除
|
||||||
|
- 'row "116 新 新昵称 ID: 4 文本 112121212 正常 9 2026-03-04 17:09:04 详情 撤回 删除" [ref=e3340]':
|
||||||
|
- cell "116" [ref=e3341]:
|
||||||
|
- generic [ref=e2902]: "116"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3342]':
|
||||||
|
- generic [ref=e2905]:
|
||||||
|
- generic [ref=e2907]: 新
|
||||||
|
- generic [ref=e2908]:
|
||||||
|
- generic [ref=e2909]: 新昵称
|
||||||
|
- generic [ref=e2910]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e2911]:
|
||||||
|
- generic [ref=e2914]: 文本
|
||||||
|
- cell "112121212" [ref=e3343]:
|
||||||
|
- generic [ref=e2917]: "112121212"
|
||||||
|
- cell "正常" [ref=e2918]:
|
||||||
|
- generic [ref=e2921]: 正常
|
||||||
|
- cell "9" [ref=e3344]:
|
||||||
|
- generic [ref=e2923]: "9"
|
||||||
|
- cell "2026-03-04 17:09:04" [ref=e3345]:
|
||||||
|
- generic [ref=e2925]: 2026-03-04 17:09:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e2926]:
|
||||||
|
- generic [ref=e2927]:
|
||||||
|
- button "详情" [ref=e2928] [cursor=pointer]:
|
||||||
|
- generic [ref=e2929]: 详情
|
||||||
|
- button "撤回" [ref=e2930] [cursor=pointer]:
|
||||||
|
- generic [ref=e2931]: 撤回
|
||||||
|
- button "删除" [ref=e2932] [cursor=pointer]:
|
||||||
|
- generic [ref=e2933]: 删除
|
||||||
|
- 'row "115 卜 卜锦元 ID: 7 文本 111 正常 9 2026-03-04 17:08:51 详情 撤回 删除" [ref=e3346]':
|
||||||
|
- cell "115" [ref=e3347]:
|
||||||
|
- generic [ref=e2936]: "115"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3348]':
|
||||||
|
- generic [ref=e2939]:
|
||||||
|
- generic [ref=e2941]: 卜
|
||||||
|
- generic [ref=e2942]:
|
||||||
|
- generic [ref=e2943]: 卜锦元
|
||||||
|
- generic [ref=e2944]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2945]:
|
||||||
|
- generic [ref=e2948]: 文本
|
||||||
|
- cell "111" [ref=e3349]:
|
||||||
|
- generic [ref=e2951]: "111"
|
||||||
|
- cell "正常" [ref=e2952]:
|
||||||
|
- generic [ref=e2955]: 正常
|
||||||
|
- cell "9" [ref=e3350]:
|
||||||
|
- generic [ref=e2957]: "9"
|
||||||
|
- cell "2026-03-04 17:08:51" [ref=e3351]:
|
||||||
|
- generic [ref=e2959]: 2026-03-04 17:08:51
|
||||||
|
- cell "详情 撤回 删除" [ref=e2960]:
|
||||||
|
- generic [ref=e2961]:
|
||||||
|
- button "详情" [ref=e2962] [cursor=pointer]:
|
||||||
|
- generic [ref=e2963]: 详情
|
||||||
|
- button "撤回" [ref=e2964] [cursor=pointer]:
|
||||||
|
- generic [ref=e2965]: 撤回
|
||||||
|
- button "删除" [ref=e2966] [cursor=pointer]:
|
||||||
|
- generic [ref=e2967]: 删除
|
||||||
|
- 'row "114 卜 卜锦元 ID: 7 文本 111122fas 正常 9 2026-03-04 17:07:49 详情 撤回 删除" [ref=e3352]':
|
||||||
|
- cell "114" [ref=e3353]:
|
||||||
|
- generic [ref=e2970]: "114"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3354]':
|
||||||
|
- generic [ref=e2973]:
|
||||||
|
- generic [ref=e2975]: 卜
|
||||||
|
- generic [ref=e2976]:
|
||||||
|
- generic [ref=e2977]: 卜锦元
|
||||||
|
- generic [ref=e2978]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e2979]:
|
||||||
|
- generic [ref=e2982]: 文本
|
||||||
|
- cell "111122fas" [ref=e3355]:
|
||||||
|
- generic [ref=e2985]: 111122fas
|
||||||
|
- cell "正常" [ref=e2986]:
|
||||||
|
- generic [ref=e2989]: 正常
|
||||||
|
- cell "9" [ref=e3356]:
|
||||||
|
- generic [ref=e2991]: "9"
|
||||||
|
- cell "2026-03-04 17:07:49" [ref=e3357]:
|
||||||
|
- generic [ref=e2993]: 2026-03-04 17:07:49
|
||||||
|
- cell "详情 撤回 删除" [ref=e2994]:
|
||||||
|
- generic [ref=e2995]:
|
||||||
|
- button "详情" [ref=e2996] [cursor=pointer]:
|
||||||
|
- generic [ref=e2997]: 详情
|
||||||
|
- button "撤回" [ref=e2998] [cursor=pointer]:
|
||||||
|
- generic [ref=e2999]: 撤回
|
||||||
|
- button "删除" [ref=e3000] [cursor=pointer]:
|
||||||
|
- generic [ref=e3001]: 删除
|
||||||
|
- 'row "113 新 新昵称 ID: 4 文本 测试你是死是1 正常 8 2026-03-04 17:00:57 详情 撤回 删除" [ref=e3358]':
|
||||||
|
- cell "113" [ref=e3359]:
|
||||||
|
- generic [ref=e3004]: "113"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3360]':
|
||||||
|
- generic [ref=e3007]:
|
||||||
|
- generic [ref=e3009]: 新
|
||||||
|
- generic [ref=e3010]:
|
||||||
|
- generic [ref=e3011]: 新昵称
|
||||||
|
- generic [ref=e3012]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3013]:
|
||||||
|
- generic [ref=e3016]: 文本
|
||||||
|
- cell "测试你是死是1" [ref=e3361]:
|
||||||
|
- generic [ref=e3019]: 测试你是死是1
|
||||||
|
- cell "正常" [ref=e3020]:
|
||||||
|
- generic [ref=e3023]: 正常
|
||||||
|
- cell "8" [ref=e3362]:
|
||||||
|
- generic [ref=e3025]: "8"
|
||||||
|
- cell "2026-03-04 17:00:57" [ref=e3363]:
|
||||||
|
- generic [ref=e3027]: 2026-03-04 17:00:57
|
||||||
|
- cell "详情 撤回 删除" [ref=e3028]:
|
||||||
|
- generic [ref=e3029]:
|
||||||
|
- button "详情" [ref=e3030] [cursor=pointer]:
|
||||||
|
- generic [ref=e3031]: 详情
|
||||||
|
- button "撤回" [ref=e3032] [cursor=pointer]:
|
||||||
|
- generic [ref=e3033]: 撤回
|
||||||
|
- button "删除" [ref=e3034] [cursor=pointer]:
|
||||||
|
- generic [ref=e3035]: 删除
|
||||||
|
- 'row "112 新 新昵称 ID: 4 文本 测试消息发送 正常 9 2026-03-04 16:57:15 详情 撤回 删除" [ref=e3364]':
|
||||||
|
- cell "112" [ref=e3365]:
|
||||||
|
- generic [ref=e3038]: "112"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3366]':
|
||||||
|
- generic [ref=e3041]:
|
||||||
|
- generic [ref=e3043]: 新
|
||||||
|
- generic [ref=e3044]:
|
||||||
|
- generic [ref=e3045]: 新昵称
|
||||||
|
- generic [ref=e3046]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3047]:
|
||||||
|
- generic [ref=e3050]: 文本
|
||||||
|
- cell "测试消息发送" [ref=e3367]:
|
||||||
|
- generic [ref=e3053]: 测试消息发送
|
||||||
|
- cell "正常" [ref=e3054]:
|
||||||
|
- generic [ref=e3057]: 正常
|
||||||
|
- cell "9" [ref=e3368]:
|
||||||
|
- generic [ref=e3059]: "9"
|
||||||
|
- cell "2026-03-04 16:57:15" [ref=e3369]:
|
||||||
|
- generic [ref=e3061]: 2026-03-04 16:57:15
|
||||||
|
- cell "详情 撤回 删除" [ref=e3062]:
|
||||||
|
- generic [ref=e3063]:
|
||||||
|
- button "详情" [ref=e3064] [cursor=pointer]:
|
||||||
|
- generic [ref=e3065]: 详情
|
||||||
|
- button "撤回" [ref=e3066] [cursor=pointer]:
|
||||||
|
- generic [ref=e3067]: 撤回
|
||||||
|
- button "删除" [ref=e3068] [cursor=pointer]:
|
||||||
|
- generic [ref=e3069]: 删除
|
||||||
|
- 'row "111 新 新昵称 ID: 4 文本 21433 正常 9 2026-03-04 16:54:46 详情 撤回 删除" [ref=e3370]':
|
||||||
|
- cell "111" [ref=e3371]:
|
||||||
|
- generic [ref=e3072]: "111"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3073]':
|
||||||
|
- generic [ref=e3075]:
|
||||||
|
- generic [ref=e3077]: 新
|
||||||
|
- generic [ref=e3078]:
|
||||||
|
- generic [ref=e3079]: 新昵称
|
||||||
|
- generic [ref=e3080]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3081]:
|
||||||
|
- generic [ref=e3084]: 文本
|
||||||
|
- cell "21433" [ref=e3372]:
|
||||||
|
- generic [ref=e3087]: "21433"
|
||||||
|
- cell "正常" [ref=e3088]:
|
||||||
|
- generic [ref=e3091]: 正常
|
||||||
|
- cell "9" [ref=e3373]:
|
||||||
|
- generic [ref=e3093]: "9"
|
||||||
|
- cell "2026-03-04 16:54:46" [ref=e3374]:
|
||||||
|
- generic [ref=e3095]: 2026-03-04 16:54:46
|
||||||
|
- cell "详情 撤回 删除" [ref=e3096]:
|
||||||
|
- generic [ref=e3097]:
|
||||||
|
- button "详情" [ref=e3098] [cursor=pointer]:
|
||||||
|
- generic [ref=e3099]: 详情
|
||||||
|
- button "撤回" [ref=e3100] [cursor=pointer]:
|
||||||
|
- generic [ref=e3101]: 撤回
|
||||||
|
- button "删除" [ref=e3102] [cursor=pointer]:
|
||||||
|
- generic [ref=e3103]: 删除
|
||||||
|
- 'row "110 新 新昵称 ID: 4 文本 1111 正常 8 2026-03-04 16:54:36 详情 撤回 删除" [ref=e3375]':
|
||||||
|
- cell "110" [ref=e3376]:
|
||||||
|
- generic [ref=e3106]: "110"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3377]':
|
||||||
|
- generic [ref=e3109]:
|
||||||
|
- generic [ref=e3111]: 新
|
||||||
|
- generic [ref=e3112]:
|
||||||
|
- generic [ref=e3113]: 新昵称
|
||||||
|
- generic [ref=e3114]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3378]:
|
||||||
|
- generic [ref=e3118]: 文本
|
||||||
|
- cell "1111" [ref=e3379]:
|
||||||
|
- generic [ref=e3121]: "1111"
|
||||||
|
- cell "正常" [ref=e3122]:
|
||||||
|
- generic [ref=e3125]: 正常
|
||||||
|
- cell "8" [ref=e3126]:
|
||||||
|
- generic [ref=e3127]: "8"
|
||||||
|
- cell "2026-03-04 16:54:36" [ref=e3380]:
|
||||||
|
- generic [ref=e3129]: 2026-03-04 16:54:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e3130]:
|
||||||
|
- generic [ref=e3131]:
|
||||||
|
- button "详情" [ref=e3132] [cursor=pointer]:
|
||||||
|
- generic [ref=e3133]: 详情
|
||||||
|
- button "撤回" [ref=e3134] [cursor=pointer]:
|
||||||
|
- generic [ref=e3135]: 撤回
|
||||||
|
- button "删除" [ref=e3136] [cursor=pointer]:
|
||||||
|
- generic [ref=e3137]: 删除
|
||||||
|
- 'row "109 新 新昵称 ID: 4 文本 测试哈哈 正常 8 2026-03-04 16:54:25 详情 撤回 删除" [ref=e3381]':
|
||||||
|
- cell "109" [ref=e3382]:
|
||||||
|
- generic [ref=e3140]: "109"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e3141]':
|
||||||
|
- generic [ref=e3143]:
|
||||||
|
- generic [ref=e3145]: 新
|
||||||
|
- generic [ref=e3146]:
|
||||||
|
- generic [ref=e3147]: 新昵称
|
||||||
|
- generic [ref=e3148]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e3149]:
|
||||||
|
- generic [ref=e3152]: 文本
|
||||||
|
- cell "测试哈哈" [ref=e3383]:
|
||||||
|
- generic [ref=e3155]: 测试哈哈
|
||||||
|
- cell "正常" [ref=e3156]:
|
||||||
|
- generic [ref=e3159]: 正常
|
||||||
|
- cell "8" [ref=e3160]:
|
||||||
|
- generic [ref=e3161]: "8"
|
||||||
|
- cell "2026-03-04 16:54:25" [ref=e3384]:
|
||||||
|
- generic [ref=e3163]: 2026-03-04 16:54:25
|
||||||
|
- cell "详情 撤回 删除" [ref=e3164]:
|
||||||
|
- generic [ref=e3165]:
|
||||||
|
- button "详情" [ref=e3166] [cursor=pointer]:
|
||||||
|
- generic [ref=e3167]: 详情
|
||||||
|
- button "撤回" [ref=e3168] [cursor=pointer]:
|
||||||
|
- generic [ref=e3169]: 撤回
|
||||||
|
- button "删除" [ref=e3170] [cursor=pointer]:
|
||||||
|
- generic [ref=e3171]: 删除
|
||||||
|
- 'row "108 卜 卜锦元 ID: 7 文本 咋子爱爱在 正常 9 2026-03-04 16:54:12 详情 撤回 删除" [ref=e3385]':
|
||||||
|
- cell "108" [ref=e3386]:
|
||||||
|
- generic [ref=e3174]: "108"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3175]':
|
||||||
|
- generic [ref=e3177]:
|
||||||
|
- generic [ref=e3179]: 卜
|
||||||
|
- generic [ref=e3180]:
|
||||||
|
- generic [ref=e3181]: 卜锦元
|
||||||
|
- generic [ref=e3182]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3183]:
|
||||||
|
- generic [ref=e3186]: 文本
|
||||||
|
- cell "咋子爱爱在" [ref=e3387]:
|
||||||
|
- generic [ref=e3189]: 咋子爱爱在
|
||||||
|
- cell "正常" [ref=e3190]:
|
||||||
|
- generic [ref=e3193]: 正常
|
||||||
|
- cell "9" [ref=e3388]:
|
||||||
|
- generic [ref=e3195]: "9"
|
||||||
|
- cell "2026-03-04 16:54:12" [ref=e3389]:
|
||||||
|
- generic [ref=e3197]: 2026-03-04 16:54:12
|
||||||
|
- cell "详情 撤回 删除" [ref=e3198]:
|
||||||
|
- generic [ref=e3199]:
|
||||||
|
- button "详情" [ref=e3200] [cursor=pointer]:
|
||||||
|
- generic [ref=e3201]: 详情
|
||||||
|
- button "撤回" [ref=e3202] [cursor=pointer]:
|
||||||
|
- generic [ref=e3203]: 撤回
|
||||||
|
- button "删除" [ref=e3204] [cursor=pointer]:
|
||||||
|
- generic [ref=e3205]: 删除
|
||||||
|
- 'row "107 卜 卜锦元 ID: 7 文本 在测试 正常 9 2026-03-04 16:54:02 详情 撤回 删除" [ref=e3390]':
|
||||||
|
- cell "107" [ref=e3391]:
|
||||||
|
- generic [ref=e3208]: "107"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3209]':
|
||||||
|
- generic [ref=e3211]:
|
||||||
|
- generic [ref=e3213]: 卜
|
||||||
|
- generic [ref=e3214]:
|
||||||
|
- generic [ref=e3215]: 卜锦元
|
||||||
|
- generic [ref=e3216]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3217]:
|
||||||
|
- generic [ref=e3220]: 文本
|
||||||
|
- cell "在测试" [ref=e3392]:
|
||||||
|
- generic [ref=e3223]: 在测试
|
||||||
|
- cell "正常" [ref=e3224]:
|
||||||
|
- generic [ref=e3227]: 正常
|
||||||
|
- cell "9" [ref=e3393]:
|
||||||
|
- generic [ref=e3229]: "9"
|
||||||
|
- cell "2026-03-04 16:54:02" [ref=e3394]:
|
||||||
|
- generic [ref=e3231]: 2026-03-04 16:54:02
|
||||||
|
- cell "详情 撤回 删除" [ref=e3232]:
|
||||||
|
- generic [ref=e3233]:
|
||||||
|
- button "详情" [ref=e3234] [cursor=pointer]:
|
||||||
|
- generic [ref=e3235]: 详情
|
||||||
|
- button "撤回" [ref=e3236] [cursor=pointer]:
|
||||||
|
- generic [ref=e3237]: 撤回
|
||||||
|
- button "删除" [ref=e3238] [cursor=pointer]:
|
||||||
|
- generic [ref=e3239]: 删除
|
||||||
|
- 'row "106 卜 卜锦元 ID: 7 文本 哈哈,再次测试 正常 9 2026-03-04 16:53:53 详情 撤回 删除" [ref=e3395]':
|
||||||
|
- cell "106" [ref=e3396]:
|
||||||
|
- generic [ref=e3242]: "106"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e3243]':
|
||||||
|
- generic [ref=e3245]:
|
||||||
|
- generic [ref=e3247]: 卜
|
||||||
|
- generic [ref=e3248]:
|
||||||
|
- generic [ref=e3249]: 卜锦元
|
||||||
|
- generic [ref=e3250]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e3251]:
|
||||||
|
- generic [ref=e3254]: 文本
|
||||||
|
- cell "哈哈,再次测试" [ref=e3397]:
|
||||||
|
- generic [ref=e3257]: 哈哈,再次测试
|
||||||
|
- cell "正常" [ref=e3258]:
|
||||||
|
- generic [ref=e3261]: 正常
|
||||||
|
- cell "9" [ref=e3398]:
|
||||||
|
- generic [ref=e3263]: "9"
|
||||||
|
- cell "2026-03-04 16:53:53" [ref=e3399]:
|
||||||
|
- generic [ref=e3265]: 2026-03-04 16:53:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e3266]:
|
||||||
|
- generic [ref=e3267]:
|
||||||
|
- button "详情" [ref=e3268] [cursor=pointer]:
|
||||||
|
- generic [ref=e3269]: 详情
|
||||||
|
- button "撤回" [ref=e3270] [cursor=pointer]:
|
||||||
|
- generic [ref=e3271]: 撤回
|
||||||
|
- button "删除" [ref=e3272] [cursor=pointer]:
|
||||||
|
- generic [ref=e3273]: 删除
|
||||||
|
- generic [ref=e1311]:
|
||||||
|
- generic [ref=e1312]: 共 141 条
|
||||||
|
- generic [ref=e1315] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e1317]
|
||||||
|
- generic [ref=e1318]: 20条/页
|
||||||
|
- img [ref=e1321]
|
||||||
|
- button "上一页" [ref=e1323] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e1324]:
|
||||||
|
- listitem "第 1 页" [ref=e1325] [cursor=pointer]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e3274]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e3275] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e3276] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e3277] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e3278] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e3279] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e3280] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e1326] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e1327]:
|
||||||
|
- generic [ref=e1328]: 前往
|
||||||
|
- spinbutton "页" [ref=e1331]: "2"
|
||||||
|
- generic [ref=e1332]: 页
|
||||||
|
- alert [ref=e3455]:
|
||||||
|
- img [ref=e3457]
|
||||||
|
- paragraph [ref=e3459]: 消息已删除
|
||||||
70
.playwright-mcp/page-2026-04-17T07-33-48-060Z.yml
Normal file
70
.playwright-mcp/page-2026-04-17T07-33-48-060Z.yml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e3460]:
|
||||||
|
- generic [ref=e3461]:
|
||||||
|
- heading "消息统计" [level=2] [ref=e3462]
|
||||||
|
- radiogroup "radio-group" [ref=e3464]:
|
||||||
|
- generic [ref=e3465]:
|
||||||
|
- radio "近 7 天" [checked] [ref=e3466]
|
||||||
|
- generic [ref=e3467] [cursor=pointer]: 近 7 天
|
||||||
|
- generic [ref=e3468]:
|
||||||
|
- radio "近 30 天" [ref=e3469]
|
||||||
|
- generic [ref=e3470] [cursor=pointer]: 近 30 天
|
||||||
|
- generic [ref=e3471]:
|
||||||
|
- generic [ref=e3472]:
|
||||||
|
- img [ref=e3475]
|
||||||
|
- generic [ref=e3478]:
|
||||||
|
- generic [ref=e3479]: 消息总数
|
||||||
|
- generic [ref=e3480]: "0"
|
||||||
|
- generic [ref=e3481]:
|
||||||
|
- img [ref=e3484]
|
||||||
|
- generic [ref=e3486]:
|
||||||
|
- generic [ref=e3487]: 今日消息
|
||||||
|
- generic [ref=e3488]: "0"
|
||||||
|
- generic [ref=e3489]:
|
||||||
|
- generic [ref=e3491]: 消息趋势
|
||||||
|
- generic [ref=e3495]: 类型分布
|
||||||
|
- generic [ref=e3499]: 活跃用户 Top 10
|
||||||
|
- generic [ref=e3503]: 活跃群组 Top 10
|
||||||
|
- img [ref=e3508]
|
||||||
69
.playwright-mcp/page-2026-04-17T07-33-59-890Z.yml
Normal file
69
.playwright-mcp/page-2026-04-17T07-33-59-890Z.yml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
- generic [ref=e162]:
|
||||||
|
- complementary [ref=e163]:
|
||||||
|
- generic [ref=e164]:
|
||||||
|
- generic [ref=e165]: E
|
||||||
|
- generic [ref=e166]: EchoChat
|
||||||
|
- menubar [ref=e167]:
|
||||||
|
- menuitem "仪表盘" [ref=e168] [cursor=pointer]:
|
||||||
|
- img [ref=e170]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e172]:
|
||||||
|
- generic [ref=e173] [cursor=pointer]:
|
||||||
|
- img [ref=e175]
|
||||||
|
- generic [ref=e177]: 用户管理
|
||||||
|
- img [ref=e179]
|
||||||
|
- menuitem "联系人管理" [ref=e181]:
|
||||||
|
- generic [ref=e182] [cursor=pointer]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]: 联系人管理
|
||||||
|
- img [ref=e189]
|
||||||
|
- menuitem "群组管理" [ref=e191]:
|
||||||
|
- generic [ref=e192] [cursor=pointer]:
|
||||||
|
- img [ref=e194]
|
||||||
|
- generic [ref=e197]: 群组管理
|
||||||
|
- img [ref=e199]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e201]:
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- img [ref=e204]
|
||||||
|
- generic [ref=e206]: 消息管理
|
||||||
|
- img [ref=e208]
|
||||||
|
- menu [ref=e413]:
|
||||||
|
- menuitem "消息列表" [ref=e282] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e283] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e210] [cursor=pointer]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e214]:
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- img [ref=e218] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e222] [cursor=pointer]:
|
||||||
|
- generic [ref=e223]: 管
|
||||||
|
- generic [ref=e224]: admin_test
|
||||||
|
- img [ref=e226]
|
||||||
|
- main [ref=e228]:
|
||||||
|
- generic [ref=e3460]:
|
||||||
|
- generic [ref=e3461]:
|
||||||
|
- heading "消息统计" [level=2] [ref=e3462]
|
||||||
|
- radiogroup "radio-group" [ref=e3464]:
|
||||||
|
- generic [ref=e3465]:
|
||||||
|
- radio "近 7 天" [ref=e3466]
|
||||||
|
- generic [ref=e3467] [cursor=pointer]: 近 7 天
|
||||||
|
- generic [ref=e3468]:
|
||||||
|
- radio "近 30 天" [checked] [active] [ref=e3469]
|
||||||
|
- generic [ref=e3470] [cursor=pointer]: 近 30 天
|
||||||
|
- generic [ref=e3471]:
|
||||||
|
- generic [ref=e3472]:
|
||||||
|
- img [ref=e3475]
|
||||||
|
- generic [ref=e3478]:
|
||||||
|
- generic [ref=e3479]: 消息总数
|
||||||
|
- generic [ref=e3480]: "141"
|
||||||
|
- generic [ref=e3481]:
|
||||||
|
- img [ref=e3484]
|
||||||
|
- generic [ref=e3486]:
|
||||||
|
- generic [ref=e3487]: 今日消息
|
||||||
|
- generic [ref=e3488]: "4"
|
||||||
|
- generic [ref=e3489]:
|
||||||
|
- generic [ref=e3491]: 消息趋势
|
||||||
|
- generic [ref=e3495]: 类型分布
|
||||||
|
- generic [ref=e3499]: 活跃用户 Top 10
|
||||||
|
- generic [ref=e3503]: 活跃群组 Top 10
|
||||||
12
.playwright-mcp/page-2026-04-20T02-46-08-885Z.yml
Normal file
12
.playwright-mcp/page-2026-04-20T02-46-08-885Z.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e8]: 消息
|
||||||
|
- generic [ref=e15]:
|
||||||
|
- generic [ref=e19] [cursor=pointer]: 消息
|
||||||
|
- generic [ref=e22] [cursor=pointer]: 联系人
|
||||||
|
- generic [ref=e25] [cursor=pointer]: 会议
|
||||||
|
- generic [ref=e28] [cursor=pointer]: 我的
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- paragraph: 认证已过期或无效,请重新登录
|
||||||
21
.playwright-mcp/page-2026-04-20T02-46-40-892Z.yml
Normal file
21
.playwright-mcp/page-2026-04-20T02-46-40-892Z.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
- generic [ref=e30]:
|
||||||
|
- generic [ref=e34]: 登录
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic [ref=e41]: E
|
||||||
|
- generic [ref=e42]: EchoChat
|
||||||
|
- generic [ref=e43]: 连接无限,沟通无界
|
||||||
|
- generic [ref=e44]:
|
||||||
|
- generic [ref=e45]: 登录
|
||||||
|
- generic [ref=e46]:
|
||||||
|
- generic [ref=e47]: 账号
|
||||||
|
- textbox [ref=e51]: testuser1
|
||||||
|
- generic [ref=e52]:
|
||||||
|
- generic [ref=e53]: 密码
|
||||||
|
- generic [ref=e54]:
|
||||||
|
- textbox [active] [ref=e57]: password123
|
||||||
|
- generic [ref=e58]: 显示
|
||||||
|
- generic [ref=e60] [cursor=pointer]: 登录
|
||||||
|
- generic [ref=e61]:
|
||||||
|
- generic [ref=e62]: 还没有账号?
|
||||||
|
- generic [ref=e63]: 立即注册
|
||||||
67
.playwright-mcp/page-2026-04-20T02-47-16-017Z.yml
Normal file
67
.playwright-mcp/page-2026-04-20T02-47-16-017Z.yml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e64]:
|
||||||
|
- generic [ref=e68]: 消息
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e73]:
|
||||||
|
- generic [ref=e74]: 消息
|
||||||
|
- generic [ref=e75]:
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e79]:
|
||||||
|
- generic [ref=e80]:
|
||||||
|
- generic [ref=e82]: 全部
|
||||||
|
- generic [ref=e84]: 单聊
|
||||||
|
- generic [ref=e86]: 群聊
|
||||||
|
- generic [ref=e90]:
|
||||||
|
- generic [ref=e91]:
|
||||||
|
- generic [ref=e94]: 测
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- generic [ref=e96]:
|
||||||
|
- generic [ref=e97]: 测试用户3
|
||||||
|
- generic [ref=e98]: 3/4
|
||||||
|
- generic [ref=e99]:
|
||||||
|
- generic [ref=e101]: 已读回执测试消息
|
||||||
|
- generic [ref=e103]:
|
||||||
|
- generic [ref=e104]:
|
||||||
|
- generic [ref=e107]: 两
|
||||||
|
- generic [ref=e108]:
|
||||||
|
- generic [ref=e109]:
|
||||||
|
- generic [ref=e110]: 两人群测试
|
||||||
|
- generic [ref=e111]: 3/12
|
||||||
|
- generic [ref=e114]: 换届大会打卡还贷款
|
||||||
|
- generic [ref=e115]:
|
||||||
|
- generic [ref=e118]: 卜
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- generic [ref=e120]:
|
||||||
|
- generic [ref=e121]: 卜锦元
|
||||||
|
- generic [ref=e122]: 3/4
|
||||||
|
- generic [ref=e125]: "112121212"
|
||||||
|
- generic [ref=e126]:
|
||||||
|
- generic [ref=e129]: 测
|
||||||
|
- generic [ref=e131]:
|
||||||
|
- generic [ref=e132]: 测试用户2
|
||||||
|
- generic [ref=e133]: 3/4
|
||||||
|
- generic [ref=e134]:
|
||||||
|
- generic [ref=e137]: E
|
||||||
|
- generic [ref=e138]:
|
||||||
|
- generic [ref=e139]:
|
||||||
|
- generic [ref=e140]: EchoChat测试群
|
||||||
|
- generic [ref=e141]: 3/4
|
||||||
|
- generic [ref=e144]: 测试已读回执功能
|
||||||
|
- generic [ref=e145]:
|
||||||
|
- generic [ref=e146]:
|
||||||
|
- generic [ref=e148]:
|
||||||
|
- generic [ref=e149]: 消息
|
||||||
|
- generic [ref=e150]:
|
||||||
|
- generic [ref=e152]:
|
||||||
|
- generic [ref=e153]: 联系人
|
||||||
|
- generic [ref=e154]:
|
||||||
|
- generic [ref=e156]:
|
||||||
|
- generic [ref=e157]: 会议
|
||||||
|
- generic [ref=e158]:
|
||||||
|
- generic [ref=e160]:
|
||||||
|
- generic [ref=e161]: 我的
|
||||||
|
- generic [ref=e15]:
|
||||||
|
- generic [ref=e19] [cursor=pointer]: 消息
|
||||||
|
- generic [ref=e22] [cursor=pointer]: 联系人
|
||||||
|
- generic [ref=e25] [cursor=pointer]: 会议
|
||||||
|
- generic [ref=e28] [cursor=pointer]: 我的
|
||||||
20
.playwright-mcp/page-2026-04-20T02-47-51-613Z.yml
Normal file
20
.playwright-mcp/page-2026-04-20T02-47-51-613Z.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
- generic [ref=e165]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e170]: 卜锦元
|
||||||
|
- generic [ref=e172]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e177]:
|
||||||
|
- generic [ref=e180]: 卜
|
||||||
|
- generic [ref=e183]: "111"
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e186]:
|
||||||
|
- generic [ref=e189]: "112121212"
|
||||||
|
- generic [ref=e192]: 新
|
||||||
|
- generic [ref=e193]: 未读
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e197]:
|
||||||
|
- generic [ref=e200]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e201]
|
||||||
|
- generic [ref=e203]:
|
||||||
27
.playwright-mcp/page-2026-04-20T02-48-00-102Z.yml
Normal file
27
.playwright-mcp/page-2026-04-20T02-48-00-102Z.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
- generic [ref=e165]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e170]: 卜锦元
|
||||||
|
- generic [ref=e172]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e177]:
|
||||||
|
- generic [ref=e180]: 卜
|
||||||
|
- generic [ref=e183]: "111"
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e186]:
|
||||||
|
- generic [ref=e189]: "112121212"
|
||||||
|
- generic [ref=e192]: 新
|
||||||
|
- generic [ref=e193]: 未读
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e197]:
|
||||||
|
- generic [ref=e200]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e201]
|
||||||
|
- generic [ref=e203]:
|
||||||
|
- generic [ref=e205]:
|
||||||
|
- generic [ref=e206]:
|
||||||
|
- generic [ref=e208]:
|
||||||
|
- generic [ref=e209]: 图片
|
||||||
|
- generic [ref=e210]:
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- generic [ref=e213]: 文件
|
||||||
0
.playwright-mcp/page-2026-04-20T02-48-06-899Z.yml
Normal file
0
.playwright-mcp/page-2026-04-20T02-48-06-899Z.yml
Normal file
20
.playwright-mcp/page-2026-04-20T02-48-26-153Z.yml
Normal file
20
.playwright-mcp/page-2026-04-20T02-48-26-153Z.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
- generic [ref=e165]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e168]:
|
||||||
|
- generic [ref=e170]: 卜锦元
|
||||||
|
- generic [ref=e172]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e177]:
|
||||||
|
- generic [ref=e180]: 卜
|
||||||
|
- generic [ref=e183]: "111"
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e186]:
|
||||||
|
- generic [ref=e189]: "112121212"
|
||||||
|
- generic [ref=e192]: 新
|
||||||
|
- generic [ref=e193]: 未读
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e197]:
|
||||||
|
- generic [ref=e200]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e201]
|
||||||
|
- generic [ref=e203]:
|
||||||
20
.playwright-mcp/page-2026-04-20T02-49-30-023Z.yml
Normal file
20
.playwright-mcp/page-2026-04-20T02-49-30-023Z.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
- generic [ref=e217]:
|
||||||
|
- generic [ref=e218]:
|
||||||
|
- generic [ref=e220]:
|
||||||
|
- generic [ref=e222]: 卜锦元
|
||||||
|
- generic [ref=e224]:
|
||||||
|
- generic [ref=e228]:
|
||||||
|
- generic [ref=e229]:
|
||||||
|
- generic [ref=e232]: 卜
|
||||||
|
- generic [ref=e235]: "111"
|
||||||
|
- generic [ref=e237]:
|
||||||
|
- generic [ref=e238]:
|
||||||
|
- generic [ref=e241]: "112121212"
|
||||||
|
- generic [ref=e244]: 新
|
||||||
|
- generic [ref=e245]: 未读
|
||||||
|
- generic [ref=e247]:
|
||||||
|
- generic [ref=e249]:
|
||||||
|
- generic [ref=e252]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e253]
|
||||||
|
- generic [ref=e255]:
|
||||||
20
.playwright-mcp/page-2026-04-20T02-49-38-283Z.yml
Normal file
20
.playwright-mcp/page-2026-04-20T02-49-38-283Z.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic [ref=e42]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e43]
|
||||||
|
- generic [ref=e45]:
|
||||||
27
.playwright-mcp/page-2026-04-20T02-49-48-206Z.yml
Normal file
27
.playwright-mcp/page-2026-04-20T02-49-48-206Z.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic [ref=e42]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e43]
|
||||||
|
- generic [ref=e45]:
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- generic [ref=e48]:
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]: 图片
|
||||||
|
- generic [ref=e52]:
|
||||||
|
- generic [ref=e54]:
|
||||||
|
- generic [ref=e55]: 文件
|
||||||
23
.playwright-mcp/page-2026-04-20T02-49-57-898Z.yml
Normal file
23
.playwright-mcp/page-2026-04-20T02-49-57-898Z.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e57]:
|
||||||
|
- generic [ref=e62]: 新
|
||||||
|
- generic [ref=e63]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic [ref=e42]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e43]
|
||||||
|
- generic [ref=e45]:
|
||||||
23
.playwright-mcp/page-2026-04-20T02-50-04-038Z.yml
Normal file
23
.playwright-mcp/page-2026-04-20T02-50-04-038Z.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e57]:
|
||||||
|
- generic [ref=e62]: 新
|
||||||
|
- generic [ref=e63]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic [ref=e42]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e43]
|
||||||
|
- generic [ref=e45]:
|
||||||
67
.playwright-mcp/page-2026-04-20T02-52-51-163Z.yml
Normal file
67
.playwright-mcp/page-2026-04-20T02-52-51-163Z.yml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- generic [ref=e42]: 消息
|
||||||
|
- generic [ref=e46]:
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- generic [ref=e48]: 消息
|
||||||
|
- generic [ref=e49]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- generic [ref=e53]:
|
||||||
|
- generic [ref=e54]:
|
||||||
|
- generic [ref=e56]: 全部
|
||||||
|
- generic [ref=e58]: 单聊
|
||||||
|
- generic [ref=e60]: 群聊
|
||||||
|
- generic [ref=e64]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]: 测
|
||||||
|
- generic [ref=e69]:
|
||||||
|
- generic [ref=e70]:
|
||||||
|
- generic [ref=e71]: 测试用户3
|
||||||
|
- generic [ref=e72]: 3/4
|
||||||
|
- generic [ref=e73]:
|
||||||
|
- generic [ref=e75]: 已读回执测试消息
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e78]:
|
||||||
|
- generic [ref=e81]: 卜
|
||||||
|
- generic [ref=e82]:
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]: 卜锦元
|
||||||
|
- generic [ref=e85]: 10:49
|
||||||
|
- generic [ref=e88]: "[图片]"
|
||||||
|
- generic [ref=e89]:
|
||||||
|
- generic [ref=e92]: 两
|
||||||
|
- generic [ref=e93]:
|
||||||
|
- generic [ref=e94]:
|
||||||
|
- generic [ref=e95]: 两人群测试
|
||||||
|
- generic [ref=e96]: 3/12
|
||||||
|
- generic [ref=e99]: 换届大会打卡还贷款
|
||||||
|
- generic [ref=e100]:
|
||||||
|
- generic [ref=e103]: 测
|
||||||
|
- generic [ref=e105]:
|
||||||
|
- generic [ref=e106]: 测试用户2
|
||||||
|
- generic [ref=e107]: 3/4
|
||||||
|
- generic [ref=e108]:
|
||||||
|
- generic [ref=e111]: E
|
||||||
|
- generic [ref=e112]:
|
||||||
|
- generic [ref=e113]:
|
||||||
|
- generic [ref=e114]: EchoChat测试群
|
||||||
|
- generic [ref=e115]: 3/4
|
||||||
|
- generic [ref=e118]: 测试已读回执功能
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- generic [ref=e120]:
|
||||||
|
- generic [ref=e122]:
|
||||||
|
- generic [ref=e123]: 消息
|
||||||
|
- generic [ref=e124]:
|
||||||
|
- generic [ref=e126]:
|
||||||
|
- generic [ref=e127]: 联系人
|
||||||
|
- generic [ref=e128]:
|
||||||
|
- generic [ref=e130]:
|
||||||
|
- generic [ref=e131]: 会议
|
||||||
|
- generic [ref=e132]:
|
||||||
|
- generic [ref=e134]:
|
||||||
|
- generic [ref=e135]: 我的
|
||||||
|
- generic [ref=e137]:
|
||||||
|
- generic [ref=e141] [cursor=pointer]: 消息
|
||||||
|
- generic [ref=e144] [cursor=pointer]: 联系人
|
||||||
|
- generic [ref=e147] [cursor=pointer]: 会议
|
||||||
|
- generic [ref=e150] [cursor=pointer]: 我的
|
||||||
23
.playwright-mcp/page-2026-04-20T02-52-55-725Z.yml
Normal file
23
.playwright-mcp/page-2026-04-20T02-52-55-725Z.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]:
|
||||||
|
- generic [ref=e158]:
|
||||||
|
- generic [ref=e160]: 卜锦元
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e167]:
|
||||||
|
- generic [ref=e170]: 卜
|
||||||
|
- generic [ref=e173]: "111"
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e179]: "112121212"
|
||||||
|
- generic [ref=e182]: 新
|
||||||
|
- generic [ref=e183]: 未读
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e190]: 新
|
||||||
|
- generic [ref=e191]: 未读
|
||||||
|
- generic [ref=e193]:
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e199]
|
||||||
|
- generic [ref=e201]:
|
||||||
23
.playwright-mcp/page-2026-04-20T02-53-00-659Z.yml
Normal file
23
.playwright-mcp/page-2026-04-20T02-53-00-659Z.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]:
|
||||||
|
- generic [ref=e158]:
|
||||||
|
- generic [ref=e160]: 卜锦元
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e167]:
|
||||||
|
- generic [ref=e170]: 卜
|
||||||
|
- generic [ref=e173]: "111"
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e179]: "112121212"
|
||||||
|
- generic [ref=e182]: 新
|
||||||
|
- generic [ref=e183]: 未读
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e190]: 新
|
||||||
|
- generic [ref=e191]: 未读
|
||||||
|
- generic [ref=e193]:
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e199]
|
||||||
|
- generic [ref=e201]:
|
||||||
26
.playwright-mcp/page-2026-04-20T02-53-20-347Z.yml
Normal file
26
.playwright-mcp/page-2026-04-20T02-53-20-347Z.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]:
|
||||||
|
- generic [ref=e158]:
|
||||||
|
- generic [ref=e160]: 卜锦元
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e167]:
|
||||||
|
- generic [ref=e170]: 卜
|
||||||
|
- generic [ref=e173]: "111"
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e179]: "112121212"
|
||||||
|
- generic [ref=e182]: 新
|
||||||
|
- generic [ref=e183]: 未读
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e190]: 新
|
||||||
|
- generic [ref=e191]: 未读
|
||||||
|
- generic [ref=e213]:
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e193]:
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e199]
|
||||||
|
- generic [ref=e201]:
|
||||||
26
.playwright-mcp/page-2026-04-20T02-53-27-333Z.yml
Normal file
26
.playwright-mcp/page-2026-04-20T02-53-27-333Z.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]:
|
||||||
|
- generic [ref=e158]:
|
||||||
|
- generic [ref=e160]: 卜锦元
|
||||||
|
- generic [ref=e162]:
|
||||||
|
- generic [ref=e166]:
|
||||||
|
- generic [ref=e167]:
|
||||||
|
- generic [ref=e170]: 卜
|
||||||
|
- generic [ref=e173]: "111"
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e179]: "112121212"
|
||||||
|
- generic [ref=e182]: 新
|
||||||
|
- generic [ref=e183]: 未读
|
||||||
|
- generic [ref=e185]:
|
||||||
|
- generic [ref=e190]: 新
|
||||||
|
- generic [ref=e191]: 未读
|
||||||
|
- generic [ref=e213]:
|
||||||
|
- generic [ref=e218]: 新
|
||||||
|
- generic [ref=e219]: 未读
|
||||||
|
- generic [ref=e193]:
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e199]
|
||||||
|
- generic [ref=e201]:
|
||||||
38
.playwright-mcp/page-2026-04-20T02-55-27-223Z.yml
Normal file
38
.playwright-mcp/page-2026-04-20T02-55-27-223Z.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- generic [ref=e39]:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e42]: 新
|
||||||
|
- generic [ref=e43]: 未读
|
||||||
|
- generic [ref=e45]:
|
||||||
|
- generic [ref=e46]:
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e50]: 新
|
||||||
|
- generic [ref=e51]: 未读
|
||||||
|
- generic [ref=e53]:
|
||||||
|
- generic [ref=e55]:
|
||||||
|
- generic [ref=e58]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e59]
|
||||||
|
- generic [ref=e61]:
|
||||||
30
.playwright-mcp/page-2026-04-20T02-57-08-451Z.yml
Normal file
30
.playwright-mcp/page-2026-04-20T02-57-08-451Z.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
35
.playwright-mcp/page-2026-04-20T02-57-29-021Z.yml
Normal file
35
.playwright-mcp/page-2026-04-20T02-57-29-021Z.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e90]
|
||||||
|
- generic [ref=e93]: 新
|
||||||
|
- generic [ref=e94]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
35
.playwright-mcp/page-2026-04-20T02-57-35-922Z.yml
Normal file
35
.playwright-mcp/page-2026-04-20T02-57-35-922Z.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e90]
|
||||||
|
- generic [ref=e93]: 新
|
||||||
|
- generic [ref=e94]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
44
.playwright-mcp/page-2026-04-20T02-58-32-254Z.yml
Normal file
44
.playwright-mcp/page-2026-04-20T02-58-32-254Z.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e90]
|
||||||
|
- generic [ref=e93]: 新
|
||||||
|
- generic [ref=e94]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- generic [ref=e97]:
|
||||||
|
- img [ref=e103]
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- img [ref=e105] [cursor=pointer]
|
||||||
44
.playwright-mcp/page-2026-04-20T02-59-11-280Z.yml
Normal file
44
.playwright-mcp/page-2026-04-20T02-59-11-280Z.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e90]
|
||||||
|
- generic [ref=e93]: 新
|
||||||
|
- generic [ref=e94]: 未读
|
||||||
|
- generic [ref=e118]:
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- generic [ref=e121] [cursor=pointer]:
|
||||||
|
- generic [ref=e123]: 文件
|
||||||
|
- generic [ref=e124]:
|
||||||
|
- generic [ref=e125]: file-1776653949262
|
||||||
|
- generic [ref=e126]: 48 B
|
||||||
|
- generic [ref=e129]: 新
|
||||||
|
- generic [ref=e130]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
44
.playwright-mcp/page-2026-04-20T02-59-17-550Z.yml
Normal file
44
.playwright-mcp/page-2026-04-20T02-59-17-550Z.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e83]:
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- img [ref=e90]
|
||||||
|
- generic [ref=e93]: 新
|
||||||
|
- generic [ref=e94]: 未读
|
||||||
|
- generic [ref=e118]:
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- generic [ref=e121] [cursor=pointer]:
|
||||||
|
- generic [ref=e123]: 文件
|
||||||
|
- generic [ref=e124]:
|
||||||
|
- generic [ref=e125]: file-1776653949262
|
||||||
|
- generic [ref=e126]: 48 B
|
||||||
|
- generic [ref=e129]: 新
|
||||||
|
- generic [ref=e130]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e65]:
|
||||||
|
- generic [ref=e68]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e69]
|
||||||
|
- generic [ref=e71]:
|
||||||
44
.playwright-mcp/page-2026-04-20T03-00-22-053Z.yml
Normal file
44
.playwright-mcp/page-2026-04-20T03-00-22-053Z.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e64]:
|
||||||
|
- img [ref=e70]
|
||||||
|
- generic [ref=e73]: 新
|
||||||
|
- generic [ref=e74]: 未读
|
||||||
|
- generic [ref=e76]:
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e79] [cursor=pointer]:
|
||||||
|
- generic [ref=e81]: 文件
|
||||||
|
- generic [ref=e82]:
|
||||||
|
- generic [ref=e83]: file-1776653949262
|
||||||
|
- generic [ref=e84]: 48 B
|
||||||
|
- generic [ref=e87]: 新
|
||||||
|
- generic [ref=e88]: 未读
|
||||||
|
- generic [ref=e90]:
|
||||||
|
- generic [ref=e92]:
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e96]
|
||||||
|
- generic [ref=e98]:
|
||||||
53
.playwright-mcp/page-2026-04-20T03-00-44-373Z.yml
Normal file
53
.playwright-mcp/page-2026-04-20T03-00-44-373Z.yml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e64]:
|
||||||
|
- img [ref=e70]
|
||||||
|
- generic [ref=e73]: 新
|
||||||
|
- generic [ref=e74]: 未读
|
||||||
|
- generic [ref=e76]:
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e79] [cursor=pointer]:
|
||||||
|
- generic [ref=e81]: 文件
|
||||||
|
- generic [ref=e82]:
|
||||||
|
- generic [ref=e83]: file-1776653949262
|
||||||
|
- generic [ref=e84]: 48 B
|
||||||
|
- generic [ref=e87]: 新
|
||||||
|
- generic [ref=e88]: 未读
|
||||||
|
- generic [ref=e110]:
|
||||||
|
- generic [ref=e111]:
|
||||||
|
- generic [ref=e113] [cursor=pointer]:
|
||||||
|
- generic [ref=e115]: 文件
|
||||||
|
- generic [ref=e116]:
|
||||||
|
- generic [ref=e117]: test-doc.txt
|
||||||
|
- generic [ref=e118]: 48 B
|
||||||
|
- generic [ref=e121]: 新
|
||||||
|
- generic [ref=e122]: 未读
|
||||||
|
- generic [ref=e90]:
|
||||||
|
- generic [ref=e92]:
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e96]
|
||||||
|
- generic [ref=e98]:
|
||||||
53
.playwright-mcp/page-2026-04-20T03-00-49-938Z.yml
Normal file
53
.playwright-mcp/page-2026-04-20T03-00-49-938Z.yml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
- generic [ref=e7]:
|
||||||
|
- generic [ref=e8]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e12]: 卜锦元
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]:
|
||||||
|
- generic [ref=e22]: 卜
|
||||||
|
- generic [ref=e25]: "111"
|
||||||
|
- generic [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e31]: "112121212"
|
||||||
|
- generic [ref=e34]: 新
|
||||||
|
- generic [ref=e35]: 未读
|
||||||
|
- generic [ref=e37]:
|
||||||
|
- generic [ref=e38]:
|
||||||
|
- img [ref=e44]
|
||||||
|
- generic [ref=e47]: 新
|
||||||
|
- generic [ref=e48]: 未读
|
||||||
|
- generic [ref=e50]:
|
||||||
|
- generic [ref=e51]:
|
||||||
|
- img [ref=e57]
|
||||||
|
- generic [ref=e60]: 新
|
||||||
|
- generic [ref=e61]: 未读
|
||||||
|
- generic [ref=e63]:
|
||||||
|
- generic [ref=e64]:
|
||||||
|
- img [ref=e70]
|
||||||
|
- generic [ref=e73]: 新
|
||||||
|
- generic [ref=e74]: 未读
|
||||||
|
- generic [ref=e76]:
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e79] [cursor=pointer]:
|
||||||
|
- generic [ref=e81]: 文件
|
||||||
|
- generic [ref=e82]:
|
||||||
|
- generic [ref=e83]: file-1776653949262
|
||||||
|
- generic [ref=e84]: 48 B
|
||||||
|
- generic [ref=e87]: 新
|
||||||
|
- generic [ref=e88]: 未读
|
||||||
|
- generic [ref=e110]:
|
||||||
|
- generic [ref=e111]:
|
||||||
|
- generic [ref=e113] [cursor=pointer]:
|
||||||
|
- generic [ref=e115]: 文件
|
||||||
|
- generic [ref=e116]:
|
||||||
|
- generic [ref=e117]: test-doc.txt
|
||||||
|
- generic [ref=e118]: 48 B
|
||||||
|
- generic [ref=e121]: 新
|
||||||
|
- generic [ref=e122]: 未读
|
||||||
|
- generic [ref=e90]:
|
||||||
|
- generic [ref=e92]:
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- generic: 输入消息...
|
||||||
|
- textbox [ref=e96]
|
||||||
|
- generic [ref=e98]:
|
||||||
22
.playwright-mcp/page-2026-04-20T03-01-07-399Z.yml
Normal file
22
.playwright-mcp/page-2026-04-20T03-01-07-399Z.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
- generic [ref=e3]:
|
||||||
|
- generic [ref=e4]:
|
||||||
|
- generic [ref=e5]:
|
||||||
|
- generic [ref=e6]: E
|
||||||
|
- heading "EchoChat 管理后台" [level=1] [ref=e7]
|
||||||
|
- paragraph [ref=e8]: 管理员专用,请使用管理员账号登录
|
||||||
|
- generic [ref=e9]:
|
||||||
|
- generic [ref=e10]:
|
||||||
|
- generic [ref=e11]: "*账号"
|
||||||
|
- generic [ref=e14]:
|
||||||
|
- img [ref=e17]
|
||||||
|
- textbox "*账号" [ref=e19]:
|
||||||
|
- /placeholder: 请输入管理员账号
|
||||||
|
- generic [ref=e20]:
|
||||||
|
- generic [ref=e21]: "*密码"
|
||||||
|
- generic [ref=e24]:
|
||||||
|
- img [ref=e27]
|
||||||
|
- textbox "*密码" [ref=e30]:
|
||||||
|
- /placeholder: 请输入密码
|
||||||
|
- button "登 录" [ref=e33] [cursor=pointer]:
|
||||||
|
- generic [ref=e34]: 登 录
|
||||||
|
- paragraph [ref=e36]: EchoChat © 2026 · 实时音视频通讯平台
|
||||||
70
.playwright-mcp/page-2026-04-20T03-01-27-153Z.yml
Normal file
70
.playwright-mcp/page-2026-04-20T03-01-27-153Z.yml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- complementary [ref=e48]:
|
||||||
|
- generic [ref=e49]:
|
||||||
|
- generic [ref=e50]: E
|
||||||
|
- generic [ref=e51]: EchoChat
|
||||||
|
- menubar [ref=e52]:
|
||||||
|
- menuitem "仪表盘" [ref=e53] [cursor=pointer]:
|
||||||
|
- img [ref=e55]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e57]:
|
||||||
|
- generic [ref=e58] [cursor=pointer]:
|
||||||
|
- img [ref=e60]
|
||||||
|
- generic [ref=e62]: 用户管理
|
||||||
|
- img [ref=e64]
|
||||||
|
- menuitem "联系人管理" [ref=e66]:
|
||||||
|
- generic [ref=e67] [cursor=pointer]:
|
||||||
|
- img [ref=e69]
|
||||||
|
- generic [ref=e72]: 联系人管理
|
||||||
|
- img [ref=e74]
|
||||||
|
- menuitem "群组管理" [ref=e76]:
|
||||||
|
- generic [ref=e77] [cursor=pointer]:
|
||||||
|
- img [ref=e79]
|
||||||
|
- generic [ref=e82]: 群组管理
|
||||||
|
- img [ref=e84]
|
||||||
|
- menuitem "消息管理" [ref=e86]:
|
||||||
|
- generic [ref=e87] [cursor=pointer]:
|
||||||
|
- img [ref=e89]
|
||||||
|
- generic [ref=e91]: 消息管理
|
||||||
|
- img [ref=e93]
|
||||||
|
- menuitem "在线监控" [ref=e95] [cursor=pointer]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e99]:
|
||||||
|
- generic [ref=e100]:
|
||||||
|
- img [ref=e103] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e107] [cursor=pointer]:
|
||||||
|
- generic [ref=e108]: 管
|
||||||
|
- generic [ref=e109]: admin_test
|
||||||
|
- img [ref=e111]
|
||||||
|
- main [ref=e113]:
|
||||||
|
- generic [ref=e114]:
|
||||||
|
- heading "仪表盘" [level=2] [ref=e115]
|
||||||
|
- generic [ref=e116]:
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- img [ref=e122]
|
||||||
|
- generic [ref=e124]: "--"
|
||||||
|
- generic [ref=e125]: 总用户数
|
||||||
|
- generic [ref=e128]:
|
||||||
|
- img [ref=e131]
|
||||||
|
- generic [ref=e134]: "--"
|
||||||
|
- generic [ref=e135]: 在线用户
|
||||||
|
- generic [ref=e138]:
|
||||||
|
- img [ref=e141]
|
||||||
|
- generic [ref=e143]: "--"
|
||||||
|
- generic [ref=e144]: 今日会议
|
||||||
|
- generic [ref=e147]:
|
||||||
|
- img [ref=e150]
|
||||||
|
- generic [ref=e153]: "--"
|
||||||
|
- generic [ref=e154]: 系统消息
|
||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]: 开发进度
|
||||||
|
- generic [ref=e157]:
|
||||||
|
- paragraph [ref=e158]:
|
||||||
|
- text: "Phase 1: 基础设施与用户认证模块 —"
|
||||||
|
- generic [ref=e160]: 进行中
|
||||||
|
- paragraph [ref=e161]: 更多数据面板将在后续阶段中完善(IM 统计、会议统计、系统监控等)
|
||||||
|
- alert [ref=e162]:
|
||||||
|
- img [ref=e164]
|
||||||
|
- paragraph [ref=e166]: 登录成功
|
||||||
66
.playwright-mcp/page-2026-04-20T03-01-32-060Z.yml
Normal file
66
.playwright-mcp/page-2026-04-20T03-01-32-060Z.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
- generic [ref=e47]:
|
||||||
|
- complementary [ref=e48]:
|
||||||
|
- generic [ref=e49]:
|
||||||
|
- generic [ref=e50]: E
|
||||||
|
- generic [ref=e51]: EchoChat
|
||||||
|
- menubar [ref=e52]:
|
||||||
|
- menuitem "仪表盘" [ref=e53] [cursor=pointer]:
|
||||||
|
- img [ref=e55]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e57]:
|
||||||
|
- generic [ref=e58] [cursor=pointer]:
|
||||||
|
- img [ref=e60]
|
||||||
|
- generic [ref=e62]: 用户管理
|
||||||
|
- img [ref=e64]
|
||||||
|
- menuitem "联系人管理" [ref=e66]:
|
||||||
|
- generic [ref=e67] [cursor=pointer]:
|
||||||
|
- img [ref=e69]
|
||||||
|
- generic [ref=e72]: 联系人管理
|
||||||
|
- img [ref=e74]
|
||||||
|
- menuitem "群组管理" [ref=e76]:
|
||||||
|
- generic [ref=e77] [cursor=pointer]:
|
||||||
|
- img [ref=e79]
|
||||||
|
- generic [ref=e82]: 群组管理
|
||||||
|
- img [ref=e84]
|
||||||
|
- menuitem "消息管理" [ref=e86]:
|
||||||
|
- generic [ref=e87] [cursor=pointer]:
|
||||||
|
- img [ref=e89]
|
||||||
|
- generic [ref=e91]: 消息管理
|
||||||
|
- img [ref=e93]
|
||||||
|
- menuitem "在线监控" [ref=e95] [cursor=pointer]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e99]:
|
||||||
|
- generic [ref=e100]:
|
||||||
|
- img [ref=e103] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e107] [cursor=pointer]:
|
||||||
|
- generic [ref=e108]: 管
|
||||||
|
- generic [ref=e109]: admin_test
|
||||||
|
- img [ref=e111]
|
||||||
|
- main [ref=e113]:
|
||||||
|
- generic [ref=e114]:
|
||||||
|
- heading "仪表盘" [level=2] [ref=e115]
|
||||||
|
- generic [ref=e116]:
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- img [ref=e122]
|
||||||
|
- generic [ref=e124]: "--"
|
||||||
|
- generic [ref=e125]: 总用户数
|
||||||
|
- generic [ref=e128]:
|
||||||
|
- img [ref=e131]
|
||||||
|
- generic [ref=e134]: "--"
|
||||||
|
- generic [ref=e135]: 在线用户
|
||||||
|
- generic [ref=e138]:
|
||||||
|
- img [ref=e141]
|
||||||
|
- generic [ref=e143]: "--"
|
||||||
|
- generic [ref=e144]: 今日会议
|
||||||
|
- generic [ref=e147]:
|
||||||
|
- img [ref=e150]
|
||||||
|
- generic [ref=e153]: "--"
|
||||||
|
- generic [ref=e154]: 系统消息
|
||||||
|
- generic [ref=e155]:
|
||||||
|
- generic [ref=e156]: 开发进度
|
||||||
|
- generic [ref=e157]:
|
||||||
|
- paragraph [ref=e158]:
|
||||||
|
- text: "Phase 1: 基础设施与用户认证模块 —"
|
||||||
|
- generic [ref=e160]: 进行中
|
||||||
|
- paragraph [ref=e161]: 更多数据面板将在后续阶段中完善(IM 统计、会议统计、系统监控等)
|
||||||
671
.playwright-mcp/page-2026-04-20T03-01-39-056Z.yml
Normal file
671
.playwright-mcp/page-2026-04-20T03-01-39-056Z.yml
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
- generic [ref=e47]:
|
||||||
|
- complementary [ref=e48]:
|
||||||
|
- generic [ref=e49]:
|
||||||
|
- generic [ref=e50]: E
|
||||||
|
- generic [ref=e51]: EchoChat
|
||||||
|
- menubar [ref=e52]:
|
||||||
|
- menuitem "仪表盘" [ref=e53] [cursor=pointer]:
|
||||||
|
- img [ref=e55]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e57]:
|
||||||
|
- generic [ref=e58] [cursor=pointer]:
|
||||||
|
- img [ref=e60]
|
||||||
|
- generic [ref=e62]: 用户管理
|
||||||
|
- img [ref=e64]
|
||||||
|
- menuitem "联系人管理" [ref=e66]:
|
||||||
|
- generic [ref=e67] [cursor=pointer]:
|
||||||
|
- img [ref=e69]
|
||||||
|
- generic [ref=e72]: 联系人管理
|
||||||
|
- img [ref=e74]
|
||||||
|
- menuitem "群组管理" [ref=e76]:
|
||||||
|
- generic [ref=e77] [cursor=pointer]:
|
||||||
|
- img [ref=e79]
|
||||||
|
- generic [ref=e82]: 群组管理
|
||||||
|
- img [ref=e84]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e86]:
|
||||||
|
- generic [ref=e87] [cursor=pointer]:
|
||||||
|
- img [ref=e89]
|
||||||
|
- generic [ref=e91]: 消息管理
|
||||||
|
- img [ref=e93]
|
||||||
|
- menu [ref=e167]:
|
||||||
|
- menuitem "消息列表" [ref=e168] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e169] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e95] [cursor=pointer]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e99]:
|
||||||
|
- generic [ref=e100]:
|
||||||
|
- img [ref=e103] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e107] [cursor=pointer]:
|
||||||
|
- generic [ref=e108]: 管
|
||||||
|
- generic [ref=e109]: admin_test
|
||||||
|
- img [ref=e111]
|
||||||
|
- main [ref=e113]:
|
||||||
|
- generic [ref=e170]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e172]
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e177]: 关键词
|
||||||
|
- generic [ref=e180]:
|
||||||
|
- img [ref=e183]
|
||||||
|
- textbox "关键词" [ref=e185]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e186]:
|
||||||
|
- generic [ref=e187]: 类型
|
||||||
|
- generic [ref=e190] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e192]
|
||||||
|
- generic [ref=e193]: 全部
|
||||||
|
- img [ref=e196]
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic [ref=e199]: 状态
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e204]
|
||||||
|
- generic [ref=e205]: 全部
|
||||||
|
- img [ref=e208]
|
||||||
|
- generic [ref=e210]:
|
||||||
|
- generic [ref=e211]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e215]
|
||||||
|
- generic [ref=e216]:
|
||||||
|
- generic [ref=e217]: 时间范围
|
||||||
|
- generic [ref=e219]:
|
||||||
|
- img [ref=e221]
|
||||||
|
- combobox "时间范围" [ref=e223]
|
||||||
|
- generic [ref=e224]: 至
|
||||||
|
- combobox "结束日期" [ref=e225]
|
||||||
|
- generic [ref=e227]:
|
||||||
|
- button "搜索" [ref=e228] [cursor=pointer]:
|
||||||
|
- generic [ref=e229]: 搜索
|
||||||
|
- button "重置" [ref=e230] [cursor=pointer]:
|
||||||
|
- generic [ref=e231]: 重置
|
||||||
|
- generic [ref=e233]:
|
||||||
|
- generic [ref=e235]:
|
||||||
|
- table [ref=e237]:
|
||||||
|
- rowgroup [ref=e247]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e248]:
|
||||||
|
- columnheader "ID" [ref=e249]:
|
||||||
|
- generic [ref=e250]: ID
|
||||||
|
- columnheader "发送者" [ref=e251]:
|
||||||
|
- generic [ref=e252]: 发送者
|
||||||
|
- columnheader "类型" [ref=e253]:
|
||||||
|
- generic [ref=e254]: 类型
|
||||||
|
- columnheader "内容" [ref=e255]:
|
||||||
|
- generic [ref=e256]: 内容
|
||||||
|
- columnheader "状态" [ref=e257]:
|
||||||
|
- generic [ref=e258]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e259]:
|
||||||
|
- generic [ref=e260]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e261]:
|
||||||
|
- generic [ref=e262]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e263]:
|
||||||
|
- generic [ref=e264]: 操作
|
||||||
|
- table [ref=e269]:
|
||||||
|
- rowgroup [ref=e279]:
|
||||||
|
- 'row "150 新 新昵称 ID: 4 文件 [文件] 正常 9 2026-04-20 11:00:42 详情 撤回 删除" [ref=e280]':
|
||||||
|
- cell "150" [ref=e281]:
|
||||||
|
- generic [ref=e282]: "150"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e283]':
|
||||||
|
- generic [ref=e285]:
|
||||||
|
- generic [ref=e287]: 新
|
||||||
|
- generic [ref=e288]:
|
||||||
|
- generic [ref=e289]: 新昵称
|
||||||
|
- generic [ref=e290]: "ID: 4"
|
||||||
|
- cell "文件" [ref=e291]:
|
||||||
|
- generic [ref=e294]: 文件
|
||||||
|
- cell "[文件]" [ref=e295]:
|
||||||
|
- generic [ref=e297]: "[文件]"
|
||||||
|
- cell "正常" [ref=e298]:
|
||||||
|
- generic [ref=e301]: 正常
|
||||||
|
- cell "9" [ref=e302]:
|
||||||
|
- generic [ref=e303]: "9"
|
||||||
|
- cell "2026-04-20 11:00:42" [ref=e304]:
|
||||||
|
- generic [ref=e305]: 2026-04-20 11:00:42
|
||||||
|
- cell "详情 撤回 删除" [ref=e306]:
|
||||||
|
- generic [ref=e307]:
|
||||||
|
- button "详情" [ref=e308] [cursor=pointer]:
|
||||||
|
- generic [ref=e309]: 详情
|
||||||
|
- button "撤回" [ref=e310] [cursor=pointer]:
|
||||||
|
- generic [ref=e311]: 撤回
|
||||||
|
- button "删除" [ref=e312] [cursor=pointer]:
|
||||||
|
- generic [ref=e313]: 删除
|
||||||
|
- 'row "149 新 新昵称 ID: 4 文件 [文件] 正常 9 2026-04-20 10:59:09 详情 撤回 删除" [ref=e314]':
|
||||||
|
- cell "149" [ref=e315]:
|
||||||
|
- generic [ref=e316]: "149"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e317]':
|
||||||
|
- generic [ref=e319]:
|
||||||
|
- generic [ref=e321]: 新
|
||||||
|
- generic [ref=e322]:
|
||||||
|
- generic [ref=e323]: 新昵称
|
||||||
|
- generic [ref=e324]: "ID: 4"
|
||||||
|
- cell "文件" [ref=e325]:
|
||||||
|
- generic [ref=e328]: 文件
|
||||||
|
- cell "[文件]" [ref=e329]:
|
||||||
|
- generic [ref=e331]: "[文件]"
|
||||||
|
- cell "正常" [ref=e332]:
|
||||||
|
- generic [ref=e335]: 正常
|
||||||
|
- cell "9" [ref=e336]:
|
||||||
|
- generic [ref=e337]: "9"
|
||||||
|
- cell "2026-04-20 10:59:09" [ref=e338]:
|
||||||
|
- generic [ref=e339]: 2026-04-20 10:59:09
|
||||||
|
- cell "详情 撤回 删除" [ref=e340]:
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- button "详情" [ref=e342] [cursor=pointer]:
|
||||||
|
- generic [ref=e343]: 详情
|
||||||
|
- button "撤回" [ref=e344] [cursor=pointer]:
|
||||||
|
- generic [ref=e345]: 撤回
|
||||||
|
- button "删除" [ref=e346] [cursor=pointer]:
|
||||||
|
- generic [ref=e347]: 删除
|
||||||
|
- 'row "148 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:57:27 详情 撤回 删除" [ref=e348]':
|
||||||
|
- cell "148" [ref=e349]:
|
||||||
|
- generic [ref=e350]: "148"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e351]':
|
||||||
|
- generic [ref=e353]:
|
||||||
|
- generic [ref=e355]: 新
|
||||||
|
- generic [ref=e356]:
|
||||||
|
- generic [ref=e357]: 新昵称
|
||||||
|
- generic [ref=e358]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e359]:
|
||||||
|
- generic [ref=e362]: 图片
|
||||||
|
- cell "[图片]" [ref=e363]:
|
||||||
|
- generic [ref=e365]: "[图片]"
|
||||||
|
- cell "正常" [ref=e366]:
|
||||||
|
- generic [ref=e369]: 正常
|
||||||
|
- cell "9" [ref=e370]:
|
||||||
|
- generic [ref=e371]: "9"
|
||||||
|
- cell "2026-04-20 10:57:27" [ref=e372]:
|
||||||
|
- generic [ref=e373]: 2026-04-20 10:57:27
|
||||||
|
- cell "详情 撤回 删除" [ref=e374]:
|
||||||
|
- generic [ref=e375]:
|
||||||
|
- button "详情" [ref=e376] [cursor=pointer]:
|
||||||
|
- generic [ref=e377]: 详情
|
||||||
|
- button "撤回" [ref=e378] [cursor=pointer]:
|
||||||
|
- generic [ref=e379]: 撤回
|
||||||
|
- button "删除" [ref=e380] [cursor=pointer]:
|
||||||
|
- generic [ref=e381]: 删除
|
||||||
|
- 'row "147 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:53:18 详情 撤回 删除" [ref=e382]':
|
||||||
|
- cell "147" [ref=e383]:
|
||||||
|
- generic [ref=e384]: "147"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e385]':
|
||||||
|
- generic [ref=e387]:
|
||||||
|
- generic [ref=e389]: 新
|
||||||
|
- generic [ref=e390]:
|
||||||
|
- generic [ref=e391]: 新昵称
|
||||||
|
- generic [ref=e392]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e393]:
|
||||||
|
- generic [ref=e396]: 图片
|
||||||
|
- cell "[图片]" [ref=e397]:
|
||||||
|
- generic [ref=e399]: "[图片]"
|
||||||
|
- cell "正常" [ref=e400]:
|
||||||
|
- generic [ref=e403]: 正常
|
||||||
|
- cell "9" [ref=e404]:
|
||||||
|
- generic [ref=e405]: "9"
|
||||||
|
- cell "2026-04-20 10:53:18" [ref=e406]:
|
||||||
|
- generic [ref=e407]: 2026-04-20 10:53:18
|
||||||
|
- cell "详情 撤回 删除" [ref=e408]:
|
||||||
|
- generic [ref=e409]:
|
||||||
|
- button "详情" [ref=e410] [cursor=pointer]:
|
||||||
|
- generic [ref=e411]: 详情
|
||||||
|
- button "撤回" [ref=e412] [cursor=pointer]:
|
||||||
|
- generic [ref=e413]: 撤回
|
||||||
|
- button "删除" [ref=e414] [cursor=pointer]:
|
||||||
|
- generic [ref=e415]: 删除
|
||||||
|
- 'row "146 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:49:56 详情 撤回 删除" [ref=e416]':
|
||||||
|
- cell "146" [ref=e417]:
|
||||||
|
- generic [ref=e418]: "146"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e419]':
|
||||||
|
- generic [ref=e421]:
|
||||||
|
- generic [ref=e423]: 新
|
||||||
|
- generic [ref=e424]:
|
||||||
|
- generic [ref=e425]: 新昵称
|
||||||
|
- generic [ref=e426]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e427]:
|
||||||
|
- generic [ref=e430]: 图片
|
||||||
|
- cell "[图片]" [ref=e431]:
|
||||||
|
- generic [ref=e433]: "[图片]"
|
||||||
|
- cell "正常" [ref=e434]:
|
||||||
|
- generic [ref=e437]: 正常
|
||||||
|
- cell "9" [ref=e438]:
|
||||||
|
- generic [ref=e439]: "9"
|
||||||
|
- cell "2026-04-20 10:49:56" [ref=e440]:
|
||||||
|
- generic [ref=e441]: 2026-04-20 10:49:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e442]:
|
||||||
|
- generic [ref=e443]:
|
||||||
|
- button "详情" [ref=e444] [cursor=pointer]:
|
||||||
|
- generic [ref=e445]: 详情
|
||||||
|
- button "撤回" [ref=e446] [cursor=pointer]:
|
||||||
|
- generic [ref=e447]: 撤回
|
||||||
|
- button "删除" [ref=e448] [cursor=pointer]:
|
||||||
|
- generic [ref=e449]: 删除
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e450]':
|
||||||
|
- cell "145" [ref=e451]:
|
||||||
|
- generic [ref=e452]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e453]':
|
||||||
|
- generic [ref=e455]:
|
||||||
|
- generic [ref=e457]: 卜
|
||||||
|
- generic [ref=e458]:
|
||||||
|
- generic [ref=e459]: 卜锦元
|
||||||
|
- generic [ref=e460]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e461]:
|
||||||
|
- generic [ref=e464]: 文本
|
||||||
|
- cell "1111" [ref=e465]:
|
||||||
|
- generic [ref=e467]: "1111"
|
||||||
|
- cell "正常" [ref=e468]:
|
||||||
|
- generic [ref=e471]: 正常
|
||||||
|
- cell "6" [ref=e472]:
|
||||||
|
- generic [ref=e473]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e474]:
|
||||||
|
- generic [ref=e475]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e476]:
|
||||||
|
- generic [ref=e477]:
|
||||||
|
- button "详情" [ref=e478] [cursor=pointer]:
|
||||||
|
- generic [ref=e479]: 详情
|
||||||
|
- button "撤回" [ref=e480] [cursor=pointer]:
|
||||||
|
- generic [ref=e481]: 撤回
|
||||||
|
- button "删除" [ref=e482] [cursor=pointer]:
|
||||||
|
- generic [ref=e483]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e484]':
|
||||||
|
- cell "144" [ref=e485]:
|
||||||
|
- generic [ref=e486]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e487]':
|
||||||
|
- generic [ref=e489]:
|
||||||
|
- generic [ref=e491]: 卜
|
||||||
|
- generic [ref=e492]:
|
||||||
|
- generic [ref=e493]: 卜锦元
|
||||||
|
- generic [ref=e494]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e495]:
|
||||||
|
- generic [ref=e498]: 文本
|
||||||
|
- cell "1112122" [ref=e499]:
|
||||||
|
- generic [ref=e501]: "1112122"
|
||||||
|
- cell "正常" [ref=e502]:
|
||||||
|
- generic [ref=e505]: 正常
|
||||||
|
- cell "6" [ref=e506]:
|
||||||
|
- generic [ref=e507]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e508]:
|
||||||
|
- generic [ref=e509]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e510]:
|
||||||
|
- generic [ref=e511]:
|
||||||
|
- button "详情" [ref=e512] [cursor=pointer]:
|
||||||
|
- generic [ref=e513]: 详情
|
||||||
|
- button "撤回" [ref=e514] [cursor=pointer]:
|
||||||
|
- generic [ref=e515]: 撤回
|
||||||
|
- button "删除" [ref=e516] [cursor=pointer]:
|
||||||
|
- generic [ref=e517]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e518]':
|
||||||
|
- cell "143" [ref=e519]:
|
||||||
|
- generic [ref=e520]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e521]':
|
||||||
|
- generic [ref=e523]:
|
||||||
|
- generic [ref=e525]: 卜
|
||||||
|
- generic [ref=e526]:
|
||||||
|
- generic [ref=e527]: 卜锦元
|
||||||
|
- generic [ref=e528]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e529]:
|
||||||
|
- generic [ref=e532]: 文本
|
||||||
|
- cell "1111" [ref=e533]:
|
||||||
|
- generic [ref=e535]: "1111"
|
||||||
|
- cell "正常" [ref=e536]:
|
||||||
|
- generic [ref=e539]: 正常
|
||||||
|
- cell "6" [ref=e540]:
|
||||||
|
- generic [ref=e541]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e542]:
|
||||||
|
- generic [ref=e543]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e544]:
|
||||||
|
- generic [ref=e545]:
|
||||||
|
- button "详情" [ref=e546] [cursor=pointer]:
|
||||||
|
- generic [ref=e547]: 详情
|
||||||
|
- button "撤回" [ref=e548] [cursor=pointer]:
|
||||||
|
- generic [ref=e549]: 撤回
|
||||||
|
- button "删除" [ref=e550] [cursor=pointer]:
|
||||||
|
- generic [ref=e551]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e552]':
|
||||||
|
- cell "142" [ref=e553]:
|
||||||
|
- generic [ref=e554]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e555]':
|
||||||
|
- generic [ref=e557]:
|
||||||
|
- generic [ref=e559]: 段
|
||||||
|
- generic [ref=e560]:
|
||||||
|
- generic [ref=e561]: 段凌云
|
||||||
|
- generic [ref=e562]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e563]:
|
||||||
|
- generic [ref=e566]: 文本
|
||||||
|
- cell "111111111223" [ref=e567]:
|
||||||
|
- generic [ref=e569]: "111111111223"
|
||||||
|
- cell "正常" [ref=e570]:
|
||||||
|
- generic [ref=e573]: 正常
|
||||||
|
- cell "6" [ref=e574]:
|
||||||
|
- generic [ref=e575]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e576]:
|
||||||
|
- generic [ref=e577]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e578]:
|
||||||
|
- generic [ref=e579]:
|
||||||
|
- button "详情" [ref=e580] [cursor=pointer]:
|
||||||
|
- generic [ref=e581]: 详情
|
||||||
|
- button "撤回" [ref=e582] [cursor=pointer]:
|
||||||
|
- generic [ref=e583]: 撤回
|
||||||
|
- button "删除" [ref=e584] [cursor=pointer]:
|
||||||
|
- generic [ref=e585]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e586]':
|
||||||
|
- cell "141" [ref=e587]:
|
||||||
|
- generic [ref=e588]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e589]':
|
||||||
|
- generic [ref=e591]:
|
||||||
|
- generic [ref=e593]: 周
|
||||||
|
- generic [ref=e594]:
|
||||||
|
- generic [ref=e595]: 周和智
|
||||||
|
- generic [ref=e596]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e597]:
|
||||||
|
- generic [ref=e600]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e601]:
|
||||||
|
- generic [ref=e603]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e604]:
|
||||||
|
- generic [ref=e607]: 正常
|
||||||
|
- cell "8" [ref=e608]:
|
||||||
|
- generic [ref=e609]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e610]:
|
||||||
|
- generic [ref=e611]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e612]:
|
||||||
|
- generic [ref=e613]:
|
||||||
|
- button "详情" [ref=e614] [cursor=pointer]:
|
||||||
|
- generic [ref=e615]: 详情
|
||||||
|
- button "撤回" [ref=e616] [cursor=pointer]:
|
||||||
|
- generic [ref=e617]: 撤回
|
||||||
|
- button "删除" [ref=e618] [cursor=pointer]:
|
||||||
|
- generic [ref=e619]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e620]':
|
||||||
|
- cell "140" [ref=e621]:
|
||||||
|
- generic [ref=e622]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e623]':
|
||||||
|
- generic [ref=e625]:
|
||||||
|
- generic [ref=e627]: 卜
|
||||||
|
- generic [ref=e628]:
|
||||||
|
- generic [ref=e629]: 卜锦元
|
||||||
|
- generic [ref=e630]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e631]:
|
||||||
|
- generic [ref=e634]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e635]:
|
||||||
|
- generic [ref=e637]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e638]:
|
||||||
|
- generic [ref=e641]: 正常
|
||||||
|
- cell "8" [ref=e642]:
|
||||||
|
- generic [ref=e643]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e644]:
|
||||||
|
- generic [ref=e645]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e646]:
|
||||||
|
- generic [ref=e647]:
|
||||||
|
- button "详情" [ref=e648] [cursor=pointer]:
|
||||||
|
- generic [ref=e649]: 详情
|
||||||
|
- button "撤回" [ref=e650] [cursor=pointer]:
|
||||||
|
- generic [ref=e651]: 撤回
|
||||||
|
- button "删除" [ref=e652] [cursor=pointer]:
|
||||||
|
- generic [ref=e653]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e654]':
|
||||||
|
- cell "139" [ref=e655]:
|
||||||
|
- generic [ref=e656]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e657]':
|
||||||
|
- generic [ref=e659]:
|
||||||
|
- generic [ref=e661]: 卜
|
||||||
|
- generic [ref=e662]:
|
||||||
|
- generic [ref=e663]: 卜锦元
|
||||||
|
- generic [ref=e664]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e665]:
|
||||||
|
- generic [ref=e668]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e669]:
|
||||||
|
- generic [ref=e671]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e672]:
|
||||||
|
- generic [ref=e675]: 正常
|
||||||
|
- cell "8" [ref=e676]:
|
||||||
|
- generic [ref=e677]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e678]:
|
||||||
|
- generic [ref=e679]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e680]:
|
||||||
|
- generic [ref=e681]:
|
||||||
|
- button "详情" [ref=e682] [cursor=pointer]:
|
||||||
|
- generic [ref=e683]: 详情
|
||||||
|
- button "撤回" [ref=e684] [cursor=pointer]:
|
||||||
|
- generic [ref=e685]: 撤回
|
||||||
|
- button "删除" [ref=e686] [cursor=pointer]:
|
||||||
|
- generic [ref=e687]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e688]':
|
||||||
|
- cell "138" [ref=e689]:
|
||||||
|
- generic [ref=e690]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e691]':
|
||||||
|
- generic [ref=e693]:
|
||||||
|
- generic [ref=e695]: "?"
|
||||||
|
- generic [ref=e696]:
|
||||||
|
- generic [ref=e697]: "-"
|
||||||
|
- generic [ref=e698]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e699]:
|
||||||
|
- generic [ref=e702]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e703]:
|
||||||
|
- generic [ref=e705]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e706]:
|
||||||
|
- generic [ref=e709]: 正常
|
||||||
|
- cell "8" [ref=e710]:
|
||||||
|
- generic [ref=e711]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e712]:
|
||||||
|
- generic [ref=e713]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e714]:
|
||||||
|
- generic [ref=e715]:
|
||||||
|
- button "详情" [ref=e716] [cursor=pointer]:
|
||||||
|
- generic [ref=e717]: 详情
|
||||||
|
- button "撤回" [ref=e718] [cursor=pointer]:
|
||||||
|
- generic [ref=e719]: 撤回
|
||||||
|
- button "删除" [ref=e720] [cursor=pointer]:
|
||||||
|
- generic [ref=e721]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e722]':
|
||||||
|
- cell "137" [ref=e723]:
|
||||||
|
- generic [ref=e724]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e725]':
|
||||||
|
- generic [ref=e727]:
|
||||||
|
- generic [ref=e729]: 卜
|
||||||
|
- generic [ref=e730]:
|
||||||
|
- generic [ref=e731]: 卜锦元
|
||||||
|
- generic [ref=e732]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e733]:
|
||||||
|
- generic [ref=e736]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e737]:
|
||||||
|
- generic [ref=e739]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e740]:
|
||||||
|
- generic [ref=e743]: 正常
|
||||||
|
- cell "10" [ref=e744]:
|
||||||
|
- generic [ref=e745]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e746]:
|
||||||
|
- generic [ref=e747]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e748]:
|
||||||
|
- generic [ref=e749]:
|
||||||
|
- button "详情" [ref=e750] [cursor=pointer]:
|
||||||
|
- generic [ref=e751]: 详情
|
||||||
|
- button "撤回" [ref=e752] [cursor=pointer]:
|
||||||
|
- generic [ref=e753]: 撤回
|
||||||
|
- button "删除" [ref=e754] [cursor=pointer]:
|
||||||
|
- generic [ref=e755]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e756]':
|
||||||
|
- cell "136" [ref=e757]:
|
||||||
|
- generic [ref=e758]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e759]':
|
||||||
|
- generic [ref=e761]:
|
||||||
|
- generic [ref=e763]: 卜
|
||||||
|
- generic [ref=e764]:
|
||||||
|
- generic [ref=e765]: 卜锦元
|
||||||
|
- generic [ref=e766]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e767]:
|
||||||
|
- generic [ref=e770]: 文本
|
||||||
|
- cell "23213123" [ref=e771]:
|
||||||
|
- generic [ref=e773]: "23213123"
|
||||||
|
- cell "正常" [ref=e774]:
|
||||||
|
- generic [ref=e777]: 正常
|
||||||
|
- cell "10" [ref=e778]:
|
||||||
|
- generic [ref=e779]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e780]:
|
||||||
|
- generic [ref=e781]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e782]:
|
||||||
|
- generic [ref=e783]:
|
||||||
|
- button "详情" [ref=e784] [cursor=pointer]:
|
||||||
|
- generic [ref=e785]: 详情
|
||||||
|
- button "撤回" [ref=e786] [cursor=pointer]:
|
||||||
|
- generic [ref=e787]: 撤回
|
||||||
|
- button "删除" [ref=e788] [cursor=pointer]:
|
||||||
|
- generic [ref=e789]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e790]':
|
||||||
|
- cell "135" [ref=e791]:
|
||||||
|
- generic [ref=e792]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e793]':
|
||||||
|
- generic [ref=e795]:
|
||||||
|
- generic [ref=e797]: 周
|
||||||
|
- generic [ref=e798]:
|
||||||
|
- generic [ref=e799]: 周和智
|
||||||
|
- generic [ref=e800]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e801]:
|
||||||
|
- generic [ref=e804]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e805]:
|
||||||
|
- generic [ref=e807]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e808]:
|
||||||
|
- generic [ref=e811]: 正常
|
||||||
|
- cell "10" [ref=e812]:
|
||||||
|
- generic [ref=e813]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e814]:
|
||||||
|
- generic [ref=e815]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e816]:
|
||||||
|
- generic [ref=e817]:
|
||||||
|
- button "详情" [ref=e818] [cursor=pointer]:
|
||||||
|
- generic [ref=e819]: 详情
|
||||||
|
- button "撤回" [ref=e820] [cursor=pointer]:
|
||||||
|
- generic [ref=e821]: 撤回
|
||||||
|
- button "删除" [ref=e822] [cursor=pointer]:
|
||||||
|
- generic [ref=e823]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e824]':
|
||||||
|
- cell "134" [ref=e825]:
|
||||||
|
- generic [ref=e826]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e827]':
|
||||||
|
- generic [ref=e829]:
|
||||||
|
- generic [ref=e831]: 周
|
||||||
|
- generic [ref=e832]:
|
||||||
|
- generic [ref=e833]: 周和智
|
||||||
|
- generic [ref=e834]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e835]:
|
||||||
|
- generic [ref=e838]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e839]:
|
||||||
|
- generic [ref=e841]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e842]:
|
||||||
|
- generic [ref=e845]: 正常
|
||||||
|
- cell "10" [ref=e846]:
|
||||||
|
- generic [ref=e847]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e848]:
|
||||||
|
- generic [ref=e849]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e850]:
|
||||||
|
- generic [ref=e851]:
|
||||||
|
- button "详情" [ref=e852] [cursor=pointer]:
|
||||||
|
- generic [ref=e853]: 详情
|
||||||
|
- button "撤回" [ref=e854] [cursor=pointer]:
|
||||||
|
- generic [ref=e855]: 撤回
|
||||||
|
- button "删除" [ref=e856] [cursor=pointer]:
|
||||||
|
- generic [ref=e857]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e858]':
|
||||||
|
- cell "133" [ref=e859]:
|
||||||
|
- generic [ref=e860]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e861]':
|
||||||
|
- generic [ref=e863]:
|
||||||
|
- generic [ref=e865]: 周
|
||||||
|
- generic [ref=e866]:
|
||||||
|
- generic [ref=e867]: 周和智
|
||||||
|
- generic [ref=e868]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e869]:
|
||||||
|
- generic [ref=e872]: 文本
|
||||||
|
- cell "哈喽" [ref=e873]:
|
||||||
|
- generic [ref=e875]: 哈喽
|
||||||
|
- cell "正常" [ref=e876]:
|
||||||
|
- generic [ref=e879]: 正常
|
||||||
|
- cell "10" [ref=e880]:
|
||||||
|
- generic [ref=e881]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e882]:
|
||||||
|
- generic [ref=e883]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e884]:
|
||||||
|
- generic [ref=e885]:
|
||||||
|
- button "详情" [ref=e886] [cursor=pointer]:
|
||||||
|
- generic [ref=e887]: 详情
|
||||||
|
- button "撤回" [ref=e888] [cursor=pointer]:
|
||||||
|
- generic [ref=e889]: 撤回
|
||||||
|
- button "删除" [ref=e890] [cursor=pointer]:
|
||||||
|
- generic [ref=e891]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e892]':
|
||||||
|
- cell "132" [ref=e893]:
|
||||||
|
- generic [ref=e894]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e895]':
|
||||||
|
- generic [ref=e897]:
|
||||||
|
- generic [ref=e899]: 卜
|
||||||
|
- generic [ref=e900]:
|
||||||
|
- generic [ref=e901]: 卜锦元
|
||||||
|
- generic [ref=e902]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e903]:
|
||||||
|
- generic [ref=e906]: 文本
|
||||||
|
- cell "niahha a" [ref=e907]:
|
||||||
|
- generic [ref=e909]: niahha a
|
||||||
|
- cell "正常" [ref=e910]:
|
||||||
|
- generic [ref=e913]: 正常
|
||||||
|
- cell "10" [ref=e914]:
|
||||||
|
- generic [ref=e915]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e916]:
|
||||||
|
- generic [ref=e917]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e918]:
|
||||||
|
- generic [ref=e919]:
|
||||||
|
- button "详情" [ref=e920] [cursor=pointer]:
|
||||||
|
- generic [ref=e921]: 详情
|
||||||
|
- button "撤回" [ref=e922] [cursor=pointer]:
|
||||||
|
- generic [ref=e923]: 撤回
|
||||||
|
- button "删除" [ref=e924] [cursor=pointer]:
|
||||||
|
- generic [ref=e925]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e926]':
|
||||||
|
- cell "131" [ref=e927]:
|
||||||
|
- generic [ref=e928]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e929]':
|
||||||
|
- generic [ref=e931]:
|
||||||
|
- generic [ref=e933]: 新
|
||||||
|
- generic [ref=e934]:
|
||||||
|
- generic [ref=e935]: 新昵称
|
||||||
|
- generic [ref=e936]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e937]:
|
||||||
|
- generic [ref=e940]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e941]:
|
||||||
|
- generic [ref=e943]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e944]:
|
||||||
|
- generic [ref=e947]: 正常
|
||||||
|
- cell "8" [ref=e948]:
|
||||||
|
- generic [ref=e949]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e950]:
|
||||||
|
- generic [ref=e951]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e952]:
|
||||||
|
- generic [ref=e953]:
|
||||||
|
- button "详情" [ref=e954] [cursor=pointer]:
|
||||||
|
- generic [ref=e955]: 详情
|
||||||
|
- button "撤回" [ref=e956] [cursor=pointer]:
|
||||||
|
- generic [ref=e957]: 撤回
|
||||||
|
- button "删除" [ref=e958] [cursor=pointer]:
|
||||||
|
- generic [ref=e959]: 删除
|
||||||
|
- generic [ref=e962]:
|
||||||
|
- generic [ref=e963]: 共 146 条
|
||||||
|
- generic [ref=e966] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e968]
|
||||||
|
- generic [ref=e969]: 20条/页
|
||||||
|
- img [ref=e972]
|
||||||
|
- button "上一页" [disabled] [ref=e974]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e975]:
|
||||||
|
- listitem "第 1 页" [ref=e976]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e977] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e978] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e979] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e980] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e981] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e982] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e983] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e984] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e985]:
|
||||||
|
- generic [ref=e986]: 前往
|
||||||
|
- spinbutton "页" [ref=e989]: "1"
|
||||||
|
- generic [ref=e990]: 页
|
||||||
706
.playwright-mcp/page-2026-04-20T03-02-06-166Z.yml
Normal file
706
.playwright-mcp/page-2026-04-20T03-02-06-166Z.yml
Normal file
@@ -0,0 +1,706 @@
|
|||||||
|
- generic [ref=e47]:
|
||||||
|
- complementary [ref=e48]:
|
||||||
|
- generic [ref=e49]:
|
||||||
|
- generic [ref=e50]: E
|
||||||
|
- generic [ref=e51]: EchoChat
|
||||||
|
- menubar [ref=e52]:
|
||||||
|
- menuitem "仪表盘" [ref=e53] [cursor=pointer]:
|
||||||
|
- img [ref=e55]
|
||||||
|
- text: 仪表盘
|
||||||
|
- menuitem "用户管理" [ref=e57]:
|
||||||
|
- generic [ref=e58] [cursor=pointer]:
|
||||||
|
- img [ref=e60]
|
||||||
|
- generic [ref=e62]: 用户管理
|
||||||
|
- img [ref=e64]
|
||||||
|
- menuitem "联系人管理" [ref=e66]:
|
||||||
|
- generic [ref=e67] [cursor=pointer]:
|
||||||
|
- img [ref=e69]
|
||||||
|
- generic [ref=e72]: 联系人管理
|
||||||
|
- img [ref=e74]
|
||||||
|
- menuitem "群组管理" [ref=e76]:
|
||||||
|
- generic [ref=e77] [cursor=pointer]:
|
||||||
|
- img [ref=e79]
|
||||||
|
- generic [ref=e82]: 群组管理
|
||||||
|
- img [ref=e84]
|
||||||
|
- menuitem "消息管理" [expanded] [ref=e86]:
|
||||||
|
- generic [ref=e87] [cursor=pointer]:
|
||||||
|
- img [ref=e89]
|
||||||
|
- generic [ref=e91]: 消息管理
|
||||||
|
- img [ref=e93]
|
||||||
|
- menu [ref=e167]:
|
||||||
|
- menuitem "消息列表" [ref=e168] [cursor=pointer]
|
||||||
|
- menuitem "消息统计" [ref=e169] [cursor=pointer]
|
||||||
|
- menuitem "在线监控" [ref=e95] [cursor=pointer]:
|
||||||
|
- img [ref=e97]
|
||||||
|
- text: 在线监控
|
||||||
|
- generic [ref=e99]:
|
||||||
|
- generic [ref=e100]:
|
||||||
|
- img [ref=e103] [cursor=pointer]
|
||||||
|
- button "管 admin_test" [ref=e107] [cursor=pointer]:
|
||||||
|
- generic [ref=e108]: 管
|
||||||
|
- generic [ref=e109]: admin_test
|
||||||
|
- img [ref=e111]
|
||||||
|
- main [ref=e113]:
|
||||||
|
- generic [ref=e170]:
|
||||||
|
- heading "消息管理" [level=2] [ref=e172]
|
||||||
|
- generic [ref=e175]:
|
||||||
|
- generic [ref=e176]:
|
||||||
|
- generic [ref=e177]: 关键词
|
||||||
|
- generic [ref=e180]:
|
||||||
|
- img [ref=e183]
|
||||||
|
- textbox "关键词" [ref=e185]:
|
||||||
|
- /placeholder: 搜索消息内容
|
||||||
|
- generic [ref=e186]:
|
||||||
|
- generic [ref=e187]: 类型
|
||||||
|
- generic [ref=e190] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "类型" [ref=e192]
|
||||||
|
- generic [ref=e193]: 全部
|
||||||
|
- img [ref=e196]
|
||||||
|
- generic [ref=e198]:
|
||||||
|
- generic [ref=e199]: 状态
|
||||||
|
- generic [ref=e202] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox "状态" [ref=e204]
|
||||||
|
- generic [ref=e205]: 全部
|
||||||
|
- img [ref=e208]
|
||||||
|
- generic [ref=e210]:
|
||||||
|
- generic [ref=e211]: 发送者ID
|
||||||
|
- spinbutton "发送者ID" [ref=e215]
|
||||||
|
- generic [ref=e216]:
|
||||||
|
- generic [ref=e217]: 时间范围
|
||||||
|
- generic [ref=e219]:
|
||||||
|
- img [ref=e221]
|
||||||
|
- combobox "时间范围" [ref=e223]
|
||||||
|
- generic [ref=e224]: 至
|
||||||
|
- combobox "结束日期" [ref=e225]
|
||||||
|
- generic [ref=e227]:
|
||||||
|
- button "搜索" [ref=e228] [cursor=pointer]:
|
||||||
|
- generic [ref=e229]: 搜索
|
||||||
|
- button "重置" [ref=e230] [cursor=pointer]:
|
||||||
|
- generic [ref=e231]: 重置
|
||||||
|
- generic [ref=e233]:
|
||||||
|
- generic [ref=e235]:
|
||||||
|
- table [ref=e237]:
|
||||||
|
- rowgroup [ref=e247]:
|
||||||
|
- row "ID 发送者 类型 内容 状态 会话ID 发送时间 操作" [ref=e248]:
|
||||||
|
- columnheader "ID" [ref=e249]:
|
||||||
|
- generic [ref=e250]: ID
|
||||||
|
- columnheader "发送者" [ref=e251]:
|
||||||
|
- generic [ref=e252]: 发送者
|
||||||
|
- columnheader "类型" [ref=e253]:
|
||||||
|
- generic [ref=e254]: 类型
|
||||||
|
- columnheader "内容" [ref=e255]:
|
||||||
|
- generic [ref=e256]: 内容
|
||||||
|
- columnheader "状态" [ref=e257]:
|
||||||
|
- generic [ref=e258]: 状态
|
||||||
|
- columnheader "会话ID" [ref=e259]:
|
||||||
|
- generic [ref=e260]: 会话ID
|
||||||
|
- columnheader "发送时间" [ref=e261]:
|
||||||
|
- generic [ref=e262]: 发送时间
|
||||||
|
- columnheader "操作" [ref=e263]:
|
||||||
|
- generic [ref=e264]: 操作
|
||||||
|
- table [ref=e269]:
|
||||||
|
- rowgroup [ref=e279]:
|
||||||
|
- 'row "150 新 新昵称 ID: 4 文件 [文件] 正常 9 2026-04-20 11:00:42 详情 撤回 删除" [ref=e280]':
|
||||||
|
- cell "150" [ref=e281]:
|
||||||
|
- generic [ref=e282]: "150"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e283]':
|
||||||
|
- generic [ref=e285]:
|
||||||
|
- generic [ref=e287]: 新
|
||||||
|
- generic [ref=e288]:
|
||||||
|
- generic [ref=e289]: 新昵称
|
||||||
|
- generic [ref=e290]: "ID: 4"
|
||||||
|
- cell "文件" [ref=e291]:
|
||||||
|
- generic [ref=e294]: 文件
|
||||||
|
- cell "[文件]" [ref=e295]:
|
||||||
|
- generic [ref=e297]: "[文件]"
|
||||||
|
- cell "正常" [ref=e298]:
|
||||||
|
- generic [ref=e301]: 正常
|
||||||
|
- cell "9" [ref=e302]:
|
||||||
|
- generic [ref=e303]: "9"
|
||||||
|
- cell "2026-04-20 11:00:42" [ref=e304]:
|
||||||
|
- generic [ref=e305]: 2026-04-20 11:00:42
|
||||||
|
- cell "详情 撤回 删除" [ref=e306]:
|
||||||
|
- generic [ref=e307]:
|
||||||
|
- button "详情" [ref=e308] [cursor=pointer]:
|
||||||
|
- generic [ref=e309]: 详情
|
||||||
|
- button "撤回" [ref=e310] [cursor=pointer]:
|
||||||
|
- generic [ref=e311]: 撤回
|
||||||
|
- button "删除" [ref=e312] [cursor=pointer]:
|
||||||
|
- generic [ref=e313]: 删除
|
||||||
|
- 'row "149 新 新昵称 ID: 4 文件 [文件] 正常 9 2026-04-20 10:59:09 详情 撤回 删除" [ref=e314]':
|
||||||
|
- cell "149" [ref=e315]:
|
||||||
|
- generic [ref=e316]: "149"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e317]':
|
||||||
|
- generic [ref=e319]:
|
||||||
|
- generic [ref=e321]: 新
|
||||||
|
- generic [ref=e322]:
|
||||||
|
- generic [ref=e323]: 新昵称
|
||||||
|
- generic [ref=e324]: "ID: 4"
|
||||||
|
- cell "文件" [ref=e325]:
|
||||||
|
- generic [ref=e328]: 文件
|
||||||
|
- cell "[文件]" [ref=e329]:
|
||||||
|
- generic [ref=e331]: "[文件]"
|
||||||
|
- cell "正常" [ref=e332]:
|
||||||
|
- generic [ref=e335]: 正常
|
||||||
|
- cell "9" [ref=e336]:
|
||||||
|
- generic [ref=e337]: "9"
|
||||||
|
- cell "2026-04-20 10:59:09" [ref=e338]:
|
||||||
|
- generic [ref=e339]: 2026-04-20 10:59:09
|
||||||
|
- cell "详情 撤回 删除" [ref=e340]:
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- button "详情" [ref=e342] [cursor=pointer]:
|
||||||
|
- generic [ref=e343]: 详情
|
||||||
|
- button "撤回" [ref=e344] [cursor=pointer]:
|
||||||
|
- generic [ref=e345]: 撤回
|
||||||
|
- button "删除" [ref=e346] [cursor=pointer]:
|
||||||
|
- generic [ref=e347]: 删除
|
||||||
|
- 'row "148 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:57:27 详情 撤回 删除" [ref=e348]':
|
||||||
|
- cell "148" [ref=e349]:
|
||||||
|
- generic [ref=e350]: "148"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e351]':
|
||||||
|
- generic [ref=e353]:
|
||||||
|
- generic [ref=e355]: 新
|
||||||
|
- generic [ref=e356]:
|
||||||
|
- generic [ref=e357]: 新昵称
|
||||||
|
- generic [ref=e358]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e359]:
|
||||||
|
- generic [ref=e362]: 图片
|
||||||
|
- cell "[图片]" [ref=e363]:
|
||||||
|
- generic [ref=e365]: "[图片]"
|
||||||
|
- cell "正常" [ref=e366]:
|
||||||
|
- generic [ref=e369]: 正常
|
||||||
|
- cell "9" [ref=e370]:
|
||||||
|
- generic [ref=e371]: "9"
|
||||||
|
- cell "2026-04-20 10:57:27" [ref=e372]:
|
||||||
|
- generic [ref=e373]: 2026-04-20 10:57:27
|
||||||
|
- cell "详情 撤回 删除" [ref=e374]:
|
||||||
|
- generic [ref=e375]:
|
||||||
|
- button "详情" [ref=e376] [cursor=pointer]:
|
||||||
|
- generic [ref=e377]: 详情
|
||||||
|
- button "撤回" [ref=e378] [cursor=pointer]:
|
||||||
|
- generic [ref=e379]: 撤回
|
||||||
|
- button "删除" [ref=e380] [cursor=pointer]:
|
||||||
|
- generic [ref=e381]: 删除
|
||||||
|
- 'row "147 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:53:18 详情 撤回 删除" [ref=e382]':
|
||||||
|
- cell "147" [ref=e383]:
|
||||||
|
- generic [ref=e384]: "147"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e385]':
|
||||||
|
- generic [ref=e387]:
|
||||||
|
- generic [ref=e389]: 新
|
||||||
|
- generic [ref=e390]:
|
||||||
|
- generic [ref=e391]: 新昵称
|
||||||
|
- generic [ref=e392]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e393]:
|
||||||
|
- generic [ref=e396]: 图片
|
||||||
|
- cell "[图片]" [ref=e397]:
|
||||||
|
- generic [ref=e399]: "[图片]"
|
||||||
|
- cell "正常" [ref=e400]:
|
||||||
|
- generic [ref=e403]: 正常
|
||||||
|
- cell "9" [ref=e404]:
|
||||||
|
- generic [ref=e405]: "9"
|
||||||
|
- cell "2026-04-20 10:53:18" [ref=e406]:
|
||||||
|
- generic [ref=e407]: 2026-04-20 10:53:18
|
||||||
|
- cell "详情 撤回 删除" [ref=e408]:
|
||||||
|
- generic [ref=e409]:
|
||||||
|
- button "详情" [ref=e410] [cursor=pointer]:
|
||||||
|
- generic [ref=e411]: 详情
|
||||||
|
- button "撤回" [ref=e412] [cursor=pointer]:
|
||||||
|
- generic [ref=e413]: 撤回
|
||||||
|
- button "删除" [ref=e414] [cursor=pointer]:
|
||||||
|
- generic [ref=e415]: 删除
|
||||||
|
- 'row "146 新 新昵称 ID: 4 图片 [图片] 正常 9 2026-04-20 10:49:56 详情 撤回 删除" [ref=e416]':
|
||||||
|
- cell "146" [ref=e417]:
|
||||||
|
- generic [ref=e418]: "146"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e419]':
|
||||||
|
- generic [ref=e421]:
|
||||||
|
- generic [ref=e423]: 新
|
||||||
|
- generic [ref=e424]:
|
||||||
|
- generic [ref=e425]: 新昵称
|
||||||
|
- generic [ref=e426]: "ID: 4"
|
||||||
|
- cell "图片" [ref=e427]:
|
||||||
|
- generic [ref=e430]: 图片
|
||||||
|
- cell "[图片]" [ref=e431]:
|
||||||
|
- generic [ref=e433]: "[图片]"
|
||||||
|
- cell "正常" [ref=e434]:
|
||||||
|
- generic [ref=e437]: 正常
|
||||||
|
- cell "9" [ref=e438]:
|
||||||
|
- generic [ref=e439]: "9"
|
||||||
|
- cell "2026-04-20 10:49:56" [ref=e440]:
|
||||||
|
- generic [ref=e441]: 2026-04-20 10:49:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e442]:
|
||||||
|
- generic [ref=e443]:
|
||||||
|
- button "详情" [ref=e444] [cursor=pointer]:
|
||||||
|
- generic [ref=e445]: 详情
|
||||||
|
- button "撤回" [ref=e446] [cursor=pointer]:
|
||||||
|
- generic [ref=e447]: 撤回
|
||||||
|
- button "删除" [ref=e448] [cursor=pointer]:
|
||||||
|
- generic [ref=e449]: 删除
|
||||||
|
- 'row "145 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:10:04 详情 撤回 删除" [ref=e450]':
|
||||||
|
- cell "145" [ref=e451]:
|
||||||
|
- generic [ref=e452]: "145"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e453]':
|
||||||
|
- generic [ref=e455]:
|
||||||
|
- generic [ref=e457]: 卜
|
||||||
|
- generic [ref=e458]:
|
||||||
|
- generic [ref=e459]: 卜锦元
|
||||||
|
- generic [ref=e460]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e461]:
|
||||||
|
- generic [ref=e464]: 文本
|
||||||
|
- cell "1111" [ref=e465]:
|
||||||
|
- generic [ref=e467]: "1111"
|
||||||
|
- cell "正常" [ref=e468]:
|
||||||
|
- generic [ref=e471]: 正常
|
||||||
|
- cell "6" [ref=e472]:
|
||||||
|
- generic [ref=e473]: "6"
|
||||||
|
- cell "2026-04-17 14:10:04" [ref=e474]:
|
||||||
|
- generic [ref=e475]: 2026-04-17 14:10:04
|
||||||
|
- cell "详情 撤回 删除" [ref=e476]:
|
||||||
|
- generic [ref=e477]:
|
||||||
|
- button "详情" [ref=e478] [cursor=pointer]:
|
||||||
|
- generic [ref=e479]: 详情
|
||||||
|
- button "撤回" [ref=e480] [cursor=pointer]:
|
||||||
|
- generic [ref=e481]: 撤回
|
||||||
|
- button "删除" [ref=e482] [cursor=pointer]:
|
||||||
|
- generic [ref=e483]: 删除
|
||||||
|
- 'row "144 卜 卜锦元 ID: 7 文本 1112122 正常 6 2026-04-17 14:09:48 详情 撤回 删除" [ref=e484]':
|
||||||
|
- cell "144" [ref=e485]:
|
||||||
|
- generic [ref=e486]: "144"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e487]':
|
||||||
|
- generic [ref=e489]:
|
||||||
|
- generic [ref=e491]: 卜
|
||||||
|
- generic [ref=e492]:
|
||||||
|
- generic [ref=e493]: 卜锦元
|
||||||
|
- generic [ref=e494]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e495]:
|
||||||
|
- generic [ref=e498]: 文本
|
||||||
|
- cell "1112122" [ref=e499]:
|
||||||
|
- generic [ref=e501]: "1112122"
|
||||||
|
- cell "正常" [ref=e502]:
|
||||||
|
- generic [ref=e505]: 正常
|
||||||
|
- cell "6" [ref=e506]:
|
||||||
|
- generic [ref=e507]: "6"
|
||||||
|
- cell "2026-04-17 14:09:48" [ref=e508]:
|
||||||
|
- generic [ref=e509]: 2026-04-17 14:09:48
|
||||||
|
- cell "详情 撤回 删除" [ref=e510]:
|
||||||
|
- generic [ref=e511]:
|
||||||
|
- button "详情" [ref=e512] [cursor=pointer]:
|
||||||
|
- generic [ref=e513]: 详情
|
||||||
|
- button "撤回" [ref=e514] [cursor=pointer]:
|
||||||
|
- generic [ref=e515]: 撤回
|
||||||
|
- button "删除" [ref=e516] [cursor=pointer]:
|
||||||
|
- generic [ref=e517]: 删除
|
||||||
|
- 'row "143 卜 卜锦元 ID: 7 文本 1111 正常 6 2026-04-17 14:09:36 详情 撤回 删除" [ref=e518]':
|
||||||
|
- cell "143" [ref=e519]:
|
||||||
|
- generic [ref=e520]: "143"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e521]':
|
||||||
|
- generic [ref=e523]:
|
||||||
|
- generic [ref=e525]: 卜
|
||||||
|
- generic [ref=e526]:
|
||||||
|
- generic [ref=e527]: 卜锦元
|
||||||
|
- generic [ref=e528]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e529]:
|
||||||
|
- generic [ref=e532]: 文本
|
||||||
|
- cell "1111" [ref=e533]:
|
||||||
|
- generic [ref=e535]: "1111"
|
||||||
|
- cell "正常" [ref=e536]:
|
||||||
|
- generic [ref=e539]: 正常
|
||||||
|
- cell "6" [ref=e540]:
|
||||||
|
- generic [ref=e541]: "6"
|
||||||
|
- cell "2026-04-17 14:09:36" [ref=e542]:
|
||||||
|
- generic [ref=e543]: 2026-04-17 14:09:36
|
||||||
|
- cell "详情 撤回 删除" [ref=e544]:
|
||||||
|
- generic [ref=e545]:
|
||||||
|
- button "详情" [ref=e546] [cursor=pointer]:
|
||||||
|
- generic [ref=e547]: 详情
|
||||||
|
- button "撤回" [ref=e548] [cursor=pointer]:
|
||||||
|
- generic [ref=e549]: 撤回
|
||||||
|
- button "删除" [ref=e550] [cursor=pointer]:
|
||||||
|
- generic [ref=e551]: 删除
|
||||||
|
- 'row "142 段 段凌云 ID: 13 文本 111111111223 正常 6 2026-04-17 14:09:20 详情 撤回 删除" [ref=e552]':
|
||||||
|
- cell "142" [ref=e553]:
|
||||||
|
- generic [ref=e554]: "142"
|
||||||
|
- 'cell "段 段凌云 ID: 13" [ref=e555]':
|
||||||
|
- generic [ref=e557]:
|
||||||
|
- generic [ref=e559]: 段
|
||||||
|
- generic [ref=e560]:
|
||||||
|
- generic [ref=e561]: 段凌云
|
||||||
|
- generic [ref=e562]: "ID: 13"
|
||||||
|
- cell "文本" [ref=e563]:
|
||||||
|
- generic [ref=e566]: 文本
|
||||||
|
- cell "111111111223" [ref=e567]:
|
||||||
|
- generic [ref=e569]: "111111111223"
|
||||||
|
- cell "正常" [ref=e570]:
|
||||||
|
- generic [ref=e573]: 正常
|
||||||
|
- cell "6" [ref=e574]:
|
||||||
|
- generic [ref=e575]: "6"
|
||||||
|
- cell "2026-04-17 14:09:20" [ref=e576]:
|
||||||
|
- generic [ref=e577]: 2026-04-17 14:09:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e578]:
|
||||||
|
- generic [ref=e579]:
|
||||||
|
- button "详情" [ref=e580] [cursor=pointer]:
|
||||||
|
- generic [ref=e581]: 详情
|
||||||
|
- button "撤回" [ref=e582] [cursor=pointer]:
|
||||||
|
- generic [ref=e583]: 撤回
|
||||||
|
- button "删除" [ref=e584] [cursor=pointer]:
|
||||||
|
- generic [ref=e585]: 删除
|
||||||
|
- 'row "141 周 周和智 ID: 15 文本 换届大会打卡还贷款 正常 8 2026-03-12 15:04:56 详情 撤回 删除" [ref=e586]':
|
||||||
|
- cell "141" [ref=e587]:
|
||||||
|
- generic [ref=e588]: "141"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e589]':
|
||||||
|
- generic [ref=e591]:
|
||||||
|
- generic [ref=e593]: 周
|
||||||
|
- generic [ref=e594]:
|
||||||
|
- generic [ref=e595]: 周和智
|
||||||
|
- generic [ref=e596]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e597]:
|
||||||
|
- generic [ref=e600]: 文本
|
||||||
|
- cell "换届大会打卡还贷款" [ref=e601]:
|
||||||
|
- generic [ref=e603]: 换届大会打卡还贷款
|
||||||
|
- cell "正常" [ref=e604]:
|
||||||
|
- generic [ref=e607]: 正常
|
||||||
|
- cell "8" [ref=e608]:
|
||||||
|
- generic [ref=e609]: "8"
|
||||||
|
- cell "2026-03-12 15:04:56" [ref=e610]:
|
||||||
|
- generic [ref=e611]: 2026-03-12 15:04:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e612]:
|
||||||
|
- generic [ref=e613]:
|
||||||
|
- button "详情" [ref=e614] [cursor=pointer]:
|
||||||
|
- generic [ref=e615]: 详情
|
||||||
|
- button "撤回" [ref=e616] [cursor=pointer]:
|
||||||
|
- generic [ref=e617]: 撤回
|
||||||
|
- button "删除" [ref=e618] [cursor=pointer]:
|
||||||
|
- generic [ref=e619]: 删除
|
||||||
|
- 'row "140 卜 卜锦元 ID: 7 文本 你能看到吗 正常 8 2026-03-12 15:04:54 详情 撤回 删除" [ref=e620]':
|
||||||
|
- cell "140" [ref=e621]:
|
||||||
|
- generic [ref=e622]: "140"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e623]':
|
||||||
|
- generic [ref=e625]:
|
||||||
|
- generic [ref=e627]: 卜
|
||||||
|
- generic [ref=e628]:
|
||||||
|
- generic [ref=e629]: 卜锦元
|
||||||
|
- generic [ref=e630]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e631]:
|
||||||
|
- generic [ref=e634]: 文本
|
||||||
|
- cell "你能看到吗" [ref=e635]:
|
||||||
|
- generic [ref=e637]: 你能看到吗
|
||||||
|
- cell "正常" [ref=e638]:
|
||||||
|
- generic [ref=e641]: 正常
|
||||||
|
- cell "8" [ref=e642]:
|
||||||
|
- generic [ref=e643]: "8"
|
||||||
|
- cell "2026-03-12 15:04:54" [ref=e644]:
|
||||||
|
- generic [ref=e645]: 2026-03-12 15:04:54
|
||||||
|
- cell "详情 撤回 删除" [ref=e646]:
|
||||||
|
- generic [ref=e647]:
|
||||||
|
- button "详情" [ref=e648] [cursor=pointer]:
|
||||||
|
- generic [ref=e649]: 详情
|
||||||
|
- button "撤回" [ref=e650] [cursor=pointer]:
|
||||||
|
- generic [ref=e651]: 撤回
|
||||||
|
- button "删除" [ref=e652] [cursor=pointer]:
|
||||||
|
- generic [ref=e653]: 删除
|
||||||
|
- 'row "139 卜 卜锦元 ID: 7 文本 @周和智 1111 正常 8 2026-03-12 15:04:43 详情 撤回 删除" [ref=e654]':
|
||||||
|
- cell "139" [ref=e655]:
|
||||||
|
- generic [ref=e656]: "139"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e657]':
|
||||||
|
- generic [ref=e659]:
|
||||||
|
- generic [ref=e661]: 卜
|
||||||
|
- generic [ref=e662]:
|
||||||
|
- generic [ref=e663]: 卜锦元
|
||||||
|
- generic [ref=e664]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e665]:
|
||||||
|
- generic [ref=e668]: 文本
|
||||||
|
- cell "@周和智 1111" [ref=e669]:
|
||||||
|
- generic [ref=e671]: "@周和智 1111"
|
||||||
|
- cell "正常" [ref=e672]:
|
||||||
|
- generic [ref=e675]: 正常
|
||||||
|
- cell "8" [ref=e676]:
|
||||||
|
- generic [ref=e677]: "8"
|
||||||
|
- cell "2026-03-12 15:04:43" [ref=e678]:
|
||||||
|
- generic [ref=e679]: 2026-03-12 15:04:43
|
||||||
|
- cell "详情 撤回 删除" [ref=e680]:
|
||||||
|
- generic [ref=e681]:
|
||||||
|
- button "详情" [ref=e682] [cursor=pointer]:
|
||||||
|
- generic [ref=e683]: 详情
|
||||||
|
- button "撤回" [ref=e684] [cursor=pointer]:
|
||||||
|
- generic [ref=e685]: 撤回
|
||||||
|
- button "删除" [ref=e686] [cursor=pointer]:
|
||||||
|
- generic [ref=e687]: 删除
|
||||||
|
- 'row "138 ? - ID: 0 系统消息 卜锦元 邀请 周和智 加入了群聊 正常 8 2026-03-12 15:04:20 详情 撤回 删除" [ref=e688]':
|
||||||
|
- cell "138" [ref=e689]:
|
||||||
|
- generic [ref=e690]: "138"
|
||||||
|
- 'cell "? - ID: 0" [ref=e691]':
|
||||||
|
- generic [ref=e693]:
|
||||||
|
- generic [ref=e695]: "?"
|
||||||
|
- generic [ref=e696]:
|
||||||
|
- generic [ref=e697]: "-"
|
||||||
|
- generic [ref=e698]: "ID: 0"
|
||||||
|
- cell "系统消息" [ref=e699]:
|
||||||
|
- generic [ref=e702]: 系统消息
|
||||||
|
- cell "卜锦元 邀请 周和智 加入了群聊" [ref=e703]:
|
||||||
|
- generic [ref=e705]: 卜锦元 邀请 周和智 加入了群聊
|
||||||
|
- cell "正常" [ref=e706]:
|
||||||
|
- generic [ref=e709]: 正常
|
||||||
|
- cell "8" [ref=e710]:
|
||||||
|
- generic [ref=e711]: "8"
|
||||||
|
- cell "2026-03-12 15:04:20" [ref=e712]:
|
||||||
|
- generic [ref=e713]: 2026-03-12 15:04:20
|
||||||
|
- cell "详情 撤回 删除" [ref=e714]:
|
||||||
|
- generic [ref=e715]:
|
||||||
|
- button "详情" [ref=e716] [cursor=pointer]:
|
||||||
|
- generic [ref=e717]: 详情
|
||||||
|
- button "撤回" [ref=e718] [cursor=pointer]:
|
||||||
|
- generic [ref=e719]: 撤回
|
||||||
|
- button "删除" [ref=e720] [cursor=pointer]:
|
||||||
|
- generic [ref=e721]: 删除
|
||||||
|
- 'row "137 卜 卜锦元 ID: 7 文本 ewqeqwe 正常 10 2026-03-12 15:03:56 详情 撤回 删除" [ref=e722]':
|
||||||
|
- cell "137" [ref=e723]:
|
||||||
|
- generic [ref=e724]: "137"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e725]':
|
||||||
|
- generic [ref=e727]:
|
||||||
|
- generic [ref=e729]: 卜
|
||||||
|
- generic [ref=e730]:
|
||||||
|
- generic [ref=e731]: 卜锦元
|
||||||
|
- generic [ref=e732]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e733]:
|
||||||
|
- generic [ref=e736]: 文本
|
||||||
|
- cell "ewqeqwe" [ref=e737]:
|
||||||
|
- generic [ref=e739]: ewqeqwe
|
||||||
|
- cell "正常" [ref=e740]:
|
||||||
|
- generic [ref=e743]: 正常
|
||||||
|
- cell "10" [ref=e744]:
|
||||||
|
- generic [ref=e745]: "10"
|
||||||
|
- cell "2026-03-12 15:03:56" [ref=e746]:
|
||||||
|
- generic [ref=e747]: 2026-03-12 15:03:56
|
||||||
|
- cell "详情 撤回 删除" [ref=e748]:
|
||||||
|
- generic [ref=e749]:
|
||||||
|
- button "详情" [ref=e750] [cursor=pointer]:
|
||||||
|
- generic [ref=e751]: 详情
|
||||||
|
- button "撤回" [ref=e752] [cursor=pointer]:
|
||||||
|
- generic [ref=e753]: 撤回
|
||||||
|
- button "删除" [ref=e754] [cursor=pointer]:
|
||||||
|
- generic [ref=e755]: 删除
|
||||||
|
- 'row "136 卜 卜锦元 ID: 7 文本 23213123 正常 10 2026-03-12 15:03:53 详情 撤回 删除" [ref=e756]':
|
||||||
|
- cell "136" [ref=e757]:
|
||||||
|
- generic [ref=e758]: "136"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e759]':
|
||||||
|
- generic [ref=e761]:
|
||||||
|
- generic [ref=e763]: 卜
|
||||||
|
- generic [ref=e764]:
|
||||||
|
- generic [ref=e765]: 卜锦元
|
||||||
|
- generic [ref=e766]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e767]:
|
||||||
|
- generic [ref=e770]: 文本
|
||||||
|
- cell "23213123" [ref=e771]:
|
||||||
|
- generic [ref=e773]: "23213123"
|
||||||
|
- cell "正常" [ref=e774]:
|
||||||
|
- generic [ref=e777]: 正常
|
||||||
|
- cell "10" [ref=e778]:
|
||||||
|
- generic [ref=e779]: "10"
|
||||||
|
- cell "2026-03-12 15:03:53" [ref=e780]:
|
||||||
|
- generic [ref=e781]: 2026-03-12 15:03:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e782]:
|
||||||
|
- generic [ref=e783]:
|
||||||
|
- button "详情" [ref=e784] [cursor=pointer]:
|
||||||
|
- generic [ref=e785]: 详情
|
||||||
|
- button "撤回" [ref=e786] [cursor=pointer]:
|
||||||
|
- generic [ref=e787]: 撤回
|
||||||
|
- button "删除" [ref=e788] [cursor=pointer]:
|
||||||
|
- generic [ref=e789]: 删除
|
||||||
|
- 'row "135 周 周和智 ID: 15 文本 打打看迦拉克隆离开 正常 10 2026-03-12 15:03:39 详情 撤回 删除" [ref=e790]':
|
||||||
|
- cell "135" [ref=e791]:
|
||||||
|
- generic [ref=e792]: "135"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e793]':
|
||||||
|
- generic [ref=e795]:
|
||||||
|
- generic [ref=e797]: 周
|
||||||
|
- generic [ref=e798]:
|
||||||
|
- generic [ref=e799]: 周和智
|
||||||
|
- generic [ref=e800]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e801]:
|
||||||
|
- generic [ref=e804]: 文本
|
||||||
|
- cell "打打看迦拉克隆离开" [ref=e805]:
|
||||||
|
- generic [ref=e807]: 打打看迦拉克隆离开
|
||||||
|
- cell "正常" [ref=e808]:
|
||||||
|
- generic [ref=e811]: 正常
|
||||||
|
- cell "10" [ref=e812]:
|
||||||
|
- generic [ref=e813]: "10"
|
||||||
|
- cell "2026-03-12 15:03:39" [ref=e814]:
|
||||||
|
- generic [ref=e815]: 2026-03-12 15:03:39
|
||||||
|
- cell "详情 撤回 删除" [ref=e816]:
|
||||||
|
- generic [ref=e817]:
|
||||||
|
- button "详情" [ref=e818] [cursor=pointer]:
|
||||||
|
- generic [ref=e819]: 详情
|
||||||
|
- button "撤回" [ref=e820] [cursor=pointer]:
|
||||||
|
- generic [ref=e821]: 撤回
|
||||||
|
- button "删除" [ref=e822] [cursor=pointer]:
|
||||||
|
- generic [ref=e823]: 删除
|
||||||
|
- 'row "134 周 周和智 ID: 15 文本 啦啦啦啦 正常 10 2026-03-12 15:03:30 详情 撤回 删除" [ref=e824]':
|
||||||
|
- cell "134" [ref=e825]:
|
||||||
|
- generic [ref=e826]: "134"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e827]':
|
||||||
|
- generic [ref=e829]:
|
||||||
|
- generic [ref=e831]: 周
|
||||||
|
- generic [ref=e832]:
|
||||||
|
- generic [ref=e833]: 周和智
|
||||||
|
- generic [ref=e834]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e835]:
|
||||||
|
- generic [ref=e838]: 文本
|
||||||
|
- cell "啦啦啦啦" [ref=e839]:
|
||||||
|
- generic [ref=e841]: 啦啦啦啦
|
||||||
|
- cell "正常" [ref=e842]:
|
||||||
|
- generic [ref=e845]: 正常
|
||||||
|
- cell "10" [ref=e846]:
|
||||||
|
- generic [ref=e847]: "10"
|
||||||
|
- cell "2026-03-12 15:03:30" [ref=e848]:
|
||||||
|
- generic [ref=e849]: 2026-03-12 15:03:30
|
||||||
|
- cell "详情 撤回 删除" [ref=e850]:
|
||||||
|
- generic [ref=e851]:
|
||||||
|
- button "详情" [ref=e852] [cursor=pointer]:
|
||||||
|
- generic [ref=e853]: 详情
|
||||||
|
- button "撤回" [ref=e854] [cursor=pointer]:
|
||||||
|
- generic [ref=e855]: 撤回
|
||||||
|
- button "删除" [ref=e856] [cursor=pointer]:
|
||||||
|
- generic [ref=e857]: 删除
|
||||||
|
- 'row "133 周 周和智 ID: 15 文本 哈喽 正常 10 2026-03-12 15:03:17 详情 撤回 删除" [ref=e858]':
|
||||||
|
- cell "133" [ref=e859]:
|
||||||
|
- generic [ref=e860]: "133"
|
||||||
|
- 'cell "周 周和智 ID: 15" [ref=e861]':
|
||||||
|
- generic [ref=e863]:
|
||||||
|
- generic [ref=e865]: 周
|
||||||
|
- generic [ref=e866]:
|
||||||
|
- generic [ref=e867]: 周和智
|
||||||
|
- generic [ref=e868]: "ID: 15"
|
||||||
|
- cell "文本" [ref=e869]:
|
||||||
|
- generic [ref=e872]: 文本
|
||||||
|
- cell "哈喽" [ref=e873]:
|
||||||
|
- generic [ref=e875]: 哈喽
|
||||||
|
- cell "正常" [ref=e876]:
|
||||||
|
- generic [ref=e879]: 正常
|
||||||
|
- cell "10" [ref=e880]:
|
||||||
|
- generic [ref=e881]: "10"
|
||||||
|
- cell "2026-03-12 15:03:17" [ref=e882]:
|
||||||
|
- generic [ref=e883]: 2026-03-12 15:03:17
|
||||||
|
- cell "详情 撤回 删除" [ref=e884]:
|
||||||
|
- generic [ref=e885]:
|
||||||
|
- button "详情" [ref=e886] [cursor=pointer]:
|
||||||
|
- generic [ref=e887]: 详情
|
||||||
|
- button "撤回" [ref=e888] [cursor=pointer]:
|
||||||
|
- generic [ref=e889]: 撤回
|
||||||
|
- button "删除" [ref=e890] [cursor=pointer]:
|
||||||
|
- generic [ref=e891]: 删除
|
||||||
|
- 'row "132 卜 卜锦元 ID: 7 文本 niahha a 正常 10 2026-03-12 15:03:08 详情 撤回 删除" [ref=e892]':
|
||||||
|
- cell "132" [ref=e893]:
|
||||||
|
- generic [ref=e894]: "132"
|
||||||
|
- 'cell "卜 卜锦元 ID: 7" [ref=e895]':
|
||||||
|
- generic [ref=e897]:
|
||||||
|
- generic [ref=e899]: 卜
|
||||||
|
- generic [ref=e900]:
|
||||||
|
- generic [ref=e901]: 卜锦元
|
||||||
|
- generic [ref=e902]: "ID: 7"
|
||||||
|
- cell "文本" [ref=e903]:
|
||||||
|
- generic [ref=e906]: 文本
|
||||||
|
- cell "niahha a" [ref=e907]:
|
||||||
|
- generic [ref=e909]: niahha a
|
||||||
|
- cell "正常" [ref=e910]:
|
||||||
|
- generic [ref=e913]: 正常
|
||||||
|
- cell "10" [ref=e914]:
|
||||||
|
- generic [ref=e915]: "10"
|
||||||
|
- cell "2026-03-12 15:03:08" [ref=e916]:
|
||||||
|
- generic [ref=e917]: 2026-03-12 15:03:08
|
||||||
|
- cell "详情 撤回 删除" [ref=e918]:
|
||||||
|
- generic [ref=e919]:
|
||||||
|
- button "详情" [ref=e920] [cursor=pointer]:
|
||||||
|
- generic [ref=e921]: 详情
|
||||||
|
- button "撤回" [ref=e922] [cursor=pointer]:
|
||||||
|
- generic [ref=e923]: 撤回
|
||||||
|
- button "删除" [ref=e924] [cursor=pointer]:
|
||||||
|
- generic [ref=e925]: 删除
|
||||||
|
- 'row "131 新 新昵称 ID: 4 文本 哈哈哈,测试 正常 8 2026-03-04 18:37:53 详情 撤回 删除" [ref=e926]':
|
||||||
|
- cell "131" [ref=e927]:
|
||||||
|
- generic [ref=e928]: "131"
|
||||||
|
- 'cell "新 新昵称 ID: 4" [ref=e929]':
|
||||||
|
- generic [ref=e931]:
|
||||||
|
- generic [ref=e933]: 新
|
||||||
|
- generic [ref=e934]:
|
||||||
|
- generic [ref=e935]: 新昵称
|
||||||
|
- generic [ref=e936]: "ID: 4"
|
||||||
|
- cell "文本" [ref=e937]:
|
||||||
|
- generic [ref=e940]: 文本
|
||||||
|
- cell "哈哈哈,测试" [ref=e941]:
|
||||||
|
- generic [ref=e943]: 哈哈哈,测试
|
||||||
|
- cell "正常" [ref=e944]:
|
||||||
|
- generic [ref=e947]: 正常
|
||||||
|
- cell "8" [ref=e948]:
|
||||||
|
- generic [ref=e949]: "8"
|
||||||
|
- cell "2026-03-04 18:37:53" [ref=e950]:
|
||||||
|
- generic [ref=e951]: 2026-03-04 18:37:53
|
||||||
|
- cell "详情 撤回 删除" [ref=e952]:
|
||||||
|
- generic [ref=e953]:
|
||||||
|
- button "详情" [ref=e954] [cursor=pointer]:
|
||||||
|
- generic [ref=e955]: 详情
|
||||||
|
- button "撤回" [ref=e956] [cursor=pointer]:
|
||||||
|
- generic [ref=e957]: 撤回
|
||||||
|
- button "删除" [ref=e958] [cursor=pointer]:
|
||||||
|
- generic [ref=e959]: 删除
|
||||||
|
- generic [ref=e962]:
|
||||||
|
- generic [ref=e963]: 共 146 条
|
||||||
|
- generic [ref=e966] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- combobox [ref=e968]
|
||||||
|
- generic [ref=e969]: 20条/页
|
||||||
|
- img [ref=e972]
|
||||||
|
- button "上一页" [disabled] [ref=e974]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- list [ref=e975]:
|
||||||
|
- listitem "第 1 页" [ref=e976]: "1"
|
||||||
|
- listitem "第 2 页" [ref=e977] [cursor=pointer]: "2"
|
||||||
|
- listitem "第 3 页" [ref=e978] [cursor=pointer]: "3"
|
||||||
|
- listitem "第 4 页" [ref=e979] [cursor=pointer]: "4"
|
||||||
|
- listitem "第 5 页" [ref=e980] [cursor=pointer]: "5"
|
||||||
|
- listitem "第 6 页" [ref=e981] [cursor=pointer]: "6"
|
||||||
|
- listitem "向后 5 页" [ref=e982] [cursor=pointer]:
|
||||||
|
- img
|
||||||
|
- listitem "第 8 页" [ref=e983] [cursor=pointer]: "8"
|
||||||
|
- button "下一页" [ref=e984] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- generic [ref=e985]:
|
||||||
|
- generic [ref=e986]: 前往
|
||||||
|
- spinbutton "页" [ref=e989]: "1"
|
||||||
|
- generic [ref=e990]: 页
|
||||||
|
- dialog "消息详情" [ref=e992]:
|
||||||
|
- generic [ref=e993]:
|
||||||
|
- generic [ref=e994]:
|
||||||
|
- heading "消息详情" [level=2] [ref=e995]
|
||||||
|
- button "关闭此对话框" [ref=e996] [cursor=pointer]:
|
||||||
|
- img [ref=e998]
|
||||||
|
- generic [ref=e1001]:
|
||||||
|
- generic [ref=e1002]:
|
||||||
|
- generic [ref=e1004]: 新
|
||||||
|
- generic [ref=e1005]:
|
||||||
|
- generic [ref=e1006]:
|
||||||
|
- generic [ref=e1007]: 新昵称
|
||||||
|
- generic [ref=e1009]: 正常
|
||||||
|
- generic [ref=e1010]:
|
||||||
|
- generic [ref=e1011]: "ID: 148"
|
||||||
|
- separator [ref=e1012]
|
||||||
|
- generic [ref=e1013]: "发送者ID: 4"
|
||||||
|
- separator [ref=e1014]
|
||||||
|
- generic [ref=e1015]: "会话ID: 9"
|
||||||
|
- generic [ref=e1016]:
|
||||||
|
- generic [ref=e1017]:
|
||||||
|
- generic [ref=e1018]: 消息类型
|
||||||
|
- generic [ref=e1021]: 图片
|
||||||
|
- generic [ref=e1022]:
|
||||||
|
- generic [ref=e1023]: 发送时间
|
||||||
|
- generic [ref=e1024]: 2026-04-20 10:57:27
|
||||||
|
- generic [ref=e1025]:
|
||||||
|
- generic [ref=e1026]: 消息内容
|
||||||
|
- img [ref=e1029] [cursor=pointer]
|
||||||
|
- generic [ref=e1032]:
|
||||||
|
- button "Extra 原始数据" [expanded] [active] [ref=e1033] [cursor=pointer]:
|
||||||
|
- generic [ref=e1034]: Extra 原始数据
|
||||||
|
- img [ref=e1036]
|
||||||
|
- region "Extra 原始数据" [ref=e1038]:
|
||||||
|
- generic [ref=e1040]: "{ \"images\": [ { \"url\": \"http://localhost:9000/echochat/uploads/2026/04/20/e1b275b2-d77c-44b4-87ac-b11ae61c3858.jpg\", \"size\": 989411, \"width\": 768, \"height\": 768, \"file_name\": \"test-image.jpg\", \"thumbnail_url\": \"http://localhost:9000/echochat/uploads/2026/04/20/e1b275b2-d77c-44b4-87ac-b11ae61c3858_thumb.jpg\" } ] }"
|
||||||
1
.playwright-mcp/test-doc.txt
Normal file
1
.playwright-mcp/test-doc.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
EchoChat test file content - for upload testing
|
||||||
BIN
.playwright-mcp/test-image.jpg
Normal file
BIN
.playwright-mcp/test-image.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 966 KiB |
61
README.md
61
README.md
@@ -83,19 +83,68 @@ EchoChat/
|
|||||||
- PostgreSQL 17(通过 Docker 自动启动)
|
- PostgreSQL 17(通过 Docker 自动启动)
|
||||||
- Redis 7(通过 Docker 自动启动)
|
- Redis 7(通过 Docker 自动启动)
|
||||||
|
|
||||||
### 方式一:Docker Compose 一键启动(推荐)
|
### 方式一:一键脚本(推荐)
|
||||||
|
|
||||||
|
项目在 `scripts/` 目录遵循「**首次初始化 / 日常启停**」职责分离模式,参考 Rails / Django / Next.js 社区通用做法:
|
||||||
|
|
||||||
|
| 脚本 | 用途 | 使用频率 |
|
||||||
|
|---|---|---|
|
||||||
|
| `scripts/dev-setup.sh` | **首次环境初始化**:检查 Docker、拉起 Postgres/Redis/MinIO、重试式健康检查 | 仅首次 clone 或重建卷时 |
|
||||||
|
| `scripts/start.sh` | **日常启动**:秒级拉起全部服务(容器 + 应用层) | 每天多次 |
|
||||||
|
| `scripts/stop.sh` | **日常停止**:优雅终止应用层,默认保留容器 | 每天多次 |
|
||||||
|
| `scripts/status.sh` | **状态查看**:端口 / PID / 容器一览 | 排障随时 |
|
||||||
|
|
||||||
|
#### 首次使用(仅一次)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 首次 clone 后执行一次,完成 Docker 中间件初始化 + 健康检查
|
||||||
|
./scripts/dev-setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 日常启停
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动全部服务
|
||||||
|
./scripts/start.sh
|
||||||
|
|
||||||
|
# 查看服务状态(端口/PID/容器)
|
||||||
|
./scripts/status.sh
|
||||||
|
|
||||||
|
# 停止应用层(保留 Docker 中间件)
|
||||||
|
./scripts/stop.sh
|
||||||
|
|
||||||
|
# 停止全部(含 Docker 中间件)
|
||||||
|
./scripts/stop.sh --all
|
||||||
|
|
||||||
|
# 只启停单项(可选 docker|backend|frontend|admin)
|
||||||
|
./scripts/start.sh backend
|
||||||
|
./scripts/stop.sh frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
后台进程的 PID 与日志默认写入 `.run/`(已加入 gitignore),排障时可直接查看 `.run/logs/*.log`。
|
||||||
|
|
||||||
|
启动后各服务地址:
|
||||||
|
|
||||||
|
| 服务 | 端口 | 说明 |
|
||||||
|
|---|---|---|
|
||||||
|
| 前台用户端 (H5) | 5173 | `http://localhost:5173` |
|
||||||
|
| 后台管理端 | 3100 | `http://localhost:3100` |
|
||||||
|
| Go 后端 API | 8085 | `http://localhost:8085`(`/health` 健康检查) |
|
||||||
|
| PostgreSQL | 5432 | Docker 容器 `echochat-postgres` |
|
||||||
|
| Redis | 6379 | Docker 容器 `echochat-redis` |
|
||||||
|
| MinIO API | 9000 | 对象存储,S3 兼容 |
|
||||||
|
| MinIO Console | 9001 | `http://localhost:9001`(echochat / echochat123456) |
|
||||||
|
|
||||||
|
### 方式二:Docker Compose 全量启动
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd deploy
|
cd deploy
|
||||||
docker compose -f docker-compose.dev.yml up -d
|
docker compose -f docker-compose.dev.yml up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
启动后服务地址:
|
> 注意:此方式下 Go 后端、前台、管理端需按下方「方式三」各自启动,或在 compose 中启用 `go-service` 服务。
|
||||||
- Go 后端 API:`http://localhost:8085`
|
|
||||||
- PostgreSQL:`localhost:5432`
|
|
||||||
- Redis:`localhost:6379`
|
|
||||||
|
|
||||||
### 方式二:分步手动启动(开发调试)
|
### 方式三:分步手动启动(开发调试)
|
||||||
|
|
||||||
**1. 启动基础设施(数据库 + 缓存)**
|
**1. 启动基础设施(数据库 + 缓存)**
|
||||||
|
|
||||||
|
|||||||
26
admin/package-lock.json
generated
26
admin/package-lock.json
generated
@@ -11,6 +11,7 @@
|
|||||||
"@element-plus/icons-vue": "^2.3.2",
|
"@element-plus/icons-vue": "^2.3.2",
|
||||||
"@vitejs/plugin-vue": "^6.0.4",
|
"@vitejs/plugin-vue": "^6.0.4",
|
||||||
"axios": "^1.13.6",
|
"axios": "^1.13.6",
|
||||||
|
"echarts": "^6.0.0",
|
||||||
"element-plus": "^2.13.3",
|
"element-plus": "^2.13.3",
|
||||||
"pinia": "^3.0.4",
|
"pinia": "^3.0.4",
|
||||||
"vite": "^7.3.1",
|
"vite": "^7.3.1",
|
||||||
@@ -1243,6 +1244,16 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/echarts": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "2.3.0",
|
||||||
|
"zrender": "6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/element-plus": {
|
"node_modules/element-plus": {
|
||||||
"version": "2.13.3",
|
"version": "2.13.3",
|
||||||
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.3.tgz",
|
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.3.tgz",
|
||||||
@@ -1830,6 +1841,12 @@
|
|||||||
"url": "https://github.com/sponsors/SuperchupuDev"
|
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tslib": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
|
||||||
|
"license": "0BSD"
|
||||||
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "7.3.1",
|
"version": "7.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
|
||||||
@@ -1947,6 +1964,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
|
||||||
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
|
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/zrender": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "2.3.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"@element-plus/icons-vue": "^2.3.2",
|
"@element-plus/icons-vue": "^2.3.2",
|
||||||
"@vitejs/plugin-vue": "^6.0.4",
|
"@vitejs/plugin-vue": "^6.0.4",
|
||||||
"axios": "^1.13.6",
|
"axios": "^1.13.6",
|
||||||
|
"echarts": "^6.0.0",
|
||||||
"element-plus": "^2.13.3",
|
"element-plus": "^2.13.3",
|
||||||
"pinia": "^3.0.4",
|
"pinia": "^3.0.4",
|
||||||
"vite": "^7.3.1",
|
"vite": "^7.3.1",
|
||||||
|
|||||||
86
admin/src/api/message.js
Normal file
86
admin/src/api/message.js
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/**
|
||||||
|
* 消息管理 API 模块
|
||||||
|
*
|
||||||
|
* 对应后端路由:/api/v1/admin/messages
|
||||||
|
* 所有接口需要 JWT + admin 角色权限
|
||||||
|
*
|
||||||
|
* 接口列表:
|
||||||
|
* - GET /api/v1/admin/messages 消息列表(分页 + 多条件筛选)
|
||||||
|
* - GET /api/v1/admin/messages/:id 消息详情
|
||||||
|
* - DELETE /api/v1/admin/messages/:id 删除消息(软删除)
|
||||||
|
* - PUT /api/v1/admin/messages/:id/recall 撤回消息
|
||||||
|
* - GET /api/v1/admin/messages/stats 消息统计
|
||||||
|
*/
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取消息列表
|
||||||
|
* @param {Object} params - 查询参数
|
||||||
|
* @param {number} [params.page] - 页码(默认 1)
|
||||||
|
* @param {number} [params.page_size] - 每页数量(默认 20)
|
||||||
|
* @param {string} [params.keyword] - 搜索关键词(模糊匹配消息内容)
|
||||||
|
* @param {number} [params.type] - 消息类型筛选(1=文本/2=图片/3=语音/5=文件/10=系统)
|
||||||
|
* @param {number} [params.sender_id] - 发送者 ID
|
||||||
|
* @param {number} [params.conversation_id] - 会话 ID
|
||||||
|
* @param {number} [params.status] - 消息状态(1=正常/2=已撤回/3=已删除)
|
||||||
|
* @param {string} [params.start_time] - 开始时间(YYYY-MM-DD)
|
||||||
|
* @param {string} [params.end_time] - 结束时间(YYYY-MM-DD)
|
||||||
|
* @returns {Promise<{data: {total: number, list: Array, page: number, page_size: number}}>}
|
||||||
|
*/
|
||||||
|
export function getMessageList(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/v1/admin/messages',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取消息详情
|
||||||
|
* @param {number} id - 消息 ID
|
||||||
|
* @returns {Promise<{data: Object}>}
|
||||||
|
*/
|
||||||
|
export function getMessageDetail(id) {
|
||||||
|
return request({
|
||||||
|
url: `/api/v1/admin/messages/${id}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除消息(软删除)
|
||||||
|
* @param {number} id - 消息 ID
|
||||||
|
* @returns {Promise}
|
||||||
|
*/
|
||||||
|
export function deleteMessage(id) {
|
||||||
|
return request({
|
||||||
|
url: `/api/v1/admin/messages/${id}`,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 撤回消息
|
||||||
|
* @param {number} id - 消息 ID
|
||||||
|
* @returns {Promise}
|
||||||
|
*/
|
||||||
|
export function recallMessage(id) {
|
||||||
|
return request({
|
||||||
|
url: `/api/v1/admin/messages/${id}/recall`,
|
||||||
|
method: 'put'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取消息统计数据
|
||||||
|
* @param {Object} params - 查询参数
|
||||||
|
* @param {number} [params.days] - 统计天数(默认 7,最大 90)
|
||||||
|
* @returns {Promise<{data: {total_count, today_count, type_distribution, daily_trend, active_users, active_groups}}>}
|
||||||
|
*/
|
||||||
|
export function getMessageStats(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/v1/admin/messages/stats',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -62,6 +62,18 @@ const routes = [
|
|||||||
name: 'GroupManage',
|
name: 'GroupManage',
|
||||||
component: () => import('@/views/group/list.vue'),
|
component: () => import('@/views/group/list.vue'),
|
||||||
meta: { title: '群组管理' }
|
meta: { title: '群组管理' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'message/list',
|
||||||
|
name: 'MessageList',
|
||||||
|
component: () => import('@/views/message/list.vue'),
|
||||||
|
meta: { title: '消息列表' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'message/stats',
|
||||||
|
name: 'MessageStats',
|
||||||
|
component: () => import('@/views/message/stats.vue'),
|
||||||
|
meta: { title: '消息统计' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,15 @@
|
|||||||
<el-menu-item index="/group/list">群组列表</el-menu-item>
|
<el-menu-item index="/group/list">群组列表</el-menu-item>
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
|
|
||||||
|
<el-sub-menu index="message-manage">
|
||||||
|
<template #title>
|
||||||
|
<el-icon><ChatRound /></el-icon>
|
||||||
|
<span>消息管理</span>
|
||||||
|
</template>
|
||||||
|
<el-menu-item index="/message/list">消息列表</el-menu-item>
|
||||||
|
<el-menu-item index="/message/stats">消息统计</el-menu-item>
|
||||||
|
</el-sub-menu>
|
||||||
|
|
||||||
<el-menu-item index="/monitor/online">
|
<el-menu-item index="/monitor/online">
|
||||||
<el-icon><Monitor /></el-icon>
|
<el-icon><Monitor /></el-icon>
|
||||||
<template #title>在线监控</template>
|
<template #title>在线监控</template>
|
||||||
|
|||||||
756
admin/src/views/message/list.vue
Normal file
756
admin/src/views/message/list.vue
Normal file
@@ -0,0 +1,756 @@
|
|||||||
|
<!--
|
||||||
|
管理端消息列表页面
|
||||||
|
|
||||||
|
设计系统:Data-Dense Dashboard 风格(与群组/用户列表页保持一致)
|
||||||
|
|
||||||
|
功能:
|
||||||
|
- 多条件筛选:关键词 / 消息类型 / 发送者 / 状态 / 时间范围
|
||||||
|
- 消息数据表格(Element Plus Table)
|
||||||
|
- 分页组件
|
||||||
|
- 操作按钮(查看详情 / 撤回 / 删除)
|
||||||
|
- 消息详情弹窗(含富媒体预览)
|
||||||
|
|
||||||
|
对应后端 API:
|
||||||
|
- GET /api/v1/admin/messages
|
||||||
|
- GET /api/v1/admin/messages/:id
|
||||||
|
- DELETE /api/v1/admin/messages/:id
|
||||||
|
- PUT /api/v1/admin/messages/:id/recall
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<div class="message-list-page">
|
||||||
|
<div class="page-header">
|
||||||
|
<h2 class="page-title">消息管理</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 筛选区 -->
|
||||||
|
<el-card class="filter-card" shadow="never">
|
||||||
|
<el-form :inline="true" class="filter-form" @submit.prevent="handleSearch">
|
||||||
|
<el-form-item label="关键词">
|
||||||
|
<el-input
|
||||||
|
v-model="filters.keyword"
|
||||||
|
placeholder="搜索消息内容"
|
||||||
|
clearable
|
||||||
|
style="width: 200px"
|
||||||
|
@clear="handleSearch"
|
||||||
|
>
|
||||||
|
<template #prefix>
|
||||||
|
<el-icon><Search /></el-icon>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="类型">
|
||||||
|
<el-select v-model="filters.type" placeholder="全部" clearable style="width: 120px">
|
||||||
|
<el-option label="文本" :value="1" />
|
||||||
|
<el-option label="图片" :value="2" />
|
||||||
|
<el-option label="语音" :value="3" />
|
||||||
|
<el-option label="文件" :value="5" />
|
||||||
|
<el-option label="系统" :value="10" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="状态">
|
||||||
|
<el-select v-model="filters.status" placeholder="全部" clearable style="width: 120px">
|
||||||
|
<el-option label="正常" :value="1" />
|
||||||
|
<el-option label="已撤回" :value="2" />
|
||||||
|
<el-option label="已删除" :value="3" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="发送者ID">
|
||||||
|
<el-input
|
||||||
|
v-model="filters.sender_id"
|
||||||
|
placeholder="用户ID"
|
||||||
|
clearable
|
||||||
|
style="width: 120px"
|
||||||
|
type="number"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="时间范围">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
style="width: 260px"
|
||||||
|
@change="onDateRangeChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="handleSearch">搜索</el-button>
|
||||||
|
<el-button @click="handleReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 数据表格 -->
|
||||||
|
<el-card class="table-card" shadow="never">
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="messageList"
|
||||||
|
stripe
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
row-class-name="table-row"
|
||||||
|
>
|
||||||
|
<el-table-column prop="id" label="ID" width="80" align="center" />
|
||||||
|
|
||||||
|
<el-table-column label="发送者" min-width="150">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div class="sender-cell">
|
||||||
|
<div
|
||||||
|
class="sender-avatar"
|
||||||
|
:style="{ backgroundColor: getAvatarColor(row.sender_nickname) }"
|
||||||
|
>
|
||||||
|
<img v-if="row.sender_avatar" :src="row.sender_avatar" class="sender-avatar-img" />
|
||||||
|
<span v-else>{{ (row.sender_nickname || '?')[0] }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="sender-info">
|
||||||
|
<span class="sender-name">{{ row.sender_nickname || '-' }}</span>
|
||||||
|
<span class="sender-id">ID: {{ row.sender_id }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="类型" width="90" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag :type="typeTagMap[row.type]?.type || 'info'" size="small" effect="light">
|
||||||
|
{{ row.type_label || typeTagMap[row.type]?.label || '未知' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="内容" min-width="240">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<span class="content-preview">{{ getContentPreview(row) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="状态" width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag :type="statusTagMap[row.status]?.type || 'info'" size="small">
|
||||||
|
{{ row.status_label || statusTagMap[row.status]?.label || '未知' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column prop="conversation_id" label="会话ID" width="90" align="center" />
|
||||||
|
|
||||||
|
<el-table-column prop="created_at" label="发送时间" width="180" align="center" />
|
||||||
|
|
||||||
|
<el-table-column label="操作" width="200" align="center" fixed="right">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button type="primary" link size="small" @click="viewDetail(row)">
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="row.status === 1"
|
||||||
|
type="warning"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
@click="handleRecall(row)"
|
||||||
|
>
|
||||||
|
撤回
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="row.status !== 3"
|
||||||
|
type="danger"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
@click="handleDelete(row)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<div class="pagination-wrapper">
|
||||||
|
<el-pagination
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 50]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@size-change="fetchMessageList"
|
||||||
|
@current-change="fetchMessageList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 消息详情弹窗 -->
|
||||||
|
<el-dialog
|
||||||
|
v-model="detailVisible"
|
||||||
|
title="消息详情"
|
||||||
|
width="640px"
|
||||||
|
destroy-on-close
|
||||||
|
class="detail-dialog"
|
||||||
|
>
|
||||||
|
<div v-loading="detailLoading" class="detail-content">
|
||||||
|
<template v-if="currentMsg">
|
||||||
|
<!-- 消息头部 -->
|
||||||
|
<div class="detail-header">
|
||||||
|
<div
|
||||||
|
class="detail-avatar"
|
||||||
|
:style="{ backgroundColor: getAvatarColor(currentMsg.sender_nickname) }"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
v-if="currentMsg.sender_avatar"
|
||||||
|
:src="currentMsg.sender_avatar"
|
||||||
|
class="detail-avatar-img"
|
||||||
|
/>
|
||||||
|
<span v-else>{{ (currentMsg.sender_nickname || '?')[0] }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail-header-info">
|
||||||
|
<div class="detail-header-name">
|
||||||
|
<span class="detail-sender-name">{{ currentMsg.sender_nickname }}</span>
|
||||||
|
<el-tag
|
||||||
|
:type="statusTagMap[currentMsg.status]?.type || 'info'"
|
||||||
|
size="small"
|
||||||
|
effect="light"
|
||||||
|
>
|
||||||
|
{{ currentMsg.status_label }}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
<div class="detail-header-meta">
|
||||||
|
<span class="meta-item">ID: {{ currentMsg.id }}</span>
|
||||||
|
<el-divider direction="vertical" />
|
||||||
|
<span class="meta-item">发送者ID: {{ currentMsg.sender_id }}</span>
|
||||||
|
<el-divider direction="vertical" />
|
||||||
|
<span class="meta-item">会话ID: {{ currentMsg.conversation_id }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 消息元数据 -->
|
||||||
|
<div class="detail-grid">
|
||||||
|
<div class="detail-grid-item">
|
||||||
|
<span class="grid-label">消息类型</span>
|
||||||
|
<span class="grid-value">
|
||||||
|
<el-tag
|
||||||
|
:type="typeTagMap[currentMsg.type]?.type || 'info'"
|
||||||
|
size="small"
|
||||||
|
effect="plain"
|
||||||
|
>
|
||||||
|
{{ currentMsg.type_label }}
|
||||||
|
</el-tag>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail-grid-item">
|
||||||
|
<span class="grid-label">发送时间</span>
|
||||||
|
<span class="grid-value">{{ currentMsg.created_at }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 消息内容 -->
|
||||||
|
<div class="detail-section">
|
||||||
|
<div class="section-header">消息内容</div>
|
||||||
|
<div class="msg-content-box">
|
||||||
|
<template v-if="currentMsg.type === 1 || currentMsg.type === 10">
|
||||||
|
<p class="msg-text-content">{{ currentMsg.content }}</p>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="currentMsg.type === 2 && parsedExtra">
|
||||||
|
<div class="msg-image-grid">
|
||||||
|
<img
|
||||||
|
v-for="(img, idx) in parsedExtra.images || []"
|
||||||
|
:key="idx"
|
||||||
|
:src="img.thumbnail_url || img.url"
|
||||||
|
class="msg-image-thumb"
|
||||||
|
@click="previewImage(img.url)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<p v-if="currentMsg.content" class="msg-text-content">{{ currentMsg.content }}</p>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="currentMsg.type === 3 && parsedExtra">
|
||||||
|
<div class="msg-voice-info">
|
||||||
|
<el-icon :size="20"><Microphone /></el-icon>
|
||||||
|
<span>语音消息 {{ parsedExtra.duration || 0 }}"</span>
|
||||||
|
<a v-if="parsedExtra.url" :href="parsedExtra.url" target="_blank" class="voice-link">播放</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="currentMsg.type === 5 && parsedExtra">
|
||||||
|
<div class="msg-file-info">
|
||||||
|
<el-icon :size="20"><Document /></el-icon>
|
||||||
|
<div class="file-meta">
|
||||||
|
<span class="file-name">{{ parsedExtra.file_name || '未知文件' }}</span>
|
||||||
|
<span class="file-size">{{ formatFileSize(parsedExtra.size || 0) }}</span>
|
||||||
|
</div>
|
||||||
|
<a v-if="parsedExtra.url" :href="parsedExtra.url" target="_blank" class="file-link">
|
||||||
|
下载
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<p class="msg-text-content">{{ currentMsg.content || '(无文本内容)' }}</p>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- extra 原始数据(可折叠) -->
|
||||||
|
<div v-if="currentMsg.extra" class="detail-section">
|
||||||
|
<el-collapse>
|
||||||
|
<el-collapse-item title="Extra 原始数据">
|
||||||
|
<pre class="extra-raw">{{ formatJSON(currentMsg.extra) }}</pre>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
/**
|
||||||
|
* 管理端消息列表逻辑
|
||||||
|
*
|
||||||
|
* 数据流:API → 列表渲染 → 筛选 / 分页 → 详情弹窗 → 撤回 / 删除
|
||||||
|
*/
|
||||||
|
import { ref, reactive, computed, onMounted } from 'vue'
|
||||||
|
import { Search, Microphone, Document } from '@element-plus/icons-vue'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { getMessageList, getMessageDetail, deleteMessage, recallMessage } from '@/api/message'
|
||||||
|
|
||||||
|
const AVATAR_COLORS = ['#2563EB', '#7C3AED', '#059669', '#D97706', '#DC2626', '#0891B2', '#4F46E5', '#BE185D']
|
||||||
|
|
||||||
|
const typeTagMap = {
|
||||||
|
1: { label: '文本', type: '' },
|
||||||
|
2: { label: '图片', type: 'success' },
|
||||||
|
3: { label: '语音', type: 'warning' },
|
||||||
|
5: { label: '文件', type: 'primary' },
|
||||||
|
10: { label: '系统', type: 'info' }
|
||||||
|
}
|
||||||
|
|
||||||
|
const statusTagMap = {
|
||||||
|
1: { label: '正常', type: 'success' },
|
||||||
|
2: { label: '已撤回', type: 'warning' },
|
||||||
|
3: { label: '已删除', type: 'danger' }
|
||||||
|
}
|
||||||
|
|
||||||
|
const loading = ref(false)
|
||||||
|
const messageList = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const currentPage = ref(1)
|
||||||
|
const pageSize = ref(20)
|
||||||
|
const dateRange = ref(null)
|
||||||
|
|
||||||
|
const filters = reactive({
|
||||||
|
keyword: '',
|
||||||
|
type: null,
|
||||||
|
status: null,
|
||||||
|
sender_id: null
|
||||||
|
})
|
||||||
|
|
||||||
|
const detailVisible = ref(false)
|
||||||
|
const detailLoading = ref(false)
|
||||||
|
const currentMsg = ref(null)
|
||||||
|
|
||||||
|
const parsedExtra = computed(() => {
|
||||||
|
if (!currentMsg.value?.extra) return null
|
||||||
|
try {
|
||||||
|
return JSON.parse(currentMsg.value.extra)
|
||||||
|
} catch {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const getAvatarColor = (name) => {
|
||||||
|
if (!name) return '#94A3B8'
|
||||||
|
return AVATAR_COLORS[name.charCodeAt(0) % AVATAR_COLORS.length]
|
||||||
|
}
|
||||||
|
|
||||||
|
const getContentPreview = (row) => {
|
||||||
|
if (row.status === 2) return '[已撤回]'
|
||||||
|
if (row.status === 3) return '[已删除]'
|
||||||
|
if (row.type === 2) return '[图片]'
|
||||||
|
if (row.type === 3) return `[语音]`
|
||||||
|
if (row.type === 5) {
|
||||||
|
try {
|
||||||
|
const extra = JSON.parse(row.extra || '{}')
|
||||||
|
return `[文件] ${extra.file_name || ''}`
|
||||||
|
} catch {
|
||||||
|
return '[文件]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return row.content || ''
|
||||||
|
}
|
||||||
|
|
||||||
|
const formatFileSize = (bytes) => {
|
||||||
|
if (bytes < 1024) return bytes + ' B'
|
||||||
|
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB'
|
||||||
|
return (bytes / (1024 * 1024)).toFixed(1) + ' MB'
|
||||||
|
}
|
||||||
|
|
||||||
|
const formatJSON = (str) => {
|
||||||
|
try {
|
||||||
|
return JSON.stringify(JSON.parse(str), null, 2)
|
||||||
|
} catch {
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const previewImage = (url) => {
|
||||||
|
window.open(url, '_blank')
|
||||||
|
}
|
||||||
|
|
||||||
|
const onDateRangeChange = (val) => {
|
||||||
|
if (!val) {
|
||||||
|
filters.start_time = undefined
|
||||||
|
filters.end_time = undefined
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 获取消息列表 */
|
||||||
|
const fetchMessageList = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const params = {
|
||||||
|
page: currentPage.value,
|
||||||
|
page_size: pageSize.value
|
||||||
|
}
|
||||||
|
if (filters.keyword) params.keyword = filters.keyword
|
||||||
|
if (filters.type != null) params.type = filters.type
|
||||||
|
if (filters.status != null) params.status = filters.status
|
||||||
|
if (filters.sender_id) params.sender_id = Number(filters.sender_id)
|
||||||
|
if (dateRange.value && dateRange.value.length === 2) {
|
||||||
|
params.start_time = dateRange.value[0]
|
||||||
|
params.end_time = dateRange.value[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await getMessageList(params)
|
||||||
|
messageList.value = res.data?.list || []
|
||||||
|
total.value = res.data?.total || 0
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error(e?.message || '获取消息列表失败')
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSearch = () => {
|
||||||
|
currentPage.value = 1
|
||||||
|
fetchMessageList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleReset = () => {
|
||||||
|
filters.keyword = ''
|
||||||
|
filters.type = null
|
||||||
|
filters.status = null
|
||||||
|
filters.sender_id = null
|
||||||
|
dateRange.value = null
|
||||||
|
currentPage.value = 1
|
||||||
|
fetchMessageList()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 查看消息详情 */
|
||||||
|
const viewDetail = async (row) => {
|
||||||
|
detailVisible.value = true
|
||||||
|
detailLoading.value = true
|
||||||
|
currentMsg.value = null
|
||||||
|
try {
|
||||||
|
const res = await getMessageDetail(row.id)
|
||||||
|
currentMsg.value = res.data
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error(e?.message || '获取消息详情失败')
|
||||||
|
} finally {
|
||||||
|
detailLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 撤回消息 */
|
||||||
|
const handleRecall = (row) => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
`确定要撤回消息 #${row.id} 吗?撤回后该消息对所有用户不可见。`,
|
||||||
|
'撤回消息',
|
||||||
|
{ confirmButtonText: '确定撤回', cancelButtonText: '取消', type: 'warning' }
|
||||||
|
).then(async () => {
|
||||||
|
try {
|
||||||
|
await recallMessage(row.id)
|
||||||
|
ElMessage.success('消息已撤回')
|
||||||
|
fetchMessageList()
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error(e?.message || '撤回失败')
|
||||||
|
}
|
||||||
|
}).catch(() => {})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 删除消息 */
|
||||||
|
const handleDelete = (row) => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
`确定要删除消息 #${row.id} 吗?`,
|
||||||
|
'删除消息',
|
||||||
|
{ confirmButtonText: '确定删除', cancelButtonText: '取消', type: 'warning' }
|
||||||
|
).then(async () => {
|
||||||
|
try {
|
||||||
|
await deleteMessage(row.id)
|
||||||
|
ElMessage.success('消息已删除')
|
||||||
|
fetchMessageList()
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error(e?.message || '删除失败')
|
||||||
|
}
|
||||||
|
}).catch(() => {})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
fetchMessageList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.message-list-page { padding: 0; }
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
.page-title {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #1E293B;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-card { margin-bottom: 16px; }
|
||||||
|
.filter-form {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-card { margin-bottom: 16px; }
|
||||||
|
|
||||||
|
/* 发送者单元格 */
|
||||||
|
.sender-cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
.sender-avatar {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
border-radius: 8px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #FFFFFF;
|
||||||
|
flex-shrink: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.sender-avatar-img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
.sender-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 2px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
.sender-name {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #1E293B;
|
||||||
|
font-size: 13px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.sender-id {
|
||||||
|
font-size: 11px;
|
||||||
|
color: #94A3B8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-preview {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #475569;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== 消息详情弹窗 ===== */
|
||||||
|
.detail-content { min-height: 200px; }
|
||||||
|
|
||||||
|
.detail-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 16px;
|
||||||
|
padding: 20px;
|
||||||
|
background: linear-gradient(135deg, #F8FAFC 0%, #EFF6FF 100%);
|
||||||
|
border-radius: 12px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.detail-avatar {
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
border-radius: 12px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #FFFFFF;
|
||||||
|
flex-shrink: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
|
||||||
|
}
|
||||||
|
.detail-avatar-img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
.detail-header-info { flex: 1; min-width: 0; }
|
||||||
|
.detail-header-name {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.detail-sender-name {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #0F172A;
|
||||||
|
}
|
||||||
|
.detail-header-meta {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #64748B;
|
||||||
|
}
|
||||||
|
.meta-item {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 12px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.detail-grid-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 4px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
background: #F8FAFC;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #E2E8F0;
|
||||||
|
}
|
||||||
|
.grid-label {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #94A3B8;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.03em;
|
||||||
|
}
|
||||||
|
.grid-value {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #1E293B;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-section { margin-bottom: 20px; }
|
||||||
|
.section-header {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #334155;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
border-bottom: 1px solid #E2E8F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg-content-box {
|
||||||
|
padding: 16px;
|
||||||
|
background: #F8FAFC;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #E2E8F0;
|
||||||
|
}
|
||||||
|
.msg-text-content {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #334155;
|
||||||
|
line-height: 1.6;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg-image-grid {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
.msg-image-thumb {
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
object-fit: cover;
|
||||||
|
border-radius: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 1px solid #E2E8F0;
|
||||||
|
transition: transform 0.2s;
|
||||||
|
}
|
||||||
|
.msg-image-thumb:hover { transform: scale(1.05); }
|
||||||
|
|
||||||
|
.msg-voice-info, .msg-file-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
padding: 8px 0;
|
||||||
|
}
|
||||||
|
.file-meta {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 2px;
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
.file-name {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #1E293B;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.file-size {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #94A3B8;
|
||||||
|
}
|
||||||
|
.voice-link, .file-link {
|
||||||
|
color: #2563EB;
|
||||||
|
font-size: 13px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.voice-link:hover, .file-link:hover { text-decoration: underline; }
|
||||||
|
|
||||||
|
.extra-raw {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #64748B;
|
||||||
|
background: #F1F5F9;
|
||||||
|
padding: 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
overflow-x: auto;
|
||||||
|
max-height: 200px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
387
admin/src/views/message/stats.vue
Normal file
387
admin/src/views/message/stats.vue
Normal file
@@ -0,0 +1,387 @@
|
|||||||
|
<!--
|
||||||
|
管理端消息统计仪表板
|
||||||
|
|
||||||
|
设计系统:Data-Dense Dashboard 风格
|
||||||
|
图表库:ECharts
|
||||||
|
主题色:Primary #2563EB
|
||||||
|
|
||||||
|
功能:
|
||||||
|
- 顶部统计卡片(总消息数 + 今日消息数)
|
||||||
|
- 消息趋势折线图(7/30 天切换)
|
||||||
|
- 消息类型分布饼图
|
||||||
|
- 活跃用户排行水平柱状图(Top 10)
|
||||||
|
- 活跃群组排行水平柱状图(Top 10)
|
||||||
|
|
||||||
|
对应后端 API:GET /api/v1/admin/messages/stats
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<div class="stats-page">
|
||||||
|
<div class="page-header">
|
||||||
|
<h2 class="page-title">消息统计</h2>
|
||||||
|
<div class="header-actions">
|
||||||
|
<el-radio-group v-model="days" size="default" @change="fetchStats">
|
||||||
|
<el-radio-button :value="7">近 7 天</el-radio-button>
|
||||||
|
<el-radio-button :value="30">近 30 天</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 统计卡片 -->
|
||||||
|
<div class="stat-cards">
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-card-icon total-icon">
|
||||||
|
<el-icon :size="24"><ChatDotRound /></el-icon>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card-info">
|
||||||
|
<span class="stat-label">消息总数</span>
|
||||||
|
<span class="stat-value">{{ formatNumber(stats.total_count) }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-card-icon today-icon">
|
||||||
|
<el-icon :size="24"><Sunrise /></el-icon>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card-info">
|
||||||
|
<span class="stat-label">今日消息</span>
|
||||||
|
<span class="stat-value">{{ formatNumber(stats.today_count) }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 图表区域 -->
|
||||||
|
<div v-loading="loading" class="charts-grid">
|
||||||
|
<!-- 消息趋势折线图 -->
|
||||||
|
<el-card class="chart-card chart-card-wide" shadow="never">
|
||||||
|
<template #header>
|
||||||
|
<span class="chart-title">消息趋势</span>
|
||||||
|
</template>
|
||||||
|
<div ref="trendChartRef" class="chart-container"></div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 消息类型分布饼图 -->
|
||||||
|
<el-card class="chart-card" shadow="never">
|
||||||
|
<template #header>
|
||||||
|
<span class="chart-title">类型分布</span>
|
||||||
|
</template>
|
||||||
|
<div ref="typeChartRef" class="chart-container"></div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 活跃用户排行 -->
|
||||||
|
<el-card class="chart-card" shadow="never">
|
||||||
|
<template #header>
|
||||||
|
<span class="chart-title">活跃用户 Top 10</span>
|
||||||
|
</template>
|
||||||
|
<div ref="userChartRef" class="chart-container"></div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 活跃群组排行 -->
|
||||||
|
<el-card class="chart-card" shadow="never">
|
||||||
|
<template #header>
|
||||||
|
<span class="chart-title">活跃群组 Top 10</span>
|
||||||
|
</template>
|
||||||
|
<div ref="groupChartRef" class="chart-container"></div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
/**
|
||||||
|
* 管理端消息统计逻辑
|
||||||
|
*
|
||||||
|
* 使用 ECharts 渲染四个图表,数据从 stats API 获取
|
||||||
|
*/
|
||||||
|
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||||
|
import { ChatDotRound, Sunrise } from '@element-plus/icons-vue'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
import { getMessageStats } from '@/api/message'
|
||||||
|
|
||||||
|
const PRIMARY = '#2563EB'
|
||||||
|
const CHART_COLORS = ['#2563EB', '#7C3AED', '#059669', '#D97706', '#DC2626', '#0891B2']
|
||||||
|
|
||||||
|
const days = ref(7)
|
||||||
|
const loading = ref(false)
|
||||||
|
const stats = ref({
|
||||||
|
total_count: 0,
|
||||||
|
today_count: 0,
|
||||||
|
type_distribution: [],
|
||||||
|
daily_trend: [],
|
||||||
|
active_users: [],
|
||||||
|
active_groups: []
|
||||||
|
})
|
||||||
|
|
||||||
|
const trendChartRef = ref(null)
|
||||||
|
const typeChartRef = ref(null)
|
||||||
|
const userChartRef = ref(null)
|
||||||
|
const groupChartRef = ref(null)
|
||||||
|
|
||||||
|
let trendChart = null
|
||||||
|
let typeChart = null
|
||||||
|
let userChart = null
|
||||||
|
let groupChart = null
|
||||||
|
|
||||||
|
const formatNumber = (n) => {
|
||||||
|
if (n == null) return '0'
|
||||||
|
return n.toLocaleString()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 获取统计数据 */
|
||||||
|
const fetchStats = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const res = await getMessageStats({ days: days.value })
|
||||||
|
stats.value = res.data || {}
|
||||||
|
await nextTick()
|
||||||
|
renderCharts()
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error(e?.message || '获取统计数据失败')
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 渲染所有图表 */
|
||||||
|
const renderCharts = () => {
|
||||||
|
renderTrendChart()
|
||||||
|
renderTypeChart()
|
||||||
|
renderUserChart()
|
||||||
|
renderGroupChart()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 消息趋势折线图 */
|
||||||
|
const renderTrendChart = () => {
|
||||||
|
if (!trendChartRef.value) return
|
||||||
|
if (!trendChart) trendChart = echarts.init(trendChartRef.value)
|
||||||
|
const trend = stats.value.daily_trend || []
|
||||||
|
trendChart.setOption({
|
||||||
|
tooltip: { trigger: 'axis' },
|
||||||
|
grid: { left: 50, right: 20, top: 20, bottom: 30 },
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
data: trend.map(d => d.date?.substring(5) || ''),
|
||||||
|
axisLabel: { color: '#64748B', fontSize: 11 },
|
||||||
|
axisLine: { lineStyle: { color: '#E2E8F0' } }
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLabel: { color: '#94A3B8', fontSize: 11 },
|
||||||
|
splitLine: { lineStyle: { color: '#F1F5F9' } }
|
||||||
|
},
|
||||||
|
series: [{
|
||||||
|
type: 'line',
|
||||||
|
data: trend.map(d => d.count),
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'circle',
|
||||||
|
symbolSize: 6,
|
||||||
|
lineStyle: { color: PRIMARY, width: 2 },
|
||||||
|
itemStyle: { color: PRIMARY },
|
||||||
|
areaStyle: {
|
||||||
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{ offset: 0, color: 'rgba(37, 99, 235, 0.2)' },
|
||||||
|
{ offset: 1, color: 'rgba(37, 99, 235, 0.02)' }
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 消息类型分布饼图 */
|
||||||
|
const renderTypeChart = () => {
|
||||||
|
if (!typeChartRef.value) return
|
||||||
|
if (!typeChart) typeChart = echarts.init(typeChartRef.value)
|
||||||
|
const dist = stats.value.type_distribution || []
|
||||||
|
typeChart.setOption({
|
||||||
|
tooltip: { trigger: 'item', formatter: '{b}: {c} ({d}%)' },
|
||||||
|
legend: {
|
||||||
|
orient: 'vertical',
|
||||||
|
right: 10,
|
||||||
|
top: 'center',
|
||||||
|
textStyle: { color: '#64748B', fontSize: 12 }
|
||||||
|
},
|
||||||
|
color: CHART_COLORS,
|
||||||
|
series: [{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['40%', '65%'],
|
||||||
|
center: ['40%', '50%'],
|
||||||
|
avoidLabelOverlap: true,
|
||||||
|
label: { show: false },
|
||||||
|
emphasis: { label: { show: true, fontWeight: 'bold' } },
|
||||||
|
data: dist.map(d => ({ value: d.count, name: d.label || `类型${d.type}` }))
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 活跃用户水平柱状图 */
|
||||||
|
const renderUserChart = () => {
|
||||||
|
if (!userChartRef.value) return
|
||||||
|
if (!userChart) userChart = echarts.init(userChartRef.value)
|
||||||
|
const users = (stats.value.active_users || []).slice(0, 10).reverse()
|
||||||
|
userChart.setOption({
|
||||||
|
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
|
||||||
|
grid: { left: 90, right: 30, top: 10, bottom: 20 },
|
||||||
|
xAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLabel: { color: '#94A3B8', fontSize: 11 },
|
||||||
|
splitLine: { lineStyle: { color: '#F1F5F9' } }
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'category',
|
||||||
|
data: users.map(u => u.nickname || `用户${u.user_id}`),
|
||||||
|
axisLabel: { color: '#64748B', fontSize: 11, width: 70, overflow: 'truncate' }
|
||||||
|
},
|
||||||
|
series: [{
|
||||||
|
type: 'bar',
|
||||||
|
data: users.map(u => u.count),
|
||||||
|
barWidth: 14,
|
||||||
|
itemStyle: {
|
||||||
|
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
{ offset: 0, color: '#2563EB' },
|
||||||
|
{ offset: 1, color: '#60A5FA' }
|
||||||
|
]),
|
||||||
|
borderRadius: [0, 4, 4, 0]
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 活跃群组水平柱状图 */
|
||||||
|
const renderGroupChart = () => {
|
||||||
|
if (!groupChartRef.value) return
|
||||||
|
if (!groupChart) groupChart = echarts.init(groupChartRef.value)
|
||||||
|
const groups = (stats.value.active_groups || []).slice(0, 10).reverse()
|
||||||
|
groupChart.setOption({
|
||||||
|
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
|
||||||
|
grid: { left: 90, right: 30, top: 10, bottom: 20 },
|
||||||
|
xAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLabel: { color: '#94A3B8', fontSize: 11 },
|
||||||
|
splitLine: { lineStyle: { color: '#F1F5F9' } }
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'category',
|
||||||
|
data: groups.map(g => g.name || `群组${g.group_id}`),
|
||||||
|
axisLabel: { color: '#64748B', fontSize: 11, width: 70, overflow: 'truncate' }
|
||||||
|
},
|
||||||
|
series: [{
|
||||||
|
type: 'bar',
|
||||||
|
data: groups.map(g => g.count),
|
||||||
|
barWidth: 14,
|
||||||
|
itemStyle: {
|
||||||
|
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
{ offset: 0, color: '#7C3AED' },
|
||||||
|
{ offset: 1, color: '#A78BFA' }
|
||||||
|
]),
|
||||||
|
borderRadius: [0, 4, 4, 0]
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 窗口 resize 时自动调整图表尺寸 */
|
||||||
|
const handleResize = () => {
|
||||||
|
trendChart?.resize()
|
||||||
|
typeChart?.resize()
|
||||||
|
userChart?.resize()
|
||||||
|
groupChart?.resize()
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
fetchStats()
|
||||||
|
window.addEventListener('resize', handleResize)
|
||||||
|
})
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener('resize', handleResize)
|
||||||
|
trendChart?.dispose()
|
||||||
|
typeChart?.dispose()
|
||||||
|
userChart?.dispose()
|
||||||
|
groupChart?.dispose()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.stats-page { padding: 0; }
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.page-title {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #1E293B;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 统计卡片 */
|
||||||
|
.stat-cards {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 16px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.stat-card {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 16px;
|
||||||
|
padding: 20px 24px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 12px;
|
||||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
|
||||||
|
border: 1px solid #E2E8F0;
|
||||||
|
}
|
||||||
|
.stat-card-icon {
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
border-radius: 12px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.total-icon {
|
||||||
|
background-color: rgba(37, 99, 235, 0.1);
|
||||||
|
color: #2563EB;
|
||||||
|
}
|
||||||
|
.today-icon {
|
||||||
|
background-color: rgba(5, 150, 105, 0.1);
|
||||||
|
color: #059669;
|
||||||
|
}
|
||||||
|
.stat-card-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
.stat-label {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #94A3B8;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.stat-value {
|
||||||
|
font-size: 28px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #0F172A;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图表网格 */
|
||||||
|
.charts-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
|
.chart-card { border-radius: 12px; }
|
||||||
|
.chart-card-wide { grid-column: span 2; }
|
||||||
|
.chart-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #334155;
|
||||||
|
}
|
||||||
|
.chart-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// Package controller 提供管理端消息管理的 HTTP 接口处理
|
||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/echochat/backend/app/admin/service"
|
||||||
|
"github.com/echochat/backend/app/dto"
|
||||||
|
"github.com/echochat/backend/pkg/utils"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MessageManageController 管理端消息管理控制器
|
||||||
|
type MessageManageController struct {
|
||||||
|
msgService *service.MessageManageService
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMessageManageController 创建消息管理控制器
|
||||||
|
func NewMessageManageController(msgService *service.MessageManageService) *MessageManageController {
|
||||||
|
return &MessageManageController{msgService: msgService}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageList 获取消息列表(分页+多条件筛选)
|
||||||
|
// GET /api/v1/admin/messages
|
||||||
|
func (ctl *MessageManageController) GetMessageList(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
var req dto.AdminMessageListRequest
|
||||||
|
if err := c.ShouldBindQuery(&req); err != nil {
|
||||||
|
utils.ResponseBadRequest(c, "参数格式错误")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := ctl.msgService.GetMessageList(ctx, &req)
|
||||||
|
if err != nil {
|
||||||
|
ctl.handleError(c, err, "获取消息列表失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, result)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageDetail 获取消息详情
|
||||||
|
// GET /api/v1/admin/messages/:id
|
||||||
|
func (ctl *MessageManageController) GetMessageDetail(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
id, err := strconv.ParseInt(c.Param("id"), 10, 64)
|
||||||
|
if err != nil || id <= 0 {
|
||||||
|
utils.ResponseBadRequest(c, "无效的消息 ID")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := ctl.msgService.GetMessageDetail(ctx, id)
|
||||||
|
if err != nil {
|
||||||
|
ctl.handleError(c, err, "获取消息详情失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, result)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteMessage 删除消息(软删除)
|
||||||
|
// DELETE /api/v1/admin/messages/:id
|
||||||
|
func (ctl *MessageManageController) DeleteMessage(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
id, err := strconv.ParseInt(c.Param("id"), 10, 64)
|
||||||
|
if err != nil || id <= 0 {
|
||||||
|
utils.ResponseBadRequest(c, "无效的消息 ID")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := ctl.msgService.DeleteMessage(ctx, id); err != nil {
|
||||||
|
ctl.handleError(c, err, "删除消息失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RecallMessage 管理员撤回消息
|
||||||
|
// PUT /api/v1/admin/messages/:id/recall
|
||||||
|
func (ctl *MessageManageController) RecallMessage(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
id, err := strconv.ParseInt(c.Param("id"), 10, 64)
|
||||||
|
if err != nil || id <= 0 {
|
||||||
|
utils.ResponseBadRequest(c, "无效的消息 ID")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := ctl.msgService.RecallMessage(ctx, id); err != nil {
|
||||||
|
ctl.handleError(c, err, "撤回消息失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageStats 获取消息统计数据
|
||||||
|
// GET /api/v1/admin/messages/stats
|
||||||
|
func (ctl *MessageManageController) GetMessageStats(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
var req dto.AdminMessageStatsRequest
|
||||||
|
if err := c.ShouldBindQuery(&req); err != nil {
|
||||||
|
utils.ResponseBadRequest(c, "参数格式错误")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := ctl.msgService.GetStats(ctx, &req)
|
||||||
|
if err != nil {
|
||||||
|
ctl.handleError(c, err, "获取消息统计失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, result)
|
||||||
|
}
|
||||||
|
|
||||||
|
// handleError 统一业务错误映射
|
||||||
|
func (ctl *MessageManageController) handleError(c *gin.Context, err error, fallbackMsg ...string) {
|
||||||
|
switch err {
|
||||||
|
case service.ErrMessageNotFound:
|
||||||
|
utils.ResponseNotFound(c, err.Error())
|
||||||
|
case service.ErrMessageRecalled:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
case service.ErrMessageDeleted:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
default:
|
||||||
|
msg := "服务器内部错误"
|
||||||
|
if len(fallbackMsg) > 0 && fallbackMsg[0] != "" {
|
||||||
|
msg = fallbackMsg[0]
|
||||||
|
}
|
||||||
|
utils.ResponseError(c, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
242
backend/go-service/app/admin/dao/message_manage_dao.go
Normal file
242
backend/go-service/app/admin/dao/message_manage_dao.go
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
// Package dao 提供 admin 模块的数据库访问操作
|
||||||
|
package dao
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/echochat/backend/app/dto"
|
||||||
|
imModel "github.com/echochat/backend/app/im/model"
|
||||||
|
"github.com/echochat/backend/pkg/logs"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MessageManageDAO 管理端消息数据访问对象
|
||||||
|
type MessageManageDAO struct {
|
||||||
|
db *gorm.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMessageManageDAO 创建 MessageManageDAO 实例
|
||||||
|
func NewMessageManageDAO(db *gorm.DB) *MessageManageDAO {
|
||||||
|
return &MessageManageDAO{db: db}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListMessages 分页查询消息列表(支持多条件筛选)
|
||||||
|
func (d *MessageManageDAO) ListMessages(ctx context.Context, req *dto.AdminMessageListRequest) ([]imModel.Message, int64, error) {
|
||||||
|
funcName := "dao.message_manage_dao.ListMessages"
|
||||||
|
logs.Debug(ctx, funcName, "查询消息列表")
|
||||||
|
|
||||||
|
query := d.db.WithContext(ctx).Model(&imModel.Message{})
|
||||||
|
|
||||||
|
if req.Keyword != "" {
|
||||||
|
query = query.Where("content ILIKE ?", fmt.Sprintf("%%%s%%", req.Keyword))
|
||||||
|
}
|
||||||
|
if req.Type != nil {
|
||||||
|
query = query.Where("type = ?", *req.Type)
|
||||||
|
}
|
||||||
|
if req.SenderID != nil {
|
||||||
|
query = query.Where("sender_id = ?", *req.SenderID)
|
||||||
|
}
|
||||||
|
if req.ConversationID != nil {
|
||||||
|
query = query.Where("conversation_id = ?", *req.ConversationID)
|
||||||
|
}
|
||||||
|
if req.Status != nil {
|
||||||
|
query = query.Where("status = ?", *req.Status)
|
||||||
|
}
|
||||||
|
if req.StartTime != "" {
|
||||||
|
if t, err := time.Parse("2006-01-02", req.StartTime); err == nil {
|
||||||
|
query = query.Where("created_at >= ?", t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if req.EndTime != "" {
|
||||||
|
if t, err := time.Parse("2006-01-02", req.EndTime); err == nil {
|
||||||
|
query = query.Where("created_at < ?", t.AddDate(0, 0, 1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var total int64
|
||||||
|
if err := query.Count(&total).Error; err != nil {
|
||||||
|
logs.Error(ctx, funcName, "统计消息总数失败", zap.Error(err))
|
||||||
|
return nil, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
page := req.Page
|
||||||
|
if page <= 0 {
|
||||||
|
page = 1
|
||||||
|
}
|
||||||
|
pageSize := req.PageSize
|
||||||
|
if pageSize <= 0 {
|
||||||
|
pageSize = 20
|
||||||
|
}
|
||||||
|
if pageSize > 100 {
|
||||||
|
pageSize = 100
|
||||||
|
}
|
||||||
|
|
||||||
|
var messages []imModel.Message
|
||||||
|
err := query.Order("id DESC").
|
||||||
|
Offset((page - 1) * pageSize).
|
||||||
|
Limit(pageSize).
|
||||||
|
Find(&messages).Error
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "查询消息列表失败", zap.Error(err))
|
||||||
|
return nil, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return messages, total, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageByID 根据 ID 查询单条消息
|
||||||
|
func (d *MessageManageDAO) GetMessageByID(ctx context.Context, id int64) (*imModel.Message, error) {
|
||||||
|
var msg imModel.Message
|
||||||
|
err := d.db.WithContext(ctx).First(&msg, id).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &msg, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateMessageStatus 更新消息状态
|
||||||
|
func (d *MessageManageDAO) UpdateMessageStatus(ctx context.Context, id int64, status int) error {
|
||||||
|
return d.db.WithContext(ctx).
|
||||||
|
Model(&imModel.Message{}).
|
||||||
|
Where("id = ?", id).
|
||||||
|
Update("status", status).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTotalCount 获取消息总数
|
||||||
|
func (d *MessageManageDAO) GetTotalCount(ctx context.Context) (int64, error) {
|
||||||
|
var count int64
|
||||||
|
err := d.db.WithContext(ctx).Model(&imModel.Message{}).Count(&count).Error
|
||||||
|
return count, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTodayCount 获取今日消息数
|
||||||
|
func (d *MessageManageDAO) GetTodayCount(ctx context.Context) (int64, error) {
|
||||||
|
var count int64
|
||||||
|
today := time.Now().Truncate(24 * time.Hour)
|
||||||
|
err := d.db.WithContext(ctx).Model(&imModel.Message{}).
|
||||||
|
Where("created_at >= ?", today).Count(&count).Error
|
||||||
|
return count, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTypeDistribution 获取消息类型分布
|
||||||
|
func (d *MessageManageDAO) GetTypeDistribution(ctx context.Context) ([]dto.TypeDistItem, error) {
|
||||||
|
type row struct {
|
||||||
|
Type int `gorm:"column:type"`
|
||||||
|
Count int64 `gorm:"column:count"`
|
||||||
|
}
|
||||||
|
var rows []row
|
||||||
|
err := d.db.WithContext(ctx).
|
||||||
|
Model(&imModel.Message{}).
|
||||||
|
Select("type, count(*) as count").
|
||||||
|
Group("type").
|
||||||
|
Order("count DESC").
|
||||||
|
Find(&rows).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := make([]dto.TypeDistItem, 0, len(rows))
|
||||||
|
for _, r := range rows {
|
||||||
|
result = append(result, dto.TypeDistItem{
|
||||||
|
Type: r.Type,
|
||||||
|
Count: r.Count,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDailyTrend 获取每日消息趋势
|
||||||
|
func (d *MessageManageDAO) GetDailyTrend(ctx context.Context, days int) ([]dto.DailyTrendItem, error) {
|
||||||
|
startDate := time.Now().AddDate(0, 0, -days).Truncate(24 * time.Hour)
|
||||||
|
type row struct {
|
||||||
|
Date string `gorm:"column:date"`
|
||||||
|
Count int64 `gorm:"column:count"`
|
||||||
|
}
|
||||||
|
var rows []row
|
||||||
|
err := d.db.WithContext(ctx).
|
||||||
|
Model(&imModel.Message{}).
|
||||||
|
Select("TO_CHAR(created_at, 'YYYY-MM-DD') as date, count(*) as count").
|
||||||
|
Where("created_at >= ?", startDate).
|
||||||
|
Group("date").
|
||||||
|
Order("date ASC").
|
||||||
|
Find(&rows).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := make([]dto.DailyTrendItem, 0, len(rows))
|
||||||
|
for _, r := range rows {
|
||||||
|
result = append(result, dto.DailyTrendItem{Date: r.Date, Count: r.Count})
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetActiveUsers 获取活跃用户排行(Top 10)
|
||||||
|
func (d *MessageManageDAO) GetActiveUsers(ctx context.Context, days int) ([]dto.ActiveUserItem, error) {
|
||||||
|
startDate := time.Now().AddDate(0, 0, -days).Truncate(24 * time.Hour)
|
||||||
|
type row struct {
|
||||||
|
UserID int64 `gorm:"column:sender_id"`
|
||||||
|
Nickname string `gorm:"column:nickname"`
|
||||||
|
Count int64 `gorm:"column:count"`
|
||||||
|
}
|
||||||
|
var rows []row
|
||||||
|
err := d.db.WithContext(ctx).
|
||||||
|
Raw(`SELECT m.sender_id, u.nickname, count(*) as count
|
||||||
|
FROM im_messages m
|
||||||
|
JOIN auth_users u ON u.id = m.sender_id
|
||||||
|
WHERE m.created_at >= ? AND m.sender_id > 0
|
||||||
|
GROUP BY m.sender_id, u.nickname
|
||||||
|
ORDER BY count DESC
|
||||||
|
LIMIT 10`, startDate).
|
||||||
|
Scan(&rows).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := make([]dto.ActiveUserItem, 0, len(rows))
|
||||||
|
for _, r := range rows {
|
||||||
|
result = append(result, dto.ActiveUserItem{
|
||||||
|
UserID: r.UserID,
|
||||||
|
Nickname: r.Nickname,
|
||||||
|
Count: r.Count,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetActiveGroups 获取活跃群组排行(Top 10)
|
||||||
|
func (d *MessageManageDAO) GetActiveGroups(ctx context.Context, days int) ([]dto.ActiveGroupItem, error) {
|
||||||
|
startDate := time.Now().AddDate(0, 0, -days).Truncate(24 * time.Hour)
|
||||||
|
type row struct {
|
||||||
|
GroupID int64 `gorm:"column:id"`
|
||||||
|
Name string `gorm:"column:name"`
|
||||||
|
Count int64 `gorm:"column:count"`
|
||||||
|
}
|
||||||
|
var rows []row
|
||||||
|
err := d.db.WithContext(ctx).
|
||||||
|
Raw(`SELECT g.id, g.name, count(*) as count
|
||||||
|
FROM im_messages m
|
||||||
|
JOIN im_conversations c ON c.id = m.conversation_id
|
||||||
|
JOIN im_groups g ON g.conversation_id = c.id
|
||||||
|
WHERE m.created_at >= ? AND c.type = 2
|
||||||
|
GROUP BY g.id, g.name
|
||||||
|
ORDER BY count DESC
|
||||||
|
LIMIT 10`, startDate).
|
||||||
|
Scan(&rows).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := make([]dto.ActiveGroupItem, 0, len(rows))
|
||||||
|
for _, r := range rows {
|
||||||
|
result = append(result, dto.ActiveGroupItem{
|
||||||
|
GroupID: r.GroupID,
|
||||||
|
Name: r.Name,
|
||||||
|
Count: r.Count,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ func RegisterRoutes(
|
|||||||
onlineCtrl *controller.OnlineController,
|
onlineCtrl *controller.OnlineController,
|
||||||
contactManageCtrl *controller.ContactManageController,
|
contactManageCtrl *controller.ContactManageController,
|
||||||
groupManageCtrl *controller.GroupManageController,
|
groupManageCtrl *controller.GroupManageController,
|
||||||
|
msgManageCtrl *controller.MessageManageController,
|
||||||
jwtAuth gin.HandlerFunc,
|
jwtAuth gin.HandlerFunc,
|
||||||
) {
|
) {
|
||||||
// 管理端路由组:JWT 认证 + admin/super_admin 角色检查
|
// 管理端路由组:JWT 认证 + admin/super_admin 角色检查
|
||||||
@@ -44,5 +45,12 @@ func RegisterRoutes(
|
|||||||
adminGroup.GET("/groups", groupManageCtrl.GetGroupList)
|
adminGroup.GET("/groups", groupManageCtrl.GetGroupList)
|
||||||
adminGroup.GET("/groups/:id", groupManageCtrl.GetGroupDetail)
|
adminGroup.GET("/groups/:id", groupManageCtrl.GetGroupDetail)
|
||||||
adminGroup.DELETE("/groups/:id", groupManageCtrl.DissolveGroup)
|
adminGroup.DELETE("/groups/:id", groupManageCtrl.DissolveGroup)
|
||||||
|
|
||||||
|
// 消息管理
|
||||||
|
adminGroup.GET("/messages/stats", msgManageCtrl.GetMessageStats)
|
||||||
|
adminGroup.GET("/messages", msgManageCtrl.GetMessageList)
|
||||||
|
adminGroup.GET("/messages/:id", msgManageCtrl.GetMessageDetail)
|
||||||
|
adminGroup.DELETE("/messages/:id", msgManageCtrl.DeleteMessage)
|
||||||
|
adminGroup.PUT("/messages/:id/recall", msgManageCtrl.RecallMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
270
backend/go-service/app/admin/service/message_manage_service.go
Normal file
270
backend/go-service/app/admin/service/message_manage_service.go
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
// Package service 提供 admin 模块的核心业务逻辑
|
||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
adminDAO "github.com/echochat/backend/app/admin/dao"
|
||||||
|
authDAO "github.com/echochat/backend/app/auth/dao"
|
||||||
|
imDAO "github.com/echochat/backend/app/im/dao"
|
||||||
|
"github.com/echochat/backend/app/constants"
|
||||||
|
"github.com/echochat/backend/app/dto"
|
||||||
|
"github.com/echochat/backend/pkg/logs"
|
||||||
|
"github.com/echochat/backend/pkg/ws"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrMessageNotFound = errors.New("消息不存在")
|
||||||
|
ErrMessageRecalled = errors.New("消息已被撤回")
|
||||||
|
ErrMessageDeleted = errors.New("消息已被删除")
|
||||||
|
)
|
||||||
|
|
||||||
|
// MessageManageService 管理端消息管理服务
|
||||||
|
type MessageManageService struct {
|
||||||
|
msgDAO *adminDAO.MessageManageDAO
|
||||||
|
userDAO *authDAO.UserDAO
|
||||||
|
convDAO *imDAO.ConversationDAO
|
||||||
|
pubSub *ws.PubSub
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMessageManageService 创建 MessageManageService 实例
|
||||||
|
func NewMessageManageService(msgDAO *adminDAO.MessageManageDAO, userDAO *authDAO.UserDAO, convDAO *imDAO.ConversationDAO, pubSub *ws.PubSub) *MessageManageService {
|
||||||
|
return &MessageManageService{
|
||||||
|
msgDAO: msgDAO,
|
||||||
|
userDAO: userDAO,
|
||||||
|
convDAO: convDAO,
|
||||||
|
pubSub: pubSub,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageList 获取消息列表(分页+筛选)
|
||||||
|
func (s *MessageManageService) GetMessageList(ctx context.Context, req *dto.AdminMessageListRequest) (*dto.AdminMessageListResponse, error) {
|
||||||
|
funcName := "service.message_manage_service.GetMessageList"
|
||||||
|
logs.Debug(ctx, funcName, "获取消息列表")
|
||||||
|
|
||||||
|
if req.Page <= 0 {
|
||||||
|
req.Page = 1
|
||||||
|
}
|
||||||
|
if req.PageSize <= 0 {
|
||||||
|
req.PageSize = 20
|
||||||
|
}
|
||||||
|
|
||||||
|
messages, total, err := s.msgDAO.ListMessages(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
senderIDs := make([]int64, 0, len(messages))
|
||||||
|
senderSet := make(map[int64]bool)
|
||||||
|
for _, m := range messages {
|
||||||
|
if m.SenderID > 0 && !senderSet[m.SenderID] {
|
||||||
|
senderIDs = append(senderIDs, m.SenderID)
|
||||||
|
senderSet[m.SenderID] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
userMap := make(map[int64]struct {
|
||||||
|
Nickname string
|
||||||
|
Avatar string
|
||||||
|
})
|
||||||
|
if len(senderIDs) > 0 {
|
||||||
|
users, uErr := s.userDAO.FindByIDs(ctx, senderIDs)
|
||||||
|
if uErr != nil {
|
||||||
|
logs.Error(ctx, funcName, "批量查询用户信息失败", zap.Error(uErr))
|
||||||
|
} else {
|
||||||
|
for _, u := range users {
|
||||||
|
userMap[u.ID] = struct {
|
||||||
|
Nickname string
|
||||||
|
Avatar string
|
||||||
|
}{Nickname: u.Nickname, Avatar: u.Avatar}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
list := make([]dto.AdminMessageDTO, 0, len(messages))
|
||||||
|
for _, m := range messages {
|
||||||
|
item := dto.AdminMessageDTO{
|
||||||
|
ID: m.ID,
|
||||||
|
ConversationID: m.ConversationID,
|
||||||
|
SenderID: m.SenderID,
|
||||||
|
Type: m.Type,
|
||||||
|
TypeLabel: constants.MessageTypeMap[m.Type],
|
||||||
|
Content: m.Content,
|
||||||
|
Extra: m.Extra,
|
||||||
|
Status: m.Status,
|
||||||
|
StatusLabel: constants.MessageStatusMap[m.Status],
|
||||||
|
CreatedAt: m.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||||
|
}
|
||||||
|
if info, ok := userMap[m.SenderID]; ok {
|
||||||
|
item.SenderNickname = info.Nickname
|
||||||
|
item.SenderAvatar = info.Avatar
|
||||||
|
}
|
||||||
|
list = append(list, item)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &dto.AdminMessageListResponse{
|
||||||
|
Total: total,
|
||||||
|
List: list,
|
||||||
|
Page: req.Page,
|
||||||
|
PageSize: req.PageSize,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMessageDetail 获取消息详情
|
||||||
|
func (s *MessageManageService) GetMessageDetail(ctx context.Context, id int64) (*dto.AdminMessageDTO, error) {
|
||||||
|
funcName := "service.message_manage_service.GetMessageDetail"
|
||||||
|
logs.Debug(ctx, funcName, "获取消息详情", zap.Int64("id", id))
|
||||||
|
|
||||||
|
msg, err := s.msgDAO.GetMessageByID(ctx, id)
|
||||||
|
if err != nil {
|
||||||
|
return nil, ErrMessageNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
item := &dto.AdminMessageDTO{
|
||||||
|
ID: msg.ID,
|
||||||
|
ConversationID: msg.ConversationID,
|
||||||
|
SenderID: msg.SenderID,
|
||||||
|
Type: msg.Type,
|
||||||
|
TypeLabel: constants.MessageTypeMap[msg.Type],
|
||||||
|
Content: msg.Content,
|
||||||
|
Extra: msg.Extra,
|
||||||
|
Status: msg.Status,
|
||||||
|
StatusLabel: constants.MessageStatusMap[msg.Status],
|
||||||
|
CreatedAt: msg.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||||
|
}
|
||||||
|
|
||||||
|
if msg.SenderID > 0 {
|
||||||
|
users, uErr := s.userDAO.FindByIDs(ctx, []int64{msg.SenderID})
|
||||||
|
if uErr == nil && len(users) > 0 {
|
||||||
|
item.SenderNickname = users[0].Nickname
|
||||||
|
item.SenderAvatar = users[0].Avatar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return item, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteMessage 删除消息(软删除,状态改为已删除)
|
||||||
|
func (s *MessageManageService) DeleteMessage(ctx context.Context, id int64) error {
|
||||||
|
funcName := "service.message_manage_service.DeleteMessage"
|
||||||
|
logs.Info(ctx, funcName, "删除消息", zap.Int64("id", id))
|
||||||
|
|
||||||
|
msg, err := s.msgDAO.GetMessageByID(ctx, id)
|
||||||
|
if err != nil {
|
||||||
|
return ErrMessageNotFound
|
||||||
|
}
|
||||||
|
if msg.Status == constants.MessageStatusDeleted {
|
||||||
|
return ErrMessageDeleted
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.msgDAO.UpdateMessageStatus(ctx, id, constants.MessageStatusDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RecallMessage 管理员撤回消息(更新状态 + 推送 WS 通知给会话成员)
|
||||||
|
func (s *MessageManageService) RecallMessage(ctx context.Context, id int64) error {
|
||||||
|
funcName := "service.message_manage_service.RecallMessage"
|
||||||
|
logs.Info(ctx, funcName, "撤回消息", zap.Int64("id", id))
|
||||||
|
|
||||||
|
msg, err := s.msgDAO.GetMessageByID(ctx, id)
|
||||||
|
if err != nil {
|
||||||
|
return ErrMessageNotFound
|
||||||
|
}
|
||||||
|
if msg.Status == constants.MessageStatusRecalled {
|
||||||
|
return ErrMessageRecalled
|
||||||
|
}
|
||||||
|
if msg.Status == constants.MessageStatusDeleted {
|
||||||
|
return ErrMessageDeleted
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := s.msgDAO.UpdateMessageStatus(ctx, id, constants.MessageStatusRecalled); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
go s.pushRecallNotification(ctx, msg.ID, msg.ConversationID, msg.SenderID)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// pushRecallNotification 向会话成员推送撤回通知
|
||||||
|
func (s *MessageManageService) pushRecallNotification(ctx context.Context, messageID, conversationID, senderID int64) {
|
||||||
|
funcName := "service.message_manage_service.pushRecallNotification"
|
||||||
|
|
||||||
|
memberIDs, err := s.convDAO.GetConversationMemberIDs(ctx, conversationID)
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "获取会话成员失败", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
pushData := map[string]interface{}{
|
||||||
|
"message_id": messageID,
|
||||||
|
"conversation_id": conversationID,
|
||||||
|
"operator_id": int64(0),
|
||||||
|
"sender_id": senderID,
|
||||||
|
"recall_text": "管理员撤回了一条消息",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, uid := range memberIDs {
|
||||||
|
pushMsg := ws.NewPushMessage("im.message.recalled", pushData)
|
||||||
|
if err := s.pubSub.PublishToUser(ctx, uid, pushMsg); err != nil {
|
||||||
|
logs.Error(ctx, funcName, "推送撤回通知失败", zap.Int64("user_id", uid), zap.Error(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStats 获取消息统计数据
|
||||||
|
func (s *MessageManageService) GetStats(ctx context.Context, req *dto.AdminMessageStatsRequest) (*dto.AdminMessageStatsResponse, error) {
|
||||||
|
funcName := "service.message_manage_service.GetStats"
|
||||||
|
logs.Debug(ctx, funcName, "获取消息统计")
|
||||||
|
|
||||||
|
days := req.Days
|
||||||
|
if days <= 0 {
|
||||||
|
days = 7
|
||||||
|
}
|
||||||
|
if days > 90 {
|
||||||
|
days = 90
|
||||||
|
}
|
||||||
|
|
||||||
|
totalCount, err := s.msgDAO.GetTotalCount(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
todayCount, err := s.msgDAO.GetTodayCount(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
typeDist, err := s.msgDAO.GetTypeDistribution(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for i := range typeDist {
|
||||||
|
typeDist[i].Label = constants.MessageTypeMap[typeDist[i].Type]
|
||||||
|
}
|
||||||
|
|
||||||
|
dailyTrend, err := s.msgDAO.GetDailyTrend(ctx, days)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
activeUsers, err := s.msgDAO.GetActiveUsers(ctx, days)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
activeGroups, err := s.msgDAO.GetActiveGroups(ctx, days)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &dto.AdminMessageStatsResponse{
|
||||||
|
TotalCount: totalCount,
|
||||||
|
TodayCount: todayCount,
|
||||||
|
TypeDistribution: typeDist,
|
||||||
|
DailyTrend: dailyTrend,
|
||||||
|
ActiveUsers: activeUsers,
|
||||||
|
ActiveGroups: activeGroups,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
@@ -115,6 +115,20 @@ func (d *UserDAO) UpdateLastLogin(ctx context.Context, userID int64, ip string)
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindByIDs 批量按 ID 查询用户
|
||||||
|
func (d *UserDAO) FindByIDs(ctx context.Context, ids []int64) ([]model.User, error) {
|
||||||
|
funcName := "dao.user_dao.FindByIDs"
|
||||||
|
logs.Debug(ctx, funcName, "批量查询用户", zap.Int("count", len(ids)))
|
||||||
|
|
||||||
|
var users []model.User
|
||||||
|
err := d.db.WithContext(ctx).Where("id IN ?", ids).Find(&users).Error
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "批量查询用户失败", zap.Error(err))
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return users, nil
|
||||||
|
}
|
||||||
|
|
||||||
// FindByAccount 按用户名或邮箱查找用户(登录时使用)
|
// FindByAccount 按用户名或邮箱查找用户(登录时使用)
|
||||||
func (d *UserDAO) FindByAccount(ctx context.Context, account string) (*model.User, error) {
|
func (d *UserDAO) FindByAccount(ctx context.Context, account string) (*model.User, error) {
|
||||||
funcName := "dao.user_dao.FindByAccount"
|
funcName := "dao.user_dao.FindByAccount"
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ var ConversationTypeMap = map[int]string{
|
|||||||
// 消息类型
|
// 消息类型
|
||||||
const (
|
const (
|
||||||
MessageTypeText = 1 // 文本消息
|
MessageTypeText = 1 // 文本消息
|
||||||
MessageTypeImage = 2 // 图片消息(预留)
|
MessageTypeImage = 2 // 图片消息
|
||||||
MessageTypeVoice = 3 // 语音消息(预留)
|
MessageTypeVoice = 3 // 语音消息
|
||||||
MessageTypeVideo = 4 // 视频消息(预留)
|
MessageTypeVideo = 4 // 视频消息(预留)
|
||||||
MessageTypeFile = 5 // 文件消息(预留)
|
MessageTypeFile = 5 // 文件消息
|
||||||
MessageTypeSystem = 10 // 系统消息(群聊操作通知)
|
MessageTypeSystem = 10 // 系统消息(群聊操作通知)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -59,3 +59,84 @@ type AdminCreateUserRequest struct {
|
|||||||
Nickname string `json:"nickname" binding:"max=50"` // 昵称(选填)
|
Nickname string `json:"nickname" binding:"max=50"` // 昵称(选填)
|
||||||
RoleCode string `json:"role_code" binding:"omitempty"` // 初始角色(选填,默认 user)
|
RoleCode string `json:"role_code" binding:"omitempty"` // 初始角色(选填,默认 user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ====== 管理端消息管理 DTO ======
|
||||||
|
|
||||||
|
// AdminMessageListRequest 管理端消息列表查询请求
|
||||||
|
type AdminMessageListRequest struct {
|
||||||
|
Keyword string `form:"keyword"` // 搜索关键词(模糊匹配消息内容)
|
||||||
|
Type *int `form:"type"` // 消息类型筛选(1/2/3/5/10)
|
||||||
|
SenderID *int64 `form:"sender_id"` // 发送者 ID
|
||||||
|
ConversationID *int64 `form:"conversation_id"` // 会话 ID
|
||||||
|
Status *int `form:"status"` // 消息状态(1=正常/2=已撤回/3=已删除)
|
||||||
|
StartTime string `form:"start_time"` // 开始时间(YYYY-MM-DD)
|
||||||
|
EndTime string `form:"end_time"` // 结束时间(YYYY-MM-DD)
|
||||||
|
Page int `form:"page"` // 页码(默认1)
|
||||||
|
PageSize int `form:"page_size"` // 每页条数(默认20)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageListResponse 管理端消息列表响应
|
||||||
|
type AdminMessageListResponse struct {
|
||||||
|
Total int64 `json:"total"` // 总条数
|
||||||
|
List []AdminMessageDTO `json:"list"` // 消息列表
|
||||||
|
Page int `json:"page"` // 当前页码
|
||||||
|
PageSize int `json:"page_size"` // 每页条数
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageDTO 管理端消息条目
|
||||||
|
type AdminMessageDTO struct {
|
||||||
|
ID int64 `json:"id"` // 消息 ID
|
||||||
|
ConversationID int64 `json:"conversation_id"` // 会话 ID
|
||||||
|
SenderID int64 `json:"sender_id"` // 发送者 ID
|
||||||
|
SenderNickname string `json:"sender_nickname"` // 发送者昵称
|
||||||
|
SenderAvatar string `json:"sender_avatar"` // 发送者头像
|
||||||
|
Type int `json:"type"` // 消息类型
|
||||||
|
TypeLabel string `json:"type_label"` // 类型中文标签
|
||||||
|
Content string `json:"content"` // 消息内容
|
||||||
|
Extra *string `json:"extra,omitempty"` // 扩展数据 JSON
|
||||||
|
Status int `json:"status"` // 消息状态
|
||||||
|
StatusLabel string `json:"status_label"` // 状态中文标签
|
||||||
|
CreatedAt string `json:"created_at"` // 发送时间
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageStatsRequest 管理端消息统计请求
|
||||||
|
type AdminMessageStatsRequest struct {
|
||||||
|
Days int `form:"days"` // 统计天数(默认7,最大90)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageStatsResponse 管理端消息统计响应
|
||||||
|
type AdminMessageStatsResponse struct {
|
||||||
|
TotalCount int64 `json:"total_count"` // 消息总数
|
||||||
|
TodayCount int64 `json:"today_count"` // 今日消息数
|
||||||
|
TypeDistribution []TypeDistItem `json:"type_distribution"` // 类型分布
|
||||||
|
DailyTrend []DailyTrendItem `json:"daily_trend"` // 每日趋势
|
||||||
|
ActiveUsers []ActiveUserItem `json:"active_users"` // 活跃用户排行
|
||||||
|
ActiveGroups []ActiveGroupItem `json:"active_groups"` // 活跃群组排行
|
||||||
|
}
|
||||||
|
|
||||||
|
// TypeDistItem 消息类型分布条目
|
||||||
|
type TypeDistItem struct {
|
||||||
|
Type int `json:"type"` // 消息类型
|
||||||
|
Label string `json:"label"` // 类型中文标签
|
||||||
|
Count int64 `json:"count"` // 数量
|
||||||
|
}
|
||||||
|
|
||||||
|
// DailyTrendItem 每日消息趋势条目
|
||||||
|
type DailyTrendItem struct {
|
||||||
|
Date string `json:"date"` // 日期(YYYY-MM-DD)
|
||||||
|
Count int64 `json:"count"` // 数量
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActiveUserItem 活跃用户排行条目
|
||||||
|
type ActiveUserItem struct {
|
||||||
|
UserID int64 `json:"user_id"` // 用户 ID
|
||||||
|
Nickname string `json:"nickname"` // 昵称
|
||||||
|
Count int64 `json:"count"` // 消息数
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActiveGroupItem 活跃群组排行条目
|
||||||
|
type ActiveGroupItem struct {
|
||||||
|
GroupID int64 `json:"group_id"` // 群组 ID
|
||||||
|
Name string `json:"name"` // 群名称
|
||||||
|
Count int64 `json:"count"` // 消息数
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,23 +6,25 @@ package dto
|
|||||||
type SendMessageRequest struct {
|
type SendMessageRequest struct {
|
||||||
ConversationID int64 `json:"conversation_id"` // 会话 ID(与 TargetUserID 二选一)
|
ConversationID int64 `json:"conversation_id"` // 会话 ID(与 TargetUserID 二选一)
|
||||||
TargetUserID int64 `json:"target_user_id"` // 对方用户 ID(首次发消息时使用,自动创建会话)
|
TargetUserID int64 `json:"target_user_id"` // 对方用户 ID(首次发消息时使用,自动创建会话)
|
||||||
Type int `json:"type"` // 消息类型:1=文本
|
Type int `json:"type"` // 消息类型:1=文本, 2=图片, 3=语音, 5=文件
|
||||||
Content string `json:"content"` // 消息内容
|
Content string `json:"content"` // 消息内容(富媒体消息时为空字符串)
|
||||||
|
Extra string `json:"extra"` // 扩展数据 JSON 字符串(图片/语音/文件元信息)
|
||||||
ClientMsgID string `json:"client_msg_id"` // 客户端消息唯一 ID,用于幂等去重
|
ClientMsgID string `json:"client_msg_id"` // 客户端消息唯一 ID,用于幂等去重
|
||||||
AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表(含 0 表示 @所有人)
|
AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表(含 0 表示 @所有人)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MessageDTO 消息传输对象(返回给前端)
|
// MessageDTO 消息传输对象(返回给前端)
|
||||||
type MessageDTO struct {
|
type MessageDTO struct {
|
||||||
ID int64 `json:"id"` // 消息 ID
|
ID int64 `json:"id"` // 消息 ID
|
||||||
ConversationID int64 `json:"conversation_id"` // 所属会话 ID
|
ConversationID int64 `json:"conversation_id"` // 所属会话 ID
|
||||||
SenderID int64 `json:"sender_id"` // 发送者用户 ID
|
SenderID int64 `json:"sender_id"` // 发送者用户 ID
|
||||||
Type int `json:"type"` // 消息类型
|
Type int `json:"type"` // 消息类型
|
||||||
Content string `json:"content"` // 消息内容
|
Content string `json:"content"` // 消息内容
|
||||||
Status int `json:"status"` // 消息状态:1=正常,2=已撤回
|
Extra *string `json:"extra,omitempty"` // 扩展数据 JSON(图片/语音/文件元信息)
|
||||||
ClientMsgID string `json:"client_msg_id"` // 客户端消息 ID
|
Status int `json:"status"` // 消息状态:1=正常,2=已撤回
|
||||||
AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表
|
ClientMsgID string `json:"client_msg_id"` // 客户端消息 ID
|
||||||
CreatedAt string `json:"created_at"` // 发送时间
|
AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表
|
||||||
|
CreatedAt string `json:"created_at"` // 发送时间
|
||||||
}
|
}
|
||||||
|
|
||||||
// RecallMessageRequest 撤回消息请求(WS 事件 im.message.recall 的 data 字段)
|
// RecallMessageRequest 撤回消息请求(WS 事件 im.message.recall 的 data 字段)
|
||||||
|
|||||||
@@ -2,13 +2,19 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/echochat/backend/app/file/service"
|
"github.com/echochat/backend/app/file/service"
|
||||||
"github.com/echochat/backend/pkg/middleware"
|
"github.com/echochat/backend/pkg/middleware"
|
||||||
"github.com/echochat/backend/pkg/utils"
|
"github.com/echochat/backend/pkg/utils"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
const maxUploadSize = 10 << 20 // 10 MB
|
const (
|
||||||
|
maxUploadSize = 50 << 20 // 50 MB(通用上传)
|
||||||
|
maxImageUploadSize = 20 << 20 // 20 MB(图片上传)
|
||||||
|
maxVoiceUploadSize = 5 << 20 // 5 MB(语音上传)
|
||||||
|
)
|
||||||
|
|
||||||
// FileController 文件上传控制器
|
// FileController 文件上传控制器
|
||||||
type FileController struct {
|
type FileController struct {
|
||||||
@@ -20,9 +26,9 @@ func NewFileController(fileService *service.FileService) *FileController {
|
|||||||
return &FileController{fileService: fileService}
|
return &FileController{fileService: fileService}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Upload 处理文件上传请求
|
// Upload 处理通用文件上传请求
|
||||||
// POST /api/v1/upload
|
// POST /api/v1/upload
|
||||||
// 支持 multipart/form-data,字段名为 "file"
|
// 支持 multipart/form-data,字段名为 "file",最大 50MB
|
||||||
func (ctl *FileController) Upload(c *gin.Context) {
|
func (ctl *FileController) Upload(c *gin.Context) {
|
||||||
ctx := c.Request.Context()
|
ctx := c.Request.Context()
|
||||||
_, ok := middleware.GetCurrentUserID(c)
|
_, ok := middleware.GetCurrentUserID(c)
|
||||||
@@ -38,7 +44,7 @@ func (ctl *FileController) Upload(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if fileHeader.Size > maxUploadSize {
|
if fileHeader.Size > maxUploadSize {
|
||||||
utils.ResponseBadRequest(c, "文件大小不能超过 10MB")
|
utils.ResponseBadRequest(c, "文件大小不能超过 50MB")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,14 +57,94 @@ func (ctl *FileController) Upload(c *gin.Context) {
|
|||||||
utils.ResponseOK(c, result)
|
utils.ResponseOK(c, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UploadImage 处理图片上传请求,自动生成缩略图
|
||||||
|
// POST /api/v1/upload/image
|
||||||
|
// 支持 multipart/form-data,字段名为 "file",最大 20MB
|
||||||
|
// 返回原图 URL + 缩略图 URL + 宽高信息
|
||||||
|
func (ctl *FileController) UploadImage(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
_, ok := middleware.GetCurrentUserID(c)
|
||||||
|
if !ok {
|
||||||
|
utils.ResponseUnauthorized(c, "无法获取当前用户信息")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fileHeader, err := c.FormFile("file")
|
||||||
|
if err != nil {
|
||||||
|
utils.ResponseBadRequest(c, "请选择要上传的图片")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if fileHeader.Size > maxImageUploadSize {
|
||||||
|
utils.ResponseBadRequest(c, "图片大小不能超过 20MB")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := ctl.fileService.UploadImage(ctx, fileHeader)
|
||||||
|
if err != nil {
|
||||||
|
ctl.handleError(c, err, "图片上传失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, result)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UploadVoice 处理语音上传请求,校验格式和时长
|
||||||
|
// POST /api/v1/upload/voice
|
||||||
|
// 支持 multipart/form-data,字段名为 "file",另需 "duration" 字段(秒)
|
||||||
|
// 最大 5MB,时长不超过 60 秒
|
||||||
|
func (ctl *FileController) UploadVoice(c *gin.Context) {
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
_, ok := middleware.GetCurrentUserID(c)
|
||||||
|
if !ok {
|
||||||
|
utils.ResponseUnauthorized(c, "无法获取当前用户信息")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fileHeader, err := c.FormFile("file")
|
||||||
|
if err != nil {
|
||||||
|
utils.ResponseBadRequest(c, "请选择要上传的语音文件")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if fileHeader.Size > maxVoiceUploadSize {
|
||||||
|
utils.ResponseBadRequest(c, "语音文件大小不能超过 5MB")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
durationStr := c.PostForm("duration")
|
||||||
|
duration := 0
|
||||||
|
if durationStr != "" {
|
||||||
|
duration, err = strconv.Atoi(durationStr)
|
||||||
|
if err != nil || duration < 0 {
|
||||||
|
utils.ResponseBadRequest(c, "语音时长参数无效")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := ctl.fileService.UploadVoice(ctx, fileHeader, duration)
|
||||||
|
if err != nil {
|
||||||
|
ctl.handleError(c, err, "语音上传失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.ResponseOK(c, result)
|
||||||
|
}
|
||||||
|
|
||||||
// handleError 统一业务错误映射
|
// handleError 统一业务错误映射
|
||||||
// 已知业务错误 → 返回 Service 层定义的具体提示
|
|
||||||
// 未知错误 → 返回 fallbackMsg(未传则默认"服务器内部错误")
|
|
||||||
func (ctl *FileController) handleError(c *gin.Context, err error, fallbackMsg ...string) {
|
func (ctl *FileController) handleError(c *gin.Context, err error, fallbackMsg ...string) {
|
||||||
switch err {
|
switch err {
|
||||||
case service.ErrFileOpen:
|
case service.ErrFileOpen:
|
||||||
utils.ResponseBadRequest(c, err.Error())
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
case service.ErrUploadFailed:
|
case service.ErrInvalidImage:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
case service.ErrInvalidVoice:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
case service.ErrVoiceTooLong:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
case service.ErrFileTooLarge:
|
||||||
|
utils.ResponseBadRequest(c, err.Error())
|
||||||
|
case service.ErrUploadFailed, service.ErrThumbnailGen:
|
||||||
utils.ResponseError(c, err.Error())
|
utils.ResponseError(c, err.Error())
|
||||||
default:
|
default:
|
||||||
msg := "服务器内部错误"
|
msg := "服务器内部错误"
|
||||||
|
|||||||
@@ -12,5 +12,7 @@ func RegisterRoutes(r *gin.Engine, ctrl *controller.FileController, jwtAuth gin.
|
|||||||
authed.Use(jwtAuth)
|
authed.Use(jwtAuth)
|
||||||
{
|
{
|
||||||
authed.POST("/upload", ctrl.Upload)
|
authed.POST("/upload", ctrl.Upload)
|
||||||
|
authed.POST("/upload/image", ctrl.UploadImage)
|
||||||
|
authed.POST("/upload/voice", ctrl.UploadVoice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,20 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"image"
|
||||||
|
_ "image/gif"
|
||||||
|
_ "image/jpeg"
|
||||||
|
_ "image/png"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/disintegration/imaging"
|
||||||
"github.com/echochat/backend/config"
|
"github.com/echochat/backend/config"
|
||||||
"github.com/echochat/backend/pkg/logs"
|
"github.com/echochat/backend/pkg/logs"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
@@ -19,8 +25,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrFileOpen = errors.New("打开上传文件失败")
|
ErrFileOpen = errors.New("打开上传文件失败")
|
||||||
ErrUploadFailed = errors.New("文件上传失败")
|
ErrUploadFailed = errors.New("文件上传失败")
|
||||||
|
ErrFileTooLarge = errors.New("文件大小超出限制")
|
||||||
|
ErrInvalidImage = errors.New("无效的图片文件")
|
||||||
|
ErrInvalidVoice = errors.New("不支持的语音格式,仅支持 mp3/wav/aac/m4a")
|
||||||
|
ErrVoiceTooLong = errors.New("语音时长不能超过 60 秒")
|
||||||
|
ErrThumbnailGen = errors.New("缩略图生成失败")
|
||||||
)
|
)
|
||||||
|
|
||||||
// FileService 文件上传服务
|
// FileService 文件上传服务
|
||||||
@@ -37,13 +48,41 @@ func NewFileService(client *minio.Client, cfg *config.MinioConfig) *FileService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UploadResult 文件上传结果
|
// UploadResult 通用文件上传结果
|
||||||
type UploadResult struct {
|
type UploadResult struct {
|
||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
FileName string `json:"file_name"`
|
FileName string `json:"file_name"`
|
||||||
Size int64 `json:"size"`
|
Size int64 `json:"size"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ImageUploadResult 图片上传结果(含缩略图和尺寸)
|
||||||
|
type ImageUploadResult struct {
|
||||||
|
URL string `json:"url"`
|
||||||
|
ThumbnailURL string `json:"thumbnail_url"`
|
||||||
|
FileName string `json:"file_name"`
|
||||||
|
Size int64 `json:"size"`
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
MimeType string `json:"mime_type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// VoiceUploadResult 语音上传结果(含时长)
|
||||||
|
type VoiceUploadResult struct {
|
||||||
|
URL string `json:"url"`
|
||||||
|
FileName string `json:"file_name"`
|
||||||
|
Size int64 `json:"size"`
|
||||||
|
Duration int `json:"duration"`
|
||||||
|
MimeType string `json:"mime_type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// allowedVoiceExts 允许的语音文件扩展名
|
||||||
|
var allowedVoiceExts = map[string]bool{
|
||||||
|
".mp3": true,
|
||||||
|
".wav": true,
|
||||||
|
".aac": true,
|
||||||
|
".m4a": true,
|
||||||
|
}
|
||||||
|
|
||||||
// Upload 上传文件到 MinIO,返回文件访问 URL
|
// Upload 上传文件到 MinIO,返回文件访问 URL
|
||||||
// 文件按日期目录组织:uploads/2026/03/04/{uuid}.{ext}
|
// 文件按日期目录组织:uploads/2026/03/04/{uuid}.{ext}
|
||||||
func (s *FileService) Upload(ctx context.Context, fileHeader *multipart.FileHeader) (*UploadResult, error) {
|
func (s *FileService) Upload(ctx context.Context, fileHeader *multipart.FileHeader) (*UploadResult, error) {
|
||||||
@@ -76,11 +115,7 @@ func (s *FileService) Upload(ctx context.Context, fileHeader *multipart.FileHead
|
|||||||
return nil, ErrUploadFailed
|
return nil, ErrUploadFailed
|
||||||
}
|
}
|
||||||
|
|
||||||
scheme := "http"
|
url := s.buildURL(objectName)
|
||||||
if s.minioCfg.UseSSL {
|
|
||||||
scheme = "https"
|
|
||||||
}
|
|
||||||
url := fmt.Sprintf("%s://%s/%s/%s", scheme, s.minioCfg.Endpoint, s.minioCfg.Bucket, objectName)
|
|
||||||
|
|
||||||
return &UploadResult{
|
return &UploadResult{
|
||||||
URL: url,
|
URL: url,
|
||||||
@@ -88,3 +123,142 @@ func (s *FileService) Upload(ctx context.Context, fileHeader *multipart.FileHead
|
|||||||
Size: fileHeader.Size,
|
Size: fileHeader.Size,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UploadImage 上传图片并生成缩略图
|
||||||
|
// 原图和缩略图均存储到 MinIO,缩略图宽度 200px 等比缩放,JPEG quality 80
|
||||||
|
func (s *FileService) UploadImage(ctx context.Context, fileHeader *multipart.FileHeader) (*ImageUploadResult, error) {
|
||||||
|
funcName := "service.file_service.UploadImage"
|
||||||
|
logs.Info(ctx, funcName, "上传图片",
|
||||||
|
zap.String("file_name", fileHeader.Filename),
|
||||||
|
zap.Int64("size", fileHeader.Size))
|
||||||
|
|
||||||
|
file, err := fileHeader.Open()
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "打开图片文件失败", zap.Error(err))
|
||||||
|
return nil, ErrFileOpen
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
img, _, err := image.Decode(file)
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "解码图片失败", zap.Error(err))
|
||||||
|
return nil, ErrInvalidImage
|
||||||
|
}
|
||||||
|
|
||||||
|
bounds := img.Bounds()
|
||||||
|
width := bounds.Dx()
|
||||||
|
height := bounds.Dy()
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
fileID := uuid.New().String()
|
||||||
|
dateDir := now.Format("2006/01/02")
|
||||||
|
|
||||||
|
// 上传原图(回到文件开头)
|
||||||
|
if _, err = file.Seek(0, 0); err != nil {
|
||||||
|
logs.Error(ctx, funcName, "重置文件指针失败", zap.Error(err))
|
||||||
|
return nil, ErrFileOpen
|
||||||
|
}
|
||||||
|
|
||||||
|
ext := strings.ToLower(filepath.Ext(fileHeader.Filename))
|
||||||
|
objectName := fmt.Sprintf("uploads/%s/%s%s", dateDir, fileID, ext)
|
||||||
|
|
||||||
|
contentType := fileHeader.Header.Get("Content-Type")
|
||||||
|
if contentType == "" {
|
||||||
|
contentType = "image/jpeg"
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = s.minioClient.PutObject(ctx, s.minioCfg.Bucket, objectName, file, fileHeader.Size, minio.PutObjectOptions{
|
||||||
|
ContentType: contentType,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "上传原图到 MinIO 失败", zap.Error(err))
|
||||||
|
return nil, ErrUploadFailed
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成缩略图:宽度 200px,等比缩放
|
||||||
|
thumb := imaging.Resize(img, 200, 0, imaging.Lanczos)
|
||||||
|
|
||||||
|
var thumbBuf bytes.Buffer
|
||||||
|
if err = imaging.Encode(&thumbBuf, thumb, imaging.JPEG, imaging.JPEGQuality(80)); err != nil {
|
||||||
|
logs.Error(ctx, funcName, "编码缩略图失败", zap.Error(err))
|
||||||
|
return nil, ErrThumbnailGen
|
||||||
|
}
|
||||||
|
|
||||||
|
thumbObjectName := fmt.Sprintf("uploads/%s/%s_thumb.jpg", dateDir, fileID)
|
||||||
|
_, err = s.minioClient.PutObject(ctx, s.minioCfg.Bucket, thumbObjectName, &thumbBuf, int64(thumbBuf.Len()), minio.PutObjectOptions{
|
||||||
|
ContentType: "image/jpeg",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "上传缩略图到 MinIO 失败", zap.Error(err))
|
||||||
|
return nil, ErrThumbnailGen
|
||||||
|
}
|
||||||
|
|
||||||
|
return &ImageUploadResult{
|
||||||
|
URL: s.buildURL(objectName),
|
||||||
|
ThumbnailURL: s.buildURL(thumbObjectName),
|
||||||
|
FileName: fileHeader.Filename,
|
||||||
|
Size: fileHeader.Size,
|
||||||
|
Width: width,
|
||||||
|
Height: height,
|
||||||
|
MimeType: contentType,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UploadVoice 上传语音文件,校验格式和前端传入的时长
|
||||||
|
// duration 由前端录音回调提供(秒),后端仅做范围校验
|
||||||
|
func (s *FileService) UploadVoice(ctx context.Context, fileHeader *multipart.FileHeader, duration int) (*VoiceUploadResult, error) {
|
||||||
|
funcName := "service.file_service.UploadVoice"
|
||||||
|
logs.Info(ctx, funcName, "上传语音",
|
||||||
|
zap.String("file_name", fileHeader.Filename),
|
||||||
|
zap.Int64("size", fileHeader.Size),
|
||||||
|
zap.Int("duration", duration))
|
||||||
|
|
||||||
|
ext := strings.ToLower(filepath.Ext(fileHeader.Filename))
|
||||||
|
if !allowedVoiceExts[ext] {
|
||||||
|
return nil, ErrInvalidVoice
|
||||||
|
}
|
||||||
|
|
||||||
|
if duration > 60 {
|
||||||
|
return nil, ErrVoiceTooLong
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := fileHeader.Open()
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "打开语音文件失败", zap.Error(err))
|
||||||
|
return nil, ErrFileOpen
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
objectName := fmt.Sprintf("uploads/%s/%s%s", now.Format("2006/01/02"), uuid.New().String(), ext)
|
||||||
|
|
||||||
|
contentType := fileHeader.Header.Get("Content-Type")
|
||||||
|
if contentType == "" {
|
||||||
|
contentType = "audio/mpeg"
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = s.minioClient.PutObject(ctx, s.minioCfg.Bucket, objectName, file, fileHeader.Size, minio.PutObjectOptions{
|
||||||
|
ContentType: contentType,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(ctx, funcName, "上传语音到 MinIO 失败", zap.Error(err))
|
||||||
|
return nil, ErrUploadFailed
|
||||||
|
}
|
||||||
|
|
||||||
|
return &VoiceUploadResult{
|
||||||
|
URL: s.buildURL(objectName),
|
||||||
|
FileName: fileHeader.Filename,
|
||||||
|
Size: fileHeader.Size,
|
||||||
|
Duration: duration,
|
||||||
|
MimeType: contentType,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// buildURL 根据 MinIO 配置构建文件访问 URL
|
||||||
|
func (s *FileService) buildURL(objectName string) string {
|
||||||
|
scheme := "http"
|
||||||
|
if s.minioCfg.UseSSL {
|
||||||
|
scheme = "https"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s://%s/%s/%s", scheme, s.minioCfg.Endpoint, s.minioCfg.Bucket, objectName)
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
@@ -82,13 +83,19 @@ func (s *IMService) SendMessage(ctx context.Context, senderID int64, req *dto.Se
|
|||||||
zap.Int64("conversation_id", req.ConversationID),
|
zap.Int64("conversation_id", req.ConversationID),
|
||||||
zap.Int64("target_user_id", req.TargetUserID))
|
zap.Int64("target_user_id", req.TargetUserID))
|
||||||
|
|
||||||
if req.Content == "" {
|
|
||||||
return nil, ErrEmptyContent
|
|
||||||
}
|
|
||||||
if req.Type == 0 {
|
if req.Type == 0 {
|
||||||
req.Type = constants.MessageTypeText
|
req.Type = constants.MessageTypeText
|
||||||
}
|
}
|
||||||
if req.Type != constants.MessageTypeText {
|
switch req.Type {
|
||||||
|
case constants.MessageTypeText:
|
||||||
|
if req.Content == "" {
|
||||||
|
return nil, ErrEmptyContent
|
||||||
|
}
|
||||||
|
case constants.MessageTypeImage, constants.MessageTypeVoice, constants.MessageTypeFile:
|
||||||
|
if req.Extra == "" {
|
||||||
|
return nil, ErrEmptyContent
|
||||||
|
}
|
||||||
|
default:
|
||||||
return nil, ErrInvalidMsgType
|
return nil, ErrInvalidMsgType
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,12 +178,16 @@ func (s *IMService) writeAndPushPrivateMessage(ctx context.Context, senderID, co
|
|||||||
Status: constants.MessageStatusNormal,
|
Status: constants.MessageStatusNormal,
|
||||||
ClientMsgID: req.ClientMsgID,
|
ClientMsgID: req.ClientMsgID,
|
||||||
}
|
}
|
||||||
|
if req.Extra != "" {
|
||||||
|
msg.Extra = &req.Extra
|
||||||
|
}
|
||||||
if err := s.msgDAO.Create(ctx, msg); err != nil {
|
if err := s.msgDAO.Create(ctx, msg); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
if err := s.convDAO.UpdateLastMessage(ctx, convID, msg.ID, truncateContent(req.Content, 100), senderID, now); err != nil {
|
preview := generateLastMsgPreview(req.Type, req.Content, msg.Extra)
|
||||||
|
if err := s.convDAO.UpdateLastMessage(ctx, convID, msg.ID, preview, senderID, now); err != nil {
|
||||||
logs.Error(ctx, funcName, "更新最后消息失败", zap.Error(err))
|
logs.Error(ctx, funcName, "更新最后消息失败", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,6 +255,9 @@ func (s *IMService) sendGroupMessage(ctx context.Context, senderID int64, req *d
|
|||||||
Status: constants.MessageStatusNormal,
|
Status: constants.MessageStatusNormal,
|
||||||
ClientMsgID: req.ClientMsgID,
|
ClientMsgID: req.ClientMsgID,
|
||||||
}
|
}
|
||||||
|
if req.Extra != "" {
|
||||||
|
msg.Extra = &req.Extra
|
||||||
|
}
|
||||||
if len(req.AtUserIDs) > 0 {
|
if len(req.AtUserIDs) > 0 {
|
||||||
msg.AtUserIDs = req.AtUserIDs
|
msg.AtUserIDs = req.AtUserIDs
|
||||||
}
|
}
|
||||||
@@ -252,7 +266,8 @@ func (s *IMService) sendGroupMessage(ctx context.Context, senderID int64, req *d
|
|||||||
}
|
}
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
if err := s.convDAO.UpdateLastMessage(ctx, convID, msg.ID, truncateContent(req.Content, 100), senderID, now); err != nil {
|
preview := generateLastMsgPreview(req.Type, req.Content, msg.Extra)
|
||||||
|
if err := s.convDAO.UpdateLastMessage(ctx, convID, msg.ID, preview, senderID, now); err != nil {
|
||||||
logs.Error(ctx, funcName, "更新最后消息失败", zap.Error(err))
|
logs.Error(ctx, funcName, "更新最后消息失败", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -944,6 +959,7 @@ func (s *IMService) toMessageDTO(m *model.Message) *dto.MessageDTO {
|
|||||||
SenderID: m.SenderID,
|
SenderID: m.SenderID,
|
||||||
Type: m.Type,
|
Type: m.Type,
|
||||||
Content: m.Content,
|
Content: m.Content,
|
||||||
|
Extra: m.Extra,
|
||||||
Status: m.Status,
|
Status: m.Status,
|
||||||
ClientMsgID: m.ClientMsgID,
|
ClientMsgID: m.ClientMsgID,
|
||||||
CreatedAt: m.CreatedAt.Format("2006-01-02 15:04:05"),
|
CreatedAt: m.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||||
@@ -965,6 +981,9 @@ func (s *IMService) buildMessagePushData(ctx context.Context, msg *model.Message
|
|||||||
"client_msg_id": msg.ClientMsgID,
|
"client_msg_id": msg.ClientMsgID,
|
||||||
"created_at": msg.CreatedAt.Format("2006-01-02 15:04:05"),
|
"created_at": msg.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||||
}
|
}
|
||||||
|
if msg.Extra != nil && *msg.Extra != "" {
|
||||||
|
pushData["extra"] = *msg.Extra
|
||||||
|
}
|
||||||
if senderUsers, sErr := s.userInfoGetter.GetUsersByIDs(ctx, []int64{senderID}); sErr == nil && len(senderUsers) > 0 {
|
if senderUsers, sErr := s.userInfoGetter.GetUsersByIDs(ctx, []int64{senderID}); sErr == nil && len(senderUsers) > 0 {
|
||||||
pushData["sender_name"] = senderUsers[0].Nickname
|
pushData["sender_name"] = senderUsers[0].Nickname
|
||||||
pushData["sender_avatar"] = senderUsers[0].Avatar
|
pushData["sender_avatar"] = senderUsers[0].Avatar
|
||||||
@@ -978,6 +997,60 @@ type userBrief struct {
|
|||||||
Avatar string
|
Avatar string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// generateLastMsgPreview 根据消息类型生成会话列表预览文案
|
||||||
|
func generateLastMsgPreview(msgType int, content string, extra *string) string {
|
||||||
|
switch msgType {
|
||||||
|
case constants.MessageTypeImage:
|
||||||
|
count := 1
|
||||||
|
if extra != nil && *extra != "" {
|
||||||
|
var parsed struct {
|
||||||
|
Images []json.RawMessage `json:"images"`
|
||||||
|
}
|
||||||
|
if json.Unmarshal([]byte(*extra), &parsed) == nil && len(parsed.Images) > 1 {
|
||||||
|
count = len(parsed.Images)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if count > 1 {
|
||||||
|
return fmt.Sprintf("[图片x%d]", count)
|
||||||
|
}
|
||||||
|
return "[图片]"
|
||||||
|
case constants.MessageTypeVoice:
|
||||||
|
duration := 0
|
||||||
|
if extra != nil && *extra != "" {
|
||||||
|
var parsed struct {
|
||||||
|
Voice struct {
|
||||||
|
Duration int `json:"duration"`
|
||||||
|
} `json:"voice"`
|
||||||
|
}
|
||||||
|
if json.Unmarshal([]byte(*extra), &parsed) == nil {
|
||||||
|
duration = parsed.Voice.Duration
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if duration > 0 {
|
||||||
|
return fmt.Sprintf("[语音 %d\"]", duration)
|
||||||
|
}
|
||||||
|
return "[语音]"
|
||||||
|
case constants.MessageTypeFile:
|
||||||
|
fileName := ""
|
||||||
|
if extra != nil && *extra != "" {
|
||||||
|
var parsed struct {
|
||||||
|
File struct {
|
||||||
|
FileName string `json:"file_name"`
|
||||||
|
} `json:"file"`
|
||||||
|
}
|
||||||
|
if json.Unmarshal([]byte(*extra), &parsed) == nil {
|
||||||
|
fileName = parsed.File.FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if fileName != "" {
|
||||||
|
return fmt.Sprintf("[文件] %s", fileName)
|
||||||
|
}
|
||||||
|
return "[文件]"
|
||||||
|
default:
|
||||||
|
return truncateContent(content, 100)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// truncateContent 截断消息内容用于预览
|
// truncateContent 截断消息内容用于预览
|
||||||
func truncateContent(s string, maxRunes int) string {
|
func truncateContent(s string, maxRunes int) string {
|
||||||
runes := []rune(s)
|
runes := []rune(s)
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ type App struct {
|
|||||||
OnlineController *adminController.OnlineController // 管理端在线监控控制器
|
OnlineController *adminController.OnlineController // 管理端在线监控控制器
|
||||||
ContactManageController *adminController.ContactManageController // 管理端好友关系管理控制器
|
ContactManageController *adminController.ContactManageController // 管理端好友关系管理控制器
|
||||||
GroupManageController *adminController.GroupManageController // 管理端群组管理控制器
|
GroupManageController *adminController.GroupManageController // 管理端群组管理控制器
|
||||||
|
MessageManageController *adminController.MessageManageController // 管理端消息管理控制器
|
||||||
WSHandler *wsApp.Handler // WebSocket 连接处理器
|
WSHandler *wsApp.Handler // WebSocket 连接处理器
|
||||||
Hub *ws.Hub // WebSocket Hub 连接管理
|
Hub *ws.Hub // WebSocket Hub 连接管理
|
||||||
PubSub *ws.PubSub // Redis Pub/Sub 消息路由
|
PubSub *ws.PubSub // Redis Pub/Sub 消息路由
|
||||||
@@ -60,6 +61,7 @@ func NewApp(
|
|||||||
onlineCtrl *adminController.OnlineController,
|
onlineCtrl *adminController.OnlineController,
|
||||||
contactManageCtrl *adminController.ContactManageController,
|
contactManageCtrl *adminController.ContactManageController,
|
||||||
groupManageCtrl *adminController.GroupManageController,
|
groupManageCtrl *adminController.GroupManageController,
|
||||||
|
msgManageCtrl *adminController.MessageManageController,
|
||||||
wsHandler *wsApp.Handler,
|
wsHandler *wsApp.Handler,
|
||||||
hub *ws.Hub,
|
hub *ws.Hub,
|
||||||
pubsub *ws.PubSub,
|
pubsub *ws.PubSub,
|
||||||
@@ -86,6 +88,7 @@ func NewApp(
|
|||||||
OnlineController: onlineCtrl,
|
OnlineController: onlineCtrl,
|
||||||
ContactManageController: contactManageCtrl,
|
ContactManageController: contactManageCtrl,
|
||||||
GroupManageController: groupManageCtrl,
|
GroupManageController: groupManageCtrl,
|
||||||
|
MessageManageController: msgManageCtrl,
|
||||||
WSHandler: wsHandler,
|
WSHandler: wsHandler,
|
||||||
Hub: hub,
|
Hub: hub,
|
||||||
PubSub: pubsub,
|
PubSub: pubsub,
|
||||||
|
|||||||
@@ -93,6 +93,11 @@ func InitializeApp(cfg *config.Config) (*App, error) {
|
|||||||
groupManageService := service2.NewGroupManageService(gormDB, groupDAO)
|
groupManageService := service2.NewGroupManageService(gormDB, groupDAO)
|
||||||
groupManageController := controller2.NewGroupManageController(groupManageService)
|
groupManageController := controller2.NewGroupManageController(groupManageService)
|
||||||
|
|
||||||
app := NewApp(cfg, gormDB, client, minioClient, authService, authController, adminAuthController, userManageController, onlineController, contactManageController, groupManageController, handler, hub, pubSub, onlineService, contactController, imController, imEventHandler, offlinePusher, fileController, groupController)
|
// Admin 消息管理初始化
|
||||||
|
messageManageDAO := dao2.NewMessageManageDAO(gormDB)
|
||||||
|
messageManageService := service2.NewMessageManageService(messageManageDAO, userDAO, conversationDAO, pubSub)
|
||||||
|
messageManageController := controller2.NewMessageManageController(messageManageService)
|
||||||
|
|
||||||
|
app := NewApp(cfg, gormDB, client, minioClient, authService, authController, adminAuthController, userManageController, onlineController, contactManageController, groupManageController, messageManageController, handler, hub, pubSub, onlineService, contactController, imController, imEventHandler, offlinePusher, fileController, groupController)
|
||||||
return app, nil
|
return app, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ require (
|
|||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/cloudwego/base64x v0.1.6 // indirect
|
github.com/cloudwego/base64x v0.1.6 // indirect
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||||
|
github.com/disintegration/imaging v1.6.2 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
|
||||||
@@ -66,6 +67,7 @@ require (
|
|||||||
go.uber.org/multierr v1.10.0 // indirect
|
go.uber.org/multierr v1.10.0 // indirect
|
||||||
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
||||||
golang.org/x/arch v0.20.0 // indirect
|
golang.org/x/arch v0.20.0 // indirect
|
||||||
|
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 // indirect
|
||||||
golang.org/x/mod v0.26.0 // indirect
|
golang.org/x/mod v0.26.0 // indirect
|
||||||
golang.org/x/net v0.42.0 // indirect
|
golang.org/x/net v0.42.0 // indirect
|
||||||
golang.org/x/sync v0.16.0 // indirect
|
golang.org/x/sync v0.16.0 // indirect
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
|||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||||
|
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
||||||
|
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
|
||||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||||
@@ -149,6 +151,8 @@ golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c=
|
|||||||
golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
|
golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
|
||||||
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
|
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
|
||||||
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
|
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
|
||||||
|
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 h1:hVwzHzIUGRjiF7EcUjqNxk3NCfkPxbDKRdnNE1Rpg0U=
|
||||||
|
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
|
golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
|
||||||
golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
|
golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
|
||||||
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
||||||
@@ -158,6 +162,7 @@ golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
|||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
|
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
|
||||||
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
|
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
|
||||||
golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
|
golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
|
||||||
|
|||||||
@@ -12,7 +12,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewMinioClient 初始化 MinIO 客户端并确保存储桶存在
|
// NewMinioClient 初始化 MinIO 客户端并确保存储桶存在
|
||||||
// 启动时自动创建配置中指定的 bucket(如不存在)
|
// 启动时:
|
||||||
|
// 1. 创建配置中指定的 bucket(如不存在)
|
||||||
|
// 2. 为 bucket 设置 public-read 策略,使前端可通过 URL 直接访问已上传的图片、语音、文件等资源
|
||||||
|
// (写入操作仍需 AccessKey/SecretKey 凭据,不影响安全性)
|
||||||
func NewMinioClient(cfg *config.MinioConfig) (*minio.Client, error) {
|
func NewMinioClient(cfg *config.MinioConfig) (*minio.Client, error) {
|
||||||
client, err := minio.New(cfg.Endpoint, &minio.Options{
|
client, err := minio.New(cfg.Endpoint, &minio.Options{
|
||||||
Creds: credentials.NewStaticV4(cfg.AccessKey, cfg.SecretKey, ""),
|
Creds: credentials.NewStaticV4(cfg.AccessKey, cfg.SecretKey, ""),
|
||||||
@@ -34,5 +37,27 @@ func NewMinioClient(cfg *config.MinioConfig) (*minio.Client, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := ensureBucketPublicRead(ctx, client, cfg.Bucket); err != nil {
|
||||||
|
return nil, fmt.Errorf("设置存储桶 %s 公开读策略失败: %w", cfg.Bucket, err)
|
||||||
|
}
|
||||||
|
|
||||||
return client, nil
|
return client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ensureBucketPublicRead 设置 bucket 的匿名公开读策略
|
||||||
|
// 允许匿名用户通过 HTTP GET 访问 bucket 内的对象(s3:GetObject)
|
||||||
|
// 其他操作(上传、删除等)仍然需要 AccessKey/SecretKey 凭据
|
||||||
|
func ensureBucketPublicRead(ctx context.Context, client *minio.Client, bucket string) error {
|
||||||
|
policy := fmt.Sprintf(`{
|
||||||
|
"Version": "2012-10-17",
|
||||||
|
"Statement": [
|
||||||
|
{
|
||||||
|
"Effect": "Allow",
|
||||||
|
"Principal": {"AWS": ["*"]},
|
||||||
|
"Action": ["s3:GetObject"],
|
||||||
|
"Resource": ["arn:aws:s3:::%s/*"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`, bucket)
|
||||||
|
return client.SetBucketPolicy(ctx, bucket, policy)
|
||||||
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ func Setup(engine *gin.Engine, app *provider.App) {
|
|||||||
|
|
||||||
// --- 各模块路由注册 ---
|
// --- 各模块路由注册 ---
|
||||||
auth.RegisterRoutes(engine, app.AuthController, app.AdminAuthController, jwtAuth)
|
auth.RegisterRoutes(engine, app.AuthController, app.AdminAuthController, jwtAuth)
|
||||||
admin.RegisterRoutes(engine, app.UserManageController, app.OnlineController, app.ContactManageController, app.GroupManageController, jwtAuth)
|
admin.RegisterRoutes(engine, app.UserManageController, app.OnlineController, app.ContactManageController, app.GroupManageController, app.MessageManageController, jwtAuth)
|
||||||
wsApp.RegisterRoutes(engine, app.WSHandler)
|
wsApp.RegisterRoutes(engine, app.WSHandler)
|
||||||
contact.RegisterRoutes(engine, app.ContactController, jwtAuth)
|
contact.RegisterRoutes(engine, app.ContactController, jwtAuth)
|
||||||
imApp.RegisterRoutes(engine, app.IMController, jwtAuth)
|
imApp.RegisterRoutes(engine, app.IMController, jwtAuth)
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
| [admin/online.md](admin/online.md) | 在线监控 | ✅ Phase 2a | 在线用户列表、在线用户计数 |
|
| [admin/online.md](admin/online.md) | 在线监控 | ✅ Phase 2a | 在线用户列表、在线用户计数 |
|
||||||
| [admin/contact.md](admin/contact.md) | 好友关系管理 | ✅ Phase 2a | 好友关系列表(分页)、管理员解除好友关系 |
|
| [admin/contact.md](admin/contact.md) | 好友关系管理 | ✅ Phase 2a | 好友关系列表(分页)、管理员解除好友关系 |
|
||||||
| [admin/group.md](admin/group.md) | 群聊管理 | ✅ Phase 2c | 群列表/详情、管理员解散群聊 |
|
| [admin/group.md](admin/group.md) | 群聊管理 | ✅ Phase 2c | 群列表/详情、管理员解散群聊 |
|
||||||
|
| [admin/message.md](admin/message.md) | 消息管理 | ✅ Phase 2d | 消息列表/详情/撤回/删除、消息统计(5 个 API) |
|
||||||
| [admin/meeting.md](admin/meeting.md) | 会议管理 | 📋 后续 | 会议列表/详情、强制结束、会议统计 |
|
| [admin/meeting.md](admin/meeting.md) | 会议管理 | 📋 后续 | 会议列表/详情、强制结束、会议统计 |
|
||||||
| [admin/system.md](admin/system.md) | 系统管理 | 📋 待定 | 仪表盘数据、操作日志、系统配置 |
|
| [admin/system.md](admin/system.md) | 系统管理 | 📋 待定 | 仪表盘数据、操作日志、系统配置 |
|
||||||
|
|
||||||
@@ -206,6 +207,7 @@ docs/api/
|
|||||||
│ ├── online.md # 在线监控 ✅ Phase 2a
|
│ ├── online.md # 在线监控 ✅ Phase 2a
|
||||||
│ ├── contact.md # 好友关系管理 ✅ Phase 2a
|
│ ├── contact.md # 好友关系管理 ✅ Phase 2a
|
||||||
│ ├── group.md # 群聊管理(3 个 API) ✅ Phase 2c
|
│ ├── group.md # 群聊管理(3 个 API) ✅ Phase 2c
|
||||||
|
│ ├── message.md # 消息管理(5 个 API) ✅ Phase 2d
|
||||||
│ ├── meeting.md # 会议管理 📋 后续
|
│ ├── meeting.md # 会议管理 📋 后续
|
||||||
│ └── system.md # 系统管理 📋 待定
|
│ └── system.md # 系统管理 📋 待定
|
||||||
└── websocket.md # WebSocket 全量事件协议 ✅ Phase 2a/2b/2c
|
└── websocket.md # WebSocket 全量事件协议 ✅ Phase 2a/2b/2c
|
||||||
|
|||||||
162
docs/api/admin/message.md
Normal file
162
docs/api/admin/message.md
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
# 管理端消息管理 API
|
||||||
|
|
||||||
|
> **最后更新**:2026-03-03
|
||||||
|
> **阶段**:Phase 2d
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 接口列表
|
||||||
|
|
||||||
|
| 方法 | 路径 | 描述 | 认证 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| GET | /api/v1/admin/messages | 消息列表(分页+多条件筛选) | JWT + admin |
|
||||||
|
| GET | /api/v1/admin/messages/:id | 消息详情 | JWT + admin |
|
||||||
|
| DELETE | /api/v1/admin/messages/:id | 删除消息(软删除) | JWT + admin |
|
||||||
|
| PUT | /api/v1/admin/messages/:id/recall | 撤回消息 | JWT + admin |
|
||||||
|
| GET | /api/v1/admin/messages/stats | 消息统计 | JWT + admin |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET /api/v1/admin/messages
|
||||||
|
|
||||||
|
获取消息列表(分页+多条件筛选)。
|
||||||
|
|
||||||
|
### 请求参数(Query)
|
||||||
|
|
||||||
|
| 参数 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| page | int | 否 | 页码(默认 1) |
|
||||||
|
| page_size | int | 否 | 每页条数(默认 20,最大 100) |
|
||||||
|
| keyword | string | 否 | 搜索关键词(模糊匹配消息内容) |
|
||||||
|
| type | int | 否 | 消息类型:1=文本 / 2=图片 / 3=语音 / 5=文件 / 10=系统 |
|
||||||
|
| sender_id | int64 | 否 | 发送者 ID |
|
||||||
|
| conversation_id | int64 | 否 | 会话 ID |
|
||||||
|
| status | int | 否 | 消息状态:1=正常 / 2=已撤回 / 3=已删除 |
|
||||||
|
| start_time | string | 否 | 开始日期(YYYY-MM-DD) |
|
||||||
|
| end_time | string | 否 | 结束日期(YYYY-MM-DD) |
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"total": 156,
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"conversation_id": 5,
|
||||||
|
"sender_id": 10,
|
||||||
|
"sender_nickname": "张三",
|
||||||
|
"sender_avatar": "https://...",
|
||||||
|
"type": 1,
|
||||||
|
"type_label": "文本",
|
||||||
|
"content": "你好",
|
||||||
|
"extra": null,
|
||||||
|
"status": 1,
|
||||||
|
"status_label": "正常",
|
||||||
|
"created_at": "2026-03-03 14:30:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET /api/v1/admin/messages/:id
|
||||||
|
|
||||||
|
获取消息详情。
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
同列表中的单条消息对象。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DELETE /api/v1/admin/messages/:id
|
||||||
|
|
||||||
|
删除消息(软删除,状态改为 3=已删除)。
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": null
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PUT /api/v1/admin/messages/:id/recall
|
||||||
|
|
||||||
|
管理员撤回消息。撤回后会通过 WebSocket 推送 `im.message.recalled` 事件给该会话的所有在线成员。
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": null
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### WS 推送事件
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event": "im.message.recalled",
|
||||||
|
"data": {
|
||||||
|
"message_id": 123,
|
||||||
|
"conversation_id": 5,
|
||||||
|
"operator_id": 0,
|
||||||
|
"sender_id": 10,
|
||||||
|
"recall_text": "管理员撤回了一条消息"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET /api/v1/admin/messages/stats
|
||||||
|
|
||||||
|
获取消息统计数据。
|
||||||
|
|
||||||
|
### 请求参数(Query)
|
||||||
|
|
||||||
|
| 参数 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| days | int | 否 | 统计天数(默认 7,最大 90) |
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"total_count": 5680,
|
||||||
|
"today_count": 120,
|
||||||
|
"type_distribution": [
|
||||||
|
{ "type": 1, "label": "文本", "count": 4500 },
|
||||||
|
{ "type": 2, "label": "图片", "count": 800 }
|
||||||
|
],
|
||||||
|
"daily_trend": [
|
||||||
|
{ "date": "2026-02-25", "count": 150 },
|
||||||
|
{ "date": "2026-02-26", "count": 200 }
|
||||||
|
],
|
||||||
|
"active_users": [
|
||||||
|
{ "user_id": 10, "nickname": "张三", "count": 500 }
|
||||||
|
],
|
||||||
|
"active_groups": [
|
||||||
|
{ "group_id": 1, "name": "技术交流群", "count": 300 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
|
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
|
||||||
> 消息的实时收发(发送/撤回/标记已读/正在输入)通过 WebSocket 完成,见 [websocket.md](../websocket.md)
|
> 消息的实时收发(发送/撤回/标记已读/正在输入)通过 WebSocket 完成,见 [websocket.md](../websocket.md)
|
||||||
> 本文档中的接口用于会话管理和消息历史查询等非实时操作。
|
> 本文档中的接口用于会话管理和消息历史查询等非实时操作。
|
||||||
> **最后更新:** 2026-03-04(Fix T19 已读详情群昵称 + Fix T20 免打扰 API 补全)
|
> **最后更新:** 2026-03-03(Phase 2d 文件上传 API 新增)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -20,6 +20,9 @@
|
|||||||
| GET | /api/v1/im/messages/search | 需认证 | 全局消息搜索 |
|
| GET | /api/v1/im/messages/search | 需认证 | 全局消息搜索 |
|
||||||
| GET | /api/v1/im/unread | 需认证 | 获取全局未读消息总数 |
|
| GET | /api/v1/im/unread | 需认证 | 获取全局未读消息总数 |
|
||||||
| GET | /api/v1/im/messages/:id/reads | 需认证 | 获取消息已读详情 |
|
| GET | /api/v1/im/messages/:id/reads | 需认证 | 获取消息已读详情 |
|
||||||
|
| POST | /api/v1/upload/image | 需认证 | 图片上传(含缩略图生成)[Phase 2d] |
|
||||||
|
| POST | /api/v1/upload/voice | 需认证 | 语音上传(含时长校验)[Phase 2d] |
|
||||||
|
| POST | /api/v1/upload | 需认证 | 通用文件上传(最大 50MB)[Phase 2d] |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
704
docs/plans/2026-03-04-phase2d-design.md
Normal file
704
docs/plans/2026-03-04-phase2d-design.md
Normal file
@@ -0,0 +1,704 @@
|
|||||||
|
# Phase 2d 设计文档:消息类型扩展
|
||||||
|
|
||||||
|
> **状态:** ✅ 已完成
|
||||||
|
> **分支:** `feature/phase2d-message-types`
|
||||||
|
> **前置依赖:** Phase 2c 全部完成(群聊与已读回执)
|
||||||
|
> **最后更新:** 2026-03-03
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、设计目标
|
||||||
|
|
||||||
|
基于 Phase 2b/2c 的单聊+群聊文本消息基础设施,扩展三种富媒体消息类型和管理端消息管理功能。
|
||||||
|
|
||||||
|
**核心交付物:**
|
||||||
|
- 图片消息(type=2):前端压缩+多图发送(最多9张)、后端生成 JPEG 缩略图、聊天内缩略图展示+大图预览
|
||||||
|
- 语音消息(type=3):微信风格按住录音/松手发送/上滑取消、最长60秒、时长波形条展示+播放
|
||||||
|
- 文件消息(type=5):任意文件上传(最大50MB)、类型图标+大小展示、点击下载+在线预览(PDF/图片)
|
||||||
|
- 文件上传服务增强:大小限制提升至50MB、图片专用上传(缩略图生成)、语音专用上传(格式+时长校验)
|
||||||
|
- 管理端消息管理:消息列表(完整筛选搜索)+ 消息统计仪表板(趋势图+类型分布+活跃排行)+ 敏感消息删除/撤回
|
||||||
|
|
||||||
|
**不包含(留待后续阶段):**
|
||||||
|
- 视频消息(type=4,录制/压缩/缩略图复杂度高)
|
||||||
|
- 表情包 / 自定义贴纸
|
||||||
|
- 消息转发 / 合并转发
|
||||||
|
- 消息引用 / 回复
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、需求决策记录
|
||||||
|
|
||||||
|
### 2.1 消息类型决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 消息类型范围 | 图片+语音+文件(无视频) | 视频录制/压缩/缩略图复杂度高,留后续阶段 |
|
||||||
|
| 多图策略 | 单条消息包含多图(最多9张) | 微信风格,extra JSON 存图片列表 |
|
||||||
|
| 图片缩略图 | 后端 Go 图片库生成 | 保证各端一致性,前端仅做发送前压缩 |
|
||||||
|
| 图片格式 | 统一转 JPEG | 兼容性最好,体积适中 |
|
||||||
|
| 图片压缩 | 前端发送前压缩(宽>1920px 等比缩放,质量80%) | 减少上传流量 |
|
||||||
|
| 缩略图尺寸 | 宽度不超过 200px,等比缩放,JPEG quality 80 | 列表加载快,质量可接受 |
|
||||||
|
|
||||||
|
### 2.2 语音消息决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 交互方式 | 微信风格:按住录音/松手发送/上滑取消 | 用户认知成本低 |
|
||||||
|
| 录音时长 | 最长 60 秒 | 微信标准 |
|
||||||
|
| 录音格式 | MP3 | 跨端兼容性最好 |
|
||||||
|
| 录音技术 | uni-app `uni.getRecorderManager()` | uni-app 原生 API,多端兼容 |
|
||||||
|
|
||||||
|
### 2.3 文件消息决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 大小限制 | 50MB(上调原 10MB) | 支持 PPT/中等大小文件 |
|
||||||
|
| 文件能力 | 上传+类型图标+大小显示+下载+在线预览(PDF/图片) | 完整用户体验 |
|
||||||
|
| 文件类型限制 | 不限制(后端仅做大小校验) | 通用文件传输场景 |
|
||||||
|
|
||||||
|
### 2.4 上传与发送流程决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 上传流程 | 先上传后发送:前端 REST 上传 → 获取 URL → WS 发消息 | 简单可靠,解耦文件上传和消息发送 |
|
||||||
|
| 上传接口 | 按类型分离:通用/图片/语音三个接口 | 图片需要缩略图、语音需要时长校验,逻辑各异 |
|
||||||
|
|
||||||
|
### 2.5 UI/UX 决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 会话列表预览 | 方括号标记:`[图片]`、`[语音 12"]`、`[文件] report.pdf` | 微信风格,用户习惯 |
|
||||||
|
| 图片展示 | 聊天内缩略图(网格)+ 点击大图预览(Swiper) | 标准 IM 体验 |
|
||||||
|
| 语音展示 | 时长+波形条+播放按钮 | 微信风格 |
|
||||||
|
| 文件展示 | 文件图标+文件名+大小+下载/预览按钮 | 清晰直观 |
|
||||||
|
| 表情包/贴纸 | 不做 | 专注核心媒体消息 |
|
||||||
|
|
||||||
|
### 2.6 管理端决策
|
||||||
|
|
||||||
|
| 决策项 | 选择 | 理由 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 搜索筛选 | 完整:关键词+类型+发送者+会话/群+时间+状态 | 满足运营需求 |
|
||||||
|
| 统计维度 | 完整:趋势图+类型分布+活跃用户排行+群活跃度 | 数据运营可视化 |
|
||||||
|
| 图表库 | ECharts | admin 项目基于 Vue 3 + Element Plus,ECharts 集成良好 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、架构设计
|
||||||
|
|
||||||
|
### 3.1 模块目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/go-service/
|
||||||
|
├── app/
|
||||||
|
│ ├── file/ # 文件上传模块(增强)
|
||||||
|
│ │ ├── controller/
|
||||||
|
│ │ │ └── file_controller.go # 新增 UploadImage / UploadVoice 接口
|
||||||
|
│ │ ├── service/
|
||||||
|
│ │ │ └── file_service.go # 新增 UploadWithThumbnail / UploadVoice 方法
|
||||||
|
│ │ ├── router.go # 新增 /upload/image 和 /upload/voice 路由
|
||||||
|
│ │ └── provider.go
|
||||||
|
│ ├── im/ # 即时通讯模块(适配)
|
||||||
|
│ │ ├── service/
|
||||||
|
│ │ │ └── im_service.go # SendMessage 适配 extra + 预览文案
|
||||||
|
│ │ └── handler/
|
||||||
|
│ │ └── event_handler.go # im.message.send 适配 extra 字段
|
||||||
|
│ ├── admin/ # 管理端(新增消息管理)
|
||||||
|
│ │ ├── controller/
|
||||||
|
│ │ │ └── message_manage_controller.go # [新增]
|
||||||
|
│ │ ├── service/
|
||||||
|
│ │ │ └── message_manage_service.go # [新增]
|
||||||
|
│ │ ├── dao/
|
||||||
|
│ │ │ └── message_manage_dao.go # [新增]
|
||||||
|
│ │ └── router.go # 注册消息管理路由
|
||||||
|
│ ├── dto/
|
||||||
|
│ │ ├── im_dto.go # 扩展 SendMessageRequest + MessageDTO 的 extra
|
||||||
|
│ │ └── admin_dto.go # 新增管理端消息 DTO
|
||||||
|
│ └── constants/
|
||||||
|
│ └── im.go # 消息类型常量注释更新(2/3/5 不再标注"预留")
|
||||||
|
├── frontend/src/
|
||||||
|
│ ├── api/
|
||||||
|
│ │ └── file.js # [新增] 文件上传 API 封装
|
||||||
|
│ ├── components/
|
||||||
|
│ │ ├── msg/ # [新增] 消息类型组件
|
||||||
|
│ │ │ ├── MsgText.vue # 文本消息组件
|
||||||
|
│ │ │ ├── MsgImage.vue # 图片消息组件(网格+大图预览)
|
||||||
|
│ │ │ ├── MsgVoice.vue # 语音消息组件(波形条+播放)
|
||||||
|
│ │ │ └── MsgFile.vue # 文件消息组件(卡片+下载)
|
||||||
|
│ │ └── chat/ # [新增] 聊天辅助组件
|
||||||
|
│ │ ├── MorePanel.vue # "+"展开面板(图片/文件入口)
|
||||||
|
│ │ ├── VoiceRecorder.vue # 语音录制组件
|
||||||
|
│ │ └── ImagePreviewer.vue # 图片全屏预览
|
||||||
|
│ ├── pages/
|
||||||
|
│ │ ├── chat/conversation.vue # [修改] 引入消息组件+输入栏改造
|
||||||
|
│ │ └── group/conversation.vue # [修改] 同上
|
||||||
|
│ ├── store/
|
||||||
|
│ │ └── chat.js # [修改] 扩展发送方法
|
||||||
|
│ └── utils/
|
||||||
|
│ └── file.js # [新增] 文件工具(压缩/格式判断/大小格式化)
|
||||||
|
├── admin/src/
|
||||||
|
│ ├── api/
|
||||||
|
│ │ └── message.js # [新增] 管理端消息 API
|
||||||
|
│ ├── views/
|
||||||
|
│ │ └── message/ # [新增] 消息管理模块
|
||||||
|
│ │ ├── list.vue # 消息列表(筛选+分页+操作)
|
||||||
|
│ │ └── stats.vue # 消息统计仪表板
|
||||||
|
│ └── router/
|
||||||
|
│ └── index.js # 注册消息管理路由
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 跨模块依赖关系
|
||||||
|
|
||||||
|
```
|
||||||
|
file.FileService ← im.IMService (通过接口注入,暂不直接依赖)
|
||||||
|
↓
|
||||||
|
im.IMService → convDAO/msgDAO (存储消息 + extra)
|
||||||
|
↓
|
||||||
|
im.EventHandler → im.IMService (WS 事件调用)
|
||||||
|
↓
|
||||||
|
admin.MessageManageService → im.MessageDAO (查询消息)
|
||||||
|
→ auth.UserDAO (查询发送者)
|
||||||
|
```
|
||||||
|
|
||||||
|
消息发送流程中,**文件上传与消息发送是解耦的**:
|
||||||
|
1. 前端通过 REST API 上传文件到 MinIO,获取 URL
|
||||||
|
2. 前端通过 WS 发送消息,payload 中携带 `extra` 字段(含文件 URL)
|
||||||
|
3. 后端 IM Service 直接存储,不再访问 file 模块
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、消息 extra 字段 JSON 结构设计
|
||||||
|
|
||||||
|
`im_messages.extra` 字段类型为 JSONB(已存在),按消息类型存储不同元数据。
|
||||||
|
|
||||||
|
### 4.1 图片消息(type=2)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/abc.jpg",
|
||||||
|
"thumbnail_url": "http://localhost:9000/echochat/uploads/2026/03/05/abc_thumb.jpg",
|
||||||
|
"width": 1920,
|
||||||
|
"height": 1080,
|
||||||
|
"size": 245760,
|
||||||
|
"file_name": "photo.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/def.jpg",
|
||||||
|
"thumbnail_url": "http://localhost:9000/echochat/uploads/2026/03/05/def_thumb.jpg",
|
||||||
|
"width": 1280,
|
||||||
|
"height": 720,
|
||||||
|
"size": 180000,
|
||||||
|
"file_name": "photo2.jpg"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.2 语音消息(type=3)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"voice": {
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/voice_xxx.mp3",
|
||||||
|
"duration": 12,
|
||||||
|
"size": 48000,
|
||||||
|
"file_name": "voice_20260305_120000.mp3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.3 文件消息(type=5)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"file": {
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/doc_xxx.pdf",
|
||||||
|
"file_name": "年度报告.pdf",
|
||||||
|
"size": 1048576,
|
||||||
|
"mime_type": "application/pdf",
|
||||||
|
"ext": ".pdf"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、API 设计
|
||||||
|
|
||||||
|
### 5.1 文件上传 REST API(扩展)
|
||||||
|
|
||||||
|
| 方法 | 路径 | 权限 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| POST | /api/v1/upload | 需认证 | 通用文件上传(最大50MB) |
|
||||||
|
| POST | /api/v1/upload/image | 需认证 | 图片上传(压缩+生成缩略图,返回双 URL) |
|
||||||
|
| POST | /api/v1/upload/voice | 需认证 | 语音上传(校验格式+时长<=60s) |
|
||||||
|
|
||||||
|
#### POST /api/v1/upload/image
|
||||||
|
|
||||||
|
**请求**:multipart/form-data,字段名 `file`
|
||||||
|
|
||||||
|
**成功响应**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/xxx.jpg",
|
||||||
|
"thumbnail_url": "http://localhost:9000/echochat/uploads/2026/03/05/xxx_thumb.jpg",
|
||||||
|
"file_name": "photo.jpg",
|
||||||
|
"size": 245760,
|
||||||
|
"width": 1920,
|
||||||
|
"height": 1080,
|
||||||
|
"mime_type": "image/jpeg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### POST /api/v1/upload/voice
|
||||||
|
|
||||||
|
**请求**:multipart/form-data,字段名 `file`
|
||||||
|
|
||||||
|
**成功响应**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"url": "http://localhost:9000/echochat/uploads/2026/03/05/voice_xxx.mp3",
|
||||||
|
"file_name": "voice_20260305.mp3",
|
||||||
|
"size": 48000,
|
||||||
|
"duration": 12,
|
||||||
|
"mime_type": "audio/mpeg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 管理端消息管理 REST API(新增)
|
||||||
|
|
||||||
|
| 方法 | 路径 | 权限 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| GET | /api/v1/admin/messages | admin | 消息列表(分页+多条件筛选) |
|
||||||
|
| GET | /api/v1/admin/messages/:id | admin | 消息详情(含发送者信息) |
|
||||||
|
| DELETE | /api/v1/admin/messages/:id | admin | 删除消息 |
|
||||||
|
| PUT | /api/v1/admin/messages/:id/recall | admin | 管理员撤回消息 |
|
||||||
|
| GET | /api/v1/admin/messages/stats | admin | 消息统计数据 |
|
||||||
|
|
||||||
|
#### GET /api/v1/admin/messages
|
||||||
|
|
||||||
|
**查询参数**:
|
||||||
|
|
||||||
|
| 参数 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| keyword | string | 搜索关键词(模糊匹配 content) |
|
||||||
|
| type | int | 消息类型筛选(1/2/3/5/10) |
|
||||||
|
| sender_id | int64 | 发送者 ID |
|
||||||
|
| conversation_id | int64 | 会话 ID |
|
||||||
|
| status | int | 消息状态(1=正常/2=已撤回/3=已删除) |
|
||||||
|
| start_time | string | 开始时间(YYYY-MM-DD) |
|
||||||
|
| end_time | string | 结束时间(YYYY-MM-DD) |
|
||||||
|
| page | int | 页码(默认1) |
|
||||||
|
| page_size | int | 每页条数(默认20) |
|
||||||
|
|
||||||
|
**成功响应**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"conversation_id": 5,
|
||||||
|
"sender_id": 4,
|
||||||
|
"sender_nickname": "张三",
|
||||||
|
"sender_avatar": "",
|
||||||
|
"type": 2,
|
||||||
|
"type_label": "图片",
|
||||||
|
"content": "",
|
||||||
|
"extra": { "images": [...] },
|
||||||
|
"status": 1,
|
||||||
|
"status_label": "正常",
|
||||||
|
"created_at": "2026-03-05 10:30:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total": 1000,
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### GET /api/v1/admin/messages/stats
|
||||||
|
|
||||||
|
**查询参数**:
|
||||||
|
|
||||||
|
| 参数 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| days | int | 统计天数(默认7,最大90) |
|
||||||
|
|
||||||
|
**成功响应**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "success",
|
||||||
|
"data": {
|
||||||
|
"total_count": 12580,
|
||||||
|
"today_count": 350,
|
||||||
|
"type_distribution": [
|
||||||
|
{ "type": 1, "label": "文本", "count": 10000 },
|
||||||
|
{ "type": 2, "label": "图片", "count": 1500 },
|
||||||
|
{ "type": 3, "label": "语音", "count": 500 },
|
||||||
|
{ "type": 5, "label": "文件", "count": 300 },
|
||||||
|
{ "type": 10, "label": "系统消息", "count": 280 }
|
||||||
|
],
|
||||||
|
"daily_trend": [
|
||||||
|
{ "date": "2026-03-01", "count": 280 },
|
||||||
|
{ "date": "2026-03-02", "count": 320 }
|
||||||
|
],
|
||||||
|
"active_users": [
|
||||||
|
{ "user_id": 4, "nickname": "张三", "count": 120 }
|
||||||
|
],
|
||||||
|
"active_groups": [
|
||||||
|
{ "group_id": 1, "name": "技术讨论群", "count": 500 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.3 WebSocket 事件变更
|
||||||
|
|
||||||
|
**`im.message.send` 请求扩展**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event": "im.message.send",
|
||||||
|
"data": {
|
||||||
|
"conversation_id": 8,
|
||||||
|
"type": 2,
|
||||||
|
"content": "",
|
||||||
|
"client_msg_id": "xxx",
|
||||||
|
"extra": "{\"images\":[{\"url\":\"...\",\"thumbnail_url\":\"...\",\"width\":1920,\"height\":1080,\"size\":245760,\"file_name\":\"photo.jpg\"}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**`im.message.new` 推送扩展**:
|
||||||
|
|
||||||
|
推送数据增加 `extra` 字段(JSON string),前端解析后根据 `type` 渲染对应组件。
|
||||||
|
|
||||||
|
**`im.message.send.ack` 响应扩展**:
|
||||||
|
|
||||||
|
ACK 的 `data`(MessageDTO)增加 `extra` 字段。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、核心业务流程
|
||||||
|
|
||||||
|
### 6.1 图片消息发送流程
|
||||||
|
|
||||||
|
1. 用户点击"+"面板中的"图片",调用 `uni.chooseImage` 选择图片(最多9张)
|
||||||
|
2. 前端对每张图片进行压缩(宽>1920px 等比缩放,质量80%)
|
||||||
|
3. 逐张调用 `POST /api/v1/upload/image` 上传
|
||||||
|
4. 后端接收图片 → 生成 JPEG 缩略图(宽200px,quality 80)→ 原图+缩略图存 MinIO
|
||||||
|
5. 返回 `{ url, thumbnail_url, width, height, size, file_name, mime_type }`
|
||||||
|
6. 所有图片上传完成后,前端组装 `extra.images` 数组
|
||||||
|
7. 通过 WS 发送 `im.message.send`:`type=2`,`content=""`,`extra` 为 JSON 字符串
|
||||||
|
8. 后端存储消息,`UpdateLastMessage` 预览文案为 `[图片]` 或 `[图片x3]`
|
||||||
|
9. 推送 `im.message.new` 给接收方,携带 `extra`
|
||||||
|
|
||||||
|
### 6.2 语音消息发送流程
|
||||||
|
|
||||||
|
1. 用户长按麦克风按钮,调用 `uni.getRecorderManager().start({ format: 'mp3', duration: 60000 })`
|
||||||
|
2. 录音过程中显示录音动画(时长 + 波形),上滑显示"取消发送"
|
||||||
|
3. 松手停止录音 → 录音回调返回临时文件路径
|
||||||
|
4. 时长 < 1秒:提示"录音时间太短"并丢弃
|
||||||
|
5. 调用 `POST /api/v1/upload/voice` 上传语音文件
|
||||||
|
6. 后端校验格式和时长(<=60s)→ 存 MinIO → 返回 `{ url, duration, size, file_name }`
|
||||||
|
7. 前端组装 `extra.voice` 对象
|
||||||
|
8. 通过 WS 发送:`type=3`,`content=""`,`extra` 为 JSON 字符串
|
||||||
|
9. 后端存储,预览文案 `[语音 12"]`
|
||||||
|
|
||||||
|
### 6.3 文件消息发送流程
|
||||||
|
|
||||||
|
1. 用户点击"+"面板中的"文件",调用 `uni.chooseFile` 或 `uni.chooseMessageFile`
|
||||||
|
2. 校验文件大小(<=50MB)
|
||||||
|
3. 调用 `POST /api/v1/upload` 通用上传接口
|
||||||
|
4. 返回 `{ url, file_name, size }`
|
||||||
|
5. 前端补充 `mime_type` 和 `ext`,组装 `extra.file` 对象
|
||||||
|
6. 通过 WS 发送:`type=5`,`content=""`,`extra` 为 JSON 字符串
|
||||||
|
7. 后端存储,预览文案 `[文件] report.pdf`
|
||||||
|
|
||||||
|
### 6.4 管理员撤回消息流程
|
||||||
|
|
||||||
|
1. 管理员在消息列表选中消息 → 点击"撤回"
|
||||||
|
2. 调用 `PUT /api/v1/admin/messages/:id/recall`
|
||||||
|
3. 后端将消息 status 改为 2(已撤回)
|
||||||
|
4. 推送 `im.message.recalled` 给相关在线用户
|
||||||
|
5. 会话最后消息预览更新为"管理员撤回了一条消息"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、会话列表预览文案规则
|
||||||
|
|
||||||
|
在 `IMService` 中 `UpdateLastMessage` 时根据消息类型生成预览文案:
|
||||||
|
|
||||||
|
| type | content 字段用途 | last_msg_content 预览 |
|
||||||
|
|------|-----------------|----------------------|
|
||||||
|
| 1(文本) | 消息正文 | 消息正文(截断) |
|
||||||
|
| 2(图片) | 空字符串 | `[图片]` / `[图片x3]`(多图标数量) |
|
||||||
|
| 3(语音) | 空字符串 | `[语音 12"]`(duration 从 extra 解析) |
|
||||||
|
| 5(文件) | 空字符串 | `[文件] report.pdf`(file_name 从 extra 解析) |
|
||||||
|
| 10(系统) | 系统消息正文 | 系统消息正文 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、前端页面规划
|
||||||
|
|
||||||
|
### 8.1 新增组件(前台用户端)
|
||||||
|
|
||||||
|
| 组件 | 路径 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| MsgText.vue | components/msg/ | 文本消息组件(从 conversation 提取) |
|
||||||
|
| MsgImage.vue | components/msg/ | 图片消息:1张=大图,2-4张=2列网格,5-9张=3列网格;点击放大 |
|
||||||
|
| MsgVoice.vue | components/msg/ | 语音消息:播放按钮+波形条+时长(宽度按时长缩放) |
|
||||||
|
| MsgFile.vue | components/msg/ | 文件消息:文件图标+文件名+大小+下载/预览按钮 |
|
||||||
|
| MorePanel.vue | components/chat/ | 输入栏"+"展开面板:图片、文件两个入口 |
|
||||||
|
| VoiceRecorder.vue | components/chat/ | 语音录制:长按录音+上滑取消+时长显示+波形动画 |
|
||||||
|
| ImagePreviewer.vue | components/chat/ | 图片全屏预览:Swiper 左右滑+双指缩放 |
|
||||||
|
|
||||||
|
### 8.2 修改页面(前台用户端)
|
||||||
|
|
||||||
|
| 页面 | 修改内容 |
|
||||||
|
|------|----------|
|
||||||
|
| pages/chat/conversation.vue | 消息列表按 type 渲染不同组件;输入栏增加"+"和麦克风按钮 |
|
||||||
|
| pages/group/conversation.vue | 同上 |
|
||||||
|
| store/chat.js | 扩展 sendMessage 支持 extra;新增 sendImageMessage/sendVoiceMessage/sendFileMessage |
|
||||||
|
|
||||||
|
### 8.3 新增页面(管理端)
|
||||||
|
|
||||||
|
| 页面 | 路径 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 消息列表 | views/message/list.vue | 多条件筛选+分页表格+撤回/删除操作 |
|
||||||
|
| 消息统计 | views/message/stats.vue | ECharts 图表:趋势折线图+类型饼图+活跃排行柱状图 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 九、DTO 扩展规划
|
||||||
|
|
||||||
|
### 9.1 发送消息请求扩展
|
||||||
|
|
||||||
|
```go
|
||||||
|
// SendMessageRequest 发送消息请求(WS 事件 im.message.send 的 data 字段)
|
||||||
|
type SendMessageRequest struct {
|
||||||
|
ConversationID int64 `json:"conversation_id"`
|
||||||
|
TargetUserID int64 `json:"target_user_id"`
|
||||||
|
Type int `json:"type"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
ClientMsgID string `json:"client_msg_id"`
|
||||||
|
AtUserIDs []int64 `json:"at_user_ids"`
|
||||||
|
Extra string `json:"extra"` // [Phase 2d 新增] 扩展数据 JSON 字符串
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.2 消息 DTO 扩展
|
||||||
|
|
||||||
|
```go
|
||||||
|
// MessageDTO 消息传输对象(返回给前端)
|
||||||
|
type MessageDTO struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
ConversationID int64 `json:"conversation_id"`
|
||||||
|
SenderID int64 `json:"sender_id"`
|
||||||
|
Type int `json:"type"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
Extra *string `json:"extra,omitempty"` // [Phase 2d 新增] 扩展数据 JSON
|
||||||
|
Status int `json:"status"`
|
||||||
|
ClientMsgID string `json:"client_msg_id"`
|
||||||
|
AtUserIDs []int64 `json:"at_user_ids"`
|
||||||
|
CreatedAt string `json:"created_at"`
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.3 文件上传结果 DTO 扩展
|
||||||
|
|
||||||
|
```go
|
||||||
|
// ImageUploadResult 图片上传结果
|
||||||
|
type ImageUploadResult struct {
|
||||||
|
URL string `json:"url"`
|
||||||
|
ThumbnailURL string `json:"thumbnail_url"`
|
||||||
|
FileName string `json:"file_name"`
|
||||||
|
Size int64 `json:"size"`
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
MimeType string `json:"mime_type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// VoiceUploadResult 语音上传结果
|
||||||
|
type VoiceUploadResult struct {
|
||||||
|
URL string `json:"url"`
|
||||||
|
FileName string `json:"file_name"`
|
||||||
|
Size int64 `json:"size"`
|
||||||
|
Duration int `json:"duration"`
|
||||||
|
MimeType string `json:"mime_type"`
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.4 管理端消息 DTO
|
||||||
|
|
||||||
|
```go
|
||||||
|
// AdminMessageListRequest 管理端消息列表查询
|
||||||
|
type AdminMessageListRequest struct {
|
||||||
|
Keyword string `form:"keyword"`
|
||||||
|
Type *int `form:"type"`
|
||||||
|
SenderID *int64 `form:"sender_id"`
|
||||||
|
ConversationID *int64 `form:"conversation_id"`
|
||||||
|
Status *int `form:"status"`
|
||||||
|
StartTime string `form:"start_time"`
|
||||||
|
EndTime string `form:"end_time"`
|
||||||
|
Page int `form:"page"`
|
||||||
|
PageSize int `form:"page_size"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageDTO 管理端消息条目
|
||||||
|
type AdminMessageDTO struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
ConversationID int64 `json:"conversation_id"`
|
||||||
|
SenderID int64 `json:"sender_id"`
|
||||||
|
SenderNickname string `json:"sender_nickname"`
|
||||||
|
SenderAvatar string `json:"sender_avatar"`
|
||||||
|
Type int `json:"type"`
|
||||||
|
TypeLabel string `json:"type_label"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
Extra *string `json:"extra,omitempty"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
StatusLabel string `json:"status_label"`
|
||||||
|
CreatedAt string `json:"created_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageStatsRequest 管理端消息统计请求
|
||||||
|
type AdminMessageStatsRequest struct {
|
||||||
|
Days int `form:"days"` // 统计天数(默认7,最大90)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AdminMessageStatsResponse 管理端消息统计响应
|
||||||
|
type AdminMessageStatsResponse struct {
|
||||||
|
TotalCount int64 `json:"total_count"`
|
||||||
|
TodayCount int64 `json:"today_count"`
|
||||||
|
TypeDistribution []TypeDistItem `json:"type_distribution"`
|
||||||
|
DailyTrend []DailyTrendItem `json:"daily_trend"`
|
||||||
|
ActiveUsers []ActiveUserItem `json:"active_users"`
|
||||||
|
ActiveGroups []ActiveGroupItem `json:"active_groups"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TypeDistItem struct {
|
||||||
|
Type int `json:"type"`
|
||||||
|
Label string `json:"label"`
|
||||||
|
Count int64 `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DailyTrendItem struct {
|
||||||
|
Date string `json:"date"`
|
||||||
|
Count int64 `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ActiveUserItem struct {
|
||||||
|
UserID int64 `json:"user_id"`
|
||||||
|
Nickname string `json:"nickname"`
|
||||||
|
Count int64 `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ActiveGroupItem struct {
|
||||||
|
GroupID int64 `json:"group_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Count int64 `json:"count"`
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十、技术要点
|
||||||
|
|
||||||
|
### 10.1 Go 缩略图生成
|
||||||
|
|
||||||
|
- 依赖:`github.com/disintegration/imaging`
|
||||||
|
- 流程:`imaging.Open(file)` → `imaging.Resize(img, 200, 0, imaging.Lanczos)` → `imaging.Encode(buf, thumb, imaging.JPEG, imaging.JPEGQuality(80))`
|
||||||
|
- 缩略图文件名:原始 UUID + `_thumb` 后缀,如 `abc123_thumb.jpg`
|
||||||
|
- 原图同时进行 JPEG 转码(如果不是 JPEG 格式)
|
||||||
|
|
||||||
|
### 10.2 前端图片压缩
|
||||||
|
|
||||||
|
- H5 平台使用 Canvas 压缩:创建 Canvas → drawImage → toBlob('image/jpeg', 0.8)
|
||||||
|
- 小程序/App 平台使用 `uni.compressImage({ src, quality: 80 })`
|
||||||
|
- 压缩策略:宽度>1920px 等比缩放至 1920px,质量 80%
|
||||||
|
|
||||||
|
### 10.3 语音录制
|
||||||
|
|
||||||
|
- uni-app RecorderManager API
|
||||||
|
- `start({ format: 'mp3', duration: 60000, sampleRate: 44100, numberOfChannels: 1 })`
|
||||||
|
- 监听 `onStop` 获取录音文件临时路径
|
||||||
|
- 时长计算:回调中的 `duration` 字段(毫秒),前端转秒显示
|
||||||
|
|
||||||
|
### 10.4 语音播放
|
||||||
|
|
||||||
|
- uni-app InnerAudioContext API
|
||||||
|
- `uni.createInnerAudioContext()` → `src = voiceUrl` → `play()`
|
||||||
|
- 全局单例:同一时间只允许一个语音播放
|
||||||
|
- 播放状态:空闲 → 加载中 → 播放中 → 播放完成
|
||||||
|
|
||||||
|
### 10.5 文件下载与预览
|
||||||
|
|
||||||
|
- 下载:`uni.downloadFile({ url })` → `uni.saveFile()` 或直接 `window.open(url)` (H5)
|
||||||
|
- 预览:PDF 和图片通过 `uni.openDocument` 或浏览器新标签打开
|
||||||
|
- 文件类型图标映射:根据扩展名匹配图标(PDF/Word/Excel/PPT/ZIP/图片/音频/通用)
|
||||||
|
|
||||||
|
### 10.6 管理端 ECharts 集成
|
||||||
|
|
||||||
|
- `npm install echarts` 安装
|
||||||
|
- 使用 Vue 3 Composition API + `onMounted` 初始化
|
||||||
|
- 响应式:`window.resize` 时 `chart.resize()`
|
||||||
|
- 主题色与系统保持一致(Primary #2563EB)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十一、补充设计细节
|
||||||
|
|
||||||
|
### 11.1 消息内容安全
|
||||||
|
|
||||||
|
- 文件上传不做内容安全审查(留后续阶段)
|
||||||
|
- 管理端提供人工审查和撤回能力
|
||||||
|
- 上传文件类型不限制,但大小限制 50MB
|
||||||
|
|
||||||
|
### 11.2 多图布局规则
|
||||||
|
|
||||||
|
| 图片数量 | 布局 | 单图最大宽度 |
|
||||||
|
|----------|------|-------------|
|
||||||
|
| 1 张 | 自适应宽度(最大 500rpx) | 500rpx |
|
||||||
|
| 2 张 | 2列1行 | 240rpx |
|
||||||
|
| 3 张 | 3列1行 | 160rpx |
|
||||||
|
| 4 张 | 2列2行 | 240rpx |
|
||||||
|
| 5-6 张 | 3列2行 | 160rpx |
|
||||||
|
| 7-9 张 | 3列3行 | 160rpx |
|
||||||
|
|
||||||
|
### 11.3 文件类型图标映射
|
||||||
|
|
||||||
|
| 扩展名 | 图标 | 颜色 |
|
||||||
|
|--------|------|------|
|
||||||
|
| .pdf | PDF 图标 | #E53E3E |
|
||||||
|
| .doc/.docx | Word 图标 | #2B6CB0 |
|
||||||
|
| .xls/.xlsx | Excel 图标 | #276749 |
|
||||||
|
| .ppt/.pptx | PPT 图标 | #C05621 |
|
||||||
|
| .zip/.rar/.7z | 压缩包图标 | #6B46C1 |
|
||||||
|
| .jpg/.png/.gif | 图片图标 | #38A169 |
|
||||||
|
| .mp3/.wav/.aac | 音频图标 | #D69E2E |
|
||||||
|
| 其他 | 通用文件图标 | #718096 |
|
||||||
|
|
||||||
|
### 11.4 语音波形条设计
|
||||||
|
|
||||||
|
- 宽度:按时长线性缩放,最小 120rpx(1秒),最大 500rpx(60秒)
|
||||||
|
- 高度:固定 60rpx
|
||||||
|
- 波形:使用 CSS 模拟随机高度的竖条(5-6 个竖条)
|
||||||
|
- 播放时:从左到右逐条变色动画
|
||||||
435
docs/plans/2026-03-04-phase2d-implementation.plan.md
Normal file
435
docs/plans/2026-03-04-phase2d-implementation.plan.md
Normal file
@@ -0,0 +1,435 @@
|
|||||||
|
# Phase 2d 实施计划:消息类型扩展
|
||||||
|
|
||||||
|
> **状态:** ✅ 已完成
|
||||||
|
> **设计文档:** [Phase 2d 设计文档](./2026-03-04-phase2d-design.md)
|
||||||
|
> **分支:** `feature/phase2d-message-types`
|
||||||
|
> **最后更新:** 2026-03-03
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实施概览
|
||||||
|
|
||||||
|
共 14 个 Task,按依赖关系分为 4 个阶段:
|
||||||
|
|
||||||
|
| 阶段 | Task | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 后端基础层 | Task 1-4 | 上传增强 → DTO/常量 → IM 适配 → 管理端后端 |
|
||||||
|
| 前端消息组件 | Task 5-9 | 组件体系 → 图片 → 语音 → 文件 → 输入栏 |
|
||||||
|
| 管理端前端 | Task 10-12 | 列表页 → 统计页 → 路由/Store/API |
|
||||||
|
| 收尾 | Task 13-14 | 群聊适配+测试 → 代码审查+文档 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 1:文件上传服务增强 ✅
|
||||||
|
|
||||||
|
**目标**:升级现有文件上传服务,支持 50MB 上传、图片缩略图生成、语音校验。
|
||||||
|
|
||||||
|
### 修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| backend/go-service/go.mod | 修改 | 添加 `github.com/disintegration/imaging` 依赖 |
|
||||||
|
| backend/go-service/app/file/service/file_service.go | 修改 | 新增 `UploadWithThumbnail`、`UploadVoice` 方法;`UploadResult` 扩展字段 |
|
||||||
|
| backend/go-service/app/file/controller/file_controller.go | 修改 | 新增 `UploadImage`、`UploadVoice` 处理器;`maxUploadSize` 提升至 50MB |
|
||||||
|
| backend/go-service/app/file/router.go | 修改 | 新增 `/upload/image`、`/upload/voice` 路由 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `go get github.com/disintegration/imaging` 安装图片处理库
|
||||||
|
2. 扩展 `UploadResult` 添加 `ThumbnailURL`、`Width`、`Height`、`Duration`、`MimeType` 可选字段
|
||||||
|
3. 新增 `ImageUploadResult` 和 `VoiceUploadResult` 结构体
|
||||||
|
4. 实现 `UploadWithThumbnail`:
|
||||||
|
- 接收图片文件 → 解码获取宽高 → `imaging.Resize(img, 200, 0)` 生成缩略图
|
||||||
|
- 缩略图转 JPEG(quality=80) → 上传原图+缩略图到 MinIO → 返回双 URL + 尺寸
|
||||||
|
5. 实现 `UploadVoice`:
|
||||||
|
- 接收语音文件 → 校验扩展名(.mp3/.wav/.aac/.m4a)→ 获取时长(从 header 或前端传参)
|
||||||
|
- 上传到 MinIO → 返回 URL + duration + size
|
||||||
|
6. Controller 新增 `UploadImage`、`UploadVoice` 处理器(含大小校验)
|
||||||
|
7. `maxUploadSize` 从 `10 << 20` 改为 `50 << 20`
|
||||||
|
8. 路由注册新接口
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] `POST /api/v1/upload` 支持 50MB 文件
|
||||||
|
- [x] `POST /api/v1/upload/image` 返回 url + thumbnail_url + width + height
|
||||||
|
- [x] `POST /api/v1/upload/voice` 返回 url + duration
|
||||||
|
- [x] 缩略图宽度 200px,JPEG 格式
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 2:消息 extra 结构定义 + DTO 扩展 + 常量启用 ✅
|
||||||
|
|
||||||
|
**目标**:定义 extra JSON 结构的 Go 类型、扩展消息 DTO、更新常量注释。
|
||||||
|
|
||||||
|
### 修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| backend/go-service/app/dto/im_dto.go | 修改 | SendMessageRequest + MessageDTO 增加 Extra 字段 |
|
||||||
|
| backend/go-service/app/dto/admin_dto.go | 修改 | 新增管理端消息相关 DTO |
|
||||||
|
| backend/go-service/app/constants/im.go | 修改 | 消息类型常量注释去掉"预留"标注 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `SendMessageRequest` 增加 `Extra string` 字段
|
||||||
|
2. `MessageDTO` 增加 `Extra *string` 字段(omitempty)
|
||||||
|
3. `constants/im.go` 消息类型注释更新:去掉"预留"二字
|
||||||
|
4. 在 `admin_dto.go` 中新增管理端消息 DTO 结构体
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] SendMessageRequest 和 MessageDTO 支持 extra 字段
|
||||||
|
- [x] 管理端消息 DTO 定义完成
|
||||||
|
- [x] 常量注释准确反映当前实现状态
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 3:IM Service 适配富媒体消息 ✅
|
||||||
|
|
||||||
|
**目标**:后端 IM 服务支持存储和推送富媒体消息。
|
||||||
|
|
||||||
|
### 修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| backend/go-service/app/im/service/im_service.go | 修改 | SendMessage 存储 extra;预览文案生成 |
|
||||||
|
| backend/go-service/app/im/handler/event_handler.go | 修改 | im.message.send 解析 extra 字段 |
|
||||||
|
| backend/go-service/app/im/dao/message_dao.go | 修改 | MessageDTO 转换包含 extra |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `EventHandler` 中 `im.message.send` 解析 `req.Extra` 并传给 Service
|
||||||
|
2. `SendMessage` 中创建 Message 时设置 `Extra` 字段
|
||||||
|
3. 新增 `generateLastMsgPreview(msgType int, content string, extra *string) string` 方法
|
||||||
|
4. `UpdateLastMessage` 调用预览文案生成方法
|
||||||
|
5. `buildMessagePushData` 返回的 MessageDTO 包含 extra
|
||||||
|
6. 历史消息查询 `toMessageDTO` 中包含 extra 字段
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] type=2/3/5 消息能正常存储到数据库,extra 字段不为空
|
||||||
|
- [x] 推送 im.message.new 包含 extra 数据
|
||||||
|
- [x] 会话列表预览文案正确([图片]/[语音 12"]/[文件] xxx.pdf)
|
||||||
|
- [x] 历史消息接口返回 extra 字段
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 4:管理端消息 DAO + Service + Controller ✅
|
||||||
|
|
||||||
|
**目标**:实现管理端完整的消息管理后端 API。
|
||||||
|
|
||||||
|
### 新增文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| backend/go-service/app/admin/dao/message_manage_dao.go | 新增 | 消息分页查询、统计聚合 |
|
||||||
|
| backend/go-service/app/admin/service/message_manage_service.go | 新增 | 消息管理业务逻辑 |
|
||||||
|
| backend/go-service/app/admin/controller/message_manage_controller.go | 新增 | REST API 处理器 |
|
||||||
|
| backend/go-service/app/admin/router.go | 修改 | 注册消息管理路由 |
|
||||||
|
| backend/go-service/app/provider/provider.go | 修改 | Wire 注入新依赖 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `message_manage_dao.go`:
|
||||||
|
- `GetMessageList`:分页+多条件筛选(keyword/type/sender/conversation/status/time)
|
||||||
|
- `GetMessageByID`:单条详情
|
||||||
|
- `UpdateMessageStatus`:更新状态(撤回/删除)
|
||||||
|
- `GetMessageStats`:统计聚合(总量/今日/类型分布/每日趋势/活跃用户/活跃群组)
|
||||||
|
2. `message_manage_service.go`:
|
||||||
|
- `GetMessageList` / `GetMessageDetail` / `DeleteMessage` / `RecallMessage` / `GetStats`
|
||||||
|
- 撤回时推送 WS 事件给相关在线用户
|
||||||
|
3. `message_manage_controller.go`:五个接口处理器
|
||||||
|
4. Router 注册路由
|
||||||
|
5. Wire provider 注册
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] `GET /api/v1/admin/messages` 支持完整筛选
|
||||||
|
- [x] `GET /api/v1/admin/messages/:id` 返回详细信息
|
||||||
|
- [x] `DELETE /api/v1/admin/messages/:id` 软删除
|
||||||
|
- [x] `PUT /api/v1/admin/messages/:id/recall` 撤回+推送
|
||||||
|
- [x] `GET /api/v1/admin/messages/stats` 返回统计数据
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 5:消息组件体系 + conversation 页改造 ✅
|
||||||
|
|
||||||
|
**目标**:建立消息类型组件体系,改造聊天页面按消息类型渲染不同组件。
|
||||||
|
|
||||||
|
### 新增/修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/components/msg/MsgText.vue | 新增 | 文本消息组件(从 conversation 抽取) |
|
||||||
|
| frontend/src/components/msg/MsgImage.vue | 新增 | 图片消息组件(网格+预览,初始骨架) |
|
||||||
|
| frontend/src/components/msg/MsgVoice.vue | 新增 | 语音消息组件(波形+播放,初始骨架) |
|
||||||
|
| frontend/src/components/msg/MsgFile.vue | 新增 | 文件消息组件(卡片+下载,初始骨架) |
|
||||||
|
| frontend/src/pages/chat/conversation.vue | 修改 | 引入组件体系,按 type 分支渲染 |
|
||||||
|
| frontend/src/pages/group/conversation.vue | 修改 | 同上 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 从现有 conversation.vue 中提取文本消息渲染逻辑到 `MsgText.vue`
|
||||||
|
2. 创建 `MsgImage.vue`/`MsgVoice.vue`/`MsgFile.vue` 骨架组件(接收 msg prop,显示占位)
|
||||||
|
3. conversation.vue 消息列表区域改为根据 `msg.type` 使用 `<component :is="">` 动态组件
|
||||||
|
4. 确保文本消息渲染效果与改造前一致
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 文本消息渲染效果不变
|
||||||
|
- [x] 4 个消息组件均已创建并可接收 msg prop
|
||||||
|
- [x] conversation 页面按 type 分支渲染
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 6:图片消息完整流程 ✅
|
||||||
|
|
||||||
|
**目标**:实现图片消息从选取到展示的完整流程。
|
||||||
|
|
||||||
|
### 新增/修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/api/file.js | 新增 | 文件上传 API 封装 |
|
||||||
|
| frontend/src/utils/file.js | 新增 | 文件工具函数 |
|
||||||
|
| frontend/src/components/msg/MsgImage.vue | 修改 | 完整图片网格+大图预览 |
|
||||||
|
| frontend/src/components/chat/ImagePreviewer.vue | 新增 | 全屏图片预览 |
|
||||||
|
| frontend/src/store/chat.js | 修改 | 新增 sendImageMessage |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `api/file.js`:封装 `uploadImage(file)` 和 `uploadFile(file)` API 调用
|
||||||
|
2. `utils/file.js`:图片压缩工具、文件大小格式化
|
||||||
|
3. `MsgImage.vue`:完整实现多图网格布局 + 点击调起 ImagePreviewer
|
||||||
|
4. `ImagePreviewer.vue`:全屏 Swiper 预览 + 左右滑 + 关闭
|
||||||
|
5. `chat.js`:`sendImageMessage(conversationId, imageFiles)` → 压缩 → 逐张上传 → 组装 extra → WS 发送
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 图片选取+压缩+上传+发送全流程通畅
|
||||||
|
- [x] 聊天界面正确展示图片缩略图(网格布局)
|
||||||
|
- [x] 点击图片可全屏大图预览
|
||||||
|
- [x] 多图(2-9张)布局正确
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 7:语音消息完整流程 ✅
|
||||||
|
|
||||||
|
**目标**:实现语音消息录制、发送、展示、播放完整流程。
|
||||||
|
|
||||||
|
### 新增/修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/components/chat/VoiceRecorder.vue | 新增 | 语音录制组件 |
|
||||||
|
| frontend/src/components/msg/MsgVoice.vue | 修改 | 完整语音播放组件 |
|
||||||
|
| frontend/src/store/chat.js | 修改 | 新增 sendVoiceMessage |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `VoiceRecorder.vue`:长按录音 UI + 上滑取消 + 时长显示 + 波形动画
|
||||||
|
2. `MsgVoice.vue`:播放按钮 + 波形条 + 时长显示 + 播放进度动画
|
||||||
|
3. 全局单例播放器:同时只有一个语音在播放
|
||||||
|
4. `chat.js`:`sendVoiceMessage(conversationId, voiceTempPath, duration)` → 上传 → 发送
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 长按录音 + 松手发送 + 上滑取消
|
||||||
|
- [x] 录音时长 < 1s 提示太短
|
||||||
|
- [x] 录音时长 > 60s 自动停止
|
||||||
|
- [x] 聊天界面显示语音条 + 时长
|
||||||
|
- [x] 点击播放/暂停
|
||||||
|
- [x] 同一时间只有一个语音播放
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 8:文件消息完整流程 ✅
|
||||||
|
|
||||||
|
**目标**:实现文件消息选取、上传、发送、展示、下载/预览完整流程。
|
||||||
|
|
||||||
|
### 新增/修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/components/msg/MsgFile.vue | 修改 | 完整文件卡片组件 |
|
||||||
|
| frontend/src/store/chat.js | 修改 | 新增 sendFileMessage |
|
||||||
|
| frontend/src/utils/file.js | 修改 | 文件类型图标映射 + 大小格式化 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `MsgFile.vue`:文件图标 + 文件名 + 大小 + 下载/预览按钮
|
||||||
|
2. 文件类型图标映射(PDF/Word/Excel/PPT/压缩包/图片/音频/通用)
|
||||||
|
3. 下载功能:H5 用 `window.open`,APP 用 `uni.downloadFile`
|
||||||
|
4. 预览功能:PDF/图片支持在线预览
|
||||||
|
5. `chat.js`:`sendFileMessage(conversationId, file)` → 校验大小 → 上传 → 发送
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 文件选择 + 大小校验(50MB)+ 上传 + 发送
|
||||||
|
- [x] 聊天界面显示文件卡片(图标+名称+大小)
|
||||||
|
- [x] 点击下载文件
|
||||||
|
- [x] PDF/图片可在线预览
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 9:输入栏改造 ✅
|
||||||
|
|
||||||
|
**目标**:改造聊天输入栏,新增"+"面板和麦克风按钮。
|
||||||
|
|
||||||
|
### 新增/修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/components/chat/MorePanel.vue | 新增 | "+"展开面板 |
|
||||||
|
| frontend/src/pages/chat/conversation.vue | 修改 | 输入栏集成"+"和麦克风 |
|
||||||
|
| frontend/src/pages/group/conversation.vue | 修改 | 同上 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. `MorePanel.vue`:网格布局面板,包含"图片"和"文件"两个入口
|
||||||
|
2. 输入栏右侧添加"+"按钮,点击展开/收起 MorePanel
|
||||||
|
3. 输入栏左侧添加麦克风按钮,点击切换为语音录制模式
|
||||||
|
4. 语音模式下隐藏文本输入框,显示 VoiceRecorder
|
||||||
|
5. 统一发送流程:文本/图片/语音/文件各走对应的 store 方法
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] "+"按钮展开面板,包含图片和文件入口
|
||||||
|
- [x] 麦克风按钮切换语音录制模式
|
||||||
|
- [x] 各类型消息发送流程统一
|
||||||
|
- [x] 单聊和群聊输入栏行为一致
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 10:管理端消息列表页 ✅
|
||||||
|
|
||||||
|
**目标**:实现管理端消息管理列表页面。
|
||||||
|
|
||||||
|
### 新增文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| admin/src/views/message/list.vue | 新增 | 消息列表页 |
|
||||||
|
| admin/src/api/message.js | 新增 | 消息管理 API |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 顶部筛选区:关键词搜索 + 类型下拉 + 发送者 + 时间范围 + 状态
|
||||||
|
2. 表格列:ID / 发送者 / 类型 / 内容预览 / 状态 / 时间 / 操作
|
||||||
|
3. 操作列:查看详情 / 撤回 / 删除
|
||||||
|
4. 分页组件
|
||||||
|
5. 消息详情弹窗:展示完整内容 + extra 渲染(图片缩略图 / 语音播放 / 文件链接)
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 完整筛选功能
|
||||||
|
- [x] 分页正确
|
||||||
|
- [x] 撤回和删除操作正常
|
||||||
|
- [x] 消息详情弹窗内容完整
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 11:管理端消息统计页 ✅
|
||||||
|
|
||||||
|
**目标**:实现管理端消息统计仪表板。
|
||||||
|
|
||||||
|
### 新增文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| admin/src/views/message/stats.vue | 新增 | 消息统计仪表板 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 顶部统计卡片:总消息数 + 今日消息数
|
||||||
|
2. 消息趋势折线图(近 7/30 天切换)
|
||||||
|
3. 消息类型分布饼图
|
||||||
|
4. 活跃用户排行水平柱状图(Top 10)
|
||||||
|
5. 活跃群组排行水平柱状图(Top 10)
|
||||||
|
6. 图表主题色与系统一致(Primary #2563EB)
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 4 个统计图表正确渲染
|
||||||
|
- [x] 7/30 天切换正常
|
||||||
|
- [x] 数据与 stats API 返回一致
|
||||||
|
- [x] 响应式布局
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 12:管理端路由 + Store + API ✅
|
||||||
|
|
||||||
|
**目标**:管理端消息管理模块基础设施。
|
||||||
|
|
||||||
|
### 修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| admin/src/router/index.js | 修改 | 注册消息管理路由 |
|
||||||
|
| admin/src/api/message.js | 修改 | 完善 API 封装(如未在 Task 10 完成) |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 路由配置:`/message/list` + `/message/stats`
|
||||||
|
2. 侧边栏菜单:新增"消息管理"分组
|
||||||
|
3. API 封装:确保所有管理端消息 API 已封装
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 侧边栏正确显示消息管理菜单
|
||||||
|
- [x] 路由跳转正常
|
||||||
|
- [x] API 封装完整
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 13:群聊适配 + 统一测试 ✅
|
||||||
|
|
||||||
|
**目标**:确保群聊页面与单聊页面的富媒体消息功能一致,统一测试。
|
||||||
|
|
||||||
|
### 修改文件
|
||||||
|
|
||||||
|
| 文件 | 操作 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| frontend/src/pages/group/conversation.vue | 修改 | 确认组件集成完整 |
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 群聊 conversation.vue 确认所有消息组件和输入栏改造与单聊一致
|
||||||
|
2. 测试单聊图片/语音/文件消息发送接收
|
||||||
|
3. 测试群聊图片/语音/文件消息发送接收
|
||||||
|
4. 测试会话列表预览文案
|
||||||
|
5. 测试管理端消息列表和统计
|
||||||
|
6. 修复发现的问题
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 单聊+群聊富媒体消息全流程正常
|
||||||
|
- [x] 会话列表预览文案正确
|
||||||
|
- [x] 管理端功能正常
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Task 14:代码审查 + Playwright 测试 + 文档更新 ✅
|
||||||
|
|
||||||
|
**目标**:最终质量保障和文档同步。
|
||||||
|
|
||||||
|
### 详细步骤
|
||||||
|
|
||||||
|
1. 使用 `code-reviewer` 子代理进行代码审查
|
||||||
|
2. 使用 Playwright MCP 进行浏览器自动化测试
|
||||||
|
3. 修复审查和测试中发现的问题
|
||||||
|
4. 更新项目文档:
|
||||||
|
- `docs/progress/CURRENT_STATUS.md`
|
||||||
|
- `docs/plans/2026-03-04-phase2d-design.md`(状态更新)
|
||||||
|
- `docs/plans/2026-03-04-phase2d-implementation.plan.md`(状态更新)
|
||||||
|
- `docs/api/frontend/im.md`(新增上传 API)
|
||||||
|
- `docs/api/admin/message.md`(新增管理端消息 API 文档)
|
||||||
|
- `docs/architecture/system-architecture.md`(更新模块描述)
|
||||||
|
- `.cursor/rules/project-context.mdc`(更新进度)
|
||||||
|
5. Git commit + push
|
||||||
|
|
||||||
|
### 验收标准
|
||||||
|
|
||||||
|
- [x] 代码审查通过
|
||||||
|
- [x] Playwright 测试通过
|
||||||
|
- [x] 所有文档同步更新
|
||||||
@@ -1,10 +1,49 @@
|
|||||||
# EchoChat 项目开发进度
|
# EchoChat 项目开发进度
|
||||||
|
|
||||||
> **最后更新**:2026-03-04(Phase 2c 浏览器测试 + UI/UX 优化 + Tab 切换刷新修复完成)
|
> **最后更新**:2026-04-20(Phase 2d 富媒体消息缺陷修复,Playwright 全流程验证通过)
|
||||||
> **当前阶段**:Phase 2c 全部完成(含 Playwright 浏览器测试 + 21 项用户反馈修复)
|
> **当前阶段**:Phase 2d 全部完成 + Bug 修复 4 项(图片上传端口/MinIO 策略/MsgImage 布局/文件名保留)
|
||||||
> **当前分支**:`feature/phase2c-group-read-receipt`
|
> **当前分支**:`feature/phase2d-message-types`
|
||||||
> **实施计划**:`docs/plans/2026-03-04-phase2c-implementation.plan.md`
|
> **实施计划**:`docs/plans/2026-03-04-phase2d-implementation.plan.md`
|
||||||
> **设计文档**:`docs/plans/2026-03-04-phase2c-design.md`
|
> **设计文档**:`docs/plans/2026-03-04-phase2d-design.md`
|
||||||
|
> **本次修复报告**:`test-report-phase2d-bugfix.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 2026-04-20 Bug 修复清单
|
||||||
|
|
||||||
|
| # | 根因 | 修复 | 文件 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| B1 | 文件上传 BASE_URL 硬编码为 `:8080`(与实际 `:8085` 不符)导致 `ERR_CONNECTION_REFUSED` | 改为复用 `@/utils/request` 中的统一 BASE_URL | `frontend/src/api/file.js` |
|
||||||
|
| B2 | MinIO bucket 默认 private,图片 URL 匿名访问返回 403 | 启动时自动设置 bucket public-read 策略(仅 `s3:GetObject`) | `backend/go-service/pkg/storage/minio.go` |
|
||||||
|
| B3 | MsgImage flex 布局塌陷,`<uni-image>` 宽度为 0 | `.grid-single/2col/3col` 增加显式宽高和 `display:block` | `frontend/src/components/msg/MsgImage.vue` |
|
||||||
|
| B4 | H5 下 `URL.createObjectURL(file)` 丢失文件名,显示为 `file-1776xxx` | 前端发送消息时优先使用用户选择的 `file.name` | `frontend/src/pages/{chat,group}/conversation.vue` |
|
||||||
|
|
||||||
|
**验证结果**:Playwright MCP 全流程通过(图片/文件上传、缩略图渲染、大图预览、管理端消息详情)。详见 `test-report-phase2d-bugfix.md`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 2026-04-20 工程化脚本改造(开发者体验)
|
||||||
|
|
||||||
|
引入社区通用的 **setup / start 职责分离** 模式(参考 Rails `bin/setup` + `bin/dev`、Django 模板、Next.js 企业模板):
|
||||||
|
|
||||||
|
| 脚本 | 定位 | 使用频率 |
|
||||||
|
|---|---|---|
|
||||||
|
| `scripts/dev-setup.sh` | **首次环境初始化**:Docker 检查 + 容器拉起 + 重试式健康检查(pg/redis/minio)| 首次 clone / 重建卷 |
|
||||||
|
| `scripts/start.sh` | **日常启动**:Docker 中间件 + Go 后端 + 前台 + 管理端全量拉起,端口占用自动跳过 | 每天多次 |
|
||||||
|
| `scripts/stop.sh` | **日常停止**:优雅终止应用层(先 TERM 后 KILL 兜底),默认保留容器,支持 `--all` 全关 | 每天多次 |
|
||||||
|
| `scripts/status.sh` | **状态查看**:三应用端口 + 三容器状态一览 | 排障随时 |
|
||||||
|
|
||||||
|
核心特性:
|
||||||
|
- **端口占用自动跳过**:`lsof` 检测,已占用则 WARN 跳过,不重复启动
|
||||||
|
- **PID + 日志分离**:PID 写入 `.run/*.pid`,stdout 写入 `.run/logs/*.log`(已加入 `.gitignore`)
|
||||||
|
- **MinIO 健康等待**:`dev-setup.sh` 新增 `/minio/health/live` 重试检查,补齐原脚本遗漏
|
||||||
|
- **单项启停**:`./scripts/start.sh backend|frontend|admin|docker`
|
||||||
|
|
||||||
|
涉及文件:
|
||||||
|
- 新增 `scripts/start.sh`、`scripts/stop.sh`、`scripts/status.sh`
|
||||||
|
- 改造 `scripts/dev-setup.sh`(新增 MinIO 检查 + 头部使用时机注释)
|
||||||
|
- 更新 `README.md`(置顶一键脚本章节,阐述首次/日常使用顺序)
|
||||||
|
- 更新 `.gitignore`(忽略 `.run/`)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -197,8 +236,20 @@ EchoChat/
|
|||||||
│ │ ├── join-requests.vue # 入群审批
|
│ │ ├── join-requests.vue # 入群审批
|
||||||
│ │ └── search.vue # 搜索群聊
|
│ │ └── search.vue # 搜索群聊
|
||||||
│ ├── pages/contact/ # [Phase 2a] 6 个页面
|
│ ├── pages/contact/ # [Phase 2a] 6 个页面
|
||||||
|
│ ├── components/msg/ # [Phase 2d] 消息类型组件
|
||||||
|
│ │ ├── MsgText.vue # 文本消息
|
||||||
|
│ │ ├── MsgImage.vue # 图片消息(网格+预览)
|
||||||
|
│ │ ├── MsgVoice.vue # 语音消息(播放+波形)
|
||||||
|
│ │ └── MsgFile.vue # 文件消息(卡片+下载)
|
||||||
|
│ ├── components/chat/ # [Phase 2d] 聊天辅助组件
|
||||||
|
│ │ ├── MorePanel.vue # "+"展开面板
|
||||||
|
│ │ └── VoiceRecorder.vue # 语音录制
|
||||||
│ └── components/CustomTabBar.vue(含 badge)
|
│ └── components/CustomTabBar.vue(含 badge)
|
||||||
├── admin/ # 管理端(Vue 3 + Element Plus)
|
├── admin/ # 管理端(Vue 3 + Element Plus)
|
||||||
|
│ └── src/views/
|
||||||
|
│ ├── message/ # [Phase 2d] 消息管理
|
||||||
|
│ │ ├── list.vue # 消息列表(多条件筛选+操作)
|
||||||
|
│ │ └── stats.vue # 消息统计(ECharts 仪表板)
|
||||||
├── deploy/
|
├── deploy/
|
||||||
├── design-system/
|
├── design-system/
|
||||||
└── docs/
|
└── docs/
|
||||||
@@ -387,8 +438,96 @@ kill $(lsof -ti :8085) 2>/dev/null; sleep 2; cd backend/go-service && go run cmd
|
|||||||
- `im_conversation_members` — 扩展字段(role, nickname, is_muted, is_do_not_disturb, joined_at, at_me_count)
|
- `im_conversation_members` — 扩展字段(role, nickname, is_muted, is_do_not_disturb, joined_at, at_me_count)
|
||||||
- `im_messages` — 扩展字段(at_user_ids BIGINT[])
|
- `im_messages` — 扩展字段(at_user_ids BIGINT[])
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 九、Phase 2d — 消息类型扩展
|
||||||
|
|
||||||
|
> **状态:** ✅ 已完成
|
||||||
|
> **设计文档:** `docs/plans/2026-03-04-phase2d-design.md`
|
||||||
|
> **实施计划:** `docs/plans/2026-03-04-phase2d-implementation.plan.md`
|
||||||
|
> **分支:** `feature/phase2d-message-types`
|
||||||
|
|
||||||
|
### 功能范围
|
||||||
|
|
||||||
|
| 模块 | 内容 |
|
||||||
|
|------|------|
|
||||||
|
| 文件上传增强 | 50MB 上传上限、图片缩略图(200px JPEG)、语音校验(mp3/wav/aac/m4a, 最长 60s) |
|
||||||
|
| 富媒体消息 | 图片(多图网格 + 大图预览)、语音(录制+播放+波形)、文件(卡片+下载+预览) |
|
||||||
|
| IM Service | extra JSON 存储、会话列表预览文案([图片x3]/[语音 12"]/[文件] xxx.pdf) |
|
||||||
|
| 前端组件 | MsgText/MsgImage/MsgVoice/MsgFile + MorePanel + VoiceRecorder |
|
||||||
|
| 管理端 | 消息列表(多条件筛选+撤回+删除+详情)+ 消息统计仪表板(ECharts 四图表) |
|
||||||
|
|
||||||
|
### Task 完成状态
|
||||||
|
|
||||||
|
| Task | 描述 | 状态 |
|
||||||
|
|------|------|------|
|
||||||
|
| Task 1 | 文件上传服务增强(50MB + 缩略图 + 语音校验) | ✅ 完成 |
|
||||||
|
| Task 2 | 消息 extra 结构定义 + DTO 扩展 + 常量启用 | ✅ 完成 |
|
||||||
|
| Task 3 | IM Service 适配富媒体消息 | ✅ 完成 |
|
||||||
|
| Task 4 | 管理端消息 DAO + Service + Controller | ✅ 完成 |
|
||||||
|
| Task 5 | 消息组件体系 + conversation 页改造 | ✅ 完成 |
|
||||||
|
| Task 6 | 图片消息完整流程 | ✅ 完成 |
|
||||||
|
| Task 7 | 语音消息完整流程 | ✅ 完成 |
|
||||||
|
| Task 8 | 文件消息完整流程 | ✅ 完成 |
|
||||||
|
| Task 9 | 输入栏改造 | ✅ 完成 |
|
||||||
|
| Task 10 | 管理端消息列表页 | ✅ 完成 |
|
||||||
|
| Task 11 | 管理端消息统计页 | ✅ 完成 |
|
||||||
|
| Task 12 | 管理端路由 + Store + API | ✅ 完成 |
|
||||||
|
| Task 13 | 群聊适配 + 编译验证 | ✅ 完成 |
|
||||||
|
| Task 14 | 代码审查 + 文档更新 | ✅ 完成 |
|
||||||
|
| 代码审查修复 | C1: im_groups 表名修复 + C2: 管理端撤回 WS 推送补全 | ✅ 完成 |
|
||||||
|
|
||||||
|
### 后端新增/修改
|
||||||
|
|
||||||
|
#### 文件上传 API
|
||||||
|
| 方法 | 路径 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| POST | /api/v1/upload/image | 图片上传(含缩略图生成) |
|
||||||
|
| POST | /api/v1/upload/voice | 语音上传(含时长校验) |
|
||||||
|
|
||||||
|
#### 管理端消息 API
|
||||||
|
| 方法 | 路径 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| GET | /api/v1/admin/messages | 消息列表(分页+多条件筛选) |
|
||||||
|
| GET | /api/v1/admin/messages/:id | 消息详情 |
|
||||||
|
| DELETE | /api/v1/admin/messages/:id | 删除消息(软删除) |
|
||||||
|
| PUT | /api/v1/admin/messages/:id/recall | 撤回消息(+WS 推送) |
|
||||||
|
| GET | /api/v1/admin/messages/stats | 消息统计 |
|
||||||
|
|
||||||
|
### 前端新增组件
|
||||||
|
|
||||||
|
| 组件 | 路径 | 功能 |
|
||||||
|
|------|------|------|
|
||||||
|
| MsgText.vue | components/msg/ | 文本消息渲染 |
|
||||||
|
| MsgImage.vue | components/msg/ | 图片网格 + 大图预览 |
|
||||||
|
| MsgVoice.vue | components/msg/ | 语音播放 + 波形 + 时长 |
|
||||||
|
| MsgFile.vue | components/msg/ | 文件卡片 + 下载 + 预览 |
|
||||||
|
| MorePanel.vue | components/chat/ | "+"展开面板 |
|
||||||
|
| VoiceRecorder.vue | components/chat/ | 长按录音 |
|
||||||
|
|
||||||
|
### 管理端新增页面
|
||||||
|
|
||||||
|
| 页面 | 路径 | 功能 |
|
||||||
|
|------|------|------|
|
||||||
|
| 消息列表 | views/message/list.vue | 多条件筛选 + 操作 + 详情弹窗 |
|
||||||
|
| 消息统计 | views/message/stats.vue | 趋势折线图 + 类型饼图 + 活跃排行 |
|
||||||
|
|
||||||
|
### Playwright 端到端测试(2026-04-17)
|
||||||
|
|
||||||
|
| 测试项 | 结果 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 前台单聊输入栏改造 | ✅ 通过 | 语音切换 + MorePanel 展开正常 |
|
||||||
|
| 前台群聊输入栏改造 | ✅ 通过 | 与单聊一致的改造结构 |
|
||||||
|
| 管理端消息列表展示 | ✅ 通过 | 表格、分页、操作按钮正常 |
|
||||||
|
| 管理端筛选功能 | ✅ 通过 | 关键词/类型/发送者ID/重置全部正常 |
|
||||||
|
| 管理端撤回/删除操作 | ✅ 通过 | 确认弹窗 + 状态变更 + 按钮联动正常 |
|
||||||
|
| 管理端消息详情弹窗 | ✅ 通过 | 发送者信息 + 元数据 + 内容展示正常 |
|
||||||
|
| 管理端消息统计图表 | ✅ 通过 | ECharts 线图/饼图/条形图渲染正常 |
|
||||||
|
|
||||||
|
> 详细报告:`test-report-phase2d.md`
|
||||||
|
|
||||||
### 留待后续阶段
|
### 留待后续阶段
|
||||||
|
|
||||||
- 消息类型扩展(图片/语音/文件)
|
|
||||||
- 管理端消息管理功能
|
|
||||||
- 群头像上传 UI 完善
|
- 群头像上传 UI 完善
|
||||||
|
- 消息转发功能
|
||||||
|
- 视频消息支持
|
||||||
|
|||||||
@@ -1,55 +1,85 @@
|
|||||||
/**
|
/**
|
||||||
* 文件上传模块 API
|
* 文件上传 API 封装
|
||||||
|
* 提供通用上传、图片上传(含缩略图)、语音上传接口
|
||||||
*
|
*
|
||||||
* 对应后端路由:POST /api/v1/upload
|
* BASE_URL 复用 @/utils/request 中的统一配置,保证与业务接口一致
|
||||||
* 使用 uni.uploadFile 上传文件到 MinIO
|
* (开发环境:http://{hostname}:8085;生产环境:相对路径由 Nginx 反代)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { useUserStore } from '@/store/user'
|
||||||
import { BASE_URL } from '@/utils/request'
|
import { BASE_URL } from '@/utils/request'
|
||||||
import { getToken } from '@/utils/storage'
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件
|
* 通用文件上传(最大 50MB)
|
||||||
* @param {string} filePath - 本地文件路径(如从 uni.chooseImage 获取)
|
* @param {string} filePath 本地文件临时路径
|
||||||
* @returns {Promise<Object>} 返回 { url: '...' }
|
* @param {string} [fileName] 文件名
|
||||||
|
* @returns {Promise<{ url, file_name, size }>}
|
||||||
*/
|
*/
|
||||||
const uploadFile = (filePath) => {
|
export function uploadFile(filePath, fileName) {
|
||||||
|
return _doUpload('/api/v1/upload', filePath, fileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片上传(自动生成缩略图,最大 20MB)
|
||||||
|
* @param {string} filePath 本地图片临时路径
|
||||||
|
* @param {string} [fileName] 文件名
|
||||||
|
* @returns {Promise<{ url, thumbnail_url, file_name, size, width, height, mime_type }>}
|
||||||
|
*/
|
||||||
|
export function uploadImage(filePath, fileName) {
|
||||||
|
return _doUpload('/api/v1/upload/image', filePath, fileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 语音上传(最大 5MB)
|
||||||
|
* @param {string} filePath 本地语音文件临时路径
|
||||||
|
* @param {number} duration 语音时长(秒)
|
||||||
|
* @param {string} [fileName] 文件名
|
||||||
|
* @returns {Promise<{ url, file_name, size, duration, mime_type }>}
|
||||||
|
*/
|
||||||
|
export function uploadVoice(filePath, duration, fileName) {
|
||||||
|
return _doUpload('/api/v1/upload/voice', filePath, fileName, { duration: String(duration) })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内部上传方法
|
||||||
|
*/
|
||||||
|
function _doUpload(apiPath, filePath, fileName, extraFormData = {}) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const token = userStore.token
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const token = getToken()
|
|
||||||
uni.uploadFile({
|
uni.uploadFile({
|
||||||
url: `${BASE_URL}/api/v1/upload`,
|
url: `${BASE_URL}${apiPath}`,
|
||||||
filePath,
|
filePath,
|
||||||
name: 'file',
|
name: 'file',
|
||||||
|
formData: {
|
||||||
|
...extraFormData,
|
||||||
|
...(fileName ? { file_name: fileName } : {})
|
||||||
|
},
|
||||||
header: {
|
header: {
|
||||||
Authorization: token ? `Bearer ${token}` : ''
|
Authorization: token ? `Bearer ${token}` : ''
|
||||||
},
|
},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.statusCode === 200) {
|
try {
|
||||||
try {
|
const result = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
|
||||||
const data = JSON.parse(res.data)
|
if (result.code === 0) {
|
||||||
if (data.code === 0) {
|
resolve(result.data)
|
||||||
resolve(data)
|
} else {
|
||||||
} else {
|
reject(new Error(result.message || '上传失败'))
|
||||||
uni.showToast({ title: data.message || '上传失败', icon: 'none' })
|
|
||||||
reject(data)
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
uni.showToast({ title: '响应解析失败', icon: 'none' })
|
|
||||||
reject({ code: -1, message: '响应解析失败' })
|
|
||||||
}
|
}
|
||||||
} else {
|
} catch (e) {
|
||||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
reject(new Error('解析上传结果失败'))
|
||||||
reject({ code: res.statusCode, message: '上传失败' })
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: (err) => {
|
fail: (err) => {
|
||||||
uni.showToast({ title: '网络异常', icon: 'none' })
|
reject(new Error(err.errMsg || '网络错误'))
|
||||||
reject({ code: -1, message: err.errMsg || '网络异常' })
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
uploadFile
|
uploadFile,
|
||||||
|
uploadImage,
|
||||||
|
uploadVoice
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user