From 0c1540bdeed3bcc91cbce95fef957e46c0133b62 Mon Sep 17 00:00:00 2001 From: bujinyuan Date: Mon, 20 Apr 2026 11:53:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=81=8A=E5=A4=A9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=94=AF=E6=8C=81=20=E6=96=87=E4=BB=B6=E3=80=81=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E3=80=81=E8=AF=AD=E9=9F=B3=E5=8F=91=E9=80=81=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E9=94=AE=E5=90=AF=E5=81=9C=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/project-context.mdc | 17 +- .gitignore | 3 + .../page-2026-04-17T07-25-16-028Z.yml | 12 + .../page-2026-04-17T07-27-09-460Z.yml | 52 ++ .../page-2026-04-17T07-27-25-356Z.yml | 59 ++ .../page-2026-04-17T07-27-36-905Z.yml | 50 ++ .../page-2026-04-17T07-27-50-887Z.yml | 52 ++ .../page-2026-04-17T07-27-56-740Z.yml | 71 ++ .../page-2026-04-17T07-28-11-843Z.yml | 141 ++++ .../page-2026-04-17T07-28-22-476Z.yml | 67 ++ .../page-2026-04-17T07-28-27-950Z.yml | 66 ++ .../page-2026-04-17T07-28-50-885Z.yml | 70 ++ .../page-2026-04-17T07-28-59-150Z.yml | 127 +++ .../page-2026-04-17T07-29-16-130Z.yml | 700 ++++++++++++++++ .../page-2026-04-17T07-29-39-798Z.yml | 700 ++++++++++++++++ .../page-2026-04-17T07-30-05-249Z.yml | 127 +++ .../page-2026-04-17T07-30-22-418Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-30-32-504Z.yml | 665 +++++++++++++++ .../page-2026-04-17T07-30-43-199Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-30-58-043Z.yml | 679 ++++++++++++++++ .../page-2026-04-17T07-31-10-998Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-31-19-029Z.yml | 528 ++++++++++++ .../page-2026-04-17T07-31-30-327Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-31-35-872Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-31-45-858Z.yml | 231 ++++++ .../page-2026-04-17T07-32-05-601Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-32-19-098Z.yml | 671 ++++++++++++++++ .../page-2026-04-17T07-32-31-353Z.yml | 686 ++++++++++++++++ .../page-2026-04-17T07-32-43-783Z.yml | 673 ++++++++++++++++ .../page-2026-04-17T07-33-08-064Z.yml | 684 ++++++++++++++++ .../page-2026-04-17T07-33-19-732Z.yml | 670 ++++++++++++++++ .../page-2026-04-17T07-33-48-060Z.yml | 70 ++ .../page-2026-04-17T07-33-59-890Z.yml | 69 ++ .../page-2026-04-20T02-46-08-885Z.yml | 12 + .../page-2026-04-20T02-46-40-892Z.yml | 21 + .../page-2026-04-20T02-47-16-017Z.yml | 67 ++ .../page-2026-04-20T02-47-51-613Z.yml | 20 + .../page-2026-04-20T02-48-00-102Z.yml | 27 + .../page-2026-04-20T02-48-06-899Z.yml | 0 .../page-2026-04-20T02-48-26-153Z.yml | 20 + .../page-2026-04-20T02-49-30-023Z.yml | 20 + .../page-2026-04-20T02-49-38-283Z.yml | 20 + .../page-2026-04-20T02-49-48-206Z.yml | 27 + .../page-2026-04-20T02-49-57-898Z.yml | 23 + .../page-2026-04-20T02-50-04-038Z.yml | 23 + .../page-2026-04-20T02-52-51-163Z.yml | 67 ++ .../page-2026-04-20T02-52-55-725Z.yml | 23 + .../page-2026-04-20T02-53-00-659Z.yml | 23 + .../page-2026-04-20T02-53-20-347Z.yml | 26 + .../page-2026-04-20T02-53-27-333Z.yml | 26 + .../page-2026-04-20T02-55-27-223Z.yml | 38 + .../page-2026-04-20T02-57-08-451Z.yml | 30 + .../page-2026-04-20T02-57-29-021Z.yml | 35 + .../page-2026-04-20T02-57-35-922Z.yml | 35 + .../page-2026-04-20T02-58-32-254Z.yml | 44 + .../page-2026-04-20T02-59-11-280Z.yml | 44 + .../page-2026-04-20T02-59-17-550Z.yml | 44 + .../page-2026-04-20T03-00-22-053Z.yml | 44 + .../page-2026-04-20T03-00-44-373Z.yml | 53 ++ .../page-2026-04-20T03-00-49-938Z.yml | 53 ++ .../page-2026-04-20T03-01-07-399Z.yml | 22 + .../page-2026-04-20T03-01-27-153Z.yml | 70 ++ .../page-2026-04-20T03-01-32-060Z.yml | 66 ++ .../page-2026-04-20T03-01-39-056Z.yml | 671 ++++++++++++++++ .../page-2026-04-20T03-02-06-166Z.yml | 706 ++++++++++++++++ .playwright-mcp/test-doc.txt | 1 + .playwright-mcp/test-image.jpg | Bin 0 -> 989411 bytes README.md | 61 +- admin/package-lock.json | 26 + admin/package.json | 1 + admin/src/api/message.js | 86 ++ admin/src/router/index.js | 12 + admin/src/views/layout/index.vue | 9 + admin/src/views/message/list.vue | 756 ++++++++++++++++++ admin/src/views/message/stats.vue | 387 +++++++++ .../controller/message_manage_controller.go | 137 ++++ .../app/admin/dao/message_manage_dao.go | 242 ++++++ backend/go-service/app/admin/router.go | 8 + .../admin/service/message_manage_service.go | 270 +++++++ backend/go-service/app/auth/dao/user_dao.go | 14 + backend/go-service/app/constants/im.go | 6 +- backend/go-service/app/dto/admin_dto.go | 81 ++ backend/go-service/app/dto/im_dto.go | 24 +- .../app/file/controller/file_controller.go | 100 ++- backend/go-service/app/file/router.go | 2 + .../app/file/service/file_service.go | 190 ++++- .../go-service/app/im/service/im_service.go | 85 +- backend/go-service/app/provider/provider.go | 3 + backend/go-service/app/provider/wire_gen.go | 7 +- backend/go-service/go.mod | 2 + backend/go-service/go.sum | 5 + backend/go-service/pkg/storage/minio.go | 27 +- backend/go-service/router/router.go | 2 +- docs/api/README.md | 2 + docs/api/admin/message.md | 162 ++++ docs/api/frontend/im.md | 5 +- docs/plans/2026-03-04-phase2d-design.md | 704 ++++++++++++++++ .../2026-03-04-phase2d-implementation.plan.md | 435 ++++++++++ docs/progress/CURRENT_STATUS.md | 153 +++- frontend/src/api/file.js | 86 +- frontend/src/components/chat/MorePanel.vue | 70 ++ .../src/components/chat/VoiceRecorder.vue | 176 ++++ frontend/src/components/msg/MsgFile.vue | 141 ++++ frontend/src/components/msg/MsgImage.vue | 114 +++ frontend/src/components/msg/MsgText.vue | 41 + frontend/src/components/msg/MsgVoice.vue | 163 ++++ frontend/src/pages/chat/conversation.vue | 230 +++++- frontend/src/pages/group/conversation.vue | 230 +++++- frontend/src/store/chat.js | 98 ++- frontend/src/utils/file.js | 76 ++ scripts/dev-setup.sh | 71 +- scripts/start.sh | 137 ++++ scripts/status.sh | 59 ++ scripts/stop.sh | 118 +++ test-report-phase2d-bugfix.md | 137 ++++ test-report-phase2d.md | 103 +++ 116 files changed, 20277 insertions(+), 144 deletions(-) create mode 100644 .playwright-mcp/page-2026-04-17T07-25-16-028Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-27-09-460Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-27-25-356Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-27-36-905Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-27-50-887Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-27-56-740Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-28-11-843Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-28-22-476Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-28-27-950Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-28-50-885Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-28-59-150Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-29-16-130Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-29-39-798Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-30-05-249Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-30-22-418Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-30-32-504Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-30-43-199Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-30-58-043Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-31-10-998Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-31-19-029Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-31-30-327Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-31-35-872Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-31-45-858Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-32-05-601Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-32-19-098Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-32-31-353Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-32-43-783Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-33-08-064Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-33-19-732Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-33-48-060Z.yml create mode 100644 .playwright-mcp/page-2026-04-17T07-33-59-890Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-46-08-885Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-46-40-892Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-47-16-017Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-47-51-613Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-48-00-102Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-48-06-899Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-48-26-153Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-49-30-023Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-49-38-283Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-49-48-206Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-49-57-898Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-50-04-038Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-52-51-163Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-52-55-725Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-53-00-659Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-53-20-347Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-53-27-333Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-55-27-223Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-57-08-451Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-57-29-021Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-57-35-922Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-58-32-254Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-59-11-280Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T02-59-17-550Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-00-22-053Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-00-44-373Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-00-49-938Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-01-07-399Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-01-27-153Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-01-32-060Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-01-39-056Z.yml create mode 100644 .playwright-mcp/page-2026-04-20T03-02-06-166Z.yml create mode 100644 .playwright-mcp/test-doc.txt create mode 100644 .playwright-mcp/test-image.jpg create mode 100644 admin/src/api/message.js create mode 100644 admin/src/views/message/list.vue create mode 100644 admin/src/views/message/stats.vue create mode 100644 backend/go-service/app/admin/controller/message_manage_controller.go create mode 100644 backend/go-service/app/admin/dao/message_manage_dao.go create mode 100644 backend/go-service/app/admin/service/message_manage_service.go create mode 100644 docs/api/admin/message.md create mode 100644 docs/plans/2026-03-04-phase2d-design.md create mode 100644 docs/plans/2026-03-04-phase2d-implementation.plan.md create mode 100644 frontend/src/components/chat/MorePanel.vue create mode 100644 frontend/src/components/chat/VoiceRecorder.vue create mode 100644 frontend/src/components/msg/MsgFile.vue create mode 100644 frontend/src/components/msg/MsgImage.vue create mode 100644 frontend/src/components/msg/MsgText.vue create mode 100644 frontend/src/components/msg/MsgVoice.vue create mode 100644 frontend/src/utils/file.js create mode 100755 scripts/start.sh create mode 100755 scripts/status.sh create mode 100755 scripts/stop.sh create mode 100644 test-report-phase2d-bugfix.md create mode 100644 test-report-phase2d.md diff --git a/.cursor/rules/project-context.mdc b/.cursor/rules/project-context.mdc index 731a075..6d69e0d 100644 --- a/.cursor/rules/project-context.mdc +++ b/.cursor/rules/project-context.mdc @@ -20,10 +20,11 @@ alwaysApply: true - 分支:`feature/phase2b-instant-messaging` - **Phase 2c(群聊与已读回执)**:✅ 全部完成(14 个 Task + 代码审查修复 14 项 + 浏览器测试修复 21 项),设计文档 `docs/plans/2026-03-04-phase2c-design.md` - 分支:`feature/phase2c-group-read-receipt` -- 范围:群聊全功能(三级角色/禁言/@提醒/群公告/入群审批)+ 已读回执(单聊会话级 + 群聊消息级)+ MinIO 文件存储 + 管理端群组管理 -- 代码审查修复:Critical×5(角色类型/公告字段/at_user_ids/@导航/Wire 注册)+ Important×4 + Minor×2 + Suggestion×3 -- 浏览器测试修复:搜索 ILIKE 替换 to_tsvector、管理端群详情 UI 重设计、群搜索已加入状态、创建/邀请支持非好友搜索、全角色身份标识、全局错误信息路径修复(8文件18处)、自定义操作弹窗替代 uni.showActionSheet、已读详情页群昵称展示、免打扰 API 补全(DAO/Service/Controller/Router)、联系人 Tab 页 onShow 刷新 -- **跨模块通信模式**:接口注入标准(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) +- **Phase 2d(消息类型扩展)**:✅ 全部完成(14 个 Task + 代码审查修复 2 项 + 富媒体 Bug 修复 4 项),设计文档 `docs/plans/2026-03-04-phase2d-design.md` +- 分支:`feature/phase2d-message-types` +- **开发者运维脚本(2026-04-20)**:新增 `scripts/{start,stop,status}.sh` 三件套,`scripts/dev-setup.sh` 补齐 MinIO 健康检查;遵循 setup/start 职责分离(Rails/Django 社区模式) +- 范围:图片/语音/文件消息完整流程 + 管理端消息管理(列表+统计+撤回+删除)+ 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) - `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 对齐) ## 核心开发规则 @@ -52,6 +53,12 @@ EchoChat 是一个实时音视频通讯平台,包含三个子项目: 13. **验证方式**:使用 Playwright MCP 进行页面自动化验证 14. **代码审查**:每个 Task 完成后,使用 `code-reviewer` 子代理进行结构化审查,确保代码质量和计划一致性 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` ## 代码风格全局一致规则(最高优先级,强制执行) diff --git a/.gitignore b/.gitignore index a147d11..39a4579 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,9 @@ Thumbs.db *.swo *~ +# --- Local runtime --- +.run/ + # --- Go --- backend/go-service/tmp/ *.exe diff --git a/.playwright-mcp/page-2026-04-17T07-25-16-028Z.yml b/.playwright-mcp/page-2026-04-17T07-25-16-028Z.yml new file mode 100644 index 0000000..9e5ebd6 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-25-16-028Z.yml @@ -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: 认证已过期或无效,请重新登录 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-27-09-460Z.yml b/.playwright-mcp/page-2026-04-17T07-27-09-460Z.yml new file mode 100644 index 0000000..d6a56cb --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-27-09-460Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-27-25-356Z.yml b/.playwright-mcp/page-2026-04-17T07-27-25-356Z.yml new file mode 100644 index 0000000..33fc91d --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-27-25-356Z.yml @@ -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]: 文件 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-27-36-905Z.yml b/.playwright-mcp/page-2026-04-17T07-27-36-905Z.yml new file mode 100644 index 0000000..dc08bbc --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-27-36-905Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-27-50-887Z.yml b/.playwright-mcp/page-2026-04-17T07-27-50-887Z.yml new file mode 100644 index 0000000..a9fcdd6 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-27-50-887Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-27-56-740Z.yml b/.playwright-mcp/page-2026-04-17T07-27-56-740Z.yml new file mode 100644 index 0000000..14526c0 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-27-56-740Z.yml @@ -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]: 我的 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-28-11-843Z.yml b/.playwright-mcp/page-2026-04-17T07-28-11-843Z.yml new file mode 100644 index 0000000..d967077 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-28-11-843Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-28-22-476Z.yml b/.playwright-mcp/page-2026-04-17T07-28-22-476Z.yml new file mode 100644 index 0000000..b1de98f --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-28-22-476Z.yml @@ -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 统计、会议统计、系统监控等) \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-28-27-950Z.yml b/.playwright-mcp/page-2026-04-17T07-28-27-950Z.yml new file mode 100644 index 0000000..ac9256b --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-28-27-950Z.yml @@ -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 统计、会议统计、系统监控等) \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-28-50-885Z.yml b/.playwright-mcp/page-2026-04-17T07-28-50-885Z.yml new file mode 100644 index 0000000..6a1fd10 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-28-50-885Z.yml @@ -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]: 登录成功 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-28-59-150Z.yml b/.playwright-mcp/page-2026-04-17T07-28-59-150Z.yml new file mode 100644 index 0000000..a537bd8 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-28-59-150Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-29-16-130Z.yml b/.playwright-mcp/page-2026-04-17T07-29-16-130Z.yml new file mode 100644 index 0000000..cf09954 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-29-16-130Z.yml @@ -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" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-29-39-798Z.yml b/.playwright-mcp/page-2026-04-17T07-29-39-798Z.yml new file mode 100644 index 0000000..cf09954 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-29-39-798Z.yml @@ -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" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-30-05-249Z.yml b/.playwright-mcp/page-2026-04-17T07-30-05-249Z.yml new file mode 100644 index 0000000..937c9bc --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-30-05-249Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-30-22-418Z.yml b/.playwright-mcp/page-2026-04-17T07-30-22-418Z.yml new file mode 100644 index 0000000..0adc7e0 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-30-22-418Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-30-32-504Z.yml b/.playwright-mcp/page-2026-04-17T07-30-32-504Z.yml new file mode 100644 index 0000000..122a32c --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-30-32-504Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-30-43-199Z.yml b/.playwright-mcp/page-2026-04-17T07-30-43-199Z.yml new file mode 100644 index 0000000..7993af1 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-30-43-199Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-30-58-043Z.yml b/.playwright-mcp/page-2026-04-17T07-30-58-043Z.yml new file mode 100644 index 0000000..78692ff --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-30-58-043Z.yml @@ -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] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-31-10-998Z.yml b/.playwright-mcp/page-2026-04-17T07-31-10-998Z.yml new file mode 100644 index 0000000..25fddac --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-31-10-998Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-31-19-029Z.yml b/.playwright-mcp/page-2026-04-17T07-31-19-029Z.yml new file mode 100644 index 0000000..5bc3bae --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-31-19-029Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-31-30-327Z.yml b/.playwright-mcp/page-2026-04-17T07-31-30-327Z.yml new file mode 100644 index 0000000..c75c8d1 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-31-30-327Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-31-35-872Z.yml b/.playwright-mcp/page-2026-04-17T07-31-35-872Z.yml new file mode 100644 index 0000000..8af3a67 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-31-35-872Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-31-45-858Z.yml b/.playwright-mcp/page-2026-04-17T07-31-45-858Z.yml new file mode 100644 index 0000000..9909b26 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-31-45-858Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-32-05-601Z.yml b/.playwright-mcp/page-2026-04-17T07-32-05-601Z.yml new file mode 100644 index 0000000..542028b --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-32-05-601Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-32-19-098Z.yml b/.playwright-mcp/page-2026-04-17T07-32-19-098Z.yml new file mode 100644 index 0000000..c37914c --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-32-19-098Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-32-31-353Z.yml b/.playwright-mcp/page-2026-04-17T07-32-31-353Z.yml new file mode 100644 index 0000000..ae3502f --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-32-31-353Z.yml @@ -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]: 确定撤回 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-32-43-783Z.yml b/.playwright-mcp/page-2026-04-17T07-32-43-783Z.yml new file mode 100644 index 0000000..7048631 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-32-43-783Z.yml @@ -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]: 消息已撤回 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-33-08-064Z.yml b/.playwright-mcp/page-2026-04-17T07-33-08-064Z.yml new file mode 100644 index 0000000..75877d9 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-33-08-064Z.yml @@ -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]: 确定删除 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-33-19-732Z.yml b/.playwright-mcp/page-2026-04-17T07-33-19-732Z.yml new file mode 100644 index 0000000..f8cecbe --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-33-19-732Z.yml @@ -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]: 消息已删除 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-33-48-060Z.yml b/.playwright-mcp/page-2026-04-17T07-33-48-060Z.yml new file mode 100644 index 0000000..625660b --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-33-48-060Z.yml @@ -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] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-33-59-890Z.yml b/.playwright-mcp/page-2026-04-17T07-33-59-890Z.yml new file mode 100644 index 0000000..da1c538 --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-33-59-890Z.yml @@ -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 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-46-08-885Z.yml b/.playwright-mcp/page-2026-04-20T02-46-08-885Z.yml new file mode 100644 index 0000000..9e5ebd6 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-46-08-885Z.yml @@ -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: 认证已过期或无效,请重新登录 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-46-40-892Z.yml b/.playwright-mcp/page-2026-04-20T02-46-40-892Z.yml new file mode 100644 index 0000000..f551aa0 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-46-40-892Z.yml @@ -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]: 立即注册 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-47-16-017Z.yml b/.playwright-mcp/page-2026-04-20T02-47-16-017Z.yml new file mode 100644 index 0000000..098c018 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-47-16-017Z.yml @@ -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]: 我的 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-47-51-613Z.yml b/.playwright-mcp/page-2026-04-20T02-47-51-613Z.yml new file mode 100644 index 0000000..f256bfe --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-47-51-613Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-48-00-102Z.yml b/.playwright-mcp/page-2026-04-20T02-48-00-102Z.yml new file mode 100644 index 0000000..40f3dc0 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-48-00-102Z.yml @@ -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]: 文件 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-48-06-899Z.yml b/.playwright-mcp/page-2026-04-20T02-48-06-899Z.yml new file mode 100644 index 0000000..e69de29 diff --git a/.playwright-mcp/page-2026-04-20T02-48-26-153Z.yml b/.playwright-mcp/page-2026-04-20T02-48-26-153Z.yml new file mode 100644 index 0000000..f256bfe --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-48-26-153Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-49-30-023Z.yml b/.playwright-mcp/page-2026-04-20T02-49-30-023Z.yml new file mode 100644 index 0000000..8fe738a --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-49-30-023Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-49-38-283Z.yml b/.playwright-mcp/page-2026-04-20T02-49-38-283Z.yml new file mode 100644 index 0000000..16d59a4 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-49-38-283Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-49-48-206Z.yml b/.playwright-mcp/page-2026-04-20T02-49-48-206Z.yml new file mode 100644 index 0000000..d4ccad9 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-49-48-206Z.yml @@ -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]: 文件 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-49-57-898Z.yml b/.playwright-mcp/page-2026-04-20T02-49-57-898Z.yml new file mode 100644 index 0000000..05ed1f8 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-49-57-898Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-50-04-038Z.yml b/.playwright-mcp/page-2026-04-20T02-50-04-038Z.yml new file mode 100644 index 0000000..05ed1f8 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-50-04-038Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-52-51-163Z.yml b/.playwright-mcp/page-2026-04-20T02-52-51-163Z.yml new file mode 100644 index 0000000..3589a22 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-52-51-163Z.yml @@ -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]: 我的 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-52-55-725Z.yml b/.playwright-mcp/page-2026-04-20T02-52-55-725Z.yml new file mode 100644 index 0000000..0d82f7b --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-52-55-725Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-53-00-659Z.yml b/.playwright-mcp/page-2026-04-20T02-53-00-659Z.yml new file mode 100644 index 0000000..0d82f7b --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-53-00-659Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-53-20-347Z.yml b/.playwright-mcp/page-2026-04-20T02-53-20-347Z.yml new file mode 100644 index 0000000..e9c5839 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-53-20-347Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-53-27-333Z.yml b/.playwright-mcp/page-2026-04-20T02-53-27-333Z.yml new file mode 100644 index 0000000..e9c5839 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-53-27-333Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-55-27-223Z.yml b/.playwright-mcp/page-2026-04-20T02-55-27-223Z.yml new file mode 100644 index 0000000..c506b11 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-55-27-223Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-57-08-451Z.yml b/.playwright-mcp/page-2026-04-20T02-57-08-451Z.yml new file mode 100644 index 0000000..b68f2b8 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-57-08-451Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-57-29-021Z.yml b/.playwright-mcp/page-2026-04-20T02-57-29-021Z.yml new file mode 100644 index 0000000..b65dff3 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-57-29-021Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-57-35-922Z.yml b/.playwright-mcp/page-2026-04-20T02-57-35-922Z.yml new file mode 100644 index 0000000..b65dff3 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-57-35-922Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-58-32-254Z.yml b/.playwright-mcp/page-2026-04-20T02-58-32-254Z.yml new file mode 100644 index 0000000..79bdd30 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-58-32-254Z.yml @@ -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] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-59-11-280Z.yml b/.playwright-mcp/page-2026-04-20T02-59-11-280Z.yml new file mode 100644 index 0000000..faea3b6 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-59-11-280Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T02-59-17-550Z.yml b/.playwright-mcp/page-2026-04-20T02-59-17-550Z.yml new file mode 100644 index 0000000..faea3b6 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T02-59-17-550Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-00-22-053Z.yml b/.playwright-mcp/page-2026-04-20T03-00-22-053Z.yml new file mode 100644 index 0000000..580580a --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-00-22-053Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-00-44-373Z.yml b/.playwright-mcp/page-2026-04-20T03-00-44-373Z.yml new file mode 100644 index 0000000..57985a3 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-00-44-373Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-00-49-938Z.yml b/.playwright-mcp/page-2026-04-20T03-00-49-938Z.yml new file mode 100644 index 0000000..57985a3 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-00-49-938Z.yml @@ -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]:  \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-01-07-399Z.yml b/.playwright-mcp/page-2026-04-20T03-01-07-399Z.yml new file mode 100644 index 0000000..d1069c4 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-01-07-399Z.yml @@ -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 · 实时音视频通讯平台 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-01-27-153Z.yml b/.playwright-mcp/page-2026-04-20T03-01-27-153Z.yml new file mode 100644 index 0000000..30310ca --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-01-27-153Z.yml @@ -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]: 登录成功 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-01-32-060Z.yml b/.playwright-mcp/page-2026-04-20T03-01-32-060Z.yml new file mode 100644 index 0000000..86542d2 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-01-32-060Z.yml @@ -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 统计、会议统计、系统监控等) \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-01-39-056Z.yml b/.playwright-mcp/page-2026-04-20T03-01-39-056Z.yml new file mode 100644 index 0000000..dbcf138 --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-01-39-056Z.yml @@ -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]: 页 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-20T03-02-06-166Z.yml b/.playwright-mcp/page-2026-04-20T03-02-06-166Z.yml new file mode 100644 index 0000000..7b3c6fa --- /dev/null +++ b/.playwright-mcp/page-2026-04-20T03-02-06-166Z.yml @@ -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\" } ] }" \ No newline at end of file diff --git a/.playwright-mcp/test-doc.txt b/.playwright-mcp/test-doc.txt new file mode 100644 index 0000000..6eeb276 --- /dev/null +++ b/.playwright-mcp/test-doc.txt @@ -0,0 +1 @@ +EchoChat test file content - for upload testing diff --git a/.playwright-mcp/test-image.jpg b/.playwright-mcp/test-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92f5669638ba93c4d993d15e192762bdce948aaf GIT binary patch literal 989411 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 {cT2Fma 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%0A+>ktL(F?!2)uwFb;gtONT9m#!5`d~}<|L6Adr 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ʅ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%0D! zWs^{rb{GN`t6VvXIbPA9x^QXWj%YYZJ%VCS%~ zkXiQJ`*&YiO?Hn|a9ObNlf;6rj0X(Hp0I!Li}FyX3~Kc=bB`6~qBo&Wmdxhj!E))4 z8#txYPPBuS7ND@N@;V|rzU}Kb8+1vIr{r{QOKDkVMxFg!9WmqiL0y(%I zsRPQ~6AVXgOxN4HlhwuT_rgB9^Jc?VnuQ|CRP%W-Xa-Z2&V%qxc z=~ubjFV^en<#zV&^m5!Ae&Qz{%iIW9qmhyO=Cl%b4VynC_0;J^1d%t)=d%l;AyTgO zS`@TsBgLb6Q&1d`!&)$e*~;s8@{y~UVYT)BOsqJMM8PayMf?Sh;{4Y6DPxiOM)Up5 zX9&a0ALdZDy5w0ih*qr+tN{GaG&hSqeRJa)EQc)llaB}Nl*2?02I}s2 zzp=l1bqMxQpEWPGW4YaT8e^uZ4o`-kynpxfzxdC8^>=>t-|MY^|L)~-NRNzrUtaEq z-P)t0-~WZL9lL+?)1Ucp=dJHm(ljM4S=1R-)Wd`ZNm5*~fXUAUEs$FS4vLf;I?@e- zGv4*UVJ2L~vC_c)x) z%~#59zLHZ5qCF;d78jndbUZCGczA$Ui#79*J=zomr7hC^$$oC+bDO+X|ao32RPUQtmq zj?O*IvAvnm|8XJYkHF6!aH3VFj=SfYls1A&vF3q6Xb$latO$$l|X^f{lcw zQ;kH*)Oa&SenPe;6s6#qHDDk`@<&-s#ivojN>)< zQ>jV($Dw(3^_~8+clPZkcv)no^sEB(7#Q%spvMu=7>r=*ORYkMZo^S2-JJPi zD#aLv1;3tSjc*VNoD+P6iXOTW7EOUmjomSHP?#MP2-@2`3MoVq6wEe~A0_D)OSFrZ z@nLC!D^gL%!X^@U+p-+{+R;Zw`5 zR^w|g()5+=tKCME=mRv}u;Z%)N+~Sm1*d)kjaR2#DNSc7$4Q5yS*u9B>g*cXy>ZR} z@zwcfdhkc7QF2E+c0!n*H{yqq0J^goy6z!ja+*o7YGf~AA~Z3|dtlTO?& zk2)(==Rz$_Wh01^l=1{yG+HPh@Iw=~e1P0_XQg+LO#MVs|B zrH%($GR5htKVbGBU(;EvDdeTQ<@IpA+G)T`frOM1h{PS1Q%Ya|QLA$;ON2@oi7|~z zh-CHS1!D=f15StG_r5)U>Badg-`PL7>#Q~CQ-jvi?1Y;=#@3RITuH6NSPxu^d9OHb zP)a+!1DTJ`vS7ZH1pvo;42ZD|SRQAK+Gceav__8(&y#TWp^{~>Wk)AvNTaPR(_&Rx zpcEH!*kRNpL-K0rD0Yb~1zqztTrp{ZuWpGC8PsWpyw~1?CeD)fPN8ZUYi(YUHLBRk zhK-LDgaiM*7nwD+Nvq*$AS6b{w`q9J|NiiJ1zAL-DB!TZ|x< z>AR|Qa|dxU$Og=?5I1w1j9Qd3ZWN-On}BUlI?H@G8dcT~N3Crf z0}bmMt?n29;!pn0-~QCa)%~mGxO$|vWHxsD=1aGZU-`4y_rEcD{*Qn6Kl{J^8#h0A zeCy9^-SdxJzJoF2{`{=>eFsrK_T`tq`y+q*W3%nJx#&Mt;mu8@L!CoMbq1aUX;m3M z?2y{vNN>79K0X9DF)@TO10R9E1ZL&$TB0I<0r_ zUT~s6TCJ{L`_r2k+wuD4P11;uPe=|AVJ8qk#k7 z;*}uV>Q;6<82}=UqocY!wLBBOk!JuB!Ee8!= z+tN(|C?M-vZms5wtYca)q!wKowN2(DVb^lFnpN^a0)^6a#6wN-x_xYQ8%uBx;{?Ig zE*R0&^+Y#A-55tgT8Ne~8voBBfny1c{Vuv*fe#x#03?V3W{_s4Cty;~OwUZm*Wu;&ZaO*o z_gmi`x;Y&5ym#+8|L}eL+k5S`);32(7D3g=4Qv)l+@*JO8;$y8vEXoUD$7NCh>^TA zW^{qffII-1xFVGW(OPhARO_P^ZlZLY*qqGmszQs&WHCx$M{6)uj=xsKJY~K~X2j}u znIS`T|2znm+ZzWAar{no?*^+U=#iW%r;%8aT0ez&Wv&|S7>7;_LP)S%3}tqpuKBOM z9qKqvW&34t;h?@SuLMCz}&jPh6VJp&SzewnmcT!-5JQ%Vvc$>!H!34<&|a>`p3auUhC!zYfy+ zIi)GAIa;0em7G6s+7^vlSQeSHEx|%SG1@nqn5OgT06P0bWUJ13G6ZD^cPj>5hl&*_V%Dm9hWQy<_%e+rpn zVLwWkacHC`E{+(*yP{m5X`S*cUo&-3=w)UJR{Sck7>OW!=nLmM zPv$p%;a_~`OJ8{VTJ5O0dvP?pdiCnM-yJg*9#cdrKR|J0Pqo%Q4X0sc-tW*zAgv`= z15G0#R#%?cG-67~q|@ z2)uREDMeVm1e2-a{4GN2W%y`?38W<*bQW!h;;ow$jY^P^Vwr$x;EziI=KK<8Aq}t? zAcF}##{FIYCyQmXDlUl^6#7v_nDA3GDbS1=6h3mBCOcYkF}`hp;2gI(aY=N~I*nmw z7myzq6Bxs2{+vFcHE5%UjJUV|BVT;=g6iG?cbfe|K$f?{^scL+WpDm+VyK>Ym9m+oXS|U4R+PRcHZ7i8ucSyW1%Aw^Bf`(L`r&wAcWX_rVA<6a0iJb#jRcel#P+4 z!^k{AKyj)JYqGA8Kb;_;rK12t!W@Z+$t;caAosBpj-?Fa zJe^wtxx2Q5SxZt7iK-32l5-p-DI3t;p&K4x_BeEff%4$YSz@`dp$r=XCT?kl<3;R;E*~ zU#HP*5IZ~kpE4Z&0?WyS3jGpgMi-W}{?7ah$Pkwg^Yi#c zYCw8_q*Jilf(33CLP~}+eGUZm&4I{s>{t~ktc7Ipl|_qAhMKXat|0l>Z1UnS&TJEo zsOfkPu5MzF=t8Xmr8h8@nTst{`R=qK(SH%sor7bVbs^SraG-vPBpvZPcie~GXiz03 zW#=+XO-du%eq~rJzI}*q_R+&s6}AY@QFaqKGU+>ClzfHXNehVVm{Su&CWrB|A7wXc z1z{Wv{*+d_?4tB@&5U`8e4p08$7%MH`cGOdD9%)V7DWv-_|Sd; zo7w*L3_o#QQ4~qSFwR8~9`_&b$WE57AmOBF5X^I=yt4r(H<9VqKr5%SHk~CN3{Obz zDDO^pkg$G&y``pw%nhbvB;DbjP`Xrjt6_XrVFDnv2W1&#J3=JHMy|o^{enYpxrvNG zC*d`vW^{rD=Zh9B!vhqNFJa|l&85OV2vTUojy9^Zg?Kn}k<%cPScOH5t_?yD^dtCT zP$Jy~c$sKa+x^im|LpN+zw^xZU;oIB*=dI%UG38z@r=5qvtR4OpvsJl!n_5CaIwWqEc0@h!?q6cNm2!)&^DCFHHv3n=Ej9=6 zp~Hw2$06ZG@t~ErO~dpd$$$uitop@nwLjYIcVLe~gz0nY!KR=SO<=VPhV>UqT13z; zZM!kV6j17fZXV**1}cpXs~#ykC>`k z9SpmO-f?JZ4fr}2+lB%f8cLcu0L;#D7MgG}ec&J|u_gvtWqJua$w?LN#L7cG3 zAx9h_^>ye1d^U1fmHdhOIlkpz>=<(~_`r_8dkKQ_a z^lLx=#ee5d{mI?#&c|N(*Z;|{p8nJiw&w7CU{UY-gl{@C;p$2!6&{X!)q#xI7)naO zmyJm8#NooqkEoL-uda^> zr3DXE4vM2&`nd0qMPqP4?Er;nwV-wlC15EcPX4`FjD{dFGdzPDgTbAzeQMBr#2|JK z^(~}hvq@DxBxk&rsJqpRdF{4!Na!{9B>ECW)HSPB@*GviBa}iP*MccyTwO#;pY5D* zI>%6SQ|-2a4Q11$Ic5KbAfukc9+vYfH#llTK8x9h6Q8iL23BVXI_7-7atnGv(;}*@;MEA9HBt%cs};bHP+*P!USlJ>H zs`eP5o1tN7bxrwGI*W#ockx_}KRhB^kd`yfsnx+4Y)vjdg}Z12Z^{zQ^4uzbXDH0e zQIx@bP@E!!X2S27ShItt*kPW4I%+}=T`~AK^eknhTTLM|qS_2~77xmJg6AVy?eI+ur}##5Q+vH{WRs9+K2n1f7m%s3!v;b=EUX>ox7 z77|fuj}b(Yao1q6wRwmauswN97mu8buXB6TA>zH7fjK#rjqZg5mBM=`jIy;MQt^cj z`mFDmG0eFYz>w^3%}o1!k7_wR$k)#8q!Jx;CKRja?H)`fcUScrojT@#V~PZ~dSP}M zKvdE5GBppFEjS@KdT}F!7b=4%He-T15^`1~D`j7i#Pi&upR)TNHbnZ$v45~BBhbg$ zAo@nQrBlWmME}lcaUj(>5_h+){Cx72aG7b)5NiqFgmU>4tO-3WEHcr)*(xbJSkTL_Y5GA&2)8D`b!e0tGNSu$cDjKSrg_K zYMp()^3#Rw1h%PmMd_ek%4G@NJ;FUfG!Hv zZ(1z)+xU3W!<0c687Ew$24PbUg=LZ&;E>Les+x}hLjc}$GQrl+LA{QpN2XdRG9=uO zP;fC30;F6zE!_>rc1G(e_r*bUBms25?T=E0ot@2&cR%#}$B&k8UO#G_H~ZDm{-#%N zI2NNGFc|6#YYChjyHqAO!vRiZM}SY9;SD?qF+Eay!pUXC28c$$I3P==9ks=Ko`g_58u)v7WY?$Wb|h z0#VKK5(DMXNW~O@HGwx7d%QoYKBynRQX2xraDvhm;3>H&oa@663Z>XNp~{G5kMTRC zC@lVl(CA;hJb9B|UIm_y3`I0BlI2KC2n9?)b-OXo(k#uudQq&ikR-gTErSgtn_P^^ zwutjF!l|7=1RsRQbKi`>#&t1i-!HFWshKo9~Y6?LGr73Bd#W5Hn< z=bW#=6`Ta9|3D4G5#&8m74uFwog^#kis(X3XE13^&h|_%FMI=G9+MkAe%xxQD1`9i z&E~9VQBQ)*f&mOYmJ=0knC7rd>~gSkrns4_^{L!{^kA~vJi9k~|Lw2t_b9j0V}+#V zP(GrFi3tZB2e?~`YiO%h07$Ytb052Lq%qiBrK(PF0wPtL%#O|?iP)DYoC&*{b?Edp9rFX870LyEOJxCk zXZHJaiKhEIoIu z4NrM_6nZV?OY3qhfUzFE z<UAKc5RCMgcP)6X)Krpds~kEi%TDv?XdC1qNq<(C$uSV-xE%_9#?G|mJ$9dz z8eFqwyRBdX<{EY@`^yjzt2h1uj`BK@22)Eq`N4@Z93h}hX_?6rOse50SW+lM)@@co z5_z7A8>eu)NNm117R`1>8Kz{@J({{`WAw9Q9d48V`Kaub#1HWz`Xs?uz?-g({X0`k zc{bH$t@A`!1jn%uu+|41VK7{ArOc*Dh(sYAWo_O zw?GkW(bz+1%gfSqJ2Tj!kxpU6>S$MNZOy1;K1#R_UgF2<9D!B?rxmY|Lb4r~gZE$eHD2yUN5&y_Q?wmDdd(SUAhmGdm zVtIA5eb}f@%x-C2MIe`X%?|8UcO#i8PcT9cdipP4TYmk6(^mJHN^8i|VlmKiEl{gO zYF<9IqnxHbB$vtbl~MoUd`&+ES6(MRO774!LBL+*OP!$_3;S#PCC4{ zlbrVjqV+HvZK(!i!x=)_`n| zN0E7p-dt`1BVK^!fOx46?3Zz(iJ}7z0=m!wq!~isf{!mb$xecT2%ms(wm^-&9&aFCbYO8g+{0Bc0|!Lmfui33?CGQ#~4+Lk;m@Tr%Tp9V3x za70rXSU<%#j8+(#kS0OCtqih&^kD}K+z10JO(dg5#>-NgS}`EA)b?bO>1=yWg#vj( z_6MmI^g!l(u?)JL%1dO!9weS#4pNoP4ig&Q0~raE3*!hzl;EJHZ$(QHRC+sQ4%}$i zH!+^hsYr(UKKGZWJC6(bQziU+9z_vl1}sMRKldO z+6FPm6unVE`JtyumC_GqPwE3#FzNWuW!{}cUvW#AktT?Mt z1c2IcI2!1T0Nv)O(>i_ljq2zR?WmS99I9bjVs637t>`WrhH469dK*>whtp0n3MnI` zYZ}ZFCOi~C6v}W@z!k1KrlL{O@(0CT$46A(q3$2zz{Q3u(4Y- z@}|5R8Gl}9xN4|3)-(P@26x**U=9m(DSKesaxWB+Bo_=Jk?-O{CKO?=B5O)dAmyV@ z;o!>sU7Zh8l$gzypUst}jVdBnCHHxW9awy4Bw^ANfhI(|E$nE=n8miCjg zI-s_k(=^}gIH&Bf5)eA_T$Q=aWr1l$8DkUE+MJy;=kPKeaS#UJvlmE=(dX1JF!4b; zClg%Vj>hKkh|y(7ezC95*1K}^2>46SFLV*GY&sg;0Ok}LH^|{}**b^PCFDv7^(sh! z98UfJIchQ7v4z1CHCl!HoFBAsOnBsiQ_GU;tg$7uVaaJh#G$@pqZ)-B0iG;Kqd><# z=xMZbFog~LAe-{atBb4GD&IU_GzLR1P@{bg14kd!ksOc6t?8Vol zRSGx7oh%vZi#N9qnRMTKrgw1Ix$-n1O^-xv5ChL`yMLso9)RP)-fp=2MyK+=E-W5m zoSpt(efOCH<}z~L7&WPX2q4GHY_-4k)}np+Llv}694O1Z$!fDdIKveSu+BW$t(YXi zs#e6)jNKGaYR+yqzj1JKcKp`k&5QHZbr@50q;y5@Iser|(9V&z)pW&cm9JIKe!ase zl=U8~EC{=kC{(Djs^b@()z3o|!3mkZxR?S$u~M5?yH7qk_|ChFA6V|LQ2jxK*5aS@ z%7kB+5GP>7qKMipjIYq~IrHSk*pzUSN}FYCl)nzQPCpn(tnzIAEIsVB4I)z7v!*S#NaOn-M-?ZU^JR>t+ld50Lz zypa6?w#3!u;+Mbt;Mee;>Rx%~%7@;5>&?ILZ~ZS<%WJLS(R|sdAAH{e!=&|B8=WVR z7>+lyF4P4)#J78-M35u!vRE<)9lmpBm&bQTaXa~$8&=?v|LJq*O6A%3cs&z!SdBMq zc3d1~EHO1(l@pT*VD?OK?IiiBF$a2P`yggER*V`SWhReX5M)7zTm@F3xgaCJ1_mQX zIuP|SXykidf9LUFbo0@xzcCM&Lx5wQU;{5=uAo7R zudK@K#B0Z@7{^pqX9F!Y*?UynID;!ZD)^BNnia`0)=4@tI~ZGrBiEj48*a0ELc4+KfJwG*M(nTz#=2f>cAL#d;IUV|}vGluosbgUd2 zW7CIZNOrjZN`{v5tQm%f@QJr7L6>WHD53T(8in}EjM%a;?c1^?tX~;eGo~Y!OXiKq z<1!-3w~|7|hIj6?9xf#vGhrlx^M16bbi^u59Ss<`0G%##0C$ z!{%`!W>9VOX2Nkn^TtkwvcR3W3T& zhysowhQ7MJ0dF`xo)-s|yi5h-Rn@D^W~IRL zH@7_KL%WI=DI!wCj9Nf3V+!1rY#y6g21lQg-Lcr-6pphjZ0WZ7sXR-vS}w@JSn357 zh;ytkJ;RX1nQE^`eO#8N+z5?~rKPAf(`$SyG^iIM+ehjBIILruSI zqs8xiagJ4*A+ZS%o!zS#(@zh9Nx<4Ux-w~qN-nhY!|hh&^An9YtoPVZahhYvglw+XvSMuXay&9qqEvE2};H9a3JMfR# z4m%T&Cul7cj=iq|3nc9rGUv^q3HX7d|C#RBMz=8TuWa5P>_4Dc2Xh03&dGZ4>g&r_ z-dKI>^?U0|=fxL4u{l{aADsNfKlNu1T1Qj~C|%eB7*M@;Z||coKh?VX5UK0c;l8bv z;lb?Q4f5LgWV_RwCC($+cNSONj0Rw74h9xd*p*f<_Z3;VDYpG!ol6<-`GNEf ztZBYj!(eJKLM+rA4`HQ$df4bf&BG3jeYKs~5r@z#yXv}&Gj#&AM_{wB3D`>6&Buf52v}*~NhssdqffxGf>dh0L_tQz zt97F_fRkkz^?-H&a!Z%`%0Rg=19>@v|viKir-90;SdDuf4v^h60H`Yhwo_NozI zj9g!hxb_t-Qi^i_%Xd!{j)9@ejt{1%kmgRn7y&fC-kQuknZ~fA*kv#(gVN8<+3T|7 zqp|n6E+dg8?J()q0%tl~IQ&60lKkC4yBgoPIX!a27g79ew>4@&p*wRy&ndmp@jie- zPe+!94JnzIsYXnVO}buNN=F5sq!%UCj*0*PfB;EEK~&~l?shvmfC=PvgE#=iU$``4 zOneH#u~^6iunV8toIz;K-HiHnO#)imUsU(ko4xIBzd|^q=ryi!n`|4gA@iE3_oM~b z{K!EPry~9WAYcBcQe=nR8M_(T2r9t#BS_GoTO!i&=u57~J$Sy;1(gP6IRu?24Qju` z8S-i3SS3Rm&6IMh2Von%8`W0wU5J|msP(YZU&>7063(h3Lv6{Ptql;n4)8cJK}I0t zU55egm`vYOG;bj!$gL*$6R!Bp!EkotsC7IUoNa0hjx?SK{!pleogH$vl}?bLuwRw% z@YofRRJYGuJ-gEFh#>e zOJ|rvIy-?!zUkl+IsM_6yPtjYUhC2iZIBmXJJ{|?opADdYd1w_vbk~eq<{Wsy{eNHR&$?5LNS>>7M*k%l2q6t2HeRlZ$qr=_uAuCFm zns#~{cCI~*BXur+3#H~T4 zvga3_-o7ZKYO1C|h3XkM7k*7RoExL*6C#C##aI{5spfT3p>YKBQvTz5ygBK7<(10E zf8@s5$@}-7oIH9wJAJtO<_R9TSLcme*N(0nKtaC^CbIu0{>-1P4{w|=s#t<@EIv9p zzjXQg-k<*Y&;9Cu^72gx7PWi#_D`p^<@E03?>-SCfkC_-rZ8sdDqeQHmy%xUQg4% z%!nnRm#fGPX#|z3XrpYi`s&H)goQQ!;2VR@`=WRmeyvU|1#E$>Vjyp2;(5)5CbcLC zP{ER|S0WAsx3B|cS{Jl5^_dbCRyT0y3L260X}qTev6zg`P`BXqxPvToea%(U?%?=t zGQwh_01$^@cBze55ITtYa&V(*M~|ULAQu#Jn!p-FZ!ezYSi%FYQP5`{%?Y@nove=C z+G)HJ_?M5yhre<{J% zJTG=2;W9}3rt?RrtM16`Bx?eL%b+E!DSA@l<{PB1i2JPqTdGTsK`|p#SmchjstNag zo_0Iz9R8ZlebfgjRLr5_TPWmY{3i)Iz!EwE&`6ex)eke2dBl!SqvjKDmkH>~R7e59 z+_#J%C&;uQ07|_NwM66CL$d^12z)jWjgCL85azl7hdDxa##tLv1{*ipbn)nQO{~Cz z^0i8kH%Ap5!{L0+Vl3Fm?VsW&GtJeAw_Ju~1oIWN`GV@Q*aLutq}O7Y%Zb zDLg6PkgWtd3#?_>)BNImGN+d;P*K$xD1;UJBesO$n{h#$9x~_)ci3)Gwk{v#>+v&F z&&)4=9RBP{=Z=Md zR1zJjLgl1)UO{O27XO?;D{N2ka-_p)E+#zTwkFv(fb&0ktRHueTSXDEE?&Z2w9(T> zXsoQJO?`NWWY0yg zL)K;DlP0>4D|5xFX#LWvxA$cE>Ol8MLKm#TT^HvpJ&ox)SyH8~ATikv1b@PL?v8_E z!Mrv;fqW$wM|(?dyK+=*gyQ3vQ3in=>?X(oO3%-}qpw11n3&3hlHof9(e`Yz51cB{ zfi5E7CVV-p67FP8ku(`GO{U|><}M|+kd49IS$z1zgV(+^e=_frBesD~l-LzXe^GHe zbltlk9@^9ky(*0WBE_IT`|!2J-4*r8US+pmuN^e1mn*v?UO7a&>h7zf<(IdQe!acD zO*Ntq5^fl_3_+^qfM~*1?UzQ;$c( z@AS97)T({nF5l)F2w)2XlB7|Vsk~{u$Bak>?i46cET@aw`i%!1;``0cxZWj$ANRVa z%l735ON4NM7-xj~kTe$ImP#FWBDLLC-J4C^S6yast&j6lHjQ!kgvp3P|FPAc{Z#lh50WF z7>l0%q`PQ!A3rtu;>pRC`QA%hA?+ubtt3D;c|uLw!n$x~McDwEfWd+>p)vg1!!9s*^Ha(2F)s6mxaDMyoYg&JHZ z@XdO>y4HB{Z~veEe3-A^}=yU+q8XEA_%h> z9;`ogcbh@S6o{4xg>a8e%|h46H`qU6Iq#CB=PZY!Bmj{`tPAjI3uwRC( zrCO>QStc+OtlHULPAz9^@(T+lH}srB4H;1_Y9`hb6==Qf@M{>Ft}SL(7eqx6`$T(3 zjHwf~nNEsCe1pry7np{kxA5(##q+tV^wiiVUg~-lX%2`uijM$=h8_=7lw5U!SAn!I zRG5&~#Co*lf|M~|QJPEci7H3>PHAi9`TF2U!5~h^XnvuXv&=W>xDrA5L1Dv0jY|?~`nZ4o!T48mOBoIXD#(ZDQUG2=#)Vf$BB^(%hM7*nA0$$ z17&_pDoQY5Dl3dLhHOX-w+X+TwK02Rx!3L=PrkKi{3u;AoFN&Rr8$OOWErU%ZOV`X z_C(054V=;(=P8$VvQb`CH7aEO&&4msm^VC>cV4t`Vl$64A|>*Bp;* zVU{pzMaxy)JB$qHi4ciQr$p%8*esP|RZQtl=EVN*5*&DvU}4bZ?A6<0RZ?IaCunj$ z!~)TrU4p&sEZvMiq{t9miv>Rd6>q}lQofVCNB88waWK{5U;zRSjRy~WMa<<~_Css- zamb|`4RBwkmjFR$o~3PxnM3|K1sf;5`rZ2ScKFULUB(PbJPP0&-g8KB-h3hedYukZBSu z$4!aPjyW?JIo;S?Dr2+>W^VuRepL0^)(aP#PMJH|cLkb1dy?Xn zw^6mQ%Y26(z;^1Sv6t@KcKM-awl}^#IUf^5>RkdHBe9e>h9+jd6-8bqia=c8+jZg6 zGK3o&Kmz;zAHMX)XQsnTKd@b1?hN+^6}pS>)ob6}J$a?J`!*J&G}{){(dml#WQRP% z_Lh~#yuO`Owr9QWqs{rxujgMsJoq!`l|L|H$X4;Prx>#W)TtoUzijOV*toudv^WG{U1Ae^1=L0t@V^WoH@czEMea2)L-3e zygI6V1rT{&xn%nte4gMR2C=j%PbP7H4;DdNV$Q5qW$e_YPk-g%(XAiiWM$Da{Ik=U zw0eWP=Z7y`d%IqFu-;tOVqMc0y5wpXBKITxS2HB3pGq1B4dghmb*D6Io)8b0v(INJ z3fKm;MT*_LJt*xfm?hE;?EV7MP;oky1u4mdqEc5{_orG$MSlX?E`Is;6(lTCY;1b? z?lKYU=IA^1$@X;oQ`^nQ=d_?C=Tduk8tMAr-kp)V#P=wOm0v2`KCB=UIpc?3e-)KaSmaEf){xWgA8{bHme74ZvAA|rBC(FBo z3Do&wJ$m^s{M-N0+1+mv_~xg+@#fu^W{-~-n}>s&v{D!&S{g&65vczloL477 zF{&ipG2$tkEihCuQt;ocn)2nm0yw$oc`4bH8O<5Xg-N!#GL+e($kfn?0Ir7xnGGMV zdE}XKGnj$C|wONHlJ$J-puK)$Hox=v?*8|$QP~n`gQZ3np)0+ZGgPlupGUf2 zSfhUBsJenof{;j~A=i*FWf7*aX2w^gg=F8?{|2(qTFHSJyj0|1IkC1F z{~#RAqOIZE6!tOuvzQvVy-DJ<=fY)CyHIY6-j*3!wZ>!;->=hx$!a;s!&8x-#=DB2 zJ?T10q_|W(fwaGg!=?-^qN%jMA~>AAR$(XAI)KQwX;dF*%gP28Rw2`JbQ(Wo z2Mt0W8-U<+dDH1{JC7@yZ`LMn*0yieCige%Qw}Fm9eNv?E_Y&&R%czI?TA)_a)z6S zR9Grpx{2U=QSShRknkOEcBc{@Ysc&D2Zl~gSlge*3hTnc$HwL&0mJZU8$E6)*|7r?a;Mt+2;1W7wRlUyWsl zzB&<{7qNmswa&|$$g4SU5~Uy}^_En654PiPt;XN3RqsRJVquP}`<3vQt~SCzaaa zbng$%x37%0?=34=rK&0>AZE_=AqaEMU76g|WwmWAn)@jH2d&RNTY0pq!bsrk!@Krz zt9GYSd&Db*q=Ecny959Rf#cz}f7BOZ5|ym|bO$cj)+KBc5&9SP|H;Diw-tMN|>^5JC*#@p8&$ z7^aQQC9ov;t7D3YfJLe-z)IW>ZIc1Pv+<-kB&|U!8o{H$r>iy8HnY< zHclkV>re09e5SLWPui_#`OUNhIVe;~%-PRWlJI94XmNJ!7Y_^!iIZQbK|7h^WK-xLb3%mtF z9kYjV&rzK~XpLd4br$=+Q}^>rl;zpCvOkA^mZ3D7#af#e33nT2`6!Yq)et z2pJ7dYC?cSKS+LqQ;#rDG}OFSc|=mbMDyqhc(T&jUE<%M4L)Om-Kfg_bqO-ZICown z&AN(gaP|j1Ob1JOtg+r1OR+;&Ne0)0Y`o=No*^^`NFXnAbRPwPPsbE7XDppUXF8Cw zu#Gg)W&2~rx?4=onNz`3GyT(OOOk3}4Mh*gjic2)@CLSjbu?m-AKB}3hyt#70lV=T zLZm&OAsjmLrVWM)MtvI#IUHq=%S=O_;e7SL5}6(akYhK8HHg{^*QxcaJJ?Sm%^Y%tFOX+qmiFj|fU1aOqpY)Q|Da#z~TV6 z@&<_Lnpp}ACDMz-2xmXq3XNWZQJaRnLoI?yNFGY_D>Po}dZcy^u@VI00~d2_ud(bD znq!xS$|JXW&|}?b(6aF9VOdEJazn3^waUc=*X7D<-Q?X%SXOo^X_Eni(Xex-0xwIB zQPg_DRPFiclA3X0^4+plTxZyPb?sPShe$A)EY8{0*!h4VNp#^ZGVxe>XE@GI`*N$Z zLYyQYr-RsF%8H=ztd-3Q3(O&gwXe1x{lneqr{F_CvJoW#4s{j|O9xK`Viv4r@@8sJ zzB)s&OCQ9!Z2&IHQR531bqpjzyHuQNL=Uom6bH0AY!77~RuOb0=zB=>ukHeyNAlFt zH7ZSk5POnsRkst+ev5VL>{jb>_3=MH{QzU&zqqb{6fl=E(~%b(q4J<%+5v^r2E>e{4EdgZmMllvdO`i)Kf@#2_w^q}3Cba8*di*QZ*5)206DaIoc)2TQ- zYD-}8y{gkgW;-w2t48O1d3^cO{NWq_uinkdru$Mol8EY{IDW2CnV;*Yd(hq)c z``P_VA5<5oyA_O9NTZ5`G;KqlbkaRt;4{wMiEeWAor2{)_kbuKh7w2Al0YJ+C_h>MI-? z>+P4{e*F5SXCBw4zV>+k5TbZ5GR5!!-#ApQFi6ynqk0<_Jjq@f(B@&TcE6o7#PE=&5vj20U|K^3!!*UBfJ~`CwB_yu z?Zh4odV)m;w<>4{Z$Ef(y*``Ix}7Ey0U3d|M5HdOMc;`a3gCRW{yb*>r1Xr{ay%RB z5mRlS&(98@y7GAP1f(s(L8CO=i=$Sofy`qeSjX+Jwx_VLo@~$0YwN2o!^#}@X2bP4 za}XJ&*26vD3dwOnS{s>knnrNANMtF^V^r~Ikkzb7JdiZUAqz<0UmB1dWWrgi7>4tB zI#mHJ|KB}HegLeM=`I4=`IU=VL!PgEkI5zn&eU~B0!PzM=_m)`4xoYc%U3^maB}n6 z(R;7|){Pd69@`fJCQq7mc+uwqzOvC$vK)%ZaAQlxV=7ztW|Gx`92DSq=8NTW@_Tpu zEW<er6f~Hu+W*l`qS3(ePORqsv3kV@x^?G$aKkq6=v|s2nU#f2Q zPiH7#BI}<_6Y7s*DlU{rf+ie)9X;zZ7?~p9!3Kg-bZjE{)u%&kEWtJFm4+KgBG26x z1UM(slI%DPM7bJWLAx=ABCW~nMje7VrF^YpvRW04wDG_~82_k&jh<}nEDq`G*7ET|zb`tr%aUF|mP~#?X%P!7>YdK4=p@(Qa=s za5f2@%PHuz%1KGpfM)cV1+42#Ad>wNV+N@bq^_)$;ys}IA1Y!CXV&rxtyAWj=$ruM zQ;IvK7MC{1v<7;YrG*iQuua5qvX#c#9Hq>RB-b(Vz>v=IoH`gIZ?;88DvdEW=p1gp zC(DPgHg3K|#2}~5+K--^Q$l}6wKK(3RF6Cjht%5|DZ&$CO*l!7a}`i>#iG}tl|&@1 z2R4t`STR!uZ1gB*t?-9F712UYMEO$CZp`S6S^i9tCmxA0T}SCQp#}j$NU^AOh(5BM z^&+zGXVZ)F4LzPz>M*jSI!O!J5vN$bc6i9P)9rIf2(!q;o^}DrzwZ*-@8X&0oz!uhTF}+g&ai9 zk&~i}Ryh9SuprkY5D!i5A1B zYK~|$v7M6ZOa_?vB2mkZ4-iLUNOi}JwfZ zAP?2#0$*Q7xM0^MZzH2)t#d2QCE&biOy=)uM@vw+@M%VNMPiIj>l5F9__a6hy>RWR z%JL19+jxn%Hc2WBtn5Va1`~Szr+J)MB)}5Ff+{@!?c^TunJ2p1_SRE*17e8OM`lqP z6DNJ9bko(obODo$z{erpjq3H@$?n1Br`PX%@OKYi*n4mJ!^o9;9Kb+gVNP(?big!M z!~W>w%k392-4TM&TajSiOF9+c#xFpCbgQ00i`0(U{;e)g!lY)q} z!b$4mY(`!TbI9SzsJo@p+ zkKVo9dB0jY=Yz;YrKlwz5P=iXGQo|_kC{v{7UaQT+-KX$tdLBC^VV*btKL>oSZv{j z$-$z2XspjCH6$n3_VEZ}L>d!tK~RbvpKd)8ct!gil*)HId6qJMjRVusrrsTI$9tFF zUmky^TEBW;d$u|pwAXwn>y?+qvLQUukqg=vl_gbW+OjrYj20|}u#4Ohz-jIFdSVXB zsVtJ=tI}W+<1wBnS}%5Yr`4yb_r6)KPK>qft9Lww97DLB*Zh!diF55Qz7Huimadz%qsr%e+=94e8dCbEp&m zXX`iLJca$(o4>hx^eW&foch>KVh$I8%Q55e;Z|r6&xa&D7SPJ$HRYH5XOUGB(X{ho zqGm9lGQ*S5uDE0q{sR~xJc)y%L=ibVWJug5EkSh&47iN^WYtK?ujR)!Sz@qq0gekb8sD)p5x3}(=6N!C5=+VPu$YL zqT^$ScLyqC62o(Xm9L&l>jHzL!yF{PdB_(bk^*@PA?8a{>vfTPAXU(&h#Pe<;hf09 z25?qB zN)d-|Qv$wT$;$f5Gf&^wQkENL9n8%8JTIN&<{&fvrBGo^el>GTTHxU=uM5~Sq#{fz ziA%bW3u5Khb0o_b66DsflAfffW`t&{tEeP~!@WqtTD*6GK&VCFs9kV1o;koLM8YYn zg^0$LQ2%v7*qb}{JonBr%^%XMWT}wAc~H4@ZR8R?**4)wviZiJ={)*0NAP@lxLOYt zo@C@j9cyt=k7AW&>fqA|4c4PAi3y1Ubp>N$$X_-2V9Wyxj901Wl=NN*LnWVy{@hL% z4}pxCc4{eWV_}%au9k2y1x`20T*R-7l#(Az6$#wHSHX55DM;Wy+jOCPS z02x2F7($Nr!B%(9b`r{x+r(Rs$|dv2e7IueSsPMXHEc~;uR6QFn?L_lZ918MFm5s* ztX3b(gT@ut<5!6tkJawGmH@VQ9e7;easV~p13U7`4;LH{D9O#@89zw{%dkD`RgE8G z%`IEsaW-iw^05^CVklx0K1HX)OFSD45<(>kx1>gyVXKvsZx+Wyrt54Loyw$MJqI}=OcBZA zTug_lU{q{JTj4Q7VBc5UJ#2|)2)};eQ;(0XJ>BoZ{iiq5HC$09$xTAMTo7XVsj9wnsdqY+xDB~_ z3_xo2JIDQB{nXuE?*>&GpP(lJj6*567U-@eUycU-EF^E=q?fKc9UnNq(36k%`d_Y` z|C7$<_VR43Jr%)$3VHp=2a;zP(*zTsgnE8}_A?_+skdml=^_=mJO`mND!wOemmHP? zL2#h-U(G5`l_5I=Ona(3Q99H-HR1**1vL|vLBd^|szZB}*-~wSUf|meER1ErKu%}{ zw29lm*Mxp$uhAHES_3i_)_T9QM@$i>cXkuieY?@!Lr2lryLP(kuW;mJ1p?;9V5x+= z(06Fu>)IdQg|sAU55j4LuFkBGv6@ONN9+~|#5bZO%vEGO4*lM(Xl!0`-hjAZ0UoG1`IjTIW0WiRK^n zF`%Pf{fwLoSdSsH;EQRJv7L&OrDx9O>yFgFgDx^{j_zhi7_#U$GkOq&JsW3E$z!l2 z$b+VUG!%8Tg?%H0mbJw0+-M7JOK*j2akge=#A126z?Kjz{=gJVz!~IZ)9G>yo(9@R zV&K>mS-Rd5Xev)ZJyfU7@k0u-Ae_uM-9g`;t`p!r-%NcPkaT#I^YsE=z3o46wrXp@ zI8otq>?Uc#!)-@%L5|shS5)ovsUZ36Ru}yqs018mXCum;p_Eg+O$f2^v^(6sJD9(L zT1^q0sWcp#AO?CKa^9j9U{;r40H+TbhP~%>ByBk-|BwkxtjDQ6|JaZTwYhA<@{b-c zL0sbn447eVVL2vtEoH+Wl51Xw&v9)}^CCXw0!}8f)E}zPGWai_X->Q%UjbaF+`%Fb zu9at8%-PgIC`_xhCSy1*?)r4)R8Oe;gSn2!MSP4%c^&Y?zvw!zD6&*3CES-Bnkx#X zMcHfSl#qm18kF_b>cN))_0Ly_E5McNoMWCunT&H=Uu;2P0V{Q7G@3Xe*v6C*AVg-1 zUk_V}pmIRGd(sFkXHBzwFdpa@$UtV=p>Qro*C^|)#PrZ0b%Wr;O7)=)LH-k&wu&~{ zIYMTEjMls`DL9k~yW?w>-#fqkxj8x=FNo8^y(b4$yiS81=N}fKSqPXVqy|z_TW-Ov zHG@f;DsPR+5la+>2X(6Xr-_Fe54wG2Py@#)@uSw?@4z_rCTwtr$pybfS9;f~O$v@c z1)*llSy8U56fGgz>>hpMqtAc!jnjGk01OuaKp1C86;fX$BNv9_gsrpwVI2aqP56(f zqA8M9Rw+fJ{&si=TU$jJxd#G}(Ejt%@XgA!GZBg+8eHN6LmpDu9v+{JKl;(xcXhToZr!-~pa0@_SHmBm z;frBm3odT6NAYGk!4|U?gZtjtT>8V`Jbr%GxyF={Mg`_R=Xsk#8mn`xI3Z=?&SC1K zWg~ChgHtq?V8WHi#gNZ03(c4tFcM}0EM@?)ltpKR(82RR`-|^=?%SIPwIww%^CpHRs++rRqN|@lRF{=wUMck{|?G{%;`&A%+f(cDb zULrggLmhirQ7G@c(mgrdoE`TjXWhjd5Pd);Jky5-mM9%7KCRws*N45vrQyiwoa98U zK9L7NNUwj64JH;9Aa_y2wFiKb~aS-4miU_*INS{ zow=r%eo&6ma+P}PfEGrB%(-Uwmzh8&HiS~BOR8>g8S*2JC9QXQK1tH7y|wd;ESq!e zrhF}aT_yUdZ#DZ_$(3{lkK=E3r*k+5xi9@RM!q+vXKyYZeKEXqX}Sb>V6TLTbU}r9 zE{0u5P!HGO0{_mC<)}j>K8wK{c0zbEU??l_kgaYU$fU6?+84jVS}36#f)v|Ux*2l| zm{CXPVChsZJG7eBQ+P3#Yhofx|6RfVmgh|JSU8lc-8rOnRNnGl>vU8?cjQ@V+`R7g z0IMCO!`e|@ACB634wOlQc?ms;*F{)%&={xW?Kn^!lt%stm-*wNxTUID)?kHX%Ptw&_}cnjL=CWQecYSz9Zr6;;4~tu!rhZ3 zl{84xKM#1of0_Ue9-M;$ksLs?0`FFlwsx{9jMNRv)8*K61gGN-q&!H+)mGD5-*uW) z$+3g=y%4X#8e3WdN`q!KD9>YoXi2BHDQ*H$Rzi-h4q%O)zw?<)S~sl`?Ereh@jC-( zQh4y#JuMDOxkEDcQ+D zK3R+79`u0Pq@PI0Cmvi+Q)+o@^g{@%;1{ zAf0j|N+K#(Tos&L9E&Wg;e2V*kbpq$xN@~}Sxw zhhrZ(>_zsu*J!2ae4hMc)(7fEyk2060|QBzs>lR=Xaf34L3#C#fKG}?7nF@{qLDOJ z4o<8Y_-Hn)K%CuSE@V2|?VdWhfBfR}k3abC-{)J@g>YUHVvD!G<3(YHzqsxGneW_v zZdn}wTI=et!ZZ~(mnIFhjAYM^d4?;svsC6wm>HP`BbY%71|leb2sY-F%H+aMNtDF^ z9ohiD##n>JWb(Lk`RV`i=e}|8{HgBn3NsPg!+ppoAV5@oIW+{AN$Wejgz91S;7@<) z?n~3=3)g!I1zVHQBJPspX+{a(Fnp#P)R7qc2YuGY=}FSbQ3iK_+<4 z*30wO@cMuMkG}nIb<{ul$S?ldqtoe&fFgP|3s;c`yTV;ot|BIz;Wv=UsgQMoTEu%{ zuv;JDHdC#=-)_A2_|B`#@q4S|_bNL^c^Hi-RZ~SJgCy4Qc(q-KLcrFX@2w2=ba&7| zMD7-XyG*m}WlqX;?R3x~nIPH|JfM4$+3Q@(Nj&3!ET6l4|HbEDd+C|ioTEk5Yzas#AKnC+IAbmp z{+YWVkMe_X1QzPB6zKML%@Hw39`tlvot`7VFOZCe{Hw;6lx&7n8hs#3kX*_xsMhAu zY_p!s+vPsNR67^?t0OXno%?oc_cqH~10p>-ZIH{C6ZudQ3w9oLvZr{NcPZx_civtc$3x+BCh>C3QoQY|s4t~Z~H*64*8?8o#! ztQ|h8)HL8yEKVH?06FFF)AfjaN@ZDeTlQ?-^5%~qM0f{e4l6c^X=%yqL(R^%2MQ`+ zl?RX6WrJxrTrWvj`JBWZFW3}9)fdzm%~LadEObvo$KbMBXbXZ04b!D#0KGDOY1Ke$O3srVd2O2U@rn z+M3-r|HJYup-9j#BEZo7O1fh357(9HE5OtbA3wOulc3Gd?g&AVmq#AMQUKEm3#BxW zOzT2XQ&ZzGa4Q5WzqqrgBcsEXVNYI`aGtXWnX?08?#00cH7sL729cIAqB&C;DWkoI ztElMPl+Jqg)3gQuFo(!!`cS)B%z+5lZrgryb^9kjcJ-fr@;fKH%XvnOA{GXR#GI5t zYigV6aQ=dm#VtV8Dv6xW!XTSOM+0*4RMM} zs!hT^UHJ5NUC{O}GdwkM+ZhwdleuIyX|9%ZA${o=sz6vVm2t0gem*&F4xjnY{=aX% zasT_CzWUPTZvE(R4;L;bW^-n+p24@>E?GI$r~Tb>uX*dJ^T%KR_Fk)YnHYfv%YdFo z=S*w_mL~Q%m4OMvZp^qaTcVUD4ny^*1^d{+lEWApXK{$QwEt+fPuku6uYIHXncuHn z+q*fa;zak+-}=mAzI(P(WsvYG9^~???6$hcB`gDPQo?YHY#_IV3n?AgFkwkY(2Y+{ z(85h2W1de|bq21QX*m#$+8$a#Eb$$SVIMbsW2J;hB1{lj0)3_p?Jl#+iJ2FmmPpU|_j;Fv@Mi1xH?RElZ~VPK{iUD%Q{VihpKhQ1H&0(V!-?@p<#OlJ z(dPX2mA$)Hu8ezo)#((I-ShMLgF%1y!qdH@US~d?!m_;c@cyW`JnD}x4OUmK?Z5fO zx5p3X2Umud4sb8tjn`+Z+P#|x-+u7>KQpSGFm-_2Gy!4my4GtI<>-+pndF<|lg`aYjRVnHD=XuQ~g?CISoRQGhnA+cf?)3Y!|!3&@#3hTj_m%>FQ3>(C6PzDP? zh$6+Jw%)?+R3HOFoSZA@zBFENt5Wiz$>1FKUG;{ZU*vEkx~RR))ZtbyHp>bBu?H7N zT?;3oCtgR|4BBhvy=!U`{%HL___v?+q>!M)NKSKB3um*U7-h43?NZ6r=Tb;&=+fBX z+3vc1>^dD|1RBq$vzys1ZUorPtq$WXIL%b{JFtRkh}oj*aX6@(ZJS>?c+3gFYM?eR zzz8Jn7ySkMnM9A{-{eGtA`06oqrm`LoGC*JQpSanmnsR*O3kX})F6`$xgRt_qcid* zvLZF}dgMrfb`EfcGtx}MjHfRgNe!4;B-FBUH$CX|sng8cMx^%PgcJG8QK4zD;__ zMG09D9b&iMplQ>VsR!~yB2yAdLB!tZWC|oY2q)~UNK!*fG`+yQk}q;buAQ3lX?z^Q ztCH*rlM;rUsDy^tIrn~RCIFK~wIM>O+cRdxe+b@^9+f0#a?s*u-R&^^L{`6wG1Gt` z_pTF%`%v`pEfmV^K5Q6F-~#w3Z?o?dBUCe<1OXv7^0yRVbRnnR#V@brvyQk%B74r) zg1@9H3X`wrp%Ia#m{yX-P+L&Ih@9*&?VcFPkXWA% z_Bx+>b$kD;_1xuA8$dz9mnu954|{eMvVmPUX&^HA2{(unskc15%?>F=IP}3beEN=> z79`VGlt)UPL_LtkU&wDZ6kWI;sQ$JBLK<6y|GS;x`qjHn4UcZ2C!;Fx_~d7S<<;hz zG4+QZdgJz!c6G`)!QJ+}30x!yrF~{7Mr!`UXLqhs1m_PWEp{_v>RI&3#++2G6u{!R3A zBN{)6z&`a$+x7772k#yp;=Xw9Ot;Jjb#3yrJt06#m>0{=cR*+=I2!F;dcHGy>fO8N*RCGaDq}~;UARHe$l%SA zRLOG<#+N@hyQRNO8zg50hTh-&5dzWDZ&8xJ-w?L(8oB(;GIlopkt&wCVVh#m<(-XK%gq!mUMb-k*Nq!7u-{^@D#pIeq1w zul(kXer5IkFKsJdef;jHU-|ogYxUrZFF)V@%3ELf$sZq#-urJ~`N#kM`J*pCdh07c z@qLvKzV++=$yy4sV z92|*E@~j&WiE~0T5EWUGl)pG?XU@3p<=Xd)3ker3HxtN05Of@VE5Kuja}Kn+MR^`# zXFdwaJ_aKu;;dkXvEn#itO_jR{WjX~^W}2--n|D`pL+JaSAMZ^_9c>x%#Ae9wDe(t zN@Osj*s=un+F|7&(0V~|+S$$P@G2nK9(5V8bh z77KF|bTtR$V{A;G9;G+bB54X8Y=niv;YQ=h*-LNBR-tYSDR8-RotSut9^2+b4jo4) z7LNucZ&AeP(UwCZYFnP8m_-HGi-Rr6abcb#_P`ppp1Zh(C>_J*oug4%G_02-()kqubCY9fewnL zgQCm~CU}S57*0jjcDiO!qIPS|o?}xLo?`hEHUtq?>6td*@V~n~e4-uEQd$@=b3nJ@ z(+FCjWmtkvu|&E2^`MLTfPuAYJwd3abO(`fkgSk<(Qf0JG$}qB&y6cbWXCjBIkCcv za&)K#J1z(-yJFlm`9UUcGRvKg1CK}@Y5^gVp{olc%~G@`pvn!B8Wt#p!?DyD_D{d( zq3A1e(<)x0P3jB~Kiz-O2ur5+f%q^aHCxD7v``Ge!DDCnv*{DrEG-g!zKg8LetbY( z{#>_$*disZ6J6nOq6U)K=;SqpXZ#F*!u!HyLxhIFY4U3SmP7%xH6JCBF3K?{*ja(& z`NrNj|0MmF>Uw0q0#iXu$C9a-o|ylb-{eoi_BBdL!SjEa>7_2>-xY$#zt5l%xIvbD zrl)aQ7cX0DR)bJZ2rIY%%1J9+>iJazIHAz8#|~{KeG8^2Xmi2^5rCsbyA$30=Jj6p z_3zdmZLfEScs?n{^EI)i*rKiBxJH)e!t><-wmykRtqX=Drjmn*W)a{*ZHt2maI#($if)qZDC6ok? zlwLGFuSA}@p*8kh%(h?%^LVv+czg2V-Lq#ZXRG0Ux7{Z;J=WI@_W|%GKUscx6emf+ zXyvR6R>318yzygc_ju3(*o3;zAy12;K5arB@HFKcgCerLOS=YO57sFV6D1I~Z;~hO z4fg75c5$03Q_#T+7b&*zKA=yZPT|M|0TKAgOGb^oQ#pmFWm zfN4|1y`xTZ9~;bWiyX1-Nu=kZ4*U8L*$$?T0}nsiRgb>$#zw1A)+v-8cQb9D9hzuo@3zi{{P=^rQOJi6RI zx^&Rr-|KV_M+Yz6xjXLn5fsA!JI=&v^3&LOk!GkTFs$AnD`*oOgybLd6%V>{VInj@8DLdZY#!uWa-I#->( zt+5EPBw~in%A&RlLm}P7K-mh!LYKWvQOS9%-)g(+k~gzAxe=6M*V$$u!&YLMw`Oe^o^?!g zqkwkMy>qKTN62|i-D6t7P$LkZ3^8Jl(e+7XYdK900CglJLYFEHV=XY`@R+@;ZFVY8 z*M=ST!>B-|g*4+DX+{WxMsEsMKi0dJ`*e5!i(nwx+U8l2<6E+j%E$_L_7@#5uFK@P zMs`ILd`Sv`EKkE|ZiH?Ocn_{atWUBiR+S^HJ?{C(>dxcS)_55eP@@9{gWtGmK(7BE z{_684gNgkaWy{k>#B4(Xgn}z2)uJz$d3Drp98}PQ5Q{;AHt8hEu(R*r9;}v06#Gz` z6ztYo^V!*QbxuDP-5fD#KYx&(VXqkPY#p<{FH7yzK5ED^1$>Pbw33B^~6U44FI}Czd-pL zGi@~s=np`J-CAzd;I?Amb+e=!Z^xqz(Wl**s zMo9!k-+PAR7W9~29JjB_YJr`kXo>v0&)M`aw=JPXBq3Zw zF{mIKl9S}vCPNA`W%WnKc~0wT-gx@cpIKH0FLm}D1;aCp!G=z9nsins?bWZDgdoaw z&&Rt&86)imTNXCj0*p(LQiEFm+#8+q%?kre8aQCu{Vu-a>?^0tcwd0+ws+{pt~+os zwx_?`8Qj5T8A?#9R@K6**_n_oMz;iCBZB#27&YdF8A$0CN#A+Ax3~Pt>+5OrBi-Jm zckYbaqrK4{b6w_UellZd1f$DOJhs0}wn0fVsID0!Dp5nsw9<`kSLN?~c0O+pkE@6O z_!qzYkstg+zrLmYdi&KCE72V#+(Wgy%@2%b!zx(v?;Kf#b#*yX37TC#@ z=8-zOuSV6RvO7y8IizzxeNd>G7uf(Y=Ekn7bTZz1kV<4-PJMTl<|RgW31+ z4mO*l9OW!?=}CK#+9l=5&SI@`rP6rnTi?A;OdRYDSpBHjf?X1ZIu2fiVkrGmeyIv( z*-ZR52#tUpQNFT0=9(INFZ{|U-~T7Seth-WALTbLUm5Nn?C)Q?G8pZ5NPJqu?(pgR z$J^8C?BEg~KNeUMnPbQDg8DYv%w5a{&F^rL+fL|*LJ|JVm-lAdr&~RAAR`jE*|v`c zy;^(Jtvvww)oDeGQeHmBhJh;62<9ab&MH+baF(y$yE&Fh^TCyO@62BL@-Ke;;~zTw$-gnV`V((GYHwft)ccQG%^&(Ji|O`|y<&AoWQFP= zM&+>@*n=(a&}e-hGI%P`GVBThDT|X}h<%a9V~Ho;9^-D*G0FbbrPP$#?t~MM=z-Te z45KXNsoYy9c5yh6K)CDD77TC4-~txDJ|91M_~?{(`tUoyTfP0s4vvhxCYk1eYg28M z`KG*8RKk>*W?MQ$`ByBcn3i0?+WM?y=DY=Vm#%EC*I|BKoSs4cq%VdRF0*Us1HwB2 zM8U9)2g78~iNzvKUy*bk z3nvP0A*ZmBONC@Kp>S>tFFfZEkmB;nh{?c<2ID9=abCrNd zo8)6@X>mj`@QjMTPa`E%6cREn52T%Oa^v-4PM5?S(V9ooE;_0_0)BqGngiWZBalA_ zLg4-2zS`xrH=Aw3DC6&tS-K}YVkv?YBa&M|eW&>2fsLo999BSYq%o20wWgq7CYtmO z&otd=(Lsc_PX@MXfqgU8n`cl^EY?}Zt>BL=stN0lraVuMtN z^YfET1S3nptO+Am{lRIOk`~J;*2HhsXOrfF=oY^&YFWjLt^3552iz#fUKg|!_avb?S% z1ayj@r=PFGkAL~)HI}x`ccVm@=zgvLKI_4_<-kMh-Cbx;_NHMFmS&ugQy7k#F+&{Q7)C7x%-{q> zeKLtb$lxG=&G!$Vef9m(&;0zo)%ph>J*Yi*>(aJ*jGsQ1fZV$zWGDytO6T2C!x3JA zwHwXpvbG*CufO*8RcNiv4n|YDWKu76dYXkxa?;L~z^tD_zjtFfzxtK0elSEW)Zwr{ zp>3xh+77gX|E7^72o}nM@{jQJoj1)EbX0@G4|%&Z)6ZE>>&Der-|qkHuS~!8-7CYx zm-dFegZqmpZ!EkS%k@D?27WrL{2S%^;drav{Y2xP9VpNQT>WD;*#{> zc=}}c!JAX~lR#>AT=aCNYp=7Hj7`{&e5!L)n$}Yp=Z8|F3@G{_D4| zT)Xih@ak(f1_%3x!@aA6(WOCuuTPLB4prg%y>Nbd`Tck2P<@Sf%HL3Lv0_2tyMXBQ z=hl)r8F2P6nA+h-rVdmB1Vb#*T_UVt8EHvU`WfGkDRoD2I8MloLjGyz^pr_T;en==hD#&hFeg<<~R=tN`uN-`0v;Pq~=9kv3NB7>^*53G+zwpoBeC6wB zdmp~_^6;5^pL*}TS@VbgET)?6?P>b9Caj!bX~fqjQyP>ueFz0Y9fWIB4gGO(7&8xzZFP1fx&}OSP(Z9i&Fu z)2oM%o*a*lpFUcA_t*Z5>!TBV?lZhA6IlcH5R|;~fIabJ4e)JSC;yW-6Xe)kB$=W( z#~Z*Uz=^e+ouN#1kU4-4`3jwunj>HXmWUAW>YNapdC#GJ!DN`1xww9rWD<~>K0c}N zq&ZMp`ncib(l_Ctxwkwi-8%UUj#2V_q^!vwGCPZ;j9i)oC5?VmtKtwu5a`T;#M)h; zyhHQLN$Ux&Gmzli4xiz!%m!IXn%A_Ygwkz-1|t|OoLmDU!RpKjN=>p7VzK0znBdEN zQ|=Zfu01og&wSlq|0~ZGn>Eio-F`UQ(7QrqV*Ve!^lh&@6t&z;n1}|d0Xk0eh!|nS zfk&C9K1YrGMcLhYU?>RUq|}8)Yc{)Dx^p|TUjH9oIK`vo4p|W=sv|!luaPFuz(z$# z1GJ#k!r+)7O?V_%fHK^36T$DR%bVsa>8=SAJJ=baSpb?Q>kk)g5*RX5F^~CtEPx1K zK>MXLKsnY2=0`0Al>Pp8fwMOG5FS=&+&Y}jye{bZD2`bj8X@yK0I|g7k@*0)@yZ!r zuj&ehaX2;HK5qw>E3Bn{r#%YQvzRr=p+6XGPtWI-{)f##JxX)N0{y8$wkL%LrihX* zK0=%YEwwxr7PD!Gg-5ZbZywkx( zMc~dYso*OdLID~F?h;Dq9H@QL3D9VzbB|4q49+BXwfP}T0SnjPQJImkIAwCCU`xge zL`0TX5WgEfQ&O;UbpHd?B}hZy_Bg>EAaf^dsDP#UMcBESu0Z`Fz-^|J#xwuqw^`aZ z;nz1!Rv0WplX*Z&Pq2m73e{pZz29j+Y*B*mW{usfUd5S_7eS)|$cr!HQptYixG>-z z!=--l8;7gvvpwt_S_gyPzT9?wO30`vxI^F5Sy5OHN2h)Zz~JrL2>+|Ic6DsQZFjfw z>h10?{nmVM|HgCId75}!$#YS%rq$s46JSjE%LvB#y2WoW=J3?|b^eHydb+Ci=9TAu^;d5H=I1uO(MKDN zJxH}DkEge891eOM@Mq1+S+#-)#3&DxLlH{h)^cjf1Yy^rzW13|o2QfKJH0FTz35+p z#;Vf~CreePLz;yKHE8AEItccLtuL6k6 zLR#9Xf^>sfw1rfA(>T0)I{M_xFzmqx#{sA>hwwbfw?B)a}y$ z>cI?Sr*i;QHjK2sR;xb!)|*5gdwb3PNNN&JTbrX!|LJ$$cSds%HQvELSlIGQ~O_J$&jWl!RaV z&U4$whx%lwHR_#F?4Ch72@*6130}6EoG%capg|H?cioy*+Lv2rtM@;B>BWyvH_Kby z2hGmO@BiGd{-J;KFPwKiGU|*f-}=(iH($E9IJkCld;g`&ciui5Tzlc>>|2x1|L%u> z;(vPWNB+dFa=7^R7w5Ns|LRZt>Dlr8#^ur3?Kf`jpA9?j|H;4h(?8I>(fh~`wtKhR z-}w9W?LqZJKTZ6ES*$e!v~;!{S|g~GXvxs=QB*V1lSDgdi99lh(lo+2$P%^KZahGk z2F~7)TMKpoh^Ll_%62w|fy=UzD@!enfZ2~pyPx=MJ?p_TGpUeDV`YVED$p^JXEB*i z@10Ed4sSg8{eL#U_gi@1i3~~2j?0gGJE>36X+*draG-Und6xFg`4`FNw)XV|lhQ+L z0+_@(w&p-|kwA_)+^A?{y++iubxtn<0KoIdLK@k-!-PSYC`ApqBimpge+a)J{$c*PoD6 zN#d{xxpFEG5vh@mDB)I}u^35eQLo}9F4z)ZLAC*|eL#%R+;Ax%Cj-{N8IQ~h1}E5@ zsxPKL`RuHdr8mPPg7{UdcF7?5E=r`#N?+3gf&A@z@@E~O%N+^#N=Yb5n8u7;6b}mv zYbM2L7})6ItJoS0^eyiSyp)_kHPZ4w)J?7VV1gh-(hz7T&&E%$|E4iqI($2(U3j$J8l zoyE(9G+ZjRER`hK&>y?xD>~FS;rlh#)6wc1tL=M}-ACkCKsVRZJ6)$b?zF^sjk8lY zIst+w!-x#6j8q)u_*hEa3X2;DgG;p~!)xKfDq`L~2Q!1S{e$SX?f6rV7~T zf;s8JxDjV>RumR-EgP05g*#m&PvxRdetAhuMZ}0xP_UGSvWBT0D{k<%2er?A>!9BL;m>{P_|`$=@)hpv3F{)x!xVWWtb{tw>SG2^ueZrN3Hr43v1_)11bn>Ri?}4 zvVHXR2iHFLX8YQpy%^je+j;Gi}--0vTBdZP}oQ;Y0}rl`{u*_%`li{=2qJxls( z?fM@(KYjP}ufEB=vn!X@PaRY*H>a?>s#R*jMRV6%?)tOy8=wC2@Re^K-Zi(Tammi)T zd0qlG(Wy^I)fpZfODi392pTdrgi=^b*j3ws(1~HSchdRr`|qzW4}R`obZvfq_SN?% zANn``eC4Bm{>km?3zr7pKG|Nq|G^92e{}ctuU)S+-&`#|a^t7!ll$*37SDa?`^VdE z^V;yrtsnaAm;Ubj)BpD?hcABhHy#2T{?R}4M}F;BK6$P2?z;8|PfqSVf34HHb?dcn zy!#`}&sabUwbmw0Qx+h322H-E8bo#g9#a-X(1bX+dvY__j_h(P&~&oY(lAC;cszDy z&I)3h5IfSrvtPO{{I~4YCbw zNej?34v*VoWoFbjm-FzIKWZ?sh?DZ-JbHyiJhQHpQd=SG)ARG;0MAXFi$lO=R*pfR zBY}Ap9hL^oXP(h&O7`bKQ?)&Ev5V&>jdwiEwYlVix+Ugjq0F8_};mLm3FuI(HRnpxY zugGvcN;yfV9JW}P(y?L09heIfPVlDWsmYG60x3Z(7!O+84;DXIdG_C8{x8n3z8=R} za$=bPsf!jgA#Ugs9aB!SQYB|Ng%Df$7nUputpsX!tlI0i@{|smG)}S2SVD`n7GN|= zv7k6oB@)rn^>sO37>ZbNtGT4w@ zb7Y^Up-MpUbZ75J>1+1&J=dbpy!7~@oD!-mwuG|n$T{IHA(@nlO-+@^_%nZv#POM6%MMu(%(sNF*kh7ca6h%?WN zYZR*wiWe~z*8Sa+2e-fS%O_9Xd4d(6sd8<)>}_X*y?$-jc=y)L)w4Gj`@>p~CLsz} z*G|*CU^9R7r1#k`kI&AY>Rq~a^+xaL(qX4}fC6^Mq~mJ!&Ij*2y8l*Vd;9Xi;`#xG zqfRox!JCwq2Qry#PN(bJcb~j*dv@HnLCCm&NtIjE!K}u&L2HKJ-K`P{K321*^@?pcjc(XW$crP0=BWU$f;*b z{5#>z+&!*8Jb{bat2GWsd*~UEqR`mF#A7f#B=za_Mqu!uVFM6lH381CZZnpMf3OA< zW`-}M8Bn_Kg7waNa22TuPv4E)4t#tuF_}AGoIT#0K3Y6^JUg3=PtK8`k7rY6LGX$_)`pZ1 zeR%fp(c^o|@#FgVVXrx9_Lv5X^L^vt857qlPnORNMz{95i#-6K-r?cpqk%U|*N&VL zWq)t8n7;S^H}8J%+HQHfyEh#)wt%w4RHXJN%-ub!-hH^9PWKKD|HzFi&mHaeS@L`W zR|mw-J95@?;w?8Kou&o^;xpl|TARVy0&}?gmuuhp{8v7+ee%|7zP$DWfA(V^`h)kU zm3x)TN4;(9?&sfq?Q_-3^%pLU51)PR?cH;mO~3i}r|*2_Yd`)c{?_g7rA2o+>`V_I zzx(;$_{H|g{L-}>AO5L7x#(T`{O3OX2S5IOV(T8F*8$2V4A_~bwP!jJs)|9N_X zJCN0@I*v@ov|~x;?If@kUr-{R%!XGZB4!uDj=t@FDGx>IuR&dx zoh$vFx!zIKTde6HtS_RXSK$K+Ou>Jba5M7yG2fkU` zVN))H1&b+|wgP-YO5#1zj4S|YPh4f+iggG77eZN_lR6y@=}ynImZiTS8yYeJA}6We9+aXW;cOj$ z;g8$oTVsl2_X`k@S4f|3GDjpumzVl|rl4Q=3`Su(Tp;O!${Js5c%c?xOqxPu_sfD< zaVluXnE@YhaDrwZ)65mr8H2U>PkYEinV*m2FDns>(}A}#ot}`{2o-cj+d6|@;dnz% zL^E{W@8UG0#Svs=p6_bT?~37>nv!;EVgknn(5MBs)>&^*4V@CIkspUQg&Q&w9+R3^ zhl#KeFe#pJvccM`BjMA>0pTmHu5PnJd5wIgn*p-CXto9fF4!2f_sDnK8Rx30u07h; z{`qu)#-l{NYzAGSl7XU!c{1HzSzr5ev%T+!AR!+?mmPgdq%N4BxLyMS$>nFW(P?c% zHm~$G50fF{JEG!sUvWYTmbk$zLey|Z3|W-qP8D!Ag(ogLxs79V5Dj?KQKcrgnUtCQe1`;?MKsN;uCQF(L5t+&tjOtFY>oIj>|fa30QIC zk(zTs#g`WspKIZ7B42Tdg^SIvIGBLS3y;2JY^-dG3~$SpF#0tTnb!Pt_Qp3}d+n_^ zZ@=@wVtTsL7@VGh^eLJTu5`*Y#s+Bs97(fE2MP%db>b!vYZ|XC6$0VRo*3s$%xbm$ z7C9od)Ahu!j=UmWrChSV@0?fxg!EhJBREb-q{25y%uxac4j?K)J^?ia^}wi0`)jWc zWn|dzGn}^DN5PexMNcf7kF(R0$??78CnqN-4pbR`NR3J*&H4owECCY_^DjJdN?>3bvnIP zwX1UnBDeGP*`o)K9^QHK_yhwiXg^RMi)sDVN*Pk{~&iOy( zTqK}zeDcbordHcQ-Kim%r=0{*W24^L7K%>Vn{wOB$@y}2J{zCnzz@-4K0Z4wVyXs0R%7z2#ca)2 zP@kV2&(3D+^VxEW_dP&u6Q=>@wNet-xN%ogZv@L5tZOjpfG#;z5O%?s6SqD&o!+_g z=xjATJ$^iypN#Qhv}Ra=iF-XLJ^F{2FI_c1-y0z`*CmqK6$oM|H25;~$a>%rN-_Y4 z^e#d?GG+|Uxp*22jm=4`vH!utt9w0G^5e;>A9BojchuT-=grBC>SFeA$bNjEi0_>4d$i|5Q!0Ky*b_x3an zT0-Uk7{^n9yTg}BWAJ*rIogfKr>`u!w-(JqXUB@#L2b6uBTncQ3|-4i(Uu#jI_NfU zXwC4f_{&%%#AKG_O4hGBX*of>{&Wt_S}bKGOOaK;wRKSiAL1*sGi zh2rMM@cNTSAJEIAVzN(9+N+bKP#!NWdW0ftRw`(p%g#A>Z|-G+5M0XQ2R>{ZVlwHT z|H^1jTjx^0V-Vo4nBdBt%4ev&3r?PYG{&G1^tTzOE993M!0N_AgIYEg^ z-43!Nh_{5Ko(VjlBaBi^H#iMzoW4x9vc_RWGoxXFY_K-lA1zf^EcZ^Iu(x#M(!i4) z#4v#lWK~`GYRevu7tF$&c5#TCRXgVc9nQ&9sr7+;hHO5JGO84aEi{rH@+5HHZujYf zy-TyJi?g%&cfHGkL~@qu(_=l$XSrBQEl znH|``feo;olxR^o+ttq4CQ-T+PqPMPUNb)h<+7s}znRTYO{?Q2wY&GZ-gaUH*Wwl?M_Hfoq$igD$39 zp3G^3d)#u{#G+_2hNM6%3Le1$ag)?&)#1N2UWLX^`@|a%JI7n0L7K}f)R-uChmg9$ zwp&(5jsZV9Uk=t!btb1ho}fI4+EnjU-URbX>tIog8-lwcXzkpYwMbr@NG|zM_PGU# zThgg%Alf>CfcrBmZb|=>Pc;w!4}@qE(m--80nXICw!@AV=Y3WrK70 zGW;9_Q7Ixd9wCB4-?~(3vIlHTn1q%DR>UCzX>aHadtv#I)34~=U)5te>!SB=D89?La#A=iOpEmk;lYO z-xI;cOh*tSJhET|XmS=}IcEp~lQuR6^BDk#dfdQg| zr|djXkOFd(c!U68LO+Z(MiVAt)@2b}A z@c$e?=cHi?9&KKhdL`-!6CdY8^VW(l7F!bfo5vd`=o-UAjR(;@Xgj2%5-XaLSSMjZ zEz}rs17$VxwwVS~1_EWoF+ClV9ohe!d%|-5P3A6om!5;pQVUl@=f`vst(|R{af(5R z34`6K5iC|3oFMxWS{W%xUqbIP;9y5rt*2by zzhnVEh}cj&3}vT>jXhnASRmVSY=DjN^Ky`hD2KgFxYMn!8~WzsLFeT zqZ^mbCeY;b6&g=?Dt^!DEB!qw+T_y&2DOl^5R;YA4rK_d<#bn7mIKmUioJ_6la*wcr{X9+Wy5b`mA0eKg z;DB+eu^>o+F%hx?P;L(lQjsqeC#gZRKNwPS98Lh9%q{3MN`zPX$7{uzfd&g0T6Jp%2IH?qd4ebLoF!46Ig$}BOGsvT zQ&epKu;cVb(z+b)G5B^=9eq|M&xy~MPsURqPm&aeF}_(jTpuawoxSefvVW@A=lKMO zLnxW#n&cc*GMT1FwnCw7r~p*la%E)poWt;oSr=TkjwqH5F{rglR87lcCN*P$v&TiH zEmT>thG`eF{tz56XkPf14e^4xK(>0}V_Im|`>z-%sztH zUaj=nwUO=&R5OaT$%J@vI_Ii_N9AhshL`8Gc0@d+c&vB2KcH6F065pLF%W3sB;fd@ zzM$T&Q=A)KIKTNJeA75QXiY*>MJw!b(U#M$LVZ1>aCRj4_KcBqu+2CRF?1jik6$X- zLLhL6`7(!vPtq@jrxi&?e1X{%Wnd#O5sI{PHZy^d^g)e}RA`_EnUsVgW1v!I4uFyLtz#%7#Q!lEkV(w$G`JM)PbuCX1Xsdh_mUzj>ukIqmTd zlZtocr;_8Q-JrLuqET=`s6*yG#47b%TyQ3H(2?ck@)falD~q&5CtiXxSwjQnb$j!? zXrVV$N0}5(;;x>8A@(qGxK25>tSDz%>o07k?O<2-HX?uu_#)8^D2ap+Vv{)`IShH} z5K|Mbh^R8h>KYb5iT7qgv7)Om{q1^xiq#iL4$_Y~ZdINaoZY%3#9&hj42c0&&_x+% z=(GxgJkN;>$!N~d z4<LeFSpnp#>@}} zfd-|{n?@3|KxCm&IsV;pVFKkjNkD}oS%`WjMVYjqR_L=V4Xr&S9QYp+mm)+@ms+DT zTU|+gBwT|OW<1&VkPIe6Dh*SZDMwDLZtY~)|N1oA9&&_xmJ6qm?mlFS+4)*07}G%M zu=gS~`7&Y<9Iboog^DE)#*YvJa()Pc^D!!fc}i+8g^t{oBuZpIR6j9MwGEU4f6zzI z%$e3>rtcnX`|*&s2*peGw^cF=Qfww#R?;kU5?x9&H@>9IthZte%1cks$SjL!A0#je z6lWlg&{5=XaVk$=GOW4`hD&?V`E*=-B57uWr1z-)P&}ZV8Gfbd519^kSsyZ}OYicA zZdjpG3RA0b_gEtf6Ci|OhHAOXnnoHyKYeB{zifX{tW26%oZT!68h30g){ba{cxxT?8tk7+hfIam9U!!$o}H6N-0{_992rYi z9S|*XP!gTsNr*yX<7IGa6O=m045^M8B}*~0;{TG14|mvr@c`)XlcaEB@%*SJ_zxzg zf^EFGo_UG$HMn)ZQfVv2ZIyl;+frUCcoyGDL#sh@LxhtU&{+;aH%Z)CGPF*dSi>@4 z9ym=8icc-W0F#u1g8+ezP^i1V)Cn^N+^N9EWR6W>R+?WRQXVmETk2!dWnwJP6JRMK zA0#KyYqG~@Gv-$`Sku6NIbWUGG#YhGR-Ca_-D?ic5qYaiv_;0+A}|r;bn#b5hP{E= zwzf5L9auj$JS{2hMnI#aBJFT%PPWKcJ?f=?2TGIs4SOlBa#n{UMUD$fQ0XriU6I|( zy}0&eE}8?8H@0Z;`<-zX&LRWrRIJ*VuIC4X?tJ31WNHop9`g%~H5_hFmA)G|vmHQ% zK8;cZ$%x7b?E5HP3UaLG5ONFvJWGgCA{4aC%DIC!(I+9JbY=%{BtGsoL2%hn)JgSC z&gFTGT|DzW?W_oo&s{R zZoBoxjFXs_6^ombf@HSx=>7~I*o(LJzxK;NbE7qNMcY?(8{46)>bAvML}&mM5s2mq zlCA`?@Vx}Yjx@%(kfg8NlzF+5Mm8zmi>^vX93|Kn)2LkxTp7#NaaWFvjb1HR4lZXb z@O)t*nW}42lpdHMIPSzwjppfc|Li)ow`^($88n!!o6M3HG(%o(t+_bW;g}aHwI=vr zDX3BvM=?tyhaAKKO^*e>*Le<-nYkD#*kYi~Zdj!dsutwbw23%sIF)q+(+Q=CKZoVF zalmE(LDXjlt%7GnGDSfsTCVa+_Pe+M=q^61hQ;T$1!GzeynMTrIE z0@$WCAfB)Tt-B%j=$1eQ#U6ln!=h;Qy1fZm?G|vWL-h3F(bOPhQI}y^EjXkH4Co7E z((n|dFj`J|iVmq^F0%)iW57919hyzHqBj(<5oXOeG9v|^Ylh=Y1G9Ha73Y0WPH(9z zNAltEMWm*{sD{LpC}z*AhXYB3f{J56A7G4h zh45UERFI=7QlJRuJ!xLooHB_}xesT@l$+W$`(qMy4@4b`dp*JoVd0GGL~lS(jsY-? z{jxSh2TuCoxh;bG)#ESr4n8!;3!6BlBpPxTdwVO&;~`yEVtkh22i{^p=GD1FG49pOV2|CMXu@!~`A@-%dfe zrtVhX?)X(c&_lvA)_PZSunG_b9ZbEJWJ+0Jq`e5W+3)lgw0@`Et2szg$_%&$34{MD zfQ0&q_pPaPXe())YYFOF>j3_19wF}9Wwq*(Bqu7romh#*< z%mF0W-1@=N5itn&ST7mY!;K7CGt|@k7C%R1H?T(2x7_l!;OKC=^Qn{~_OV->jl4Bo zmAMN?fpCI}2*Oo_Rg1PbXwAjMy12>NGIl*sJc=GB?dCbR+Ln4M^IHs9juMr}%YtV8 z({Rt&LN2ezOY?T(iY1h&ww&JLT~D^_-hjhZLTs;Z zo|3!vQJEq_+zjAq%1ImFk=4Kv^tw$qQ#SO>0(u{ zodhW#XC58*E^T8&HCHQGTXF!K-I)+)jbyXbgFg*E&Z`R{5fn1s?F!{9t|Z9Lx=3f* znAuae+6Qp88#RQLt(P;6qe|>WYzsma(-!het0o(5BmwTsD#)C03Qvqz%t_em4LLXF zt8;M)b{gTADfV;jLaL~p(HhSCw3Aqn{=|AWcWeXgPpVL$JWMPS>N4SkYfA^tT^LTW zO&pbku;6W4yS*(oDGTYwgz7HJZk#gIIe-)71R@YC zicOVRK?T6fb5I|SP>Ut~L?Ey-qPwx1Oy>6I3!N3xL znfxTi1w#r;NIl}A718Clvi23eXSq)~!11!Cc;X3L#pok$^_9+V4on-ER< z0zblfeYL`bgY1GPmpm_rRRt=et)tHX4mT7>7?iQ|KrF3t*sD4X0@!308zBNm6@7_0 z+~uVc@T6^GZb9zlCxU+v(fa$`e$8O+asA zL=TOyC3wyRIA$4;*I^P@pRKEx?sk59bK}QwGJsc_8dND1lIr34r@~89>5y(s(q|84)N< zXynmLXw*EU=>$xx>na5=W&2vXe`yHFu6T(lU?Pk zR-4~|Lm8Yd=^Nf{^j8t72?-)_&~2eG2l+IMD&mORE0z-sx78fblp__nO}@ivy-w2M z>Ckx-gaMic$BHb}I?ouwW+C+1Jf=c)JXCt%yc8e^r^^KKacFU|HHs$QOxyltVX_l3 zWhwGf+(L#B-cg_+6CV469)qD?aYu1W^bdJ`>JgoDS+5QB#h|VQbp&2sfi$QAkl}<= zP8-LjDEqb>nn;`o!Y9tJ^TYWH(!7#&rNV~tz&01L&|cmKDrLFHwIpmqt4mJMg_e4K z3PH-wJtvABGGI&6R-IVw7 zH{B8MOsksM89AXgyS7#lp9>@rXo;U0rd?iW^fh8LA|H-?SI(fG)Ikg$C$%D6H(4o7H0@F>@gOz*U4}3Cjkhp;Q2AIE^-d^3GA2L z11m5d%Ki??mSu5ANC_`A%_ahxnq!rP!D^(%pp6Z=7r&{^7}X(r3-6@{K?_50HWc@s z+QyS!wsLq;{5oBO*nQ#f-qH3w1M>3v9EL-1AY}3+f#`xgv*ri(ptcUDV{0dNnZxn0 zCDd}}vZRz6ITIr}F?p3_ZA#kM`a5!mkj>pO4+_Ji63y0l%#g@2%9?bC>13S-lUqjO6?nqmG4oo}a2&1#4@YhA+9A9Bf>NU004jhNkln%`E>{O*-#cn zB8VuL_WUGjN?@pTI(tO)q;~`A5`v=2Bq>BPKC3lgRF>z2^)P5r`tT5-4yUK&kQ$Ix z9;tCsJ6yOGejgP+8NUYvSP^6u4s@NWP44A8?l2t-FP=P+0)r?CuUXK+S2o}793Ca& z>kwCM@^_s*&NRqHIaHL*s*lpufJjZrky(zmx>m4#=+S5s;N)_7>q@7&UplZZZcjLK zVIB?%AkTmeXw?=ru34+u1HVj&bvmx?Ql3q0CpiuHrqTWgF)7)Jdy`Z*E>bkkNGo^+ z0Oy_NfY+(o$W|=R63HlX1$M1|{D9*Uc0e-7?5VM+x7v22c(H7K;A<*8yR#G!7!_zP zxWP!(!R)5eWR%IDSS4!op+a^@$RG^FSznMBTW)KBZGAX8L>xhC*n+!GtS1yWQw(ws zNwXCdoyEn1B+TOrSRo@R;Usap9d>bssZW>+lEW{SpJ*oQ7=B=3rmPCQp2ybd4#-v) z8r$a(2EByoz=Uf--^Qr&pndlF^`(z(+aunMZV)Eg`e|4cLa2;uQ`!HVhC~XMjMLrZ z_p~UC+IYzFLBg{*&Ft*_l*~rga!%(FeK(xX*Z&&@y0c z6?$@%pX>}6q47x8pxg66gg*c;A|0q0U{S1Y4j%igB##C2wfeLN!OonKB+<(CA5I3h zoOhIa#ll|s-%)aOeR zAd_U`8o8>F`vp};;7XMl93x)}&`~UrJWYjSASj0=PPLF!jL&nvoKpeIj}-z$9M%n~ zhLDtwu-}SZEXi)p9&pHb;Rf#FU@#ii=zQ}FoR?$`jvHj{Sqn2Z4)}pqfgLab4Uz($ zq`MkAd3)rUolX{Alq6NOj4=ntO_>GB+-&gLj0Gx!{Gi~uck@#Z8)v`hrD26Y1cuEb zu`-6aw(H9RyrD}rk7hzw2%}+cQlmAe5nKIY>#>ZrpGE5 zPXBik_f%-#%*5CH+eQF~!ve}$OLZg#SpEAmPJ#a*_yo{-~G6_r8~8xnhtE-ImdSmveZ za4L~bT@KO?+-{%J!<6V$__nbw^fI84Np%tlwi*!SMXy$G!4}eaq}v?N#*ZI9I-buy z{Nk-|{L0_C)Oj#ttOPl?_AXP)OX-BM(&n8~E6+CF0{g0V*Ui%uePUEvyx6vtCnmMVT*Vh|4g}*Cy%Vmjo;(b)4a12VGozCYIvK4*CJGp# zv(ah?)u+|N4;tsL72|Q*yy>WN0Orq0os}_V`x4!3W6?ukZ;(=uskVpYgJC0EJFaMb zI?Bn@93k)&Ov;-BW2o#+yUCMAY|&)F1)Te@GNN9Gzc(x5q#!? zK@b=~sl()Q1#$%O?9rGT`d-!H=_1X8q*aGe62aOb%v!tlpeICKsOfSFTT=uF*Eu50 zT1kpJJ!qYLdKgA=zVHBPVGBmk>1{Ft>vX+BElFI32L`-H8a<&beRQ^I?LDitgs>So zSgBJpd4nYymP}%eqZ*8xrse`gSbxYWT0)P_ToB)maXZa*+uUv#K_4qH#fy#4i$ZRO5p|RowZ}amO$Vrb#_54OsuEOK7$>kv}KFN*)T_{9- zzR+0glvzoFrTV<^#X}4*Y|F*yKaHHAcHTC`P{uzR`G0u>%<4 zIYdOj!bBNkfDjw$@Tpu9VqhBI>W2i~hKwC-s(`OuAF7I~-`E5Qe;Qrzi&Vl4LEV zyGklg%;oKRigI#`&u45Icg;t_ozC-d$e`oiBq~^LCN+<9mG2lBLreP1Y=QI^>tl02 zVLVz2W^UM%P#(f%)JE2E6%1R!0XSMK&M@{ud~4F$kant47eXkrkVt@hcga3gU{O0Z7SfOP&pHgG^FLhKhf*kF^Q8ySZS{BU4xhOQ79zKM_*AHsB4L z%swvN72FjrC`CgBLXBFIhc8LTW0D`FJo3LYm@1O{7-SQ&io+XM0;9E)jwETHFS1y3 zdFZoeSWuzwXASf2I0e)ji^zIq78Tm~($I}q*uZa+Zno*Jf#61koAHJGhD1IxL8~w8 z+90u-zB!K5DR(|uKSwHIpjjAc7e$CG!E*w@TO%vWH6w5OuZV3kX)~jUDa3W0A#1i} zPwtb;a2o=9un5Eb^^I6vh)|h``0@ZpG6g7!vc-?>NN1$`mlkD3(~xCs*1+&1(k3s$ zL{MU-n4)k+3eFG^g&Wf`G?dG9rfp|)ui?2Ft60;Gf_*A2l5ay&IXj{->-dYA5%X z$h45Wkf|@#43Om_aahf-)ToR&qz(^R780me!fmMog=eKZGG~tOPPT*pNSyT;VPYmC zA;d$b%M!jYgO1iV^qbal23MFe$r+iRQsM&(wsLsi;o|@Y&$z1y^c3wGD15Q?sTbc#tdA6^3D`IxY z4OoO16QBP2zkAbGs4NVZ5DATgq4`wW>h{6)R-qT!>g*9&=|1BLl*z#MNEXwHnoRrL z99X!ar*L-blVs7H>n>2E^R@8?Th7jSQ9J~>YYtPC9T14DQX@)UVpfCEYZML@d0>*3IM&=ErB;*B^cX*U_b+}e!Rjq9G|EJt!ZhnpJx zwMaJ;mCfh>Gw;Egg4b*dhMouxkGe8?ae)6IVVMA5q?$zM^d@=zT1%OTnS!J}Aw*QP zBxGE&1UwG4bR#+^==1kRv=kXJJS7#ABMu^Bg^@GQ{V&Nn);XmUmyU8_y|B6{yA8*J zI`WA9m7KT^FH^5XE#t}P;8?XlP5Pu16W*rajhn<|g+o_xULbp(s4k}Eel9a_g7>pB zH6>7{VTD$Xc^id(G7UIlf$`3r>`~2Ot_`6^XQqF|PLL1wT=KCDg61?bX@$i_p$DTi z(rCI6gb0k0IG;$R#2FFwAkPjU4Blwa@xT+Yb4SXGq##A>Ju01%@Cdc6unq%DcdDA& zka!pQhyq7@CUIA3%2>UVb?_$;bP$+l+C1eI>9}7cPJxE2EAbqOXB2SeV&rxiFIWzE zB6hkJ8L2B5K70!cTsAz+E%8+3P9Xeg8wDEFT2qKwZyQ1rVIi*rfd|YLg-+5TY0r6tnye0*iZDbAv7fwH_KwO9$T%AnI;qCMA(`VpiccFJ!?x&SQCmQBn&MJbT z(kIjd2!=7Iq)`YFd%j|#r@`9QsE3(SAReY^qP8N`X?CwPao`EFmx<<1gf(+bCz-Ud z1u-)HL9ObPVe-_F!^|nGjO=PSELbyeDo`Wu&ZJib$BM~aY6eKl$U5>`OS4AFHlzV^ z)EMvaML>+QDqZ2`UbY21IRqbktt-#_g7%WLl2XHkqJYs**Yt3Y6jF0FM$rSVXRV^j|5iCh{-9dO_UF-iWNie0Otgj_aw4J)J4nGKfj)(Pj`T-@}G{YwwQ0R|Kk zWHyc_b!-uOGH-zIsfEG1!sY;h6DF~?6HPaZ!xec@L33;*ChywP|B zl*pv=h$*bC1-CQARPaRlD^Ff(w$2?1BZeB;(K#S|u2wRU+!+iroG0N?db5Av{&mPA zEo^N7tXeZ@H)D?+c~4u4sFhBiL`hztT{fGE)>ERo=CV|N7Og-$-V5z=LWTdZLpT}% zx9F;L!8oXVIpv`-a43QS^VLMGYHJ9ExY#=|$$Nud2)Qc^gJmtrtp%l*jsiVN3>t~f&pEzT2LBu$^>v)%oGHl`Ss{W~9&S18B7!VqF3xHCi$|wVr(6v75qC)3fwgLp=CDCJU+vz0 zWqq#KoM;cLMB4LWan4KXbs3!NLSb<-OT?*gjqRv5KKbB-#_0J~4L3-tm8AJD>e3Qpg^jff zgxJb@h9tfe{skP$kP3AX#PQ5qH5JR@ln$ECU>1G$N@Ar`kQ-afA_R_gEQ-&CRG4C} zXt9;e#ww%>%BBKm2{SQ*a9x5r2G=Deix?6o6Mc$;w{vQG80}V=2pT`}O?M`+-R|$r z;wZ?Id2Yd+I2uhsU|J|p<^`z_;*;Gp2J7OY;#ru6y_`0~En!mWgvlRIN8=r8WuYA( z4#k`vtWM#GR?dG!K}3+*;^v_K&!U^PYK$&A*-xPy@-zyaJOEa5=FEm*UIe}tlU??!AN0cjkja5!yH)(}2{!SfhjcDUC zuvuZO8!Q8zC)u`5rWARFDf0j_N}7Ev-j>-0P9XkIu_JpWEyxq>P#T?4pxRZ)e{+Oi z90_tXkfosH*XWGok`}+c53a#>4_{YuELU#2s7b_4)FL^ys`Ctsi=e3`J6Jr%#|xSw zG27>o{MANe#(ZUcexk?;(77#uJNoCw6 zz$7VHtWBW`IC&cqatdrqH3yc6Xgd+s4U)vSfNL^R=@#Ip1Fl2nv9~`=d$C5YFHR}V znb7a5;4PllFp$tko>%&MFKJ*iFbZ15@T(s(!J(K1bU4F__Tbv$%n9R;iyYD zjPtTBPK(+AlZlFmp72LDrIVAy8;s&CFTE-=}DRq&c$fdeysDbZ_W0mAa?amW?PxMP+OaA}XfoW)s-=1jkEWhqkoN?WTo_ zN`Z%I9*bKSPnSSi;8hbg-?D*}M5p zt>oFUzDa(Ohk)9n{=fgrPw`Q*#?bY|NgIzjU2YnEmWQwV4TAbr4$w|HQoi*VW>qLkGM9rL&)6`WiDn;hZGLsEP`W& zY*KL@sGl?%vLOZGj=+v5FcJwaMttACha$ZWlvA!jBV~gpau2Dv>=Eg(^!r4xX<6V4 z$7@g>9#h~|f6%3~yW7kN7f`v7DVfKwmVNQD_GE(7G(j2=EF~sHfd%Q#^k`5&dHAG# z`6HXg$WdJQ8%gUSYM6x3X0+xYQHvB)fFYDyOGYY9)*@qKW4*3OT6+VMcCCy6ot%wo z0L#Hv&}x3m>z7c>=g{JD`tf9vbX)LGkhAneMa%4(g|Tl@>z~{E1m{qjX80#sh1_5v zONy33r$zU~$`_Y5^N>@+k|^^!;PhBAS#_D#scKhgZ!$-aq823iK$ye6<_`;p$taAu zv$Euc19ZYb0x%bAb+UW(2}#_{0NlT_+e!^844^ZZlWvTdV#VxR2mKKoJ@A-mYI)CL zU_`eMDC40}vwi;Jp(cNx%{fJ6tAe+g!2mW01{fF8;3Mhem^2X-x-$TIr#5TKaV4TF z7M)}yCc*XSl0vQ>tzSw%HEEE+J%z9Kb2tovta2a%K^4-B1-Gr1943M+ zCTBj7(CX!cA_T&UuqOUb{sE++)}2~_*sEQ*Z_s*Py#fzh_L8GBSho7YOD`f7LL&zw6X>v8VlFbBc~|0 z#mth>S)U39R{G&k??g*bVA{x9;D{vtHmL_N{7Wa;SqD*sW9f*OfmY!%Z)-uu@D2 zqFu7{>ta>Jga(CY1%QF*l{jxy;gf>=x%OQAjLDr$Sd!ckq)e(UD~eEgiY1u)1tcuj zNyISwQPSaNbf-l09{@}&+HM*6Rv6P4yGCweNL!qeu0#7nyb;uAlPN=j)kB$i+uPN| zS&+(TVPv*{74CD1w5|=7y49Yp84Iisn(LGC^n;TX^I)oXe&_91e*SU?GOiYTK0DZM zELWNkBqg>mgy@7T(v{O9#IjRmCU1>h5Hb^4fl3f_b1_nVZh6J#m6?>`g9)Wfq6-jg zEI%;1(uhobitLqG!PxtQG(iWlh*ot!$=9>R$>wxE#pWiQ z6P!H(Qxf51e6t=gG9~n26^+T4bWb$kv=Fjw0k&z#(ms)fx)lV3d^2m!@`@-7wVB`+UMdP@R+9~0U25u(Rn5*gMV;ks zHSY`UUkihX@-n^8fiQTk!|*jdKDfo z!4oEbW__!P&`x)U3Qi|Su9?fyX%TZ%{XDHscnlyA&XiIahf|J*5n6JBX$a>MQnz8iE}_9M$lF&SvaG`he1_9PI15;w{$aoqf6b>% zmtxSz=V}Yx9n)Ps0^F|<3#jm!6lhr_6b)O2|2{kHED}(o1*}qKD66^Dr-FYY<&0S(3s9uT2Ntr3hBx|pg&2)lfJ@UI zqQRNrCJ?Aaq!c2lweB>IHv$cl%*)B`$0in7j(ZRW2a&=AP|2s-{37Gj6xXojBNi0O zBp`c2B zK7yqklSZ3@|1`El@`DSRgqcG{lPq!(OCgN)a$qD<#-St=#Lah^?-ZENe=jAo=O`VW z&^eW4W_J`$7Yzt+Cr*Cf1AnBSJQN}U^GDc%61SC>5&P$q%&nvD9D=h z&Zq6Ekd~hU97*T!WCAO-A>-#RGQ*KJgb2C(9`0J&mL--?iCdUXNhYFo%D%|Al;*qg zw4falD4fsJX)_cArxR0^FnAQmoiYx~jU$S`?i;IHaWm7_g zQcP54LWdScF(YCxaoDA0GukjNWGLHO15B?|YC+t*GVd=tj9iwqJnrpgKQmnHwWYPvC2eUE3p*H@oUsJ9n}*v#|gJt2V}Y=ZGdE!VL`=s zssL&Uv$m)rC`tB~hCSC~Wksc82|-3k>c)4bmE$(Fw(&M|BL&7*O_C_W|K}Ct-Owwz zD6}|(02hT#ocY74tL{vTv9y^v_*i(HcVVWJ+`E#aZ&0rczES9h8O{noP72*@1ZMb8#E67;ukm41;DP~IFO9FvUREI5V zx2T*h_(^H1almjYh>9s1jTy7BCRhX`Z(Ij&L;I}(^VNByGVmuq|+xlpWaTcjAkq%H=p4m8f ztZ$f3X${G`ZG|dE@gZ;G?~Epkhyo{as4oYhR^V=`lSIZIpxDCXRZAqvW*}bYWPEeZ z5^WqUwA$UlYNmaWqq0azxiEAG7)z*VvmeT2wM_*T-x3Z7fzg_?F~GrxD9)wuTqw%) z#b(Ytd~@`E^jx|J>s^~%4{OuyYPww>vlpzr8r&dY32rO&aU2RFN6k!%${s}~41yDm z<8}35)xJtTY@1vlSer_=4b2f1fMPS+eCdSaZ(Hp0w{rVTS5zD7x*^1GEQ@MG-HV#q zD4x>8O3Rwx3Ctst#8##~ED1ME6$lRu=cU9ZPe*>2ukH7TOK zDO3Z4ZnPENyz0H^!7LPw4*{2j3XI*>=;6^44Gn6Xfng@`4RXq2Of8GBI!7q(LF3T) z3q&KJyR1y}9^p??NLsKDSx{au zeb$VP7;5n+k4iyu!9OHeNQz=@F+fTxy%F5DSGw}~N5+iWJ!1!fhCC@%xUd0lDx|ll z74!~ZoHIQv`BL$>FP$JCOv!Z$RFH#BNQ$UL?pu`Jngh$bv_nS-NFU0FY6X(PwCqv- zo$nGm$@sQ(C_EmCKK}{=(e*zc$kNbD91tkBct|-(=5q+4w$Kn9JutYD&%vIXy;M66 z=AEjtWnSyZ##*tlSehw(Y&wj#&C0t#LP!rto`HW)vqKOl9g1`(llqt;adtX4+k?!9 z8K-7`Ag@wHuB285HKLKpmNk8_Qey|zD$7G#dM(kN+??hKF9bojYlc{<*f0iBflO?O zc=A#-rNd=aEwF*fo5&ge?R7>rL!jMgG#8yCQ<5}65Nh!oetcpGf)@H_x)~uh>kaeLN8`As@bvoc;Hj_h6 zD2Nz2-cwItE6VOhrmR>TO0uaeyPO`8NAPJJ5TVZo+Dv=birN~$;3tZ&%|a48UA5Wl zZYz^Z_3nb!X0DpbxF0zRi`}aR>uE2_Nw6bfhalDp=9Hyx$gkp4Zp_;-X^UMXZc3Ws zrsGjItJ4`rkO%^!{@!}~(PTIK_{*1H`T4(nX?r_oF`0(}Oa*#ip7g%Nl%4EG@}r{C z{~g=njIR*ZPIeGxYLPH`;2Lp}ZiyoRoU_Jr3d^-jCtZh2Lod8B<_e6GxIC6-~Fy3*IHa%hB&p5l~{# zLyb%7_!F}7;nFDC=Z!mH2J#SJtzh2oPB9A7i4C4*nOP<)(Po3Nlq3)psag>66{?HE zFtnQhuntHPJfQqZ${d}$II%_3 zbel1hsrPmM4hOZG*b9rkLn5vszI~ zz^kTLICOV15>B2MM=LD|(h(SfT7y&i)4#!Ug6Bme zkKQwmqwHi9QdSOfGz1BGQuOi})W?xeEQHVmw+Y<^YCr~qoVQwl|7>Y`%%q=P*Z^EV zSdq4MPGaKNGXk*CHp}xCdFE`ot{<$smknR?$SjlLB)LtU^XqoF05i*=UrP^-2}Czi z99!sc#Glf-)Cw^_FHYk@7=cm>7J?kVMnxq=EU_t?c6Yss zGdrI6K(?vM`73L1k=Xb++oZD-QN;7Y8=Q1}UU-y-ykPz$F5v`#`7_eQePk~=8HUah zp3|P++AvCkAf5qtA8C(-)P zF$mEI?Qy7PXF z6?*kr8|9^Yv!=iFH~{W>agNBnFwxE%w`@)7KpU&4a}%OAvL774+Vq%=NOr`&M>-a< zz$iRSl;lq)mqPtT&lP22Zp{mmsixxy@g-xuU0VE%HWvH<&$j%ew6=gBJSmOxSZ3P2}xB?j+G+a$44K>Gw$= z*P+B^TvA2{2All|c%=7gNg!Ao3#DL(c0%$+dOv!3RzYSbf%d#q{#LTQbC+x<3Elca zMT81CXJdl)gdd;mP*EOPgML5m%w!NH3P@t3ceda-F^>B9{I}>tsbT7NOU14P7pjZ6 z)+%6*PYNrl*lPg<7T&QRZzW(BfeY|yG$ONZ!8$sWt3JFe^&nK(a00sEgmOeN(lNr*cG-tBR79BT#02qrj%=Wc6 zJ{USP@xi_G*=GIxi%-4wTYqo;_HXP7wWmcdZ4cPP3y`}IoRtbW>Nz)0=zPLL`~aH) z?xtA_E765*%RQtqspp=gUXjIo2J6ZuHdoHO3B{VFm>SQtOM}C>VHi)6ZtL%2gmQQT zy=L01TpMdR>Ayt)TP2_@q~020e_6Crmy9P?zfd!{4ox%?OV!$W5Zc5A10w6#QvZDG9-^R1wbHauaN4B6~$`()qEVWF)haS>!cI{ynE3N@U7XB$hCSfaz=iu)ivWnofE;v zYtz<5El=E|+YYFss?0q{K}u`n)X<*_7;=>(+brpDw}Y!Fxd+J^Z6E{Xii!dESn4Ax zn968ze*EZk-nrZ!US?@I)ko)XQxuC@mp|{ocik9eYcc~@rhx8E78#3pGkit>5Gnqe9mmbD{$S3HGA?{N$~RRA{O7B zR6NFO9!)S9Bemd92FAtd1V4g;Lr4NJOsO-ni!T@&{X8J5^a~9a({A};6_mE*;o{0{JafiG8H~2%?r~b< z^HyrXsIJmzj_NISRpHYZ`}ySYcsd&FmsG=3++F1kH*-sgnci7o8#zgk*OYGQ6rVkr z_NDWLbAV+Qlr)ruRCKNCLh*^|ge*3LV4+mQ3@bFC3u=YBqSB#M~ zUL(!FU^S&!&q-qtqyLgeM}ioJP4W`@IPoclu4hfGm65e?kO;Z0g|@<-bIAkBc-QJn0Kp-TYEtF5#fkxpO{@+bjj9 zVy>cZ ziT{NC#IRud4rrJi6jbAwZTr@^y`j^I2GE~PI6)7d(%eP40L?(Q(!u2w+ zr4QUrrRocczdD2}W|9$SjG4fq<`WUA`Hyi!uq8QHa6)d!M`3Tp2+Lvk)mVTig@J2KCR=aPZLE-*%F5OdvGkBR(L@097Gg!g};Y=9u9l1zA zhT(K*T4Mo#shiUzc);AX-d(5_QB-4KgN!T6lE3-y-C~c>Cgn8;XC|97)5C~?^pet?4}hT@jiAPz1_yIG zt@D^DfLgu+Y{;d=8LZi6Xoi?}H~?05oB0$EE=`B=LS&uIc>%Twm-9)N6GwT_rq%5O zRRJ7y`CUj%csWpB@p`d=({HcKR&HAxu*E z7DDzWD;`yzI`p1Gh_Okn31nVYNDl>r@w_bORSr~*_AewVF@;JsZ^YwxD8mPAZl)8; z^@!?OUGn81l~B=5cS1C2b5dW3dVK2IW{|68fyv!=#A8bWzPS~bYP&}}?)d!rjjlS? zb0M7SU2aKTj3^`1Bh+fxR_ZnN;pz-@*QI+R50n8Z;l99PW`LqpT)NDmq~t8Gb$jiz zvoi=%>E7DLjOTK(v?(AOA6lAUB4L7bF_#WrAR5PWFyrysf>i4DVyY1t6B%Qw zc>=#0d;7wsrU~&@O~Ic^`beOFC7A~zYu-I4y{t48(zA}KUBLu$!u zx?cpgVY5-krqH&uaSfE15HL~`w6v!Jl|`Q)4v*K&EAV~kC+Yev&Fu>;#4qymMJuC) z6s%>Wm(MVS{Va~$_(f_Gp+NMWX^ zqK&jgl9W5BAV8r*#o94&aJYI_-AVf*^%PFF!7b4^vdz3Nvte;8LX(~$Zgi5}3u~*) zEVA7r?q=vKs!wYYcY1ETfe^BK_uk2aN0V;9d9{1?xqtF^ULMVe@eH1KFy{C8=|xd~ z5s(BoNPNRmHyoN#S!)qjRfH6ohI6>Y)M9$3NjvQ%r+M;+VIjzNis^==0^y9D%#3=% z#>F-65|JHdO2ToN`jAH>MGq2%t$9v33Nzn`|IN;o&`NtDa1;OlE_YVefYZ*QB~w;z zhQ3=rVZo|cLu#%_5`&>7V$uZ*m#A)|47!T2AG*k{rv}W%XmT0fMU~4#*P#Tg-N7Sn zd0BA2DJx#y>U3>M(6s}&a+V6+hdrlphEt;tE7Be?irH8c z)%}b{i6OoHIjsixn@$oCqs9so;K%V#$hDw8Q7yR6f#|_?SgCFBBYVem9Cq5ZL1)G{ zXt_G4U%^0Ao|;BVTh=;%K?=rI>wL(N5wck4*)+S@MUse!FwD++KtJZlWvYPnmhL++ z4CW`~hk%BFm7L>vm8||^PYnj3>-pT|-`fCZmS_5lEzu@PkIxX}+piDZ-c7EVrkqHVtGZ3hdNg+n?>k_V6j>+cu6XD`~ zdoqUb0(IiLi1jw*QkTej(Z^g(M`*&NT($zEOvX`=gjh&MH?1a;I?baCkie^!<&z3N zS7<4qS+?MRAv`L>CPwJ}6B22Xe*G<^_XgQ2;_wnB#k1`Jxt60n7L5?LF5?seq{pgN zLREyX5)qsa5MfsU1L@Kw^+`b-EtMqPR5?alpBR~9+zx%VUQtkbUSE-{b0v1K{49@p z2?~IbX>OH_(@f4Mc|l6Z&=MWRE<(R4nkT*Py-DWE?}k?8CM}sFsD8GEaR(Fw)py)@ zJt|BbXq-2+tqaSin8##fgx?bCC9{XtjD^u1E?!5m@Q(+9I$MX6$cv&93LB#|G{ak> zLBx?`2gkFwFoBY-cW0IKC9~;t1#x{C)W8j{0Uxso*ggmTped+H6Xk<-OSa;(@T_3KChqLQ%aIi`*p1 zopPw+f|%{&Q}VC)xH7CnUSOmUHon3d&dD6!n`{sBUu$+DhjRKRKNf#49hmU*gn!bs zltLaGCsS2hb$Q|ZM1hpb?WDR8jxC8Df0%5^YfC_4d*;0;2y*|1r+%S0Gi6}}l?Izu z)8*PklH%ARB!dkAEnF>x22sV|MRD2FO-ZdOD<;i9>Y;sdzKRU(K zD~}(Y-nn-U@NjEy_UWJd53jZ#JB!DziI@iwR}0phM>;boGo<&#`&I*Ok{PNW`%IN~ zI;@;ZaTU(K)sSm(;t;9$&YAs5_{q8aqhbXHuDMK zb+R$XI9S|roYgvX66yJ9y(tBW(SEoS>q{q;KnRUc&8#7QxpqIePjYC9KdO}Mq|})V z16bp!!RNAYEV+{gQJ|*;L#RbJQ-YO6m{nf_z~A_*x1!VWf7-@Udr~~|Vbx3{FLd>) z>~bd2Y^H8gpUYNj*s6D_rXd}!R_CkrgnE?)!>1EqyFJDbT4S0~(RgCkCChfrTtUXT zz_uB2O{7UWPGU#4tnff-Vyr7obsXK5?ne+!864GYlK#N&D9vP?$ zddA|OksAdOR1g8ph!PRfg}L3D&KCu*Wgfr;4;5s~*SUe&427Ap7%!nC#!TtT9V{=0mf2Q<_xYw3G%FumcXD9hFkU(GI?anVLfLJ^7ueSiWno1^ppjHUrTjOATq3<81{O-2 zJ!BCwNsh(OG+@5GnS`qpm`-Rbr5~|B3he^$8V~p}%BB?G{%}}mc-opbxI?(<0EBF+ zVy%_RtPG{MZIQyo?+RDd%hoF&J0hnN+Ri9IOF_;PvN1|2u)lzZD>3GcC5=nTrTup( zO)>U0Co5-_MLB^3vXz;WK6Se01WEFHbBI}lryW*05q@CKdry=oem(C)BJttdRNbk3!ZRF7H|oe<54Te3M{c`9gG|*P9MOoMM%YD9u+TL;4@>}5&Wq~Xok?j} zfQ?LR2@>EcHQROwkid~dQ5OxNZ03-??q6HDm5fesh(1oJP z=IiM2B&5?OP7z`{$w4EFIqXAE{@hW4s6>3tAU&!t1bx)QIvpd+Ux-kK&SERmoZB2l z@QhrL4>X4Zx^{|=4Q-|M=_=}Pt^zKUFWcC9Ta@WK7Z>mMo2wPhzD&4u;zKJI*vQeD z(RB#d5u+rClxz&&@PKMAG8U5^ZA);2LwTW**4xnG;=vuUR+p}ttsOupq#!ZWcvv_* zTmVKuF7!~O@3PT6+E`)I?`RX7|l2@Aw1 zAK3k``Bv7WEP^!g6iG-9lE-BW!Nmw95T8lm6WfbCYV~X!Shz^3q$4$LbeNB<#hs@o z82oY~?GI}e%N`UM3~19qg!9u!Yp9I&!q?7e2F8PnFr(Tj3t|0o1Td=B?=r;~9B>FI zpEFb6z@f?c&$7{C9vPDm22rm}`?20mc}YF#j1|c!EFCq((9ZBj#<`;y^Jz}uMq?=$ z)k!N!gB%QyMsoID{=aJ~7Dle z2;0)#=gJ4Hch(kJ4yYr_bDL_&+MVCVxLWop>tCmHdqDQ$#J{u>pcjVeGYazVi2PJu z1*v><4=y7?2k(Duq)Ik0iA3myTc zNoXO~9J&1ClQ7*B!`oNRVItDKsRXBhFbNOkG83r>^- zD7?8eL@bA#)*`hB;SZLQu;j=--MN-Kfkx0q@M~$At8JD9>bYu)lZG$*0KX7>&9gD- zUAP^hVxlaXF<}#h4Ro>bATK5GGfB$sgMqjZW=jje)GaiikOXXOapVwTquZC_mo9^Q zBYRYEh-%(0b#?-{z14g;wh0P3#T^-rS-BI0bMTw@q}j}qmu^;I^pa8ew->|$(;Yhz zL72?X5-D=nTT{w>V!{`DJ6=|H7b2rAJm{iBE`EK$!GVZEWERzs+#NEFvN{vK`LtYY z$!6HDLNy+kMVoEjJfr6=uUXFp<0HUVP+DjuMY8o6}+X^^S{M8xDwdX~`uf+DL` zA5PbuOR5kU_$%CiU~0s+Rto@Erwhpzn1zenHs`}@BFKK^R~VpZ3dn`>O`JwavqZZ& zDTx1Fr^8_L=+Ywrm<|wZ@|rMzsMdQpLl%y_&YNx`d5qvmkQXB;HbX}aB`VxhZ$non z#_>{yETgfNLDH+8IgmV`vRs~1P4kogKc@cd$I>;+&%~=p=9y~j>gpybg0Kz9 zHb9z!0bl9wFbtZL>^s9GTf>zubfF6oFnHqu5MW!REpQSbN+vB?wmFETnoTyz9;>UW zt4>X)PMwn{Ga~j7qo3zlJIhQKPiIE#;rrh2eb?|?zx7-3zJ>W8j!qGOh?=9r=SEQs zFMyXwh3~O)CQP$jp3?qD;YiQucbIPQtZqp^L13KpU{(v>;B*}m7I^|;@LGsn73n<~ zfBf(KuYPHYYm!CyEKmeO6H#%ZUC0yc=Y^SDBZhXAOX|{Y;K2P-KCgdrFkl-D2xH(8 zya)KW_hkQE0!D$b53CEv!D2q0AhLX^TpA7Q%tE? z_U;}Lu;UL;R##NA2?+66qRQq-in(%1SaU9^`94Hpl+z84cg~dH!&P6`Ths8Srnhqe zgb>*SETH_^%)yMdak%9fd4M84`C3i90k!3==y>~Lfh}D;C!Xod94b&`VVWmUt8L5} zqlipT!Be`)otg@EA_qyLiIPMd)&iQ9(zaT&051R(A*x*O)|L^4Ds&!Y)YUbt^pd_9 zj#Orn_o|PHjfA~6FDd61T?k1RK0#i~26&#gDG1lF+pWv`w3s?kW18`Qf;ZekVNGp5 z4PD|_kWp08$O{ho1tVv?PLOhGsK4=oD>Q&kE+V~7WeNuj%mz68baizJhl%HCIOzB| znP=D6Yvm$^E3JS;XqY)!x`gUYNw~yp7;1|*$Xv#|J3bJ;IWvHZk{OC;N1M6tqdc%F z@R@n*{7lvP%y&)5aHQ6aK~Rg!Y)lCpW4qphtYvlc22No-=$EXXGM(!3b)4yuY=PN} z&d`-fNKkzy=|oO8Fuv3>ThvhLTcIX{dme;vh4C44dC!TTw)hy^v#VT`v+^N%DRW#N zst{LTClD?(qE#ra&?ZZO3kbi|Q;^Ub-uV^{1Hp>a;NtJ|;(%C394KNLF%Cz&HwTx$ zQ?^y1USsD#l8`@P$wrllkvL3-Nhvn2Is=3pjD|ig2|Oc|(U91_!l-ByvQI(H;#w>< zndYje87}Z?6jv#poqq1) zHWGa&+{zDq91R{6Y%}bzs%6q89<4g!OrhCA>#5cjygEAI#E(u2lgMI|YKk5~bY2#L zo%B;MF%N!dEC-Ci49W+mh+*OsUhXrkpDsYoN-l#)FPF;;P%)C);v~a9c>P|LG8_>h zPmeacTZKK9u2De2;-J-eT=d}r<|yP90DW?~J2@{Lc=AK%dB-HTDGc*U zupZP7`X{;2hT4z9I`$%^*n~VI;nxGM8wbylGR8`$(!er&KpK&jeNWGqFI+fXj?X1C z%LWqykisp|o;ux%@H|A=KXt3LHaa*TIHkHe2{0Qc$A95Ze>2u28vq>M{EWSLPk)xp zc`PJ4hir%y+v0Awf%oVvMxMCZBp?CKQI{HZc5!fcfwdLtX0API%ZFsNtm+vG2-ul3 zb`sjV1jy2;Ii&be7Myze>1O@e(*bkDxR0|fq#87ud|FhzZtOqM>~dR}OK!~O8s#}5 z5jo=9{Fwc&?xrOTX!Rf!w!&}EIS=A z>~i%18<@W@7m$svsmz@$9Ef8r^h!3?|tKO z@fFP1sU_9>2L5T+LuZZm71nVU=WP zwwfBPwhR@Oz8f%9dydp&>>2@|Vw+4RQiDgEr7ce4SyUOf4JSVvD&?qhc%2v8-+_hp zQa3Xyuiu_AGfR4$V<|BTl?wwlbVU2q8E|6o5`Y;qFmSswn3aBP{8H3D))G+oq&Kr~1ltM&5=iHYkN7O%&1;gVA5YdEz!vQc#b^ z=!frWgcix83(H@4YO%zG7q-M_MFu_{1$bO%|M~R5fHQ8>-aTufUQ*PDaxOc*nY@VM zH7G)2-}K-3QxLvVlyu+B7$b;cETxG^^QQT`ptDrK7YRqXu{kKF^vU{$Wk!)1@yOaMNkOr&6VuP!`_MB;up`$nzWFuO^vm zl?M2gt=Kr>ifBG^wjx_zAD|AQfb0|72Z5gLBJdFtG!Ro6tUy@q;& z>~*rP>m+gsN$jr+(>yCZNcus^ky-^wQgk!%P zT!Hc`{#mpKpQ}!kA7j6fOzcF@VH=}*soj&$>>LbvU|1cveOjk9KPe=^R&Z>h6dS5i z*dKS1A)eoEVM@uGy|DD*@&EQud;?GmkEex^LQD1P>5|41mg(t;)_lTJAsA*9tFVLx z#n#cNMT`Zr=i>0}g5oj1z27lXicTm<&~(&G91)3fa5RDE%+R7fN1ABY-x-0BhltO| zP;%sGDp^7mV#?ea{%kr_TXh%|evRRRY zjPjxFT;}ViH(OvlN+g(67q@~1j0|2(Y3AI5qB37}SU8!M)4{V_oB%>Vy}vLP16?0m z#fZlwX0Y1@;&j8n{fsN1-Yd83acu$aluc|!mo|2{GQ95P%PlQ$XG=g9$|T@W%!X6D z0aO{A^020asIkrx8OTC=(k>J3tzRs*pM3B0$CGay9KT##V2{NqVZEqvS);E+IWi0W zj|jGAv{pdOK`fQ1D`HxumAni{K!js@$4&@3iNMT?SQUeMj=N+9(fk8Y7BW31AFbSKF`_ElyE{M5WVRG|uVBALA?uk08Ww$jiT_yNaCU z-P5UZY^UiPwIpLo-G!Zxy4%Pf73}m$BeB!;G@<4c`KHP#9y+oo4v4kunG+r7tkgzy{fEv}V@ySk65E2fHs*r3K2G`E=jh`qDe zB;1WHpg`3?H(SpVU}S^wV7=-JEj~aws=9X>LW(I%dbKW0F8%DtGiymIr+`y08Z9H% zg3GMDpz?JTHz|^n2Jp!?q+qClj2j7VsLEH{2xh=KCvmD6(UO$#>jEnCiIe&~-xay4 zX3DW8Dt&;{EuCd+5nFtSZE0x&Dw0R15|sx(7K?1(G6ybWOTVO-r!p)X^oCPB|1)NlLlbCJi-}A{TheUQpY@*>3cko% zxh>MMA#H559mFO_i%KGnwkZjf+1y^lA`T>~;osA)tP4zmA!-vgVTsBM|J`pA^W0N> zrj}mKS2Md;f2^N^e;aHCL>P3E6=P>azbK5Ne7OGZ@BI*`{*{leKK}K;{>eZ6t6#mi zC69(tL+m7OL&cz~ro~rV7=$++swp01#hgp7azD0~&ER>7JfO~D&H9=g(2S-hML{%N zu%(St)rfm657x)m^(o1b8Q9UcA))>N4-TH>C72X3!mu`brzmLo^pv*}$;dXTAjdgbgj0%vVgZIPEov%SHm~~{OCiv% zVAYT+07Tp|t^wdtCsTVA$Inh8m1I{m>?pbf9&LLz*H&*J{{l>M4-soKH4KvtY(-ST zGeJ`tbgt^%5dhB#9petya9-?WA>fKL;}407^W!UaCqe?t z_xbGV;yw7+kGnVQbr#v%q|A2gWQMIc^rhy4Yk9uWVVz&FWZSh<+@pHg!eQz4aVuc~ zy#Pu1i0iJf^bY)E8iu;uicmkETpk=;W`R9;i_4R{+t-xxn3RJ!J~cDZL#a~ivkUj$JVC^GB|%U zscfx;0GFWAV@j0mg&8T@>M8Yf9Ytw|-mvSSh#6-e1*}La>d`qFs@qH2HR&3Ki!xFI z405zOf};Nh0mG5MpDM!1*`Ci&M1WXb-nT$SbAJpS zfE&B|V7%dqMxHGQFoUmuEqZ>wU?wM|T{4vmxlkAiycAZUGM1y}>wMwct;g;E>kiSK z>xN^YNhF#98qq6iQ^M^ec?ZV(&~yujB2nqne>-0EnK=xXqm5Zpp)sZQq*6%rYw5Sc zO?jty?&A(Wwyf3{ZWisIuU~Ujc*d`xH1Xym`yTz zaUhah&K*+$U{9{U{d=FHYVzf;Ek60JzxBgk{VQL)yp{MzlhPAj3Hz3|Km1HX6;B-N zF7%`np&1Sm*?2><#2CyCbeF>8bPRj3ha|4K2q?6aYuJr=6{wXGuc=zW+fyEe^S}r9 zur*#L+sTjtLs)@L&Or?eOK+HC|7&!MUGx{sjAN>U9U-)0f~N3?ZYL1pD^}^@ooX{;w&F5BD@W^fLjImkQ!!g&w=9BINsPso|jN5>x*Z^u`)9~|Ak*}qz~Kn z?qPxWK2mq!CcijOnE;MAb|?C>k>=t6YJq?vDv4r47}sMX3O zgm0TOJX3$}PkfWLT%hoA|FlHLO4ME9e`S)J8vo!_cCZkY&^B0})8!dMD{H*eW>dOk zrl4uQ>t*zPcuYzH58QEtpw8?{@K|)20I3x3B7WkkcQ`LfunSu~s1cy2?z5(!6d1<% z5?LrSl_k^4A0KX@qnpmE)sML94FTRmKcsok{urC;_3yrC~m<(N|0y4 zFxCJGW)$ackDu48-OcBpzkd4Q)%NKH;mFE%MDroL=V~dDE1Oy2*@3s|KeBY1pPX=g z5Fn6Dh?U?RiH5eak)J8@2^;Y+b)d98oEP&aQ4i0xKxM9W1cbtUg}4>oxT8=aL?N(e z)n+W62M^XaP79PGw3el?6J#I`!z01fq{j8xJUDx!8u~aDvD%dO*=J)D>=WkQ6+{MX z5S*`>$bOU5V5OZ3xa$pgAuP{xRGfPt zoPBsa#wAA5wdg0kz@VEoGRnRp8n{jVHIUnKQuCiB#e!ke_W}zO(mKdg=Zh5L#$q}W zH)rZ^Iu!1@0aWl)@Cqza#Civ}dOqqy`~>9*@3!lI}{MhW<^fwK>Z?n|qIIqR-8x zm~|u)Q8d#es&qjum()DfC5a$LcQcWg|4oOQC~SBMuW#zGtlg4o0L8tEgsf_#8B4&;j9$r*e7Ngi66r%@|B5!tNvON}7SJ{MI z1Mx|Kiup|ALM=@>EvJ(d5Ty%|G1dTr?%r)_Y2BSE`)#V;NsLV${GAw*>4*D+?i*Kp zuOA&AU?E3}_B&`zx;Jk#SQKdS%<|b(R|i!pWCGAfg^d}Dic|Y!ZT7aNDL!2zDihZ&r(x|C(R?aeNKZK- zl@mmbEJd4U?loA0s>wva4wv-7Vve1(bFcpQ`7!-KxKR=Sg)t!bak=zbh_N42(HmQf zL*5b*@-)C%WMsCkaV=_4h?_4_l$btlQnSXz&>X|!Q5V2rg9d}UD13nyPCvYtJWckg zjYqhq7%9KRl?;X7Ic*$J?3is_?3l-d_=gWF{-Te=Tbq)&B~Fij;o_=Hs1Nka<{uy!!6p33W@~EgwiNPpWa-az5e|6_0#GX4j1p? zshJ;DzH4rbCE@si)LVHW;%pwH3un3vBb#>!HOB zJE^;}IwqxSFq@y2oMuu+ZK*yos=j3G&ekCxp#>UsE$=AZXA1#VSlDV5cc!v4(T`Nh z*un5W;>5rz;CP4(44_@}h*_81YLi#}LG>){d(>}RK0~u6$MpuAa1BBGZu|iY%jNYPQ_!*S$JZGl=@;XuZ#PJX754<> z%pYA^qf4ftNif6dhZ2g#qV(GX}fogw@RHwCTCOSHNCGM6M%P*wL;`XBrs_vu8K>Dn{IXNBsD!QAA4WGQPL`x|P0(~cT{4T7F4VpxC zJ3PJM%295r0;4>KZPI)xv9BvYgVhP0hDgzpwL6cDz^nS8HWt6YhL&%XCiQfchYT6? zbCEJ)bw+|c%KOqfE^#kn(@d(WZbfWC>XopCL74ybL2CvC%H)`{%8e_o7oM^V=GH=w zMn?JE@V3HmOO9f$gU?mm1j@BPuEDy_>|-;GE(QlmSC|X!It^j@dc}l*JLn*`Vi4M= z0KY0nSw`;P0ns)_7urWWvQEz5)swS;LL%WcqgD^1zgV99?9-q9;78Y+>xXZA`TWPf z@i%|)PyWW&FE&sl4i0H&yL8nggA){#g>;8O;bn(A#cr5x0na_pqC2#i zUDTFfSS>KPf6A+nw^MGT&EAI(y~RFs4YbgpwaBQh=6sOth=J|4Upb5oP$;5gO*|z_ z3AOkr!Rc9%d4dwZTyjAmT7BWt;O!lJjzv}bO5p4-{F!gEgYgwkuGj7-!-u{ExQ=V5 z9zVf{BiL+=xZs%?M-ejH5DQr6Ol*5_>FrYl#Uinx3!)%K1f(|fwmEW7y{U9k)(>BJ zbQdcGmmp+$aoGCGZy>t0Vn3o9v}54&8Fi(dM{xDN1TKXto zCm@@-rC}N}#KedMhP87KkLU0hRTa&Q$4-eOTNMIqJdk>AtA^Gkg-Ohm^*@-Q<}gUd ziyn*EM@ds9m7yFpy>?D&txpx3ib5tyjTktozFxr^un2&WC7&d`ks&tM6RQihZun(9 zYr6oJ&J>hoi8BK)l+9xzKTII4`~W8bB%=l3QS0+Hj=o0?+&%a;sEPlp^f21BLtEg| ze;!iQooghguZ=%$sHFOZ^34Wc4a>Bzx(4{}*Uu~n*@JM_J2>UQ<4!wn3R`MMQMt{a zr=>--AaZ#^N5d*GEepmIW*JIEOKt#{1xZ0*KYFa0N4b{(D&qr!7Cf<|LWFZ_XUo>( zai-2fiflhog|%@`T^@E--)0NFsvtzGbS(1xw41{z5qt%7!SKPam$oHa4Dc!(r!^P~+(u$?w8a){0kw$9EptOG zf^ryk;F}K&2_;-+h%bg3;e~DxJh`}zN7;cJHS`Uec!t32$ENm1&zb_Y7Fo!PB=ZV_ znh1NE+M#X&ZnCXnG+bwijblcQ4drk@>uHjmtn$?<^G1StO^M4clm+McVsj1Jq-dJ# zxpKplQ1jY3wWJ<1RUjgHNq*e8A$7?mGVBQM79lfItkUQD`>}<$f+(;o{HY|4>epVF zu^3BN+1+T`JXi#)kQO$@z-%_C5&-ZaKj#$zZIDv3(^(yP-%h^d%WRWo2XR$Abe1Ar zjAz_I55Eey?FfzNN+Q9=rDOdF*|OMhV5-ul`d0~X=ye(RNI24xb6xByp>U~YgnMnd zV~)ACqo4fXlOKHVQ`iyT{OZf^{&)YkPygB9{POC}i6NiVT9?TjQihgjM`S-6Zqhm_ zarF@qpK}u(7ayR8J@}`vOfHF$lU-Ka#gkC1T7Z0lw>ITWO$T0AcA+9aN|tM2Q$X^N zuoULE7Uhr50dmZ_&aNC;XH^<{iQyVK<&xeJALE9BBR13|Q~dxLml%NVA7g->F$Z6c zM9Tq#KWX){_0k^X4Ds1=X$t|xR=2vgh|UZEGdy@PreoSPZt@OmBr{{;y-rG3pkU6v zQRh~lOHr6!$W$C1%_TvJohs5{IC3w&9ABQu-;imXy5W?u0|r*E%HDn?VZMaoVbv+n9TJ8#$+ZW~3EO6~qA_tDDXTd-kXY&X{Gy@{``&*T zl#1~fH4DqgQ2_WwJewRy1vJ&{fc@D+rz;xTZF)aGUT<$zVLCwnfUpO2hk3T@=m9c0 zfmP_*qfOc`PZ?4eE&1{p70$!m@3uUWGlC?is2~)*e&aM2Py{~9^?cfGDcjK$hOO6> zojiW=wHM1TetL%x?hP7Jm{S`E$Q8!dJ>STzLl@PPsh`njY z#FQc#mL-TaW9K~3P9i;)J|O*yi55*RQCt;Nmj0ynl(UfV%0y9;+#Qtab~hTU0%tHH zoyEwXL{Mj=&9SSDR-uHLhd)cTm`bfwN3OhDlWbG@6DriDhnxET7F;Bdpx9;fRIES= zl{0&GYdNWYE(OeW{|YOs*;3e%;Dd+Dh&jYKFUxL6)UL^|?N~2qJfg(s`rehA%-OO! zGhUH*DS)7)rUkeu#tm+fA2r?@vZs-JeM#(ghw<50JWVbER6=6Jg4R3STJZW5vyKZN z_o|#pk76JwTgSVIdy9I4+N8#dQD_`hs|J$a7?Yzs+p$m>FUbSzo2|{p9%4P;zyssM zhItSjr=9uyNCu62Oz!!Yx;& ztym=ZTCGRfOi#C}Lhh@n-H06tO%<^Exr2OH-xTz1bfTR>Y!FV$>Jp+JhwF~k9*~mu zm7mEbAztT#?cuM;8@Jb3p$j8nGc+h-GkP#$vt;6JgoNpdO*SO&4-?#w5ysxc4IQ+J zK4)r}p^&~9R3PQ(&BkVCByAjRHeVETnSD?=r4&U3e6wH!J*SHZ{?n&fggp$vLaWBY zv>*b3)CzerKrh~aGF^3d+q&;%b9sapp)3YS9v@Xkhz>W#875HEnB6n0iA*fBkk^P1 zNobwqFbn;|t11c)Usd^9xqzjb7#;v%TS-{)PL zGH!nmaz0NGeQ2fu8CT%PM;`gjE^I0}yB!**L=1ct;U}q9)h%h%wK_~~N2aqC9<5Rs zynmOlL6pU_{`R*%e)E<@_AB24x@0Ta5Cg zAC0+P5HV;w)$1zo;}#MpqLFa3Q?KUe8MP%sYpgw!O~~$Gi&_-{ zf=l9w2V&a_Wv`nhbNXDJ#NkL09e`;cF5$FBOGK7dFD7TQ5)c#F^XO~9L+XHm2%5c` zrm!YEWhWKI0-Ca!@1Ei&EmOgxzw)R4Aj?K4)bjL#hqT$j|Du3p^B66CYzS;XB{?Q~ zGHcC4YO4_re2UgsjYoh7Via}Y%a8Gw$Y`jFVUpq0duidh6L+~h9ugONtgJ+UC33(h zoPhxf(`lj~<-u@_uphjQM1)k7QN+Y^mQl`D#1R`55k=IgiC})|)xTe{_QJ(G>z?p) z75j18$CjRR+k)YcSJFPcCj=jQ0rfIGt!d?dQi=i_f>qr=!dF-lKPsHmjn3(_*n$ z_Km<4$OI2ODHP8`G+49rL<=z?wQ6G{+;yTj!h;HflHAagCn4SJ%@%rY7!;Jl#|fvK zww4xy_Kspvo+10N<{b-fZK5u29i%l;lU-_9tcEr%I~zllw>oRAI#<3dJ2-|lQ9G#s z6<$ZjuM{}KiN>pF!;Crl1>QorNP~T)J+o^mwbXuXFRR)4o|-+};i0EU7&96c@v7=R z_oYYXm-%=xhCOMt!dB40%uMx_LRJ7&m3XRKnbT{r#8k;BXu1|A8D2$S6cZxOb*ZXd z^w#x+l=Nr&CDPE%?5h3ZOrgZBf?=_JFDg$}yi&U;H~~4rf+xr>IM|YzqqPaTGQ%~I zoLf6g2G+^sqX{F2qn7M&rhN%1*hVb5z8FIvb`u#@ht5Kw1ZYe3vO(ee$w%v^CX!&s z@Ab+_N_N}yqRh1N!f~{XZEW0|*6S>|6}NGR`CWq^UG>rPc6&QM)rV!!X`2k6NdzGL z=6DSk$qk=;zzl4$%3w#E)i)frd>3f6Se3H)JhxB}m%86<5&un3-45XsbPO5}^1MH~qhYi6wcP!M3n zpnmcYI2+uS%cXE{$ugTwcP{v$B*6$QMVWUA4Q)FnL;wt^$M?U>G@P3@#VG_i`Dm5` zORos0#B(3M^l;fxYIX%cJzS=yvqs`ef8l5K19RfF!_Iv#mv{cDsw^6`~|6&1lLTKUA8d z0cFpUb(&(i0bBzl`8eOd`5WK5xphd!K}6C-N`fRnr{#2Jc#Dwxswm>Ak~v| zBD;ppF5M`CuGD5Hkb% za55H5Dll?jq}s{8F>YgODpx4&Q&JJB7aA^(_2hH-Fz_C?46eO2A`=GUz;76{n#hd0 zs5E%*=*6BrNjz=OCNb!r`xAeFL#ONquV=RQ0{LntbAaF2MdtZ5Xy7TZ?6AwI*qv-q zPP4(fNL0^#0?epeLR9c@)@1 zCceS~Rz{Wsf~{@p6INr%pbP8q%C#v?bhf-%uk~G3H*wGGQVs>-3$6Iuhg&07@DFnO z#NDt?mb_?d%Agm1-*Ii=fb zO&`QUi99(HBnf57@aX5#fXR$HHAgR&)h;#?LN^S(N8Z|ioTv#vA%RZ3ffGZp?6wUU zxi}<3GfeW6ycLIJ^w2m&j;H0xpBj#+B5Id}FCKK5UBUh_<54<^T%`OH%y#H15r$&C zXcnca?2Gp`mV`F3H%JL4uuEl729g5~**NipI8<0bOZeK2Kpb#pvt2!H*|r&{p~SmC zs#;q}l>yqf`z}MGVt~@(I_A6ynSgjr`~g9#*bl7dC-idE1}$uw{8(BQ_Nx@jq$~YH z*+2E8P791mP6*_9VO|;%N}M?RR>o&oz6jqCIja%Zzff^@_y7-tZJJrBQrO*HxwTuoEjr+;J5i) zT*@hlbDb8Inj{M6G;l=|js{odn$cMRJZ3_U>PP&UX>Pzp@pTk_3XhO=&OeBgj0haO z%IFUgBG))^9R>PCaEwi~|ZA=!Y_k(x6X6qFjGL=%-Su6O5P>nGYQ#HegKP7SeEK2Ea~T^4_P ze+PKLY6^VP@&meUV_6jt9ZFF!<}l(Dm^1&;RTH z)A|R0?<)(O6=4INl1n|h)MmfMTBO`RCS2Io&fR#9l5>%ez~Y$$Sk#b7$8zCjQuN7U zuz*sLWID`d^9Uh&*QnE6m-8!u62WGuL!}`pl~d*|4xIP~mxy!MMSx~f%T>4QdHrxG ze_sK%!PXQ~D&wT|aYCB0B8=lvjHuAYncrRvLc|JDDJ5X@2fyX*fE{!!X360aIRIQ% zRs}bKcDI}zf-I)f-wSM|3>tC~kRib|+p>zLu(em0E9F!V9@m@ei%XhFFSZXP{fEfD z(MNWm&@+V$$3%PK=SwO|f^=ZBO1%Pcs}V=!p<*v1MJVxNf^BMmG>Tph0V5Ub3sz*i z-l0|Lu+PWM<>dwbLj?pgKa2)i7rZp`;5Pc`A>3hIixkjF;tR}1kYNJrb>^@0o@R*pIXw+a>*plwydON72 zv7&^3XnWXrmpq`79m*r8XjR$>z`hC}X|zQcx6#T}Xx zDatD<%N6U2Ac5&pFhic72w<^)s_9!ZnjnuoKMU>yNTQLS^St}=NJYSI#0Rvvl zfpJz#xKVy_9B*EE^Ny&1%e$I=>yvJ}*Cg`O`0i;5HiCm!Jncs)}u zwmOLADxJ5ZyeA;5!^>igeZ}=%hu8?J?&;65AtVG8o!d{x|EZ!ErSDj;pwwKm{UVK8 zycDLV5FUeSvV7bU&e8~&1KIQyA4(jc8kKZNf_(A`w7Gk?QT44ve?K_Aphs-RZ7s>r z?IA!&`5gbfQXXBXRf#nL=t^i2Wxx~oIdt(VcS8ma$+`90Oh{obnj&h3xkWHeXv$@EKxNq zcJhRX;Zb0UL4DE*ewHo7p_XRnUm~(h4bG(lh0-ZC5^DgA5$q0Qn+~jMeD(3Q8RW!G zcMOEJQd zG|0auU{ylRz>$V_)gTpWV)->q2(}2oNnI~i+uOQI-~0sYiiK}lS+nQ11*Vp9nOEgJ z-Th1w**}5THUpg;eeFwM{?Yfo|C8VUM78keldpVu_7DHoUpoK%AHR3>26atRkFYbl zMW8%Yyps6rI!pyF{tNd(B9qk>LJOpE#Ykcz9lA-1?cCQbh_ZAE1g1%@JBp&m(YC7V zqMLZvWQw(rbc)A;7%E}TT%nop*ec3gIA0aT&X>y>cFY$6-`%diV7wKPh9iRcbo=jM zY7*rL+k@@g8M%U!!2Q76GL~vFc=j>%Jr#fnCO29bX;PNIWNCQe(eJr*{HX zsu>X^Xl4*SaZ95|0AMd>Mg5j-N}Z9Lr0>MTAzq0eLDo2lKgE<}37J6~`4}n_m>17m zb|y&j^fiPFe@T zbwYX{O;*xKATGqtrafs`BoA;(+Z^!<-EfTOctT7WS}!|EDHP5kIN%c0(y%2yyusrd zi8GmEJV`3K905odz)&*$#Y_Qchy%|yG*ghfOSF^O#229m1Djg6_Ow%C^8A!`Hq8*J zp&pt3+oyA6ph19eIBKAAMx6a_E1)Q=6d`rWTL$hR3@H*LtEjp5D}MGCejl3nB)e zJ)ot?t=NHda7pXQZ)yE)kdRKuhLiMatxzPrs)Pwt%?Tx2@@MsUxT9%_C(xCGRP7~E zi#&n%qe72jVHR+(dPZUvq;yeL&IeE(dZvVHBLIUB|Jd1Utdp%AucMhBnS4H9>?Z=v z6itR*ln>k27v`h*Vg9CVubXr@xjYfIg!k?JdIcqk9d=fKxCIe8e$*2|O0^~irp5)b z?6E}z2ZebF9p!C#&IA_BT{0{vNEIK}69n3EX?i;+;vtRcw?RR%tZl*18yG1=>`4Wn1DC^Xz}1DV(obg5$n~b%{v?z4-INlR731Ax@{K zE()16;y38G28xtgn2pcO_DY-g+cpLsh_LHhns}Oj_gvu>d>b=E>c#?Ms&=pOtBKX0t zU>WW^1jP)Tt}uh(SSoIIRzn7l{?a|+@o&ItXtZQC>tba{3T?o(aHO$7)AY>CyP%t! zeiSJ?HuV~MCH+RiTJ=Uvp{IKIr9xAauAj=DME#Kn5~AT z3UKURTwHwr_kZ-+4`0)o2>bTM)#mU2&Hre*`;AwJw-`~ygh_1nsYU#KO%Umi4`2QNabh*n8hm3NyudpOpBc@-nedVRp)~*=Jn6ees3%k-Z@@F z4M~i_(K#>&>rFsIu4yru4FJ_oQZ1*Dh>60BLlGzt)T+TmOTs3l_q@eJ7(62|30z>g zps_O+t^jsK1)m6dE=hS{FQanI@2wwsVK`RfNW3JLLc6FTH0uy+H*F?jAm-C;5hLm0 z7>KU9Hn}@pt+*-DcD)<@kAMDu`Av345|(!5N+CF1Va!#7n(zabF|JzNl`{%A3bO)i zX`I1A6DU^&6nTWatc$U;N!|Io%@>C!1cMx4mIDPKCE*s!7cL^E2PF0hjU4uODlc{W zIr5Vv1`053P<8>3?m&6b%@T+5scbHI<~9vd8zRz0nOkQFyKM)xi~T7uQO-of!$x7( z0Ag`;m(KJ`z{fqOyf=0NCq?Wh$csA|$poX8TEcJwlnf1WD>Z4!h<3O1Qj@I$lPX9AxU#hwVmKgt4rqu!mqoAW2ls zTgzU6--J&6#+G8%{xhdo#LraWh5lQ zp0k(TZ?h4d)n&;lsjYgpJ5>F}Et{5LJac$LW%#9!Wd)_R=H;${EPAV87rH;;TM1*!Y7b>SsvEE z`Mq(rVWgG<(!n$IzL~RR3hMnFIYar>wWL;vHmn z$+Q_^IF5#uJ!9Mu1m%fneXP&9R~r!}w4g_u%8?GO|B883SP?8A;DPtHy>s4^e-r(f zZ%lit-2^Ae}8-p0_H5h*)XKLHf zMjj|NwN2-5+~dFsL5hiLxHGJ=edOJk2!k!3xDk_Kmix?S+CdI6N|be9+MCL?M!}mE z>`6t!-C}>F_}Tt`NA9OkwF;@q1=XFWeW^`5ieKI1BrStK;qN@erE;2*hPNme=ZaCvj>$D4e6w?atFWM3r=`~Ys9&6@x{gD-(;c9_koHE z^8udz>C>xMFFyXg@BQ!xpA(>R#;+EezyF{8#jihp{NnHiFJ$wJ`7J&>;7!n?i?^3n zq|L|aLsolQ;(?u&qIALYwzBg_T`*VMGi&_cKB!;ID->sQwY{~;eUBL4{;tshAK^YX z!X{um)#i0vIioC&J!rZVtPrOLZ;vyA?ap*5OIfB;EEK~&P37Rf|x)cD2Q z$+E(hJ3%M{P!5-?P^{SzST^T-7ztVU!Zh=UH;D=aJGfm0qHRQfS}RFn;KK(WFl$_q zD|TuiTmzZ3JyrirXk7_9hp3=g2<6hYDR{BRC9r!q}?0(Q7xdPi$V{( zg&thdA+rv5hiyE$MnDka87r;C+#o<45X*AZ;F)oAetG!3#3-_BiPtnlROILea?Fa- zuA7}C03t|s1%V_HN#4f6<46w)%=2PLTwGH_5MYtVb#=l>EC!OEFToe>al>@oU89)9 zfuUJWrW^A#)Mb$mc>l15Y(y5sv?wr5&y;wq`6jU!buRf+he*^w-=Wg<0RHQ6BHGT= zB-}y1XN1Y(f|>+pll6m7&gCNEKncvuUp8C&$DE31U`+@+SfLm3$vemAsO-ojR9FnG zuhIe?RQ8Yh1!R*~FFurf#aHZZiS}F*n-_kU+K8Zs}eSHC~H8&hob9eke^0sgojY`frW40D^K4o%}+JYF)Uyt-4P#Vi<-k zp580xw+*_UYuDXcTd+ea_vX9ig@Vq*)%B~p#C>us;lnsJ zdVzmJnD@H6<17o->+?#6`(5w47e9`(LP=6AG7qZkNaf}y@_s^3T=0q!Gkzo=)=VTM zPD84SZiHDv(tXWf8zN6dr$(hIZ0yT4gV5;s2Zl){yjk~bb7PJHEWHe?)%(w9K}Nx$ z&l`my?!bvX1MltKcC*dB$l`>WDyC>9i1H41iT9QapnZ6WOOC8F??LKS^RL~b2F*e# zwXBy?lExJQlJ~A1{Y^a_o2foR7C3r)`FH1IA2RY?Y&LqT%?A{En0U_hblWt`rNyuO z<@L+snX0;VI!n;a9v&KX6J4fgl3y^On6Qau9E2=Is{JcHaZa@0Hl3w9e6K-;3sWpe zl{F>5TdP4ZRIS%xQqkK14s7WU?yIk&c88)LSsm?+cZg%7j*B70go4(zL!1~sVTeI| zBb*c;uO0$qT?b#pNq;FQpj%OIl`4l_Urj0GF>?BFZ)HGUgZ#PvOrK*B{B+=(IhjeB z+lx(_vZ|q1lpNxSmzy|#0buYBKPFNdWKOQ_t-cT zE7Wz=C=toBMsr6LSwAb4*GkECA~s&N2dBwKBRI5 zSPEl+@u`M*N?a%KW=7TazcE z0z~&bH}-YIedSw~P}2(nce(HeIcKXYo3tE#$8Hcxf(&rG<=i@Yg=m`v$)ze%*H~L7 zry@Q}x1sVvOdVRR=qE%tft-nR3}b_|W9uZES`T>R`Pqegk)rJFTgK;s8(Fjy&a#mB z{CK;1etWQfv$=i^NA!4kb^owp1(tBFm&AhEfy%z{u7_G+Oh5=IBdW;HIj(FnC%xEh zLlTI13^8)-OXV7&h3nAObudiODPl^hg0jKwup@s#<7r2Y**$I6;qw?}dI}+-VA^T5 zr|}j$=vH-`6YlEPra4wiMA#RrRAs8nMCEb#E2f%QZLd~`7p`C?C+}xpJ_zbCt(2C$xqtFJe21zA9d#e#>TG2do5-uIHx5!_fQeK@b4I;d zVdM;A!(SZuXZ)wjoFo;Dvl7CzwFep$&kY2a8#D5lU{S1QMq-5&<{(x6^6rX0^^1Ov z7lhHEnmL|sDv5U8PNSSJ-4}x-H4kAPC>;G2c9-#GLyH=Pwnt^&5tav>(`n^6e|{O% zuZe!@+>t+S{Am-AKGb?ql`^$t(lx-&r3Oxj!y~trBuv*0j(3N2ndYZg62cMHhT=dD zTXz`wrsIV&kb$8e7l-VIyr4H{aEnp;Fy z_yV=sxhUzDs>Qaxx07!>vyjxqRxpa|153NdD^_7Vj z#9|He&FNhh9S8eI5?fPphX-xvmj^sfk{f5>F}zEFL1d;Tc*yND>g@~)lME~*hA|0@ zIe7h~F?HNdjqNiUvwzsn?*grRdRPsAl{=cmyZG7UN}H1^+f?^htKpUR&(zv1`i%96 zxu9Lu2Yb?`cX%n-M|qXgov_zI7(FvfMM6g%1=ZY3JC-2s*6X!e{8rBX6WmjBNTMb2 zVlIv(hsK#Nf9d`E&H7*b+OP8)OzKy^^4^br>u>*y|L0%&*FU;DrTxZ!HnPm*uq`YQ zFvRQP+B*esXq{ilStKs8V&w~*u_Z7wU|aoi+9pf|nsQ4*ppAS>82XP+ZgA+q2=Z!vyDCxRoYOs}ritSLb@0U9YV3_FWbSK2L$!8v<<@<&?`Y-$u~T9bzQ8YIP~~Z{JBZCp zCk#sn+E_+XD*K6fJI=dS6-{HX+VP+NUwpGUBkJ*Sy{q$;mgf#FZ+JNtjIAi6LFCPn z-P<@QCYEBx1q47-K_?Ph{s4j4Z6#zed5UMtBZi=Jw7f?nk;r`^ng{j(bDl`lf`nSH zn0S?6a3uZLCR_epQ-*AB?u`DAd%B-E&!zx^yc{$p(E~Cnyr1bKNDkHX|D2z`Bm;D} zyBPH2uAMwb8^8%eU)26`Pl`nuu^HYu*o{X>QI0cE&~Cf>nzX}kRLKTxXIw({HvncT zgzt#3h{`skvJ3Q`C}hytWzC45JT!4jGqiRt6rZnWe^?*U0!A5yt2;Y9ryuOr>KL|K z6;Ma3Jk*S^ptF|6p^s-0U2< z8oke1-=Y#6V`4H%dD2I$Qdnybho7Q~F3@~Clu+ZSHbgy0Y!vB`gziKJ*08mz{GjIC z3Lp>n7w`#?(mtn~gOmx82ny{@<}xJJ1US!HC`dw-i=ttaZz1>1{s>^6Gfu&mlA^%71XBlU&?koUWXFXxRE?=KHH#&8*Jdzo|GykY>=&Y z(H;2`c?@OkcJz%108v1$zuLG}vzm$v1HdO>F^E`6wG{jum9D4|y0jDO^tq{4TYm~zh47CU4=%2sNA!V{;XsE3A4RULO{<}t0+VoTs0QA;f$9#jL7~nORIypNKliqVDmq>L<`t}pxy8O z>CcPJb>t?v%>*h(NgS^R^N~NNBOHLpFD<$ot%0_hiU4=z=}M5yCh^3bl4liPnweJKd9Hn=X=FLiWUP+Cr6# zW||+YC?c0o1fcd~1zCGJL$2-NpO`GX5qc)xz2P~CcbE?tL1GpV6%%*}>R3RMIz{S` z97a*E8p$w{E-XY7LV4jR8*p}KPz)9)Kl#qb-~GMsKR+#By?F7JFQ5H4fBk>==6Cjbx3>))qNtXN)8fxGg3uy4_HYyD|o92qPQOCR*c59+hQNUK(j+1e4-)W+nrk z6r`TnFN2Dcz+unj;b_({JgVSg9oe1^QWIFIa$wZW17zv27(56EhT%7%dlQfJUV=NP ziPm;*XwY#m5s30?XO=v{LnzYrt0F*0PuPm0G? zL%6?qHtn8>i<8<22?Qr#9bzz9VooS!S6ClRUPmlu8@tHh(6eSUy}e_Te_Fb5S{9Jf z$qqMdR(W(sPUN1j1(jMA6kE26ii-}aqxFhjTs4~grKkaUA z-tH%T0B0SY+O>XkwmQEoxY$}a;Gr_--9nfhWECzLnF|@5Iqkp*992*&oaiwD2m69B zkwRK6SomO40WOym)QR*dYtuJb4rKY+wj}<_<)I;f7pSDiWh#B0G&Gw#9et{vju$X= z-tGw3@=JCb7U0XWB7_oRp$gyl)$QXwIu`J&5JdzfLIQy1mzU2^E7YX82DLgAaz>*5 zial`i<~5}-s(_j_D{{_OeXzOjv&HczuMR)^{Ij=rhhN$ry-%|??_JT#s<8xL1&SoT zH{`I zo5npZmI_mq0=s)P^guXgOEr#dn$_lF7R5HAP~<5C18N1TU^i1QcrK1uNvu|EY?z*$ z`6weJMc7E;%1MNhz(QQz1~H822<#%;2PF>s*j0UyOZ0?;v8w5yU(5k#(ws9{N-42L z$I_Y8kaWLsE9>nI>~+3~+vJw_?2tV_m-2z##q~V90wu9BGc0a~hv|>xz}YHH(8=YX z^^!65!E5C#W{mrhGGd^lf3m5{MT4?v!JdnuIt#1~PEawce0}O)mdpg^4VVZQ{qP{e z+uK{)DqGt+hLr4L8@zq{7Kx33z@b%n<@*{${c-%9_*2Bao)^NAFs2YD+oaUZbJB~% zSc_7{?i_6y<*Ll3$s|gzN10Y?<@*=|!s0+36M4}5c_S=oFm;e3$LwKo_JncX#pdA#Ok=zRE3GUb&(ScN_`tI7zOi3LX%suS zwNB-rblgmzpPh)>g3;yL=@xWY=6>2t(NHx((+3Ul-O?dO($9-WCv6~$@-vAl8ntoC z4 z6dqw~dmHrbvo(`u%a=QiE{%o=nCjZhLMMnr5CV@#zHdX|(hji!W@=L&_~Z>Rtr5Oom~uo+PW zcr)-AvChxWYr4K-OVHsC(xGWkwcE7am8!Z230**orzZMLQslUb6H3lnxD-#- zDi?g$z$^LFTq@ixhnAno&8@X1K-W4;5-tJcjq))$;nF|*Z~sjxW(+A8SWwci{?Y zE}cQR+z~xILb<2Nh4Fjd+`Nc+P81k8~(oM^9q=oHGy{UAXpQf5dCzgE9)a$OPIJKk!{)h=GxAJjCV2x8lwv8 z>yJAgCid0J5#@7I;o5~_>@l5A^jb!W;Hfc(Ad~YvB#EW0bh2CT*phZg9(Xal7}^vT zRHAFcaLW12df|9g#V|9dxMK#%tx<3C+O!tNxSS`vc)HTDAng~o!X>??f$E6O@UE#Y zSrG%EHYw%kRy(Y69--BMkBvb{q#jlkr&>Vwg|_5PB}JQ{&s;P1AkV)JGKgP9^$Bwe zP!Zp3VU}b+xP|rY<_vhbE~NE_=tur9Uja9ht?N7@b)w}{bLf)rKtW0=n&=tYJV(R5 zBhL~bR>7QbQ^rrTu2#^@r8B?>YkH}@kkqL;aghp)3MtvhZ5l|-1h}=mTP$fQ6$G+Xlhfgo4Wz^LaXqxM z7GUvSwIm{jIc+V#Z+#NVZ~fiB`rY6B zYk%Oy=5Vv4*$K06nM=B>ypyK5CsAhQ&niz4CV&mX0r+*hnxP>{Z6U%GVzUk2`;Ga> zS_<9DgvMMN_D&0)y}8W;P85e5E7!8d#gkQlTTqyI!!9AC;aTuH5u`I{9*jgKKHFGM z*S1ny>}S?rPCk1W(++_DL^qn+NbINO^v+PuAmACsoe%BoeDh#k4l@xw2$CGjdA?)H zH^Gz-gRMyl0fkq!lH&vVnWAJxDL+?6O}y>wXu%uYuGV%f4I#QI%oCO-dRpz6>)_m3 z{RfGs=tX=IY3TuRW9+T49tt|9qn>DfLhh$QCjmnN+*MS^f8kI5vKrxZpDP$(ZP{w$>B{gbo&n_nc~}r|9+8%cwz$AFPuHFNIfD8`HJo~4 zanF9DgUh7@nOPS?I@3g9IMvCtdRbEOjFac}{SAylCzC8FzH$bfIe;JG+oU-?Zk9__ zcG#_VaJ1~TXUHXGHOu@mB8gIukCv$)J#E%+u}4^Ydx?>tTE37u1vup71kFV%OooGe z35!p7A=gLa?_{~^FhJ|ZY-)F~`ikE(4i?93FbTW_TY#Wo_i(E=9poa9D0!koDU@Re z8QUU1?d5vE#;WJf;9;CNqUp>qao?`c=O5jlkZC71U+bMuiZlexFgL$IQ|Jr?=;*k_W*FB%nA$ z(jC})+Qir@_7GwH{B{p$!N{uT9DAP>1Up3jV*?psR+*$3mhQ<#3eQ5;C*w@yl zJumJ~r-EjIz=2a9VtNaVkHznclXzJJRxPT@eyW!{!SPW{2d4Cc(Z}J#qA`cnnOG+WVI)Ye~(lZH#c!*0kPMve2WdB47`{`Fdrn zI9WL{AKbgXuxVM}ms4Y{1>N}2WlLBi7hRa>s)ETrVBii-Bz1wvmU3;=UhXU#eMwc* zC{1!m`9@-tfC{4%cgN%7#p;p(Yll`Fks#dO+5menKF2CGP^Trf>oA1h1bafuB!fHI zR%j|^hg!hoE9@tpDvV_Q@5IR(e`I5dA+gRY!aRI)%Gs16~l zE1BS-!C*{uof1Wbfdi*%VKeVm{)dm?mZr?=HyEJ$>p+@d+*Ze>#`Rd))6CAg2?B}F zDUo9GiOPxL8uU3ckjY|-?-)ST93FRtnS;5PturKkun`uV_u4W!1vUX3UtXQVO#JO% z`wi5#Kf7Lk@ZQxoe);0R_-p^+{qOxhe)-k)(KY9YSBh|@@!>gWS1GY)-`_# zgkc52j_Gu7mD0n~^0Fk^)ccW=qdl{DJiK#3ME7pbQXR`-uewDvl?sw1VB4q`2Q^qK zc9V#Oi39QWASoX)qv(W2%vVVYY(Pc`oA`m38zN~RdB{y|r*rijcBp*%s7um_`R$Np z1BZ;66wI_PDJ9ef8a$v?1PCYhcef7z5OC6I%W)KH1(_Rt@C}dEU4bX#@pR3?D^feF2D?hGPz!b>BucuaBUuZs^ z3KY+eI2|<2wzpDno;27y>(0-XaVH45I!?y@tR9-S4(QMw@R|d4QMo?FsY%5QDjkff zV&1{Yu5v-m5T~mJ0MhVv=zCu>wTw6gvN$M>Q3w|B1Q}c&`UN2%&I2!QF~+8(Tj?4Z zJ!vc<$ky5c+ar!R@`H2a>bOs=pt4LMqxL5lONrYMV`1a0tg1`yQ>mrE0b~SlZdR-k zpFwqFan9&5q6Lba_zq%Oz7dBj)d}Bxeg^hUoc4VBf-~m(jtKCHkJmJ3WotF%SV|gA z(AH<4Y&L{JE5@{NMSO!H2hW3#rm+Y>ZgFsVd~MuWOvF<5>J6kx*%{t zG*ueV@#XAH**TQ(}|zzoc9mHlTLo5t7emhvtbvq5AeDe0fN7Hdevd(H{2hC=&yUb(=l5)Y?> zV;?g~g^~=KF-Pb(!8)gmUd!!=ai*55afXmoLk zPwb)yY>>Tce%DU0J1mS}Rtgfd4`A)`QMCUyy|PwAd-oYNrJ*^iML&rq3U<4ViX@y3 zZgZx*0b3FrFe3DI)fMpwweL9u)hR)T+`$zGoAP_(@i+Y6x za1ghd>3#e`_D8Uk08(`;$usF|C<>rEx0^S)b2(xu$Ql~hty2T0XpMCrvxuI1z0N*g z*UHeR_5zSR^|~;g!{hWITLA4>Y&5p3cy0PdQ?iV|>}?FYxpMPfBR+vhR~2s zCzaZGXmB=y5F^?MDhZ}8TC|Tu-Q-0=)v8)&p;OZWK~P&7#SKPuz_+D{xL{;tI`a18 zBw1wrp`mt~&hS4iFcxN-FRbUvcucESKvYVc0S}X2Y`bdqu}XkC7^83F`!XCi8>mL& z^FHeifwC?(F8E-Bi||nl(%x>ZO`bpr+O1Z!!5sbQyFdE<@BNqnjMCNaE2R|G6ClMz2;4>`JdtWnK8dy45_I85JfSTt34zsuxeV2oX%fVX+#2x{M%MNAz_H(I>=&8t ztVd9`ejUyPH{<^N?8;lHcxR4lprgVbt`q)-m070+lJ-DM(u87C>QmG9(O)th81i?I zK$u1iNG3gK8beuSM7k9LD8~+&V@eRx{cw>U~UTG{crx~ z-}D4FF_C~kzr{kh%U}TPc94GfCYFPaf7;j{kUd;TSf=0w>J{~OU^~)ckGXqOuSrbE zSD`ULA2}!|_L<;Xi(jufIj8+>kHiKSjdBz{akd!(Io6~$WXELaWQnxHrPP+Zo?K%| zVK?h9P6;m%B*ev{)^ktDV>^RnAQTX>tK0&nW4rZ{D|c%bHPyO_9v#1K5PgbgSNIxEf#YUF59GWvwfZ`s>SVKe_LWA$J6GY@vO&B1$ zJ&hnjcxO#pDJ$EqZ>~oQ2xSWlUP)sdB^xTVrBPdSzn(4W2x0G0mnwQz5t~}@c=z#t z7<%`%VM^p;pG&VY{hn0yUCVvpk;;nI1uUT}872LqK*2EWT|O=Hqp`MHgdPQ$8aKLs zBDnDP!YR9}xe*rMK18K@w8*WnjG2@dg3~--(qzLG#pD#a%Bfodv!pN`QLem5h5OCj zG&C2NWfZi-Xe%B1k^Nt9+h>YTAvW_4WTZ}=Fr*v5IT(mZ$WcW7Jlzp3$6790)9 z0(ADcf4l%4vRvc2)YjG0KG0e5iU5+`{(-pmQ5pv;nz}EmO?YeeW&7S-z`mMXWKeO| z;L^=Gy64U^uA7?MHJvr`5oN9XqcTO^6z*kJ#Kd()eOyDoU?2Sxm5H@LU)q#{-GBJOhws1t`2YUT{`Wuq=l|FL;YYiL8YNPkdYB3Ni+AT526>7I zq}ZIcEl+BLgtNCg1Rya4!5qW`L4O2^xL^Sbd@@&xA~q3!$gMmFAqGZU0uiZEEK|n@ zev1DJ_L^ps71I{Y0`gyh3Eg6&Pc@{r*_KzE!BPg5{p-!a^%ja&Y)?G=nU?hgP$X!w z9=H^H0Qn@*Da?*XuXNAsuHKZ)JU66bp+iU=$B_42TOcKcLtxL(qRX5wO5N5xTSfM= zYa%nJdAg023&}UcRP`o=?6gHj&cE^}ze#S%JJ=;_JZL!{6K@=c{;cGnr~Pz!2V6q{ z;yJO#`9y5UbW(h{PkE`eHsvMj2%)8J|Jb`Zxrf~yma;&>>R6)$BS3M zMp&>N%xJiWPOLa#;1M#&6f!(7T-n1jKq!GT@e_|#nBe}AW^a)O%%lep_BfaC>CyKQ z#WAV$9tGzOz!|`=@;}_?+2!tmQa6lCXpR~XG=W?(!xARpIh!q0Xj`3LAd;v)p~eG7 zLom(^{cj4KN+vn6*E~o?? zfDFBmI$^sOn%HZCaiYPKBa|d=j#os4^wd$(yKU|h)Va>^f{NY((%zDX00Z}dXbgTd z{bHh~&=3K?jvj!=7T7dqa)0pjlZVfLo7VZ$({H@KJ%0TL=F;8ry#@Q60-IZnGX>q& zUn|La%oEuB(&L{(b?FZe_YIyxUr7<(+=jWtfA1u$78$Ma*G zZc+<@lzy*%Mt#rHm)sFIO*mo%>H9nodyhZfZBJ429kP1{OYdWIKclWgzqYC0e z9VTIi+-G~U%{}zO$|Xyqo@Rn66{*Qj`-25VZ-BMMnx8R<*(BFcV1)7-4v(IMc&+gw z|Fal49mQ$E0m&ri-BQ+}Eu8Rxdef9S#&r!&Zr!9{m!j2Fh*}5#UnQLqbQv?b_VV~V z;;>XzJt~Vsg8?ngV#jyKtCmB2(e+Oa;4 zVxax>sOnjK;q)P!)w%=KWl7M%qKvS!uG2*`eB1|!O$AB)GKFvQS&r$+rNYw%G^5ll zG-=?dI+Jx|+hJ@+a>lqFujz3^nkY}lC*Y~1RURSm;RlQTNQn0oR00c{jKVB0r%*M( ztUz2@2l1Jr)p$RGqXv`{eDoBA@60J^_9P8c#TFYCJ;Gm_miTZ*AdMbphA!qkZBGes z{Z>!v=_@>+gD`)YKl@aq7j%@&ekPg`61J_B{Ub>x^v+A0cnW`|c`xV0SaKE>zjfVe z+p*9sagc0KN}?W3Fav7^bHgTZTdoWn3X@0uAyHs^Sqk3mp|dZ{t=}kRTi3yoeTerf zl=&ZazxO-e|H+SkdIP@qc>0Ha`J?au?%(-)f8#&+#l^>8KD&M1u~7&Y7H}d0;2i$Q ziW}Lx9>v{;AJr%oJk)QP&r?|OZhUv#DK$q7CFfjZmVBf>7k8pc0(1>q$)dB~WRbAJ zb!?=GDVdRU>X-Vb$t4oe4_xP7&wc1NM#~SWXB>7%w$q}NH3Ws3fd)YCxq&5|TLpo$ zGHeY=btOtp{B#rv$ts_Xjnb?OY|G@BpqsJf;I;TbcpbFvuJ}gW0tGexl{81S=8<9o zUQzKm6p=n@Cnyuw%C=RbNb$qu_02O)Jw!`vBa&b)x6`~6Km=PsHt3{9I|BH2#HA3$ zX+#c%bjza_rZBcrzsKl~vUO+sNvgdr3q@ z43K_&5MIchW#PLH);zx%Ms0l!(M#&rM83I#g=Oi$W+Jp&y zPlFp@0^M8Vd&E?YW;;{wBD8>BL)}(0j~e5n?JyUst3yg0kGHrYf`IGmHGI$W#l_v- zH6Kc}LoX!tDl39_w^z%X)2APAe)5~k=bL+ma6TMgU!Pvz-81Cl>S87V8Mo^zOUnhT zCG=U4H(PK*kgW>!*)`Ex;W+0e7JT^roNv{VT0JBud5WR~YedbvOj@fD>7we%(&vP< zS+=e8%|jh|0-_Bo*W}hGl7)G4CEt+f6(cA+cbp=pQ*5%(hl{vauBf4i1c)AMEDXhz z0|_~8@_-m|C75?OlSB}G8zHPTOs#oED?5*r8*8XY0iW#|tdyePs0#_;5!VwO`~cpGka&A)DoUVb)?I@?B-t1U6{%7?FfMyj6qVLv$#aosqZFfmAsCU^ zK#rP>mePq>BmyIFX0OYm}vCE5E`$3@U*`9!k%u46 zg~>Q2Fb0Cao?~=+a@IVu<>~@_-Oi(OfpP_FD1dbEfw)5K3F|18W^r}4xG*ngu|{)gJoJ)qgXUJVNnDk9D@`IO1(?jzZ};Bm?#1b6 zhuhygzWd(gtHt*IgP&d>eDRiQ-i<(kSmpz*r+Tc+Jx_~7dxn+HOn_peQbot1sHKaa zHVhD3u>4>-*;wISp}_$|hVYa2%{&KWzAkDP&&X zIL_QRZ4F$P&1alBKg=*s6Cat^lb^xfbIY8-zOVpOk&zD~OI_TB z8zBlP(U@K{lUD&%uit3QK4Ab@i6;*CW=#Mv!(=Mtg&RrG0&^8lHfpQ32G~w7CgaW_ zy%|^ac(E8eHU_`2<0jn8cHK1k0FdloV~RK=xJX^L>iMowN$>GVoewlg>x?L~;$zL( zX@;<9$^V#JyJ0%S;sM$#4}bBZ7#okTaM>m!%B*gv;}g2{Tay_d!G_X8IZ|;@H02PD zoSQPCwZiVu{H5p{RlGBffE2W0R#>zkdB|C zTs3+Yrd6j_k%s=M)=pPaOHriez`p@J0!uV161^*dP4kpoy}O$kW=LK3E*7S zFq=^~kmJKwKzc}s8CfG^{f2uuUb}%3>_j&(2U`wN)D3`QR#N(x{!+S6P$(DGlv#rM zLJdkXK1L_C85F|ZOmoXHw?S-;nc7eDs4HTBLRC8R@nQy?o?9b`UWfmN>P2!cT(WH1 z`RegbU>(EM4tbBPNl{_2%6F7C{RqY4OGTy!4OaN1tmz?&Q8vG`6HS4fZ@pNptS8b- zh+$F0H3cu{4jGX7MB>4!G?a^kX5*<{Q@D9(^v1k|LW@b*Z;v^{+++`mwsva$p>eApuOQ6(MfC0vX2_j<5@(m3==Po zkTAEs)kZEpwFo{Hij@>L0Jr|@|4J}bhPFLX2|t*m#`_gxAx99M$Fm#lAfp_y14C=u z+`zh_zqD8Fr?HG+V3*8*O}vnpHJi+dqH<;MLAEI7LOzWt5IKg1$PP&(PvPR0iH8=Y zz+BPzwEIzQ^#N~ zr?oiLs1-+`0a;wyp#15fsH7B#=*!TwJhQ2z8e!90pshdmr+&dmiLr?1;9wMk=+wPf zoGx#-H&M9`E@@bm%yDZ05`4a(1b&l^!8@l2VV{V`N#z)3Zmq3GBDIfEVh*lDLIS4C zDY`yqNZM$Q1u}`_1do`aAhip~mLaU6e8K9hFP+?uSfg#-W8}bI^EmerW?4neM)*2E z$Z9Ej;CZ**C}m7?!yVD^cC-q<(G3uJFyvOqP@vT_h4bRu&rVll&hmRWZ&LO&bC8@k z;KVy@D`E;5tCov!OJGZ)`-mS-8yfAt_9wGW=;mo9b-z>r7g(bZG1YhMEFU2%0HjMgi^Tr4i-U&;SeL$f)$@ST|~>xaVN!lB$fui>NvHgG)<%(a*@X{gN+ zoj@YmatuVRja`Vh5U)D8fh2W!bNu|n<>PN(|Mx|u>kF@%`+o;59)=m%8IUUGG++6u`v8qp=ci{lUZ?pnR<7DN*;_QD`Uv1>( zlyVVK7Y)>g%ISzpE5prDoh@Vmh?!@b+wh2yI;6P6WeAg4bG0d2!oOA%0k^w5=En_^ zR>rl1FOo$R}jfr^=sm$ z^@u5nqL+9NI}&|V!(yS{!oodz5#4p7nZblKWQvcgW@8JFfsA2gv4SjPF^`d}sglB@ zmSiJfp(xQHk&>K_jyHGPa}?zdD6y|OtuelR`sVE5|F$~{LyA`g3J$7KS6Xu=3WCFw z4(a(4HO$WXd=s9NJ<-f5aGi9^^ej9%xWi0nkJ->Ow{J_aLAcC~2}5#^jS?Ho4PsBh z@bHS68l`DE0~U^C(OzAX2h_pwTPjGo8SLbBwk}23{h-;+dMBqU1Z9Zr+)LCwwm}Vv zHDNb((J0Dwrkj*eLN%Rr@f(Ih8wNR9O~i<;n{X(@WyK5t=XuMHvQUvhpJ{d?{xSst zxEKe=YgF<@X}n9~9>{X>p8^yEX$Asmiz>2-XK~vvQ3T*GXONWh!&nAV6n@V~N!kQm z#nWI*KsDoxh?r~AA zlpJ4*nP69ho+|H4&lUaPcKN7)2^;C`ctxabx;9lLGb~v879PBDhjSPhuzzTts$-Je zc)d8``ia94dVPc;w&`jzhWkbn%lF5>@@Kxu=|K;)c0v6*U$xn+@!~>S zCbjDaf-m;^=@}f|M@Tk@)VUggrk0Ct9_<*A38x>N367N|*i20FX~IeO+#D zvysi5l$Hc;N$eaKL+ni+a_$Mypwxk)l9d8OCwJvkAw8B z;!`c`u!_V)%x|87m)ZGSw^5@4JPqLZ7h5q>Icys%P zq8Vr2oLFg7xdqU>SF5Fv3yCd}(EZ`d<zNKN4Ewa&B$Z~WQWqw3dY7OkWb-YU) zv;LcWw_ZU~0icDnm@AsbWDW|_f9+>E=jni@1=xn@Q%xtoRb{m~kQ^ zw1Kw5JVS!QM`GDyn4+mTMI|Hsh_^8hq`JJT+zK;^D(Fp6B5(?<8E0&C*^GuAv}e~< zOH_&}+8MS|6Cpq`W=&*Ick3mjVG6BB64ZW(7@y+=U^E78m=NWXLhGViOP{SsGI4Ozpz4?0DmFu%w@x)8&UmTf>h>b03H_!Jbp7HzS)$#Ti~=30az4)YU} z-CEoQlZadooN6K>-`WZ)%yg6pS=>06T@3roZjm`+FX6G$z_Mqs7$OuzNM>l{zcRAb z=2XMYTI3#ZawYOK3^F*&|Pc{w^$(Lo*S(VAR9q19J1$5+vEim3eQRv)1R19O!X-!b}!50p}r zqIFt%^90RE*n%xQ95aGxB~DP~iMF6F!V?Vy{Pg$!`XBmeyQFOj2t=?&29j7?BU%{l#KFlI8$vp4wR8s- zikI5hSI{WY?OMc#>rM1yoxrFphbm4H+F3}%agWI@S-EaE-U3rrj3ikH4kpXz>@aqh z8u+R5RG5{Mu6`<~K`~ph;+5wSkuBv+(+|{pmq&GL>T+ZXTZ2sY{C_@hxl_G%L6nHumxH(#oi;X|ZkWx<#95g62t;5j{UL z_sQ(OG}GJ?XI$@)yh-dmBx9@#XbQO}o;I&7&X$abSP_`r^TCD=!67Lc`Urzc*9{1= z*URWurlx|aoFl^=Ky$QzV9S}jWF-VCh;~py;#6*s9x)VQB{@L9@~6IGTxl;4UX#Sa zhe+1I?%z4DlrSqFC5BGz5g6sd(UgSP2o*YR%ef?+G80#2Z9SGe`{lVxC(xUT+POXS zp$VjRcfd&Z8KUw7FqKK(L`hd%-97ak=kG{<%oXyx1;RW0UyG&+0f9atR3P1(Mk39k z62`~t9m8hjRWwumm`SL7K1IFMQ&fvNBaAU?WVd1gF65RPlrxMCV33r8{iW;Jq2_IQ zL_5g06B6^bdnnaPTAQjnR+VZ4sj5X2l?f5%Fgv`ROh|k=x?8UmGJK@EA-YS^AJfgo zrG$WxBhmp_qI!zKHjmc3%{`bQW9Nz9?id=Fpw=^!C{Azhk7>j|Irw7z`ggu``stUz zbsvtt^E;p3z1>oHT<;z~_~1jF1bpxzPJmEWltJPa2WnS%HfTJzuz~Q708FKdgHtZp zpgG+wA?|?OGCU&~6}`$7l(@wE^66@P>CX3%xFrm8>9`Iiq|nNHzclSUVv&%_HQF@e zJgeP2ZEf9!mg&PTy}}6z9~6CzV$7Z=UjYyQwHf`GZ_WWfe!$gwvQ~R{9wo0ih$kW%$U*yAn_9^X&qeSf` z+thJJX&p}|pUe=tB5w$a%P5ElBBR2B`K|$w&!XYp)2(LQTr}xkF%p8v=<`hvRG7r% zNn?q`NS)_yo&*>8zu1v#PsVU42%8C5mDWntw^&V9*H^8t5g+fge3BlP-5Rmp<6=-H zIHgRNOKm~MKvT|mp`_F$*3dLk7}6L#aYg%P%nizlj6?;*{9F^EItHc+HpIA$|D1Xu zUPClY?>WQ9Ev(c}uOF4(K}K3cHDjdC8MYu7o_uf``K%lRx!as?+}j9x7gzM-9hJ?> zv6+SK0You^3R;cI--crHxtsEwETkaY^D)&7ZsJ@2@;83=$*1c(RQ0Z2y;$6BzxDV3 z^Z(;de&etH;@PLKupX8x(bJ1OV#S#l*E473!2YQQ$2J&~^Z?UR#ZGY*MVPp6G4Q}u zsXq~%O(ubS#wR9Qxk3ID$z>!GlT}x*kXko<(MH7WY4x z8Pd4Z{Ri$v9N<#O14H^Rzr}Fy(=&Y{GtE_^naDvQBQ9!bJ0Q;k#DNN&!2!a*5^e49 zFp+D7jzRK8eX3r3nG`VI9ieRK69AaJA5Q@I7|muG2|fV6bI2|r>72O3)R>x;7 zD}D)!x#1jFg!T{#BRYLTc}qOqcD)V!WGiz4G*byglsu@1v;_JS7G#$h@xeYO`pLig zao7!lFsgfOVa8&xwm?i}wzp3tF+3i8+r8)?>}T{p8Gn+J*{#GxdhBJRpGsgqx>O#S zK{E{U0+q3mD)}nQz!)G|v+O!zHHy`|fZ3R^!A}<}R3Qm;hPwkEdb?#4GeV0`;hB>i z!ibD!YqTO4@ag2@Y;}oF00M>=tCM^B;0$`P*XPbFBX8%hApVW~5?3uUqEeMO_v!P+ zC9_x#-+ploE^Wh`6`=-~onN6z%qPD0>hx;!lP|vY56(~C{P+IIA39i^{?_lj`Qi2U zW2FuYAX$Or0hwo|Zoqg0I^D=QS?f=mCf)i$xPvii@ zVw3o!=X9&qmDPap9ahki0kk`YhlU-OE{XvKk)bSV-%TAx%3}!o>F;BNaBh*3N`cBu zA;7@;i#??=dBdWd21RAoUO~2R>@ICvBp4hdbPe~fMjaa@U7f|_-ki#$5?8W8(ZZuk z`vE4zYMsduP_8s*Da0btCssXoT|b8JBbZR|Q{sqPi((6IUtC_4KoPTKmdw;`SK*+T zLK$+2@Nvi&r_}rSe0M;k%u;h-CdIlEnDT}W1xy~dp6t}QDPk%VnST+PXx*-g`AQ89j%rs@La{QR99sdz=XV=)IQQ+QAtyX>Tv zVOKclB`KmK<-+~K&YVRUxhZ{fl;px_-ESb}kgW4OU?bnIhm?k*LuD6(V`CNLVfw?kp_h*9dXpMuSBMY6UHrfA2-1DSsN6yVUL z2Ia7*nojvH{?nE(;ni{qys{pR2OkAM7||LKPZKYH)z9#G*PMNd*y z!k@%E#n@!<=spQ`rp=CvNS57IP~$I(Et?*&WUtoYd|pswSISb;yU=GM9y0(3?X`ye zz4B3HWNu1zM8gcndo#O?_W z&{wn?S|&V%j|B>qN$NebZ*P;5BzzSSiT&|wDIK1o|)R>Oa@ zvmbot@11OZ{~KTX%8U2jzgZuD@rLOIyUq0tonlP@aDanbQ{g}r`8;>^(YUJ`D#@+y zlNrGkbH@TTb8cS{nKTqf&`%qgp`2u0dtTg%tutb<8%OSid3-%0dN0vI-YNxH2<4Gu z10Ev!<%kdDcz|;WCSK6GQgE5M^OM> zK%&1s9;+o74m8a;W@HX4h+bziu(7zAw-HF`9MwP?xnlsJ%%out+O8b!!RJ8}nX*33 z4wFASKE~2a=vs^8%=3XhBakX@ZROFtO3x0yEoc?7Nz$e4JVgRc9`}U?D*=un>pDHE zjCjP=JM6i9&u2khrjdbmtcv)_;v5nl?JPRk07-+fsy= z=h$VXBdaSq{L%|cIigW<0#OE|mOi`uYLwC<>5Eip zLIdJPPW;M1&?h25z{BDN;v~fBjA5~4UY%%q%7s*vyY$YSm}45B95ne&edYxv?y+Ij zBwz$YAP&IwF!Zfj%sEt+6SDE!-}%jN|L~J9Hn)^%UVi1HZ#-;%|JVM%|LO1l`v3ja z!}netUc< zK`3wMxS%PJGt+)Z2{>OD=rh@h6d+~@<5YR;(dHziJ3QobV3zSEG3ftM9+%_cnB?6q<{O*{-Ss?aSv<&Q+eOwWISaebroc!g4+;&8=1#b0oNf= z!%#1d(9C4(uX%BzGOC_2ypypfXfZqH`f)@3h~x_^&u2q6a5iT`1Bfol2B2Z=?uJm{ z;AumvHK~XNefv-`$MT@HQSCD8MC!MiM)+656Gk?2I%!5L1Jf;O3t8kX!m^8((9vbq z$deGe6A41yQMG3_!B$*N77nd+_i!@(TnEw;NI@OO=9)dOJbB0)d)45uHUoFBMX>9|kk4 zFH!J3JqE4J^kh}Ef;AfnqgiYjTpgY?3L7`A_2?sE7)X&x40k4WSyh*LYOLIN&ZOu3 zqWqKvEC4wxI66PRLVm7{FddPM4O4;U9}Qmuewaf*MH&R?;G+~2+HPmOVTLEbMQ*hp zL@$ZPkzrDyO_v7^l0tsRXf3DB3u)-9OgS=iwvJ$a*rQY8NiZkv0L}m%VKg}lrI=dj z461j$W48e8Dd{wAVH#yl%aLlfOyJ6JFo}IzJH7(}a()9>Xuh3vLfXfOS^2zxxk*vz zS{o8s1ZUj9A{2eH@cewx1yxO~UVAlO%mCXEEI1Wmor+}22D z%b#;2jg}qFN(%o_Zc9K_1z*pJJ5u3E=OPQK#lvOi{cy2SE9`1bFzIcIX zmmR+xd*JH&ecJE}lD$b76Wkfpr*L(1gdWDeG!1VU|JH z*tE`a(%XvQNJcieR+UN-RAWTo4E4m2Etn_};fYkK&c(5&)JQ>&KWo(Fau;0s^gWnSQyV4#j__Ga^Q2*2E-q z<2I_^24pO98WVEuC>9GSrer7$GkK78^B`2(I6P$VcEdO*eswPj06#yXC1wXJ!!gip zuG~rA&qQ_j8e@HX;8W;UoCHb(FbLZe({Z~>q+Krqd4p3V)NK+2hZW$)n&RV{hsyO} zLK&%t1FP1ok{PZ5l=^%LxKKma!O@03m?ClW*l^G&Lhcdshe9yd%CaelBiCP}iSpc5 z_iZJv{$7`xL;Fk}hykGd9#MHWggE|lfAT9LbImjkBCSyLEGZ`t&F1@uo2RF1A_njT3!@HyI>*+4ixl``_HM&`&WMAKPA;GxqbVv-?>CbI z5;@&!h6J}D2oi^IEU7y2kVxKXm6!EK&54YZW6lFNX^=X{AH~Rd#*KFsM`4?qz1dxP zu)O#X%w*%d(0e>M&kId!{hTZxk`E{LG=SLU<9VY%$X=J*iQ#!ZCi-*2hGWNGMB2LE zZC)=?qf!RoNQpOzN*jt1Sg@<*C5Qx%T{n123Ye~%bqzTj>9vddacmU#h7C?zRvEMS zCO$^c0;mkiwxON%UZD?k7vHY$uK7&ZZBYF#Ry47HZvXC%p%xcPfU{}{Dyl!Ud)Qn% z^p|$F$2*$&OxP0a$5;Rdu^}#AU81;HW+~vRvw1p3PSK!EmrJ+gXK%mwr)Rt0|LUug zuYBc$yW6Lqe*BY3O3 z%~<1Ldi?kf%QQAl+r7ZgXOcrzvltedd7ZX}82kAvLwu30Y~#wOXwl)q9Y_YFqWm<~IQMHI})33j#0 zdshmL*)Rl5+S4dgXVLMqnW|=&JX$Un);`Id?$rD#0($Uq%Zr!J862j~v z*}D0G&~!Pr-`nv{EkpTXa){I_jNm2YNE}JM%p4f2V$)30JF|u& zGf`f~_qTJ>+oVpk-R$TQ6RgudNBr$vw9SYJn~$JAo*p~|#eOK!Rr$8olqz|Id{_(; z9b^Y-Qk>n^I48^9Lm;!&2H7>6o2WoEd5aqqG>U`FHB6j6t06oSL*M!<7WS;RHT5jh zB|?vlWVfnUug`^;5J571Bzsz^NlSTbHmi`z4*K!jC;rh+ zC7T!1CzU;o>GdSFK9^$K)f*(I^85GVXaY+;e|9)B!$ z@N<||7clq&j0n&i%;!{c>q{z0JN&5`LF^%=+dM*`ciB6ESa>`}H;(sm;;G@BR-YlM z*;sm^h{i3SrE6qva<{f}qGga1?e$UO0)kSMc)M`$<=w{SXv608w1UV8dljG>i84wY zBrwE-3mdnE>a_&8YvyxnB^sNk^pjOcWBJO*60^K~dKIBvdI9#z?gvY!U2=M{va0B$ zR5H42Y`80|oZ0c=XaC(FZ3?F%X53iQupA_V=XEO{o}m}T=DfRmONjP(^unxNnw4VD zF!}AnVzDn?8Zc5^vARd{K_qsJlFd>Hx8;`UtUfSe4vNxW$X&Ny2q|U;G?OiHut>Ka z3{_5O2(vB-r&b;0$WF?-V7r2#@$yapwI_+K#G%_to5!$uNrRqQEhbAVVLg)dk96Ph4xm^;*L5}8;-0qNLW_Mx=IhanqeLA|}Sy9=B zoz78f+O09El^~0^B6|<0n<%NtX=dxwH$;r=Xka&=&vkovdR5I)9<5rtHk}-9Z(koS zAd8cTkWpXXZ9Y9(p}h`yZFTx^w7Gc$Jal?^b$sv&eQ9_pR!mPWH|s5hRJlD*Kw0d= z9UV@Lj^At^5E*iE=RHlQE0fN(LVaTU_>t%1FFqq4q6?3+bq<9b{m;e4;nQ~W=@&=0 z=fAN0;E%7q{;&UR_tB@f+uOUFv&G%}@4x@G7cam3(MMnX%Gd6YBH`N6RD^15mxnAx z%4KQgh`6*M!-%v9rE~{{4Y|54k&?1T>jQ+8&4ldaB;dS*Ed!pD;Lej$6q>NgC+K<6 z_{2gT4v;^RpX-EKJUXwm(@LU@$NU0{`r-5X)@jv}W9Y$2ur5-&{ye(6=Z;8x=Zy4@3s8a7E9`~Q*v=0(fC}NTPi;wfq=PKT)^f%+<=f%U zp~4f@PlvfC1=kaCfu^+=9m>7q+Bsg_7k}rm zb4M^kF@8oEI!A>yHMAmI0s{gM_uz^vmr^%nMMP~@m@8B+6cOEWLAVo+5GR^{B6%?G z9LT{Es6mbYX7dntg6i z67&fK8b=G6>KSoJ;;|7^*ks=n#*e`d{H-i(hffs_CWjv{JKC9qBzyo{RtnM3W{2A{ zj2Y=f;u-veW(hfv(8g1Oz&i1a+*$qM?GRQNy%XfH*Wfm+s2no`p?zb6Kku-5wq&zu zXrr2{xR$(2cxtH)JD?lPL@~aH2Bg7$w@*p>q)X2Oy{#{2_O1?2Ggf zor!$8`UOtBG|G(YVr1Q)NLG7^2i%7FjQrFiTn|@;@`k+00yesMe)jq6pMLuK)6YKR z6V4Vd7nd*Izc_vS)9?N4NB{KWfA)8m2S0taI6L0maM0H97dSD<)hVBYQ-FF;0Aynk z3j!*pVmAC!z!iIO4eP`s#d&_Qg@6f~3@yPvm-VF*J5F1nXN$ zwYe*Vn+z!Rr@O<2?fAA(^NAQ8nPF-U_zgT6KvbO_I$PAje6qIUf!64G)pr(WfeXw% zaWEIl4>dSPTdFq-OvloLU#p-cPQ?j890wYV7SuX0RHWZ5?(+$#9QO|eKB3CUO^qMN zD)Zr`scKRC)zoHzHdsYebIzBj9qI^#M8EI=66~O! zLn6(!!C-^yu&#{`W&^RNH$uDA@t^;*zo0a+kS6P)l#WF{?b$*}2LW~&+xT*mIRb9N zaCHQkLke*PLqpVk4m5)&M*leIy9iN+FqG1>TP_%887c4K172JXI%>rR?DptT<`de7 zfG#eoakhCt4qJL07CX3ol}IeiBbP|ECzg!9RXB`eK=eajD~FS9x#W!t`_xEjcFyW_ zKD;2R^5dp!)VJ;&9|{}|@Vk?7CM@;@Uzx~`J3s^xJXW!vhusF0tP(zJYc1Tk8iS%` z6sX5`3Ei0$$>(5>F8ghL`_?9HRjXsQ!N3qKl|XcNdmB|f^=^YtX`a^63@0djl94Yn z&5xVi7u2%|{CIL~>D%i!#G&VBFP~2?xY+yqH;BODcW&347nkp`P*~d#pDS{~yT@yK zc}|xXWUhA)JF+6hubvNYDb+dr&tznK!&V?W1{yiROr3Lr_&5SyyA-iXZ|-*AzW(X2 z-tRvB;G?T=eD&*`i`TE8KKt~u*Pnm>lOOzebNvP4V9S?qk8rgk!CjL!c*F?h)jq-9 z5r$L!v9sLrjz+RPUP(}#D6WxzT5yT+z~R)h#!bV<+wmUZj`ME=6fR9TX`GP^xMW9c z2(SAoZYF(`Y$SS@P?27qUtX?mZm*}b1SfI^lvg9Mw0oIDLWZ`! zcvAe>s5~+%C^Try{lMtW5eZcfPRB)O=F3Z4wfvI(ivd8>&9_Y3Y)F%U?9K86mQNKH z0UXG1s$wXvBk`hHMe0Ox>lRij=Q-xbl38_ySU#Q@&Kn=-zR6bUL85*5`BN$?i|Cr7 zg*OdeuB*6+VjuECEPGjgGhb*pEj3q(v0XNgDw$(xvvRA8DTabA%{pAdIY}aU`Hy@6 zc^kc99GZG8tiM#e)6Z}vM8r{TruZYbd4lFVsW65WArc4cLB=ROlkhI<*|L9lh;kV$ z*;oUu)DtGx%Y>^cw(=G1H17plOM+IT(;hb}`e_`8ewX_p3YpH4s&$fGjKijJOH4ka zN9zjIJzE9pSZu4a7x{r0jRxn)-vMyG?WRATWi z!X7yhgb`SqLOPFz=!%$tlbR!4iCoJJw{E%&wunUe*5qLW0D;GC69^dPHtCW0<05G@90DjJg$?0|4}npyAJhbn3fG|L z(;DrSO{O5_#Fey3K}=HBY%C| zafJE313R0zfzxBr$Zijw1;O|-4BzSTD~_d^3LRPpJoEM4?(?(d6*tBvgs#hvxeYL~ zXUZ*9+>D}#^>$P}c1H~dP(KZq!xeL6mN-ONPdGtKzY1BW#%mYD!vT>WK-DRka$q%v zW@D=7l)F>1|Fd&o0J~Z4=$1#}+B8E+MX5IeS#K(8Fhy%s1j+{AXSBPgHA_a1i2Ob9 zd1!s0h)ykoN5=lW0L*&W-sUiyIAH@P{eBEcGNiVhvEW`%mU^JF|1&{sY=mx{d zL@zqv*rhBi{%gVH+x7N*#W$)_Kx9c#f!%+)T9Rb}=RWLij?I2pWjxe}_M}+M<0XI! zoVdHq_7g~CvoDlML{f}{j_fq5Xd2SR{o`hR%{7}!5ud%e4h|%1P%GnUqpQ3pnP;T@ zoAu)L_Jg<2-+1*)f9&Gxe{_Ag{OtAmarfqq&9pkXdb#|CSMUA7U;bsX-^#JpG#vc4 z+gM+KIxhkNuz$p?H?Bv3UC=Tdz9t|w1Hcu~09hjbVO*oP7143J$bds4I*OP0PY%`8 z8tOJ0&)6Uf6D$DFAn_(P@HFZ5gN_Nmd_J>o`9J2^hww znysumfRU;Vu$9f3;~~jOifO(t?j$LsYbtJ3Q%5vZUGl~c+0iBr6fmBkcAAGQZ^@0z z8-Etp>*q|$KIOk)A&!LDgQ1oC)lZJu>U$j%NMo8IoqJo6LmLCFOx3bycu`z3TV3j& z@E9PLpsSM^wmUgk6^X=nIJ4_pW(hmpNYj?s!8nmzyCc0VcA<9V3>$zzv?Ro_r{AUt ziLx2^KiRb!I+FIr8L%MY!3JR})+of>SC}a}qSXuL7~-%)&h2O3vv-@3PLzhYMlqtR z?d|u+B!^U3HDs}?ByS!N2AuV;2rFv9HL&dTy$%9uji?zfJ`wY3-JYnMsi7ew8KvqH zq~utX?7rqmCcdbTL6S{y(sYD>DB>?*Iz!MTWYHZIAWC$Te$>1M||XGGYjFCrS2>e32v@nuRS(PL>dtok<#1Ka&LqOOV__CgYMyu8$*4hmf1f z4oY!N-IzkaZm?M~RyD0iS7s`YLrxMfwnchcz4+v&sarJWAm2IRsy-_MU+&lG7a9Rl zGIf@RRVH=f>G|f(&5u9%sDR+6Na_#&!NT z88PXxZT=!N?-)EY(ZgD`92*72ddSupjXkPkx?xE@_fgJ7LJlJLh6L5O=h80qCQ)Y1+ZB#D{jX~OguGaLQa>Pj0kyuaG}Wo zozaG8m&&D~0po=X#5XdOq*aq={TUeg%<(Afp4mZAPwc$Xbc%PoL+Unn={j_Ly7jE{gXeAt#HI) zp}k{rB^c=}e1wLUR;NT7<*{h+m=&UnIlKVU0%pPG&{FIRpKc|H(9mJlVXM~;l=XmN zX*iYplO>4=&<-5KtReVGg~5m0HJk+NOw`~U6v$Ou8ldCKw4MNzon3`BLq`{|9?g#2a$KPIHMU#wH1ICq&V=_Xa%t}=O8dVk7w2K z<$U2j1-`6Q5@yBas5KPJa(2XcdYNa$JdW5IND441u3Vb&)4vfrpNrR+O7g0u)1?H} zLN7sHmgyWv4B=wxZp5kVHX;InWIU?UH7fD*&7?QDx9uY-2FqbF$mwLn#Ot?eX&ztQ z-(4I&Us|lxL-ACts;F>v3^SiZR`q(;ZgD}GmN&g&_AgfpV*s>ix87V{EjQ>|GNzX- zOJWsjdw}h@!TLKm5EW*gwvXGhi}lm;i`&KS#UJ_b7yn0J{)Jz9dVclU?eovRczgf$ z)61(B_xQE1e(A#xzxvVFJ`A1EI>U?C7Ag*e^aukB*_7IM_gG3o7&!PMSMM?1jIfAi z{xAlIec1Qpb{qHEFiT4zR8LT{7u~liLCiO@!gz%`kM!bO3V*N-us9(u7LO3_J3rs9 z5%yGSkEP=^Movdu6)7O$%V<(-TiM&y!oBsn_pQaqU8vC?O8o;=eJ6d&n=!Dd{*4(F z1btT%;r`m3GxJC+Tf1SVS@;g^V?o-gBhlv{k%jAQ>T}7=!Ie(V(V^<5ekvVC0tH4D zh*0=hh``bS+s<-^`AW&S+;dK5*Wo7sna?t3Wx5(TC{jjCNNIF+Q+kGWh={!o)f4FC81X!^3gHLiCbM?I zE65_s?iH1Kl%f`mUZQtIRc?bfjc>$)$Q#QCN>))yN~Cj&SzepnI+3nyrZW%Ks#$Op z#F~Y@$I}KNduSuP9K?--zA-RwWl0 zq^H|88Xbm=eC_l}sKQ_*=G^ZEs;&{OjR9ViFvo>7SA)k@BI_r!X5vy-FRlBtn4C+y#)y~*CX5~RH9G005HgxqcV4rK`zd^mnp#MZb=o1~3E zC88m8!$;P7qP_4oKpL$$9v*U;UprnpzzsOrgqt>Ez z_wbBzgSBBc8*bDHlyDDE;22n^Cn#D)qcWJ4t&&o}QMrZ|rl?&fXfh{eGJ$v$Y&Z5`ZrJ~ke$ zcBg#(`sOp%992koyFAtFo43mqUibO!wK?b{H(0VQi_u_e#j>&EOfhqki~3^tH)?Kg z?hbDrSG&i{$D=>E`s)Aq)i?eJi}x3wLl8&$`u3Lnw7P^gaQxx>?_-!=zPCDG4XfR7 zT`ybm#)cv9;CpGf+idSwh%Px(uqsvdV#u3157DDW6j>9Pmi6@CctdCbpG-Q7GTtc8 z4X|WjK{85Y*#B=r$Mk$0XTop<%^a=w_@A2q^RXwZcY6Uf#rQ zAyxaO7$Biy8&awo@h||ddA9|P;Cw6FI@p+UM{x80|328DL_Z{EF+Gt`fSRg*?-T@taFWFtnhyiJarfeZ+Qv?z1<730V@H+n8JXg$u zh0+RE=4M`e6LzF9GG$ozAQW#Dd!l$WU#%zr4?i9`A6OA8WLCA)!b(Rs2nzsw!nwv9P3Q)1$%Zl&&Rkd@ zv54kgXJ`;#_l#o8eNZ7kAU0!ttYg!Fv%yGgU%&pmi6O8kIA3sYFF*Y9i?gTOpML8* zclSU1$?yK-hqvECrFn6*y#y(@nK=$ogG_|oWJ>8N#Yh~btUg@TJRu94qEb4xjj=&$ z(Qn-|qz8i~TQBD9C~$8rE)BS>jhYGlPl+enb4KTII@^n%V)JCxs(Sp(@+N(_vq6Akb9cLbYx2Arc~cbKJ6~#ryER@&^}?2m?;a0+0iN{E4&Mwif*i#}`a-Ia>1goZo~;=CGeC zSc6!i{?FLWX$vwcWGX!&p2sBdV#LQsrZQ`pbB=^G$UdRxYk=Z(11Z-y`!_%acXT(N zfHA^SMT3#-1#k;_Mkdk`cw;?GJ0-q|p{g`SpLYk2jK+Ent$jwc2YB8sS%$?B`*b~! ztf1*Pmm!p7Rm3oHG8SAsM6S<%_1^$iU}xjSJ#rE-eX*ooHV`qQb&{k7EQYc8HfM7T z2^0$m$OWvFxeyM8plJp6bo^4FEyZT&}vh_cF4WanUbgE zfQJxbY6Ia{z<#uPQJf}tgsH=cUF;akdcM@xoW8UH0KdOQCQ&qx@rXQlP*>cn#ezm> zLdUj~$wN!2lJ;^+p;VuC7`1A;y!X^Pq!-Gyzz(qumajiQp<(Os2wiD{&b!wdeqGJe z>53W^2OFJh#mFVX;4k6un5JXi*CtOYJ3y~fA)A_!*Y>oal*M158a-}qDbFBTO&I>T zxe=wKpddemrvx~5OhoZwwKOcV*9q7dluxjV81bHxBCIY9I2k-T(+8_l`urb{35M8| zJoDY{?&N|I@f68Cx>Ui8=$a!=LD1M@`E++90K-rSL>a7%(A9=+cGU-I9>%>+YqKuK z15{uX?3bNm>*@As@%HiZv-R@f z)r*U(i;I`%jNAFM3l^O!weHUnQ@R5Qn}9!2UY5{zCUkWADP6R zf_FQ5hW^Pvi-A_6uSjD{A<}&kJYncUM^gS-bLlLQ;Jr^+-!!Os!ooD9bkWR zOHYvKk=_eR?1GA?Hk!oRlALXvU;!IDr@%j#i|gwvV{k0lQsGv=5W5`9RZHaRjte!HaKKKD=+ zOry)n_`Q+Rz%BS6jF5^=Y-%~+8fDlpG{w{c1PsFX>=x19=A4Qd-6ll2I6&!vA{&rMu^~mLW7vq)R&mpi$U|I!0DmvdhxdaYpBW#UM4I z$lR{nVwAmL*|8sp=J3lC9Pr6EZ?~Y=b}*)mB2$qSS%}{gzxyW!% zBrs}A-$=lsIXirdjp7tKouqV^3ebez>`$pbL@2C70i>0qS?gl@^Rs{P^!7DP(-#bZK%2K5fE_9D9(_uhd1_>bB%0K4vG(+q ztKO$cQHM(9+lGgj-e@H3%qDx0&cc@Z=TC^BGn^D&$tX0x~fm2nnv zgIT>bK2Po=W&s-)!kZ$zaxKmSxd&yy93CHS@J2{m#YF6n4G z%$7O?GZb;!+e5XR!^5J*Tg6~2?ylXhI((H3y80~@N@K$ZB39+zB?IXP-D1Y|3>@)k zsXZX4=%lqvyt8qkx~Ral3@m2G@lTod&v(kS+;eUo7R);o8?{x)NGm#)SWZb<4FPA*XCDbU z9w1b9jjcF6U2#Vwy7#;y{jKJv-9>>_ar83-&mg37#zJp+tob>Ef)r($$##Ji@zlHe`n zD*on^l=;p#le!IoZhO1N=3*R&(V`h0>Z?=jg1O^FM8!(5BsK}pTa8Sbr2v!b#`P^q zmdv~)YXpPXL&`FlOMG2~N%F6gk+3yot`$m0YDGqBW3V)2B63q$8T4psA`(HI^5dZ^ zGjy}@Eo?PoZcxv6vW-a$b72Z)1l$lZPLyfKQ1zPnVnPB)wr-82SuCno zCahvoo&&ZwKPUXNUC($|UnnjiAT1K3QV)H~aUk9r z&jOz-`VE0X4G0t05Gg4SEQ@O;;v!!p#WI!;`{>#V@=X&ZD5HWQ_#5G7hgjo}tJkis z3=Or;(g}uMt}~c0k!WMDtV0~V*-_XfFiH(h20&b41EZX9UFg>Lftj!d#P$}ISX*9J z_&}}0r$f7({Zo;y-o+Em`amlY>Zl-)@swNj%lnd)baej&Aaa`X7< z`b@Gw@|m1#D~ye%8Mc6>$x3W89VtoJz3V)(2~g-d1XJ)q6yv&qjccLLGNup+?Dq9f zK7QK%(na5`u ztMZ0Ob6$rOH3BV$+=8ifMte{gRAB66w&OYn>iG>;#?vsIF0Fd9I5+k<$Axf@R=S!$ zqkm{ue2B^5CN?6}EiZSRqDk~1SG0^# zasHl9?TNS+PHhwEj!e|;1Uy9O3b2RtLEj}4PlPGjGGGHv4?j!4_5<}9(@M3Xz+uGC zAX*Sii+36T!Hj;aTUK#{;4BSHIuOIrWCx{*rO1mm#UdS7$e!RE0SHNSG>n`XS{)&c z(TF12pG}*)Wd)O{Ho6qH z85|wnG@&8!KSetJ!Wh)u*7J#3}`S}>vmTxA~v&vwo>{#6)*6=Hxnp|;3 zI{f1Jvk?VUy4Q88mEy>8gBt;JV&N*S5uf*^9Gj(y%y>4r6HVzmWhPmiRRkQ*3DZTM zETEeCtJ|^;Dse<0cICMB!HsDW7jE0Ma;YQOUzx zhV)2-L7*3n^FSTV0rd;w6#E1HD0!3!uF;s>DXLU*%=L9Kilm=oPxR=BSx_ZQhIrOCBLZ4JX~5+u$n2$CC0A)|G&IKM6O?z)&hBywN3pr?n7iW2qFAy%BLP^8H=hkc-bhr*jGyng%f^%p<7+kXGx{`TbT=IVSR8$wR^MC)K@ zgHExF_gQxZ3!!`BUFXOa&5H`lsgThlH*+3l${ngtxe+J?oj;?&;UtOKMIx^H6bFp~ zn^C`^me;5PiOD?2q8a<%!)A&>3u`8srB>CfmFZwBe?_IWJRv_zLtcAcB zHa?W742Z1I7G0Snh@`+HG?%j`#o>hr0lBkwX5w-v2S>Y`TN-gV<-|&gG%4Q$R^d=D z!DqYx@kQ*tV|s(4??7;Nk_LW6ktI1d&U|I-S%@jxez-9OlBAClcdr|}8#L1s?XWtJ z2sDpcks%4Vs_rn+dNgZdRzudrU7DMfx1jMR(*b^*OdTnb7Ej42KxYn~R*E}0c7oO| zDsjSxkgq%V0^IDI>46}`;-HgJQ>Wo|Q+?wV8fVoq*_9OIeYkUwwUh6-cb;)h?&tsX zkJIA<)M-T-rUR8Go6tlq9Q_V!!TFTNR%|qMR&)!_qA*AV4w>R8n;kcEu{Z%s*DmWQ zR#A&7`<;=mvcy!_j*nMVckGg#rscK{g$v%U94HAYeJ7OpvE9zNhe^}GAQU**Bb?;K zt}KBQYM>X4LptV_1PE?znID9NXdwt4)?1%FMacjdlOjQ z-&A};HsndM9E5eA2V)&#K`Z6LnYRFaxS zb;F_iWxsSA#7pY9xbbXdlv!dMU{qY|@;;V5?vgMXc&bBowOG0Y_7c!KmE8GEH>Xmn zy076B=O^479cBrF(L|E63se~s#fBW4&Pg$q3HtU~Rp&5gn?E*}$vNc%tUQ+!EBW52 zP2J1WG$=KFN&oG|8wgaW_*dG6oFrx3ad<`*6!gLXWAc92VL$WSlzlL#X}RbBTF46O z&k>pM@GTBYj&n_jWo(B*CO>oaIB~XgiFFAr7cMlCLRm_olx=LeqH$HxX%o2?+{@RZHkQ@--(u+k z=KW$ErOsbyXbRx!Y1BFwNrR0#ZFjz^F{3@5ifOIlYzLn#!eDT2r22C8Zl_kGN_Mn< z<1ML96T=m<2{PfKyBNcH_Nnl)k{qBF4T9(jZSU&U>QNb3>!3Z$2BzZa>7mPIw8SQ6 zGsAQRL~yjR43Ter2V(lGX2GlhVY`&V(J}no@B^^=hfjx3aQS5vwYmMI*6!w zC}q?;0_3LR%ywgK0a_86-FEwU`(}OnhW}o_{_)-IC$yR!AKwz2&>u@GafTaFYFUvs zvm=o`umSNr3@%{uo^1_Y@5Yq-#Wmpd%RVHYu!9|})*~TpU^5tu+Ej2Xw}j&y^JV$Ld z`uSI4ppJ?A#yMar0JVXFm$c5hQIvjk?zHc*lIZbx{MmSq(Df`nTmbOk6Cv4QT*6*Z;2l8&x3{~e72ILthO@)g z%*R4b+&ZcWY6#-)&32Q$MTp9ub2zm+7l&bU|4F!OR%~%1V`O(6sU=OtWMiC;N2kib zZmEZpJ7xVb0Vpmzb&_G<>NnPsaL8I)bhrA*MMAcf5(I4pEAs%^AU$X~i8an>1$LX8 z%gZxmAs@D@1%U-y8z!2a+xK?}F+0_T&o7vy6M?lNj8n6bi!xNlkP&enU6HkbT^S)+ z^l^lRCs-ObJC@KH!^sQn!;&xpt)`WcZNJ}#58yV?>-(IN-k;bgVm+%3Rt zs2fS_E!x`M7zt}o5`!YdxqZt+vhK6>b2%PtJVfnWW}Xw3uO{$Fs6|w82i~YcgV+7U zJ?Fs<3D`D-#{0gsi6P2{&0`#3CXK$PZ=$jQa?O^_ADu8Nfmog}4wr-#ZD)qvIZv~2Eymu4XbUQZS$*dvsNNuRG6 zNcJ79MNU$a(B>Q&Pk0nP;NY3|yH({;_SyW~oQJT$U}_3dW(oQXbCGHj#)vkhr~vJS z%cUq$=5FU9`!)kCrw4kjY8P^j7qOr*lSJ}qK8l+>zBYKwE-iwJVR7k9RYgmdg+=Oe zk~xtJZc)q#ON-D_duv`qSHrUK>S&}y=pk+6!wss!4TS>=k>dE<#OI|{weFJymK}qW zLlps$Rwz2VZ?fZdM3B2#%POpBg;r%I3_@h{)mPGF4?}~xqe)sMFOzdLt1A%8Z>fc; zbEwa@xMrZ~Dq@CQym4t^8$J=W^hoUmvh>zfLd0i^Cq}U_=CpMmB}5|m?STZgc+)G5 zT_!*Y|DTRKkr?+w+S&zx>><-UuV9}s?pco>o(Xw*HH`{#G6CJk#EZ zh;&*(y`UG~cNkeuSNU*Vmw=N^zZ0+P9(X8iNF^mlx5?U^yTcD8U#l)zYn_p%Rm`glk$TF5dRO3a<0M&BkZ1JF<$AakF>`Gg6eHD}-KeAv9jAB+LR)9r=wG=_ z-I9~PybMA}^Mzyxs$wU6YFzGsNIz%vkOmUA;Xo8WtjZrYIG|A0jXg;bqAtSPG9O^e zBEV+Zp_tUu6vk}K-M&?+k!DZ%n#vod;$`w=h*PyODgzO)t#*4|X719YxZKwzE4b0= zT1=`n41J&}Z>dVSFPvHL^_+M7B263g6Jt#;CO@(3MF7c;MpeC5m~5Q7eb#V>j*+@y zZa``O*(G-au&&fD8p`x+>dDBdsUaZ%|FFHgp-M9?9pO48 z_69>JGsRmx^Ndy<^FL>hj z)mo43{Sm@@7bg%ai56(ww!zl=h7=`sCD4Qe?g_9K900!J`RT@SqnKITnVfEEzQ$@t za6h(?wGH-J^q63hi7DVrg5sP|8?GEGKlsZKAP9g!Y{0Q7mqg6GQ3OPe3m5L#Fjw2L z&sZ$QC2;&`_Si*?OC>C5+oDhayZh+u1snwea~j0Zy>X_GlK}1?@R{f}fmR&T06##$ zzdpw05TM|z;4?lf7nfWKnL_pe+XuItK2fZ2fD3B$#OGBfZ5r`zNLK+aCH$HX!!hU3xjoSzV za#e@OVa=pWPPnZKOyL4Nv@9>d89tp7oOWE@yFp!8{nphZ=Q;o0^)jxF<$#J9Am#KTvRL95gLppt(toQn-pUe|SS>oG_~}j^YFH zij-8eh-9Knrwq6lX*7k-dq`C977thU@;<(~xn9v?y}N}=LSS)z4xQ@&wZQAwpRp?2 zJ6rsunB7rWv}R`o#9YxF(dd~vOnWE6j83TyCo($2@Y$y}@|QZJfTw%ldxSF`DXJ-P z+ttG3zR`R%{H)V%F+fLW{xs%ee1<~uMhpf|hWx?T)t73L$^mGYW;lum&tS`#q5o!* z?LJiru%aVBU@fLux6)4odL;_wzye@~?Qf2lMet*D@6&4&MuOQe5Gc^%TO1l-*FZiX zLz!=j|6x9Fs9>(ZzYXf#a7dH+MOJ%9Kp}U+S0 zjsLRMUE;oxp9D_$mqJpmal-XI8uYG^J4LH-`ErXIh>Sq{ksE%Lf^An36m6+zZ>X@s zBQX-{)?ADIwfi}>Lh8#kTwGXHRO`lGMBcZ$)~rd0YfmQzbAUtJn`Kc+Uk> zu(}C<-5@)P5aJ|9mS$#eTi;C2$SdbIU23&FY~lI6yM?qLa{a*C_pvg&I>*c0hpz zx9+-93OFaGwew5GHNg*3L>v6T9emL;auG&;LwOVcfRn@=5u80dA$t;78z;)S6K(sj zlMp#Q4nAGc6jxkz5894VnEQ*R8bE^{x3iF(K&HPFT#zwNJ3{h5vZ;+3OhM^(Qg)sj zF|IL$rBTz=59Z&ET)5-aHa>vReoX;ly28CCvsHARpo&JI(IN;rEB=J=4Lc3?hyjb9 z&c*I5`XJ67chNXb1sQn)Jj&00?T^|djHe_(vw4Om0R2Ujl{GT#sl;nHdyxvQ9CizU zbUCs{CEc6t8<4HDqZjmM8@>w(ZE08}FLK@GSMqTyN+8i`83TWdNRR4yXazk#Z62w~ zvt)!_AO`g6A5*dc_OJnj$nWfIeRJ1%9f07Cm|rz4T8z1d=>{~eWS#`G9v*KlmySMA zT3Iyfiicsn%!303tfUG+qi!HkzrVnc5kMAQWWbHai2=$)R;aw)QYc z{*py1HbCeD&-|2XIHVm|D2j{Dxj}eJjwd)%@@^NRjVf93fNnG2G-C_2idQ|p z^$t~MAc}YL9Gim(=kbYYWx#MTHJ-M+yIY)4jBJO-!_KaO4!`LgN;OkU%-TJ0f(w>3;+9husL3iq}-9@E}$7muX@ z;(wRT(ijVAG-+U?3X?NMj9_H>P@7}V3EfLt@(j6Zh8N-jRzrM2aX})yr3FF6rYHHu z@dsm7$6xkGn-?E2%d|I7STc|4I~VKgbDuh|QcMFZBM?I^oI=!&d3Aq@DcoPO{(C~P z{$H@6D=G8NuV>(;7bv%CG-6_`_Rmm4(k{|TrY{f?#Hb>Ey+DxHsr%fQQM&h3h4OB7 z&rVR{QUsyT>D5)}r*k#^GJCpDWpXV3TvSTxMZx7*Wvju&a%LE8%KdwO{=S^9&UOE> zvWC5suEa;srOX9XbtA!26Mo8B-g}qE@21&DzdJ!`lWUV869_R7DH|RyyMM&$#!fKT zPv(IdkM6OiSMKv(Mr9aGO2vpND$xw8~Rj$#(%+`^szM zTMJjb^!>h=wR^WS`<%U}^v4qdDOuDNJAm1;8TapWNiTJN!-op~8L~|*+pu4^Ls48; zua&4iGC_$85=~^T%5e0NOtMhGp9ln6$n$=Sz$)bFdHG~g@nUsXsSlXoX1;y0i$QkU z=l*y9PzvAXKzSK$JRSTjpfZF-ke$0gBfoZ>z44M!{(xk&o-X~KJ*`RA?ha;IQ$XAo zcP1~LDAth9kkEgL1x_j1m$*b$30;4WPnvo~1hz3-ud&&V{|_b1>Cq17_Qsio18+=n zp`TC`=+JbzdJ;1U0q~&qB(#y<-I@p%RiHzAihV=(JO72>AW}Ov1EW5{O=iP*sC%9k zFp(SY%y>vRYyYA>jHIVVb&f6CIy61aVhuMZACBJSEY5r&#abJ8rqoUm{NcvCpn9;k zfX$;9e#UV#l7Y4~+Z)5hjfBb;}j;Zw&TqPQQ ztP%7OC%23r@9;Ndp2rJAUmUd9j&hH^)0!roo$9jEOF&a_EAncHx45#z?+|JED?E<--udO$I5&f|moZ#jb3fQXUb| zgBd$b@Sq%TYHIexE!&J{J9RbjfuA|7{Ok3v|FLQW)Dk_7x-ey=m$F1l{F|(44+jOQ zJE9hf@%IQsE*v1DybTYskxZy3!Seus*t~r{wqcu~2j97c8G8=J_`(B7v(p0+eu!cknq0t3zCfPkz*BB7iNtV+oYWLk11 z$2sADOa>~qYBWmPLOC0(?23K*u)eWfMM^nnxf_D(m*o{srjIVIi#MaxlJu^D;kneU z;#c=iYf}ZmC-s0KP%kJ9>m1SEDrG^~`@yh=Jxz6!rWO*9g(HmVx?lHDPf1XySW*BN z#E}Sw7X`tpIKr@8-3}#Qd1S=7Xdc`@-7-l8ut%M4fX91iZcFZzhivCPtH(@Px)yj= z=zkxc-ytn&p9ABR5b`;qVfOI(f@R!Xe~KQ`#np$KyJs~3ZxB6jocJRW#!#`~eZ$O$ zP?qovu{lctVnpT6mYGs2c07TQag1@XQ6k|^3L?{|V<3X*5#J)4r%#Tu%$?^);tD_` zA#RY1!UuXhDcx37XbgGh|HjUH;y4F3P{sr-LKtd8dpG+#W_139_vqy6^7#1={mr09 z6A#(%ub0*;I$C4?o;eAFF%kER^Wr)UV;rBpXpg5pnTYLa2}4Fglc3d+3ufRn_#Mq zPN5&)?=lw0?IW6Q(!ecGYyf2RSHPj0ZxXB4d>+a^fSRaofDN~UP-31=G$AQg2o=SR zj{OlLmeAmb;9aIOYjC1`GvCYg7o*#M(F6CU%9A~%m)w4 znk=sox>w@F7BgZFc?jS!r!Z)%jOMJ`V5I9yA_LK5S80)eA~Q;vdtB{%y2CC1*mHtU zIX=4L-mQS~b|F?f+r>$rC9ZIxa2yQFp3v}<=VS~ZbY^d|kdG~>%|9{2b;q&#*c%nG zk=5b(oL%x$s50CRm=3LEf?4ez@bs7->=i|>2!oKDK?OqXZ)H&Lp>Q7@tq@ftz_2{z z1tQ)J-TiWR2)9+tm)O8OU$^1(6=g&S6hVf#TRbc<6GPAswgM;_Nbfzub&@fZfE*9t z*m)EV?BTC((6@rZfnm`S5>Ogt*@-*L#TCW{=?Fq182Z%icwFZT$3)0>rC4_AOhk+@ zD1J~Q{rAc)ZF*?TDBQOXN5rC

R~9>Xz7_58EYsAgM+7|p=AVLbUD6+ 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

bz$?hi#x|h&X5rAtWcicCp@e0U-tJ<{Wsubv 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

eq5mJ(eBJIC`iuc>h;U@X9ko@_q##!Y|f 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 注意:此方式下 Go 后端、前台、管理端需按下方「方式三」各自启动,或在 compose 中启用 `go-service` 服务。 -### 方式二:分步手动启动(开发调试) +### 方式三:分步手动启动(开发调试) **1. 启动基础设施(数据库 + 缓存)** diff --git a/admin/package-lock.json b/admin/package-lock.json index 752e8e4..4e3edb8 100644 --- a/admin/package-lock.json +++ b/admin/package-lock.json @@ -11,6 +11,7 @@ "@element-plus/icons-vue": "^2.3.2", "@vitejs/plugin-vue": "^6.0.4", "axios": "^1.13.6", + "echarts": "^6.0.0", "element-plus": "^2.13.3", "pinia": "^3.0.4", "vite": "^7.3.1", @@ -1243,6 +1244,16 @@ "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": { "version": "2.13.3", "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.3.tgz", @@ -1830,6 +1841,12 @@ "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": { "version": "7.3.1", "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", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", "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" + } } } } diff --git a/admin/package.json b/admin/package.json index a5a5332..d7d5f68 100644 --- a/admin/package.json +++ b/admin/package.json @@ -12,6 +12,7 @@ "@element-plus/icons-vue": "^2.3.2", "@vitejs/plugin-vue": "^6.0.4", "axios": "^1.13.6", + "echarts": "^6.0.0", "element-plus": "^2.13.3", "pinia": "^3.0.4", "vite": "^7.3.1", diff --git a/admin/src/api/message.js b/admin/src/api/message.js new file mode 100644 index 0000000..d2e0832 --- /dev/null +++ b/admin/src/api/message.js @@ -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 + }) +} diff --git a/admin/src/router/index.js b/admin/src/router/index.js index d47a0b6..5eb25fd 100644 --- a/admin/src/router/index.js +++ b/admin/src/router/index.js @@ -62,6 +62,18 @@ const routes = [ name: 'GroupManage', component: () => import('@/views/group/list.vue'), 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: '消息统计' } } ] } diff --git a/admin/src/views/layout/index.vue b/admin/src/views/layout/index.vue index 633658d..3595609 100644 --- a/admin/src/views/layout/index.vue +++ b/admin/src/views/layout/index.vue @@ -56,6 +56,15 @@ 群组列表 + + + 消息列表 + 消息统计 + + diff --git a/admin/src/views/message/list.vue b/admin/src/views/message/list.vue new file mode 100644 index 0000000..2bb6620 --- /dev/null +++ b/admin/src/views/message/list.vue @@ -0,0 +1,756 @@ + + + + + + diff --git a/admin/src/views/message/stats.vue b/admin/src/views/message/stats.vue new file mode 100644 index 0000000..0290a78 --- /dev/null +++ b/admin/src/views/message/stats.vue @@ -0,0 +1,387 @@ + + + + + + diff --git a/backend/go-service/app/admin/controller/message_manage_controller.go b/backend/go-service/app/admin/controller/message_manage_controller.go new file mode 100644 index 0000000..e09dd73 --- /dev/null +++ b/backend/go-service/app/admin/controller/message_manage_controller.go @@ -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) + } +} diff --git a/backend/go-service/app/admin/dao/message_manage_dao.go b/backend/go-service/app/admin/dao/message_manage_dao.go new file mode 100644 index 0000000..d00b234 --- /dev/null +++ b/backend/go-service/app/admin/dao/message_manage_dao.go @@ -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 +} diff --git a/backend/go-service/app/admin/router.go b/backend/go-service/app/admin/router.go index d7a5eeb..ebb3580 100644 --- a/backend/go-service/app/admin/router.go +++ b/backend/go-service/app/admin/router.go @@ -16,6 +16,7 @@ func RegisterRoutes( onlineCtrl *controller.OnlineController, contactManageCtrl *controller.ContactManageController, groupManageCtrl *controller.GroupManageController, + msgManageCtrl *controller.MessageManageController, jwtAuth gin.HandlerFunc, ) { // 管理端路由组:JWT 认证 + admin/super_admin 角色检查 @@ -44,5 +45,12 @@ func RegisterRoutes( adminGroup.GET("/groups", groupManageCtrl.GetGroupList) adminGroup.GET("/groups/:id", groupManageCtrl.GetGroupDetail) 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) } } diff --git a/backend/go-service/app/admin/service/message_manage_service.go b/backend/go-service/app/admin/service/message_manage_service.go new file mode 100644 index 0000000..07e8f09 --- /dev/null +++ b/backend/go-service/app/admin/service/message_manage_service.go @@ -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 +} diff --git a/backend/go-service/app/auth/dao/user_dao.go b/backend/go-service/app/auth/dao/user_dao.go index 34f15bc..5c090ce 100644 --- a/backend/go-service/app/auth/dao/user_dao.go +++ b/backend/go-service/app/auth/dao/user_dao.go @@ -115,6 +115,20 @@ func (d *UserDAO) UpdateLastLogin(ctx context.Context, userID int64, ip string) 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 按用户名或邮箱查找用户(登录时使用) func (d *UserDAO) FindByAccount(ctx context.Context, account string) (*model.User, error) { funcName := "dao.user_dao.FindByAccount" diff --git a/backend/go-service/app/constants/im.go b/backend/go-service/app/constants/im.go index 9e281e3..10b8f4c 100644 --- a/backend/go-service/app/constants/im.go +++ b/backend/go-service/app/constants/im.go @@ -15,10 +15,10 @@ var ConversationTypeMap = map[int]string{ // 消息类型 const ( MessageTypeText = 1 // 文本消息 - MessageTypeImage = 2 // 图片消息(预留) - MessageTypeVoice = 3 // 语音消息(预留) + MessageTypeImage = 2 // 图片消息 + MessageTypeVoice = 3 // 语音消息 MessageTypeVideo = 4 // 视频消息(预留) - MessageTypeFile = 5 // 文件消息(预留) + MessageTypeFile = 5 // 文件消息 MessageTypeSystem = 10 // 系统消息(群聊操作通知) ) diff --git a/backend/go-service/app/dto/admin_dto.go b/backend/go-service/app/dto/admin_dto.go index c31508a..01d6f39 100644 --- a/backend/go-service/app/dto/admin_dto.go +++ b/backend/go-service/app/dto/admin_dto.go @@ -59,3 +59,84 @@ type AdminCreateUserRequest struct { Nickname string `json:"nickname" binding:"max=50"` // 昵称(选填) 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"` // 消息数 +} diff --git a/backend/go-service/app/dto/im_dto.go b/backend/go-service/app/dto/im_dto.go index 4e670bb..448c427 100644 --- a/backend/go-service/app/dto/im_dto.go +++ b/backend/go-service/app/dto/im_dto.go @@ -6,23 +6,25 @@ package dto type SendMessageRequest struct { ConversationID int64 `json:"conversation_id"` // 会话 ID(与 TargetUserID 二选一) TargetUserID int64 `json:"target_user_id"` // 对方用户 ID(首次发消息时使用,自动创建会话) - Type int `json:"type"` // 消息类型:1=文本 - Content string `json:"content"` // 消息内容 + Type int `json:"type"` // 消息类型:1=文本, 2=图片, 3=语音, 5=文件 + Content string `json:"content"` // 消息内容(富媒体消息时为空字符串) + Extra string `json:"extra"` // 扩展数据 JSON 字符串(图片/语音/文件元信息) ClientMsgID string `json:"client_msg_id"` // 客户端消息唯一 ID,用于幂等去重 AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表(含 0 表示 @所有人) } // MessageDTO 消息传输对象(返回给前端) type MessageDTO struct { - ID int64 `json:"id"` // 消息 ID - ConversationID int64 `json:"conversation_id"` // 所属会话 ID - SenderID int64 `json:"sender_id"` // 发送者用户 ID - Type int `json:"type"` // 消息类型 - Content string `json:"content"` // 消息内容 - Status int `json:"status"` // 消息状态:1=正常,2=已撤回 - ClientMsgID string `json:"client_msg_id"` // 客户端消息 ID - AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表 - CreatedAt string `json:"created_at"` // 发送时间 + ID int64 `json:"id"` // 消息 ID + ConversationID int64 `json:"conversation_id"` // 所属会话 ID + SenderID int64 `json:"sender_id"` // 发送者用户 ID + Type int `json:"type"` // 消息类型 + Content string `json:"content"` // 消息内容 + Extra *string `json:"extra,omitempty"` // 扩展数据 JSON(图片/语音/文件元信息) + Status int `json:"status"` // 消息状态:1=正常,2=已撤回 + ClientMsgID string `json:"client_msg_id"` // 客户端消息 ID + AtUserIDs []int64 `json:"at_user_ids"` // @提醒用户 ID 列表 + CreatedAt string `json:"created_at"` // 发送时间 } // RecallMessageRequest 撤回消息请求(WS 事件 im.message.recall 的 data 字段) diff --git a/backend/go-service/app/file/controller/file_controller.go b/backend/go-service/app/file/controller/file_controller.go index 6602efb..ff69eb7 100644 --- a/backend/go-service/app/file/controller/file_controller.go +++ b/backend/go-service/app/file/controller/file_controller.go @@ -2,13 +2,19 @@ package controller import ( + "strconv" + "github.com/echochat/backend/app/file/service" "github.com/echochat/backend/pkg/middleware" "github.com/echochat/backend/pkg/utils" "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 文件上传控制器 type FileController struct { @@ -20,9 +26,9 @@ func NewFileController(fileService *service.FileService) *FileController { return &FileController{fileService: fileService} } -// Upload 处理文件上传请求 +// Upload 处理通用文件上传请求 // POST /api/v1/upload -// 支持 multipart/form-data,字段名为 "file" +// 支持 multipart/form-data,字段名为 "file",最大 50MB func (ctl *FileController) Upload(c *gin.Context) { ctx := c.Request.Context() _, ok := middleware.GetCurrentUserID(c) @@ -38,7 +44,7 @@ func (ctl *FileController) Upload(c *gin.Context) { } if fileHeader.Size > maxUploadSize { - utils.ResponseBadRequest(c, "文件大小不能超过 10MB") + utils.ResponseBadRequest(c, "文件大小不能超过 50MB") return } @@ -51,14 +57,94 @@ func (ctl *FileController) Upload(c *gin.Context) { 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 统一业务错误映射 -// 已知业务错误 → 返回 Service 层定义的具体提示 -// 未知错误 → 返回 fallbackMsg(未传则默认"服务器内部错误") func (ctl *FileController) handleError(c *gin.Context, err error, fallbackMsg ...string) { switch err { case service.ErrFileOpen: 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()) default: msg := "服务器内部错误" diff --git a/backend/go-service/app/file/router.go b/backend/go-service/app/file/router.go index 1eb9d9c..3b4f7ab 100644 --- a/backend/go-service/app/file/router.go +++ b/backend/go-service/app/file/router.go @@ -12,5 +12,7 @@ func RegisterRoutes(r *gin.Engine, ctrl *controller.FileController, jwtAuth gin. authed.Use(jwtAuth) { authed.POST("/upload", ctrl.Upload) + authed.POST("/upload/image", ctrl.UploadImage) + authed.POST("/upload/voice", ctrl.UploadVoice) } } diff --git a/backend/go-service/app/file/service/file_service.go b/backend/go-service/app/file/service/file_service.go index 3aad8d4..636eb44 100644 --- a/backend/go-service/app/file/service/file_service.go +++ b/backend/go-service/app/file/service/file_service.go @@ -3,14 +3,20 @@ package service import ( + "bytes" "context" "errors" "fmt" + "image" + _ "image/gif" + _ "image/jpeg" + _ "image/png" "mime/multipart" "path/filepath" "strings" "time" + "github.com/disintegration/imaging" "github.com/echochat/backend/config" "github.com/echochat/backend/pkg/logs" "github.com/google/uuid" @@ -19,8 +25,13 @@ import ( ) var ( - ErrFileOpen = errors.New("打开上传文件失败") - ErrUploadFailed = errors.New("文件上传失败") + ErrFileOpen = 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 文件上传服务 @@ -37,13 +48,41 @@ func NewFileService(client *minio.Client, cfg *config.MinioConfig) *FileService } } -// UploadResult 文件上传结果 +// UploadResult 通用文件上传结果 type UploadResult struct { URL string `json:"url"` FileName string `json:"file_name"` 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 // 文件按日期目录组织:uploads/2026/03/04/{uuid}.{ext} 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 } - scheme := "http" - if s.minioCfg.UseSSL { - scheme = "https" - } - url := fmt.Sprintf("%s://%s/%s/%s", scheme, s.minioCfg.Endpoint, s.minioCfg.Bucket, objectName) + url := s.buildURL(objectName) return &UploadResult{ URL: url, @@ -88,3 +123,142 @@ func (s *FileService) Upload(ctx context.Context, fileHeader *multipart.FileHead Size: fileHeader.Size, }, 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) +} diff --git a/backend/go-service/app/im/service/im_service.go b/backend/go-service/app/im/service/im_service.go index c1666f7..279338d 100644 --- a/backend/go-service/app/im/service/im_service.go +++ b/backend/go-service/app/im/service/im_service.go @@ -2,6 +2,7 @@ package service import ( "context" + "encoding/json" "errors" "fmt" "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("target_user_id", req.TargetUserID)) - if req.Content == "" { - return nil, ErrEmptyContent - } if req.Type == 0 { 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 } @@ -171,12 +178,16 @@ func (s *IMService) writeAndPushPrivateMessage(ctx context.Context, senderID, co Status: constants.MessageStatusNormal, ClientMsgID: req.ClientMsgID, } + if req.Extra != "" { + msg.Extra = &req.Extra + } if err := s.msgDAO.Create(ctx, msg); err != nil { return nil, err } 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)) } @@ -244,6 +255,9 @@ func (s *IMService) sendGroupMessage(ctx context.Context, senderID int64, req *d Status: constants.MessageStatusNormal, ClientMsgID: req.ClientMsgID, } + if req.Extra != "" { + msg.Extra = &req.Extra + } if len(req.AtUserIDs) > 0 { msg.AtUserIDs = req.AtUserIDs } @@ -252,7 +266,8 @@ func (s *IMService) sendGroupMessage(ctx context.Context, senderID int64, req *d } 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)) } @@ -944,6 +959,7 @@ func (s *IMService) toMessageDTO(m *model.Message) *dto.MessageDTO { SenderID: m.SenderID, Type: m.Type, Content: m.Content, + Extra: m.Extra, Status: m.Status, ClientMsgID: m.ClientMsgID, 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, "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 { pushData["sender_name"] = senderUsers[0].Nickname pushData["sender_avatar"] = senderUsers[0].Avatar @@ -978,6 +997,60 @@ type userBrief struct { 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 截断消息内容用于预览 func truncateContent(s string, maxRunes int) string { runes := []rune(s) diff --git a/backend/go-service/app/provider/provider.go b/backend/go-service/app/provider/provider.go index 8a651e3..5b345d4 100644 --- a/backend/go-service/app/provider/provider.go +++ b/backend/go-service/app/provider/provider.go @@ -35,6 +35,7 @@ type App struct { OnlineController *adminController.OnlineController // 管理端在线监控控制器 ContactManageController *adminController.ContactManageController // 管理端好友关系管理控制器 GroupManageController *adminController.GroupManageController // 管理端群组管理控制器 + MessageManageController *adminController.MessageManageController // 管理端消息管理控制器 WSHandler *wsApp.Handler // WebSocket 连接处理器 Hub *ws.Hub // WebSocket Hub 连接管理 PubSub *ws.PubSub // Redis Pub/Sub 消息路由 @@ -60,6 +61,7 @@ func NewApp( onlineCtrl *adminController.OnlineController, contactManageCtrl *adminController.ContactManageController, groupManageCtrl *adminController.GroupManageController, + msgManageCtrl *adminController.MessageManageController, wsHandler *wsApp.Handler, hub *ws.Hub, pubsub *ws.PubSub, @@ -86,6 +88,7 @@ func NewApp( OnlineController: onlineCtrl, ContactManageController: contactManageCtrl, GroupManageController: groupManageCtrl, + MessageManageController: msgManageCtrl, WSHandler: wsHandler, Hub: hub, PubSub: pubsub, diff --git a/backend/go-service/app/provider/wire_gen.go b/backend/go-service/app/provider/wire_gen.go index 442d0b4..2f02076 100644 --- a/backend/go-service/app/provider/wire_gen.go +++ b/backend/go-service/app/provider/wire_gen.go @@ -93,6 +93,11 @@ func InitializeApp(cfg *config.Config) (*App, error) { groupManageService := service2.NewGroupManageService(gormDB, groupDAO) 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 } diff --git a/backend/go-service/go.mod b/backend/go-service/go.mod index df3d62d..882b513 100644 --- a/backend/go-service/go.mod +++ b/backend/go-service/go.mod @@ -24,6 +24,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.6 // 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/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect @@ -66,6 +67,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // 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/net v0.42.0 // indirect golang.org/x/sync v0.16.0 // indirect diff --git a/backend/go-service/go.sum b/backend/go-service/go.sum index 7776e68..b9fb081 100644 --- a/backend/go-service/go.sum +++ b/backend/go-service/go.sum @@ -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/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/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/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= 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/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/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/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= 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.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= 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/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= diff --git a/backend/go-service/pkg/storage/minio.go b/backend/go-service/pkg/storage/minio.go index 976d69d..f2ed060 100644 --- a/backend/go-service/pkg/storage/minio.go +++ b/backend/go-service/pkg/storage/minio.go @@ -12,7 +12,10 @@ import ( ) // NewMinioClient 初始化 MinIO 客户端并确保存储桶存在 -// 启动时自动创建配置中指定的 bucket(如不存在) +// 启动时: +// 1. 创建配置中指定的 bucket(如不存在) +// 2. 为 bucket 设置 public-read 策略,使前端可通过 URL 直接访问已上传的图片、语音、文件等资源 +// (写入操作仍需 AccessKey/SecretKey 凭据,不影响安全性) func NewMinioClient(cfg *config.MinioConfig) (*minio.Client, error) { client, err := minio.New(cfg.Endpoint, &minio.Options{ 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 } + +// 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) +} diff --git a/backend/go-service/router/router.go b/backend/go-service/router/router.go index a4e7568..4d586ca 100644 --- a/backend/go-service/router/router.go +++ b/backend/go-service/router/router.go @@ -36,7 +36,7 @@ func Setup(engine *gin.Engine, app *provider.App) { // --- 各模块路由注册 --- 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) contact.RegisterRoutes(engine, app.ContactController, jwtAuth) imApp.RegisterRoutes(engine, app.IMController, jwtAuth) diff --git a/docs/api/README.md b/docs/api/README.md index 6b1fb61..cbba0df 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -29,6 +29,7 @@ | [admin/online.md](admin/online.md) | 在线监控 | ✅ Phase 2a | 在线用户列表、在线用户计数 | | [admin/contact.md](admin/contact.md) | 好友关系管理 | ✅ Phase 2a | 好友关系列表(分页)、管理员解除好友关系 | | [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/system.md](admin/system.md) | 系统管理 | 📋 待定 | 仪表盘数据、操作日志、系统配置 | @@ -206,6 +207,7 @@ docs/api/ │ ├── online.md # 在线监控 ✅ Phase 2a │ ├── contact.md # 好友关系管理 ✅ Phase 2a │ ├── group.md # 群聊管理(3 个 API) ✅ Phase 2c +│ ├── message.md # 消息管理(5 个 API) ✅ Phase 2d │ ├── meeting.md # 会议管理 📋 后续 │ └── system.md # 系统管理 📋 待定 └── websocket.md # WebSocket 全量事件协议 ✅ Phase 2a/2b/2c diff --git a/docs/api/admin/message.md b/docs/api/admin/message.md new file mode 100644 index 0000000..7533b00 --- /dev/null +++ b/docs/api/admin/message.md @@ -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 } + ] + } +} +``` diff --git a/docs/api/frontend/im.md b/docs/api/frontend/im.md index 8e3361c..fa0df7e 100644 --- a/docs/api/frontend/im.md +++ b/docs/api/frontend/im.md @@ -3,7 +3,7 @@ > 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.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/unread | 需认证 | 获取全局未读消息总数 | | 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] | --- diff --git a/docs/plans/2026-03-04-phase2d-design.md b/docs/plans/2026-03-04-phase2d-design.md new file mode 100644 index 0000000..1ed9a95 --- /dev/null +++ b/docs/plans/2026-03-04-phase2d-design.md @@ -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 个竖条) +- 播放时:从左到右逐条变色动画 diff --git a/docs/plans/2026-03-04-phase2d-implementation.plan.md b/docs/plans/2026-03-04-phase2d-implementation.plan.md new file mode 100644 index 0000000..115b37b --- /dev/null +++ b/docs/plans/2026-03-04-phase2d-implementation.plan.md @@ -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` 使用 `` 动态组件 +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] 所有文档同步更新 diff --git a/docs/progress/CURRENT_STATUS.md b/docs/progress/CURRENT_STATUS.md index f626fca..1e7c68c 100644 --- a/docs/progress/CURRENT_STATUS.md +++ b/docs/progress/CURRENT_STATUS.md @@ -1,10 +1,49 @@ # EchoChat 项目开发进度 -> **最后更新**:2026-03-04(Phase 2c 浏览器测试 + UI/UX 优化 + Tab 切换刷新修复完成) -> **当前阶段**:Phase 2c 全部完成(含 Playwright 浏览器测试 + 21 项用户反馈修复) -> **当前分支**:`feature/phase2c-group-read-receipt` -> **实施计划**:`docs/plans/2026-03-04-phase2c-implementation.plan.md` -> **设计文档**:`docs/plans/2026-03-04-phase2c-design.md` +> **最后更新**:2026-04-20(Phase 2d 富媒体消息缺陷修复,Playwright 全流程验证通过) +> **当前阶段**:Phase 2d 全部完成 + Bug 修复 4 项(图片上传端口/MinIO 策略/MsgImage 布局/文件名保留) +> **当前分支**:`feature/phase2d-message-types` +> **实施计划**:`docs/plans/2026-03-04-phase2d-implementation.plan.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 布局塌陷,`` 宽度为 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 # 入群审批 │ │ └── search.vue # 搜索群聊 │ ├── 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) ├── admin/ # 管理端(Vue 3 + Element Plus) +│ └── src/views/ +│ ├── message/ # [Phase 2d] 消息管理 +│ │ ├── list.vue # 消息列表(多条件筛选+操作) +│ │ └── stats.vue # 消息统计(ECharts 仪表板) ├── deploy/ ├── design-system/ └── 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_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 完善 +- 消息转发功能 +- 视频消息支持 diff --git a/frontend/src/api/file.js b/frontend/src/api/file.js index e528145..cde07c8 100644 --- a/frontend/src/api/file.js +++ b/frontend/src/api/file.js @@ -1,55 +1,85 @@ /** - * 文件上传模块 API + * 文件上传 API 封装 + * 提供通用上传、图片上传(含缩略图)、语音上传接口 * - * 对应后端路由:POST /api/v1/upload - * 使用 uni.uploadFile 上传文件到 MinIO + * BASE_URL 复用 @/utils/request 中的统一配置,保证与业务接口一致 + * (开发环境:http://{hostname}:8085;生产环境:相对路径由 Nginx 反代) */ +import { useUserStore } from '@/store/user' import { BASE_URL } from '@/utils/request' -import { getToken } from '@/utils/storage' /** - * 上传文件 - * @param {string} filePath - 本地文件路径(如从 uni.chooseImage 获取) - * @returns {Promise} 返回 { url: '...' } + * 通用文件上传(最大 50MB) + * @param {string} filePath 本地文件临时路径 + * @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) => { - const token = getToken() uni.uploadFile({ - url: `${BASE_URL}/api/v1/upload`, + url: `${BASE_URL}${apiPath}`, filePath, name: 'file', + formData: { + ...extraFormData, + ...(fileName ? { file_name: fileName } : {}) + }, header: { Authorization: token ? `Bearer ${token}` : '' }, success: (res) => { - if (res.statusCode === 200) { - try { - const data = JSON.parse(res.data) - if (data.code === 0) { - resolve(data) - } else { - uni.showToast({ title: data.message || '上传失败', icon: 'none' }) - reject(data) - } - } catch { - uni.showToast({ title: '响应解析失败', icon: 'none' }) - reject({ code: -1, message: '响应解析失败' }) + try { + const result = typeof res.data === 'string' ? JSON.parse(res.data) : res.data + if (result.code === 0) { + resolve(result.data) + } else { + reject(new Error(result.message || '上传失败')) } - } else { - uni.showToast({ title: '上传失败', icon: 'none' }) - reject({ code: res.statusCode, message: '上传失败' }) + } catch (e) { + reject(new Error('解析上传结果失败')) } }, fail: (err) => { - uni.showToast({ title: '网络异常', icon: 'none' }) - reject({ code: -1, message: err.errMsg || '网络异常' }) + reject(new Error(err.errMsg || '网络错误')) } }) }) } export default { - uploadFile + uploadFile, + uploadImage, + uploadVoice } diff --git a/frontend/src/components/chat/MorePanel.vue b/frontend/src/components/chat/MorePanel.vue new file mode 100644 index 0000000..161f794 --- /dev/null +++ b/frontend/src/components/chat/MorePanel.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/frontend/src/components/chat/VoiceRecorder.vue b/frontend/src/components/chat/VoiceRecorder.vue new file mode 100644 index 0000000..3378e96 --- /dev/null +++ b/frontend/src/components/chat/VoiceRecorder.vue @@ -0,0 +1,176 @@ + + + + + + diff --git a/frontend/src/components/msg/MsgFile.vue b/frontend/src/components/msg/MsgFile.vue new file mode 100644 index 0000000..632e690 --- /dev/null +++ b/frontend/src/components/msg/MsgFile.vue @@ -0,0 +1,141 @@ + + + + + + diff --git a/frontend/src/components/msg/MsgImage.vue b/frontend/src/components/msg/MsgImage.vue new file mode 100644 index 0000000..930607a --- /dev/null +++ b/frontend/src/components/msg/MsgImage.vue @@ -0,0 +1,114 @@ + + + + + + diff --git a/frontend/src/components/msg/MsgText.vue b/frontend/src/components/msg/MsgText.vue new file mode 100644 index 0000000..d8c8e31 --- /dev/null +++ b/frontend/src/components/msg/MsgText.vue @@ -0,0 +1,41 @@ + + + + + + diff --git a/frontend/src/components/msg/MsgVoice.vue b/frontend/src/components/msg/MsgVoice.vue new file mode 100644 index 0000000..43939a6 --- /dev/null +++ b/frontend/src/components/msg/MsgVoice.vue @@ -0,0 +1,163 @@ + + + + + + diff --git a/frontend/src/pages/chat/conversation.vue b/frontend/src/pages/chat/conversation.vue index 4abfe37..ab2e30d 100644 --- a/frontend/src/pages/chat/conversation.vue +++ b/frontend/src/pages/chat/conversation.vue @@ -51,11 +51,14 @@ - 消息已撤回 - {{ msg.content }} + + + + + @@ -71,11 +74,14 @@ - 消息已撤回 - {{ msg.content }} + + + + + @@ -96,22 +102,38 @@ - - + + - + + + + + + + @@ -120,9 +142,17 @@ import { onLoad, onUnload } from '@dcloudio/uni-app' import { ref, computed, nextTick, watch } from 'vue' import { useChatStore } from '@/store/chat' import { useUserStore } from '@/store/user' +import { uploadImage, uploadFile, uploadVoice } from '@/api/file' +import MsgText from '@/components/msg/MsgText.vue' +import MsgImage from '@/components/msg/MsgImage.vue' +import MsgVoice from '@/components/msg/MsgVoice.vue' +import MsgFile from '@/components/msg/MsgFile.vue' +import MorePanel from '@/components/chat/MorePanel.vue' +import VoiceRecorder from '@/components/chat/VoiceRecorder.vue' export default { name: 'ChatConversation', + components: { MsgText, MsgImage, MsgVoice, MsgFile, MorePanel, VoiceRecorder }, setup() { const chatStore = useChatStore() const userStore = useUserStore() @@ -142,6 +172,8 @@ export default { const selfName = computed(() => userStore.userInfo?.nickname || userStore.userInfo?.username || '我') const convType = ref(1) + const voiceMode = ref(false) + const showMorePanel = ref(false) const isSelf = (msg) => { const myId = Number(userStore.userInfo?.id) || 0 @@ -283,6 +315,146 @@ export default { } } + const toggleVoiceMode = () => { + voiceMode.value = !voiceMode.value + showMorePanel.value = false + } + + const toggleMorePanel = () => { + showMorePanel.value = !showMorePanel.value + voiceMode.value = false + } + + const onChooseImage = async () => { + showMorePanel.value = false + uni.chooseImage({ + count: 9, + sizeType: ['compressed'], + sourceType: ['album', 'camera'], + success: async (res) => { + const images = [] + for (const path of res.tempFilePaths) { + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadImage(path) + images.push({ + url: result.url, + thumbnail_url: result.thumbnail_url, + width: result.width, + height: result.height, + size: result.size, + file_name: result.file_name + }) + } catch (e) { + uni.showToast({ title: e?.message || '图片上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + if (images.length > 0) { + chatStore.sendImageMessage({ + conversationId: conversationId.value || 0, + targetUserId: conversationId.value ? 0 : peerId.value, + images + }) + scrollToBottom() + } + } + }) + } + + const onChooseFile = async () => { + showMorePanel.value = false + // #ifdef H5 + const input = document.createElement('input') + input.type = 'file' + input.onchange = async (e) => { + const file = e.target.files[0] + if (!file) return + if (file.size > 50 * 1024 * 1024) { + uni.showToast({ title: '文件大小不能超过 50MB', icon: 'none' }) + return + } + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadFile(URL.createObjectURL(file), file.name) + chatStore.sendFileMessage({ + conversationId: conversationId.value || 0, + targetUserId: conversationId.value ? 0 : peerId.value, + file: { + url: result.url, + // 优先使用前端原始文件名(H5 下 blob URL 会丢失原名) + file_name: file.name || result.file_name, + size: result.size, + mime_type: file.type || 'application/octet-stream', + ext: '.' + (file.name.split('.').pop() || '') + } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '文件上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + input.click() + // #endif + // #ifndef H5 + uni.chooseFile({ + count: 1, + success: async (res) => { + const file = res.tempFiles[0] + if (file.size > 50 * 1024 * 1024) { + uni.showToast({ title: '文件大小不能超过 50MB', icon: 'none' }) + return + } + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadFile(file.path, file.name) + chatStore.sendFileMessage({ + conversationId: conversationId.value || 0, + targetUserId: conversationId.value ? 0 : peerId.value, + file: { + url: result.url, + file_name: file.name || result.file_name, + size: result.size, + mime_type: file.type || 'application/octet-stream', + ext: '.' + (file.name.split('.').pop() || '') + } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '文件上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + }) + // #endif + } + + const onVoiceRecorded = async ({ tempFilePath, duration }) => { + try { + uni.showLoading({ title: '发送中...' }) + const result = await uploadVoice(tempFilePath, duration) + chatStore.sendVoiceMessage({ + conversationId: conversationId.value || 0, + targetUserId: conversationId.value ? 0 : peerId.value, + voice: { + url: result.url, + duration: result.duration || duration, + size: result.size, + file_name: result.file_name + } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '语音发送失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + const goToSettings = () => { uni.navigateTo({ url: `/pages/chat/settings?conversationId=${conversationId.value}&peerId=${peerId.value}&peerName=${encodeURIComponent(peerName.value)}&peerAvatar=${encodeURIComponent(peerAvatar.value)}` @@ -292,10 +464,13 @@ export default { return { peerName, peerAvatar, selfAvatar, selfName, inputText, scrollToId, loadingMore, convType, + voiceMode, showMorePanel, messages, hasMore, isTyping, isSelf, isRead, getReadLabel, onSend, onInputChange, onLoadMore, - onMsgLongPress, onResend, goBack, goToSettings + onMsgLongPress, onResend, goBack, goToSettings, + toggleVoiceMode, toggleMorePanel, + onChooseImage, onChooseFile, onVoiceRecorded } } } @@ -469,4 +644,21 @@ export default { } .send-btn-active { background-color: #2563EB; } .send-btn:active { opacity: 0.85; } + +.voice-toggle-btn, .more-btn { + min-width: 72rpx; + min-height: 72rpx; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} +.voice-toggle-btn { margin-right: 8rpx; } +.more-btn { margin-left: 8rpx; } +.voice-toggle-btn:active, .more-btn:active { opacity: 0.6; } + +.bubble-media { + padding: 12rpx !important; + background-color: transparent !important; +} diff --git a/frontend/src/pages/group/conversation.vue b/frontend/src/pages/group/conversation.vue index 713e0e9..a3f8e06 100644 --- a/frontend/src/pages/group/conversation.vue +++ b/frontend/src/pages/group/conversation.vue @@ -68,11 +68,14 @@ {{ getMemberName(msg.sender_id) }} - 消息已撤回 - {{ msg.content }} + + + + + @@ -89,11 +92,14 @@ - 消息已撤回 - {{ msg.content }} + + + + + @@ -162,22 +168,38 @@ {{ isAllMuted ? '当前群聊已开启全体禁言' : '你已被禁言,无法发送消息' }} - - + + - + + + + + + + @@ -188,9 +210,17 @@ import { useChatStore } from '@/store/chat' import { useGroupStore } from '@/store/group' import { useUserStore } from '@/store/user' import { GROUP_ROLE } from '@/constants/group' +import { uploadImage, uploadFile, uploadVoice } from '@/api/file' +import MsgText from '@/components/msg/MsgText.vue' +import MsgImage from '@/components/msg/MsgImage.vue' +import MsgVoice from '@/components/msg/MsgVoice.vue' +import MsgFile from '@/components/msg/MsgFile.vue' +import MorePanel from '@/components/chat/MorePanel.vue' +import VoiceRecorder from '@/components/chat/VoiceRecorder.vue' export default { name: 'GroupConversation', + components: { MsgText, MsgImage, MsgVoice, MsgFile, MorePanel, VoiceRecorder }, setup() { const chatStore = useChatStore() const groupStore = useGroupStore() @@ -205,6 +235,8 @@ export default { const loadingMore = ref(false) const showAtPicker = ref(false) const atUserIds = ref([]) + const voiceMode = ref(false) + const showMorePanel = ref(false) const messages = computed(() => chatStore.currentMessages) const hasMore = computed(() => chatStore.hasMoreMap[conversationId.value] !== false) @@ -446,6 +478,136 @@ export default { }) } + // ==================== 富媒体消息 ==================== + + const toggleVoiceMode = () => { + voiceMode.value = !voiceMode.value + showMorePanel.value = false + } + + const toggleMorePanel = () => { + showMorePanel.value = !showMorePanel.value + voiceMode.value = false + } + + const onChooseImage = async () => { + showMorePanel.value = false + uni.chooseImage({ + count: 9, + sizeType: ['compressed'], + sourceType: ['album', 'camera'], + success: async (res) => { + const images = [] + for (const path of res.tempFilePaths) { + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadImage(path) + images.push({ + url: result.url, + thumbnail_url: result.thumbnail_url, + width: result.width, + height: result.height, + size: result.size, + file_name: result.file_name + }) + } catch (e) { + uni.showToast({ title: e?.message || '图片上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + if (images.length > 0) { + chatStore.sendImageMessage({ conversationId: conversationId.value, images }) + scrollToBottom() + } + } + }) + } + + const onChooseFile = async () => { + showMorePanel.value = false + // #ifdef H5 + const input = document.createElement('input') + input.type = 'file' + input.onchange = async (e) => { + const file = e.target.files[0] + if (!file) return + if (file.size > 50 * 1024 * 1024) { + uni.showToast({ title: '文件大小不能超过 50MB', icon: 'none' }) + return + } + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadFile(URL.createObjectURL(file), file.name) + chatStore.sendFileMessage({ + conversationId: conversationId.value, + file: { + url: result.url, + // 优先使用前端原始文件名(H5 下 blob URL 会丢失原名) + file_name: file.name || result.file_name, + size: result.size, + mime_type: file.type || 'application/octet-stream', + ext: '.' + (file.name.split('.').pop() || '') + } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '文件上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + input.click() + // #endif + // #ifndef H5 + uni.chooseFile({ + count: 1, + success: async (res) => { + const file = res.tempFiles[0] + if (file.size > 50 * 1024 * 1024) { + uni.showToast({ title: '文件大小不能超过 50MB', icon: 'none' }) + return + } + try { + uni.showLoading({ title: '上传中...' }) + const result = await uploadFile(file.path, file.name) + chatStore.sendFileMessage({ + conversationId: conversationId.value, + file: { + url: result.url, + file_name: file.name || result.file_name, + size: result.size, + mime_type: file.type || 'application/octet-stream', + ext: '.' + (file.name.split('.').pop() || '') + } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '文件上传失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + }) + // #endif + } + + const onVoiceRecorded = async ({ tempFilePath, duration }) => { + try { + uni.showLoading({ title: '发送中...' }) + const result = await uploadVoice(tempFilePath, duration) + chatStore.sendVoiceMessage({ + conversationId: conversationId.value, + voice: { url: result.url, duration: result.duration || duration, size: result.size, file_name: result.file_name } + }) + scrollToBottom() + } catch (e) { + uni.showToast({ title: e?.message || '语音发送失败', icon: 'none' }) + } finally { + uni.hideLoading() + } + } + // ==================== 监听新消息到达后标记已读 ==================== watch( @@ -464,7 +626,10 @@ export default { isSelf, getMemberName, getMemberAvatar, getReadLabel, onSend, onInputChange, onSelectAtMember, onLoadMore, onMsgLongPress, onResend, - goBack, goToSettings, goToReadDetail + goBack, goToSettings, goToReadDetail, + voiceMode, showMorePanel, + toggleVoiceMode, toggleMorePanel, + onChooseImage, onChooseFile, onVoiceRecorded, } } } @@ -741,4 +906,31 @@ export default { color: #94A3B8; text-align: center; } + +/* ===== 语音/更多 ===== */ +.voice-toggle-btn { + width: 72rpx; + height: 72rpx; + display: flex; + align-items: center; + justify-content: center; + margin-right: 12rpx; + border-radius: 50%; + background-color: #F1F5F9; +} +.voice-toggle-btn:active { background-color: #E2E8F0; } +.more-btn { + min-width: 72rpx; + min-height: 72rpx; + margin-left: 16rpx; + border-radius: 50%; + background-color: #F1F5F9; + display: flex; + align-items: center; + justify-content: center; +} +.more-btn:active { background-color: #E2E8F0; } +.bubble-media { + max-width: 420rpx; +} diff --git a/frontend/src/store/chat.js b/frontend/src/store/chat.js index 2bfb30e..0aa1575 100644 --- a/frontend/src/store/chat.js +++ b/frontend/src/store/chat.js @@ -85,13 +85,13 @@ export const useChatStore = defineStore('chat', () => { } /** - * 发送消息 - * @param {Object} params - { conversationId, targetUserId, content, type } + * 发送消息(统一入口,支持文本 + 富媒体) + * @param {Object} params - { conversationId, targetUserId, content, type, extra, at_user_ids } * @returns {string} clientMsgId */ const sendMessage = (params) => { const clientMsgId = _generateClientMsgId() - const { conversationId, targetUserId, content, type = 1, at_user_ids } = params + const { conversationId, targetUserId, content = '', type = 1, extra = '', at_user_ids } = params const userStore = useUserStore() const tempMsg = { @@ -100,6 +100,7 @@ export const useChatStore = defineStore('chat', () => { sender_id: Number(userStore.userInfo?.id) || 0, type, content, + extra: extra || undefined, status: 1, client_msg_id: clientMsgId, created_at: new Date().toISOString().replace('T', ' ').substring(0, 19), @@ -116,6 +117,7 @@ export const useChatStore = defineStore('chat', () => { target_user_id: targetUserId || 0, type, content, + extra, client_msg_id: clientMsgId } if (at_user_ids && at_user_ids.length > 0) { @@ -133,6 +135,57 @@ export const useChatStore = defineStore('chat', () => { return clientMsgId } + /** + * 发送图片消息 + * @param {Object} params - { conversationId, targetUserId, images } + * images: [{ url, thumbnail_url, width, height, size, file_name }] + */ + const sendImageMessage = (params) => { + const { conversationId, targetUserId, images } = params + const extra = JSON.stringify({ images }) + return sendMessage({ + conversationId, + targetUserId, + content: '', + type: 2, + extra + }) + } + + /** + * 发送语音消息 + * @param {Object} params - { conversationId, targetUserId, voice } + * voice: { url, duration, size, file_name } + */ + const sendVoiceMessage = (params) => { + const { conversationId, targetUserId, voice } = params + const extra = JSON.stringify({ voice }) + return sendMessage({ + conversationId, + targetUserId, + content: '', + type: 3, + extra + }) + } + + /** + * 发送文件消息 + * @param {Object} params - { conversationId, targetUserId, file } + * file: { url, file_name, size, mime_type, ext } + */ + const sendFileMessage = (params) => { + const { conversationId, targetUserId, file } = params + const extra = JSON.stringify({ file }) + return sendMessage({ + conversationId, + targetUserId, + content: '', + type: 5, + extra + }) + } + /** 撤回消息 */ const recallMessage = (messageId) => { wsService.send('im.message.recall', { message_id: messageId }) @@ -236,6 +289,7 @@ export const useChatStore = defineStore('chat', () => { sender_id: data.sender_id, type: data.type, content: data.content, + extra: data.extra || undefined, status: 1, client_msg_id: data.client_msg_id || '', created_at: data.created_at @@ -243,7 +297,8 @@ export const useChatStore = defineStore('chat', () => { const existingConv = conversationList.value.find(c => c.id === data.conversation_id) if (existingConv) { - _updateConversationPreview(data.conversation_id, data.content, data.created_at, data.sender_id) + const preview = _getMessagePreview(data.type, data.content, data.extra) + _updateConversationPreview(data.conversation_id, preview, data.created_at, data.sender_id) } else { fetchConversations() } @@ -390,6 +445,38 @@ export const useChatStore = defineStore('chat', () => { totalUnread.value = conversationList.value.reduce((sum, c) => sum + (c.unread_count || 0), 0) } + /** 根据消息类型生成会话预览文案 */ + const _getMessagePreview = (type, content, extra) => { + switch (type) { + case 2: { + let count = 1 + try { + const parsed = typeof extra === 'string' ? JSON.parse(extra) : extra + if (parsed?.images?.length > 1) count = parsed.images.length + } catch {} + return count > 1 ? `[图片x${count}]` : '[图片]' + } + case 3: { + let dur = 0 + try { + const parsed = typeof extra === 'string' ? JSON.parse(extra) : extra + dur = parsed?.voice?.duration || 0 + } catch {} + return dur > 0 ? `[语音 ${dur}"]` : '[语音]' + } + case 5: { + let name = '' + try { + const parsed = typeof extra === 'string' ? JSON.parse(extra) : extra + name = parsed?.file?.file_name || '' + } catch {} + return name ? `[文件] ${name}` : '[文件]' + } + default: + return content || '' + } + } + /** 生成客户端消息唯一 ID */ const _generateClientMsgId = () => { return `${Date.now()}-${Math.random().toString(36).substring(2, 10)}` @@ -410,6 +497,9 @@ export const useChatStore = defineStore('chat', () => { fetchConversations, fetchTotalUnread, sendMessage, + sendImageMessage, + sendVoiceMessage, + sendFileMessage, recallMessage, markRead, markGroupRead, diff --git a/frontend/src/utils/file.js b/frontend/src/utils/file.js new file mode 100644 index 0000000..ca7b26e --- /dev/null +++ b/frontend/src/utils/file.js @@ -0,0 +1,76 @@ +/** + * 文件工具函数 + * 提供图片压缩、文件大小格式化、文件类型判断等工具 + */ + +/** + * 文件大小格式化(自动选择 B/KB/MB/GB 单位) + * @param {number} bytes 文件大小(字节) + * @returns {string} 格式化后的文件大小 + */ +export function formatFileSize(bytes) { + if (!bytes || bytes === 0) return '0 B' + const units = ['B', 'KB', 'MB', 'GB'] + const k = 1024 + const i = Math.floor(Math.log(bytes) / Math.log(k)) + return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + units[i] +} + +/** + * 根据文件扩展名获取文件类型图标信息 + * @param {string} fileName 文件名 + * @returns {{ icon: string, color: string, label: string }} + */ +export function getFileTypeInfo(fileName) { + if (!fileName) return { icon: 'document', color: '#718096', label: '文件' } + + const ext = fileName.split('.').pop()?.toLowerCase() || '' + const typeMap = { + pdf: { icon: 'document', color: '#E53E3E', label: 'PDF' }, + doc: { icon: 'document', color: '#2B6CB0', label: 'Word' }, + docx: { icon: 'document', color: '#2B6CB0', label: 'Word' }, + xls: { icon: 'document', color: '#276749', label: 'Excel' }, + xlsx: { icon: 'document', color: '#276749', label: 'Excel' }, + ppt: { icon: 'document', color: '#C05621', label: 'PPT' }, + pptx: { icon: 'document', color: '#C05621', label: 'PPT' }, + zip: { icon: 'document', color: '#6B46C1', label: 'ZIP' }, + rar: { icon: 'document', color: '#6B46C1', label: 'RAR' }, + '7z': { icon: 'document', color: '#6B46C1', label: '7Z' }, + jpg: { icon: 'image', color: '#38A169', label: '图片' }, + jpeg: { icon: 'image', color: '#38A169', label: '图片' }, + png: { icon: 'image', color: '#38A169', label: '图片' }, + gif: { icon: 'image', color: '#38A169', label: '图片' }, + mp3: { icon: 'sound', color: '#D69E2E', label: '音频' }, + wav: { icon: 'sound', color: '#D69E2E', label: '音频' }, + aac: { icon: 'sound', color: '#D69E2E', label: '音频' }, + m4a: { icon: 'sound', color: '#D69E2E', label: '音频' } + } + + return typeMap[ext] || { icon: 'document', color: '#718096', label: '文件' } +} + +/** + * 判断文件名是否为可预览类型(PDF/图片) + * @param {string} fileName 文件名 + * @returns {boolean} + */ +export function isPreviewable(fileName) { + if (!fileName) return false + const ext = fileName.split('.').pop()?.toLowerCase() || '' + return ['pdf', 'jpg', 'jpeg', 'png', 'gif', 'webp'].includes(ext) +} + +/** + * 解析消息 extra JSON + * @param {string|object} extra 扩展数据(JSON 字符串或对象) + * @returns {object|null} + */ +export function parseExtra(extra) { + if (!extra) return null + if (typeof extra === 'object') return extra + try { + return JSON.parse(extra) + } catch { + return null + } +} diff --git a/scripts/dev-setup.sh b/scripts/dev-setup.sh index e145e95..c9e2cb8 100755 --- a/scripts/dev-setup.sh +++ b/scripts/dev-setup.sh @@ -1,5 +1,27 @@ -#!/bin/bash -# EchoChat 开发环境一键搭建脚本 +#!/usr/bin/env bash +# ============================================================================== +# EchoChat 开发环境【首次】初始化脚本 +# ------------------------------------------------------------------------------ +# ✅ 适用时机: +# - 开发者首次 clone 仓库后 +# - 删除过所有 Docker 卷 / 需要重建数据库时 +# - 中间件容器长时间未使用、需要做一次性健康验证时 +# +# ❌ 非适用时机(请改用 scripts/start.sh): +# - 每天日常启停(开机/关机) +# - 仅想拉起应用层(Go 后端 + 前台 + 管理端) +# +# 职责: +# 1. 检查 Docker / Docker Compose 是否安装 +# 2. 启动 PostgreSQL + Redis + MinIO 容器(docker-compose up -d) +# 3. 通过重试式健康检查(pg_isready / redis ping / MinIO /health/live)确认就绪 +# 4. 输出基础设施连接信息与默认管理员账号 +# +# 日常启停请使用: +# ./scripts/start.sh # 一键启动全部服务 +# ./scripts/stop.sh # 一键停止应用层 +# ./scripts/status.sh # 查看端口/PID/容器状态 +# ============================================================================== set -e @@ -8,16 +30,14 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" DEPLOY_DIR="$PROJECT_ROOT/deploy" echo "=========================================" -echo " EchoChat 开发环境搭建" +echo " EchoChat 开发环境【首次】搭建" echo "=========================================" -# 检查 Docker 是否安装 if ! command -v docker &> /dev/null; then echo "❌ Docker 未安装,请先安装 Docker Desktop" exit 1 fi -# 检查 Docker Compose 是否可用 if ! docker compose version &> /dev/null; then echo "❌ Docker Compose 不可用,请确保 Docker Desktop 已正确安装" exit 1 @@ -25,19 +45,18 @@ fi echo "✅ Docker 和 Docker Compose 已就绪" -# 启动基础设施服务 echo "" -echo "🚀 启动 PostgreSQL 和 Redis ..." +echo "🚀 启动 PostgreSQL / Redis / MinIO ..." cd "$DEPLOY_DIR" -docker compose -f docker-compose.dev.yml up -d +docker compose -f docker-compose.dev.yml up -d postgres redis minio -# 等待服务就绪 echo "" echo "⏳ 等待服务健康检查通过 ..." sleep 3 -# 检查 PostgreSQL MAX_RETRIES=30 + +# PostgreSQL RETRY=0 until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do RETRY=$((RETRY + 1)) @@ -49,7 +68,7 @@ until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do done echo "✅ PostgreSQL 已就绪 (localhost:5432)" -# 检查 Redis +# Redis RETRY=0 until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do RETRY=$((RETRY + 1)) @@ -61,17 +80,35 @@ until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do done echo "✅ Redis 已就绪 (localhost:6379)" +# MinIO:使用 /minio/health/live 端点(容器内 curl 检查) +RETRY=0 +until docker exec echochat-minio curl -fs http://localhost:9000/minio/health/live > /dev/null 2>&1; do + RETRY=$((RETRY + 1)) + if [ $RETRY -ge $MAX_RETRIES ]; then + echo "❌ MinIO 启动超时" + exit 1 + fi + sleep 1 +done +echo "✅ MinIO 已就绪 (API: localhost:9000 | Console: localhost:9001)" + echo "" echo "=========================================" echo " ✅ 开发环境搭建完成!" echo "=========================================" echo "" -echo " PostgreSQL: localhost:5432" -echo " 数据库: echochat" -echo " 用户名: echochat" -echo " 密码: echochat_dev_2026" +echo " PostgreSQL: localhost:5432" +echo " 数据库: echochat" +echo " 用户名: echochat" +echo " 密码: echochat_dev_2026" echo "" -echo " Redis: localhost:6379" +echo " Redis: localhost:6379" echo "" -echo " 管理员账号: admin / admin123456" +echo " MinIO API: http://localhost:9000" +echo " MinIO 控制台: http://localhost:9001" +echo " 账号: echochat / echochat123456" +echo "" +echo " 管理员账号: admin / admin123456" +echo "" +echo " 👉 下一步:运行 ./scripts/start.sh 启动应用层服务" echo "=========================================" diff --git a/scripts/start.sh b/scripts/start.sh new file mode 100755 index 0000000..b0a47fc --- /dev/null +++ b/scripts/start.sh @@ -0,0 +1,137 @@ +#!/usr/bin/env bash +# EchoChat 一键启动脚本 +# 用法: +# ./scripts/start.sh # 启动全部(Docker 中间件 + Go 后端 + 前台 + 管理端) +# ./scripts/start.sh --no-docker # 仅启动应用层(假设 Docker 容器已在运行) +# ./scripts/start.sh backend # 仅启动指定服务(backend|frontend|admin|docker) +# 注意:不使用 set -e,避免单个服务启动失败中断其他服务; +# 失败时由 spawn_bg 内部打印日志末尾辅助排障 +set -uo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +RUN_DIR="$ROOT_DIR/.run" +LOG_DIR="$RUN_DIR/logs" +mkdir -p "$RUN_DIR" "$LOG_DIR" + +COLOR_GREEN='\033[0;32m' +COLOR_YELLOW='\033[0;33m' +COLOR_RED='\033[0;31m' +COLOR_CYAN='\033[0;36m' +COLOR_RESET='\033[0m' + +log_info() { printf "${COLOR_CYAN}[INFO]${COLOR_RESET} %s\n" "$*"; } +log_ok() { printf "${COLOR_GREEN}[OK]${COLOR_RESET} %s\n" "$*"; } +log_warn() { printf "${COLOR_YELLOW}[WARN]${COLOR_RESET} %s\n" "$*"; } +log_err() { printf "${COLOR_RED}[ERR]${COLOR_RESET} %s\n" "$*"; } + +# 判断端口是否被占用 +port_in_use() { + lsof -iTCP:"$1" -sTCP:LISTEN -n -P >/dev/null 2>&1 +} + +# 将命令以后台方式启动,并记录 PID 与日志 +# 启动失败时自动打印日志末尾帮助排障,但不中断其他服务的启动 +spawn_bg() { + local name="$1"; shift + local workdir="$1"; shift + local log_file="$LOG_DIR/$name.log" + local pid_file="$RUN_DIR/$name.pid" + ( + cd "$workdir" + nohup "$@" >"$log_file" 2>&1 & + echo $! >"$pid_file" + ) + sleep 1 + local pid + pid="$(cat "$pid_file" 2>/dev/null || echo '')" + if [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then + log_ok "$name 已启动 (PID=$pid) 日志: $log_file" + return 0 + fi + log_err "$name 启动失败,日志末尾:" + if [[ -f "$log_file" ]]; then + echo "------------------------------------------------------------" + tail -n 20 "$log_file" + echo "------------------------------------------------------------" + fi + log_err "完整日志: $log_file" + return 1 +} + +start_docker() { + log_info "启动 Docker 中间件(Postgres/Redis/MinIO)..." + cd "$ROOT_DIR/deploy" + docker compose -f docker-compose.dev.yml up -d postgres redis minio + log_ok "Docker 中间件已启动" +} + +start_backend() { + if port_in_use 8085; then + log_warn "端口 8085 已被占用,跳过 Go 后端启动" + return 0 + fi + log_info "启动 Go 后端 (port 8085)..." + spawn_bg "backend" "$ROOT_DIR/backend/go-service" go run cmd/server/main.go +} + +start_frontend() { + if port_in_use 5173; then + log_warn "端口 5173 已被占用,跳过前台启动" + return 0 + fi + log_info "启动前台用户端 (port 5173)..." + spawn_bg "frontend" "$ROOT_DIR/frontend" npm run dev:h5 +} + +start_admin() { + if port_in_use 3100; then + log_warn "端口 3100 已被占用,跳过管理端启动" + return 0 + fi + log_info "启动后台管理端 (port 3100)..." + spawn_bg "admin" "$ROOT_DIR/admin" npm run dev +} + +print_summary() { + printf "\n${COLOR_GREEN}=============== EchoChat 启动完成 ===============${COLOR_RESET}\n" + printf " 前台用户端 (H5): http://localhost:5173\n" + printf " 后台管理端: http://localhost:3100\n" + printf " Go 后端 API: http://localhost:8085\n" + printf " MinIO 控制台: http://localhost:9001 (echochat / echochat123456)\n\n" + printf " 日志目录: %s\n" "$LOG_DIR" + printf " PID 目录: %s\n" "$RUN_DIR" + printf " 查看状态: ./scripts/status.sh\n" + printf " 停止全部: ./scripts/stop.sh\n" + printf "${COLOR_GREEN}=================================================${COLOR_RESET}\n" +} + +main() { + local target="${1:-all}" + local skip_docker=false + if [[ "$target" == "--no-docker" ]]; then + skip_docker=true + target="all" + fi + + case "$target" in + all) + $skip_docker || start_docker || log_err "Docker 中间件启动异常,请检查 Docker Desktop 是否运行" + start_backend || true + start_frontend || true + start_admin || true + print_summary + ;; + docker) start_docker ;; + backend) start_backend ;; + frontend) start_frontend ;; + admin) start_admin ;; + *) + log_err "未知参数: $target" + echo "用法: $0 [all|docker|backend|frontend|admin|--no-docker]" + exit 1 + ;; + esac +} + +main "$@" diff --git a/scripts/status.sh b/scripts/status.sh new file mode 100755 index 0000000..dace81e --- /dev/null +++ b/scripts/status.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# EchoChat 服务状态查看脚本 +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +RUN_DIR="$ROOT_DIR/.run" + +COLOR_GREEN='\033[0;32m' +COLOR_RED='\033[0;31m' +COLOR_YELLOW='\033[0;33m' +COLOR_RESET='\033[0m' + +check_port() { + local name="$1" + local port="$2" + local url="$3" + local pid + pid="$(lsof -iTCP:"$port" -sTCP:LISTEN -n -P -t 2>/dev/null | head -n1 || true)" + if [[ -n "$pid" ]]; then + printf " %-22s ${COLOR_GREEN}● RUNNING${COLOR_RESET} PID=%-8s %s\n" "$name (:$port)" "$pid" "$url" + else + printf " %-22s ${COLOR_RED}○ STOPPED${COLOR_RESET} %-12s %s\n" "$name (:$port)" "" "$url" + fi +} + +check_container() { + local name="$1" + local port="$2" + local status + status="$(docker inspect -f '{{.State.Status}}' "$name" 2>/dev/null || echo 'missing')" + case "$status" in + running) + printf " %-22s ${COLOR_GREEN}● RUNNING${COLOR_RESET} container=%s\n" "$name (:$port)" "$name" + ;; + missing) + printf " %-22s ${COLOR_YELLOW}? NOT-CREATED${COLOR_RESET}\n" "$name (:$port)" + ;; + *) + printf " %-22s ${COLOR_RED}○ %s${COLOR_RESET}\n" "$name (:$port)" "$status" + ;; + esac +} + +echo "" +echo "===== EchoChat 应用层 =====" +check_port "Go 后端" 8085 "http://localhost:8085" +check_port "前台用户端" 5173 "http://localhost:5173" +check_port "后台管理端" 3100 "http://localhost:3100" + +echo "" +echo "===== Docker 中间件 =====" +check_container "echochat-postgres" 5432 +check_container "echochat-redis" 6379 +check_container "echochat-minio" 9000 + +echo "" +echo "日志目录:$RUN_DIR/logs" +echo "" diff --git a/scripts/stop.sh b/scripts/stop.sh new file mode 100755 index 0000000..f458ac5 --- /dev/null +++ b/scripts/stop.sh @@ -0,0 +1,118 @@ +#!/usr/bin/env bash +# EchoChat 一键停止脚本 +# 用法: +# ./scripts/stop.sh # 停止应用层(Go 后端 + 前台 + 管理端),保留 Docker 容器 +# ./scripts/stop.sh --all # 停止全部(含 Docker 中间件) +# ./scripts/stop.sh backend # 仅停止指定服务(backend|frontend|admin|docker) +# 不使用 set -e:即使某一项停止失败,其他项也要继续尝试 +set -uo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +RUN_DIR="$ROOT_DIR/.run" + +COLOR_GREEN='\033[0;32m' +COLOR_YELLOW='\033[0;33m' +COLOR_RED='\033[0;31m' +COLOR_CYAN='\033[0;36m' +COLOR_RESET='\033[0m' + +log_info() { printf "${COLOR_CYAN}[INFO]${COLOR_RESET} %s\n" "$*"; } +log_ok() { printf "${COLOR_GREEN}[OK]${COLOR_RESET} %s\n" "$*"; } +log_warn() { printf "${COLOR_YELLOW}[WARN]${COLOR_RESET} %s\n" "$*"; } + +# 根据端口查找监听进程 PID +pids_by_port() { + lsof -iTCP:"$1" -sTCP:LISTEN -n -P -t 2>/dev/null || true +} + +# 终止 PID(先 TERM,2s 后仍存在则 KILL),同时杀掉其子进程组 +kill_pid() { + local pid="$1" + [[ -z "$pid" ]] && return 0 + kill -0 "$pid" 2>/dev/null || return 0 + # 尝试杀死进程组(负 PID 表示进程组) + kill -TERM -"$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + for _ in 1 2 3 4; do + kill -0 "$pid" 2>/dev/null || return 0 + sleep 0.5 + done + kill -KILL -"$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true +} + +# 停止由 start.sh 启动的命名服务(以 .pid 文件 + 端口兜底) +stop_named() { + local name="$1" + local port="$2" + local pid_file="$RUN_DIR/$name.pid" + local killed=0 + + if [[ -f "$pid_file" ]]; then + local pid + pid="$(cat "$pid_file")" + if [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then + log_info "停止 $name (PID=$pid, port=$port)..." + kill_pid "$pid" + killed=1 + fi + rm -f "$pid_file" + fi + + # 端口兜底:清理任何仍占用目标端口的进程 + local port_pids + port_pids="$(pids_by_port "$port")" + if [[ -n "$port_pids" ]]; then + for p in $port_pids; do + log_info "清理 $name 残留进程 (PID=$p, port=$port)..." + kill_pid "$p" + killed=1 + done + fi + + if [[ $killed -eq 1 ]]; then + log_ok "$name 已停止" + else + log_warn "$name 未在运行" + fi +} + +stop_backend() { stop_named "backend" 8085; } +stop_frontend() { stop_named "frontend" 5173; } +stop_admin() { stop_named "admin" 3100; } + +stop_docker() { + log_info "停止 Docker 中间件..." + cd "$ROOT_DIR/deploy" + docker compose -f docker-compose.dev.yml stop postgres redis minio || true + log_ok "Docker 中间件已停止(数据卷保留)" +} + +main() { + local target="${1:-app}" + + case "$target" in + app|"") + stop_backend + stop_frontend + stop_admin + log_ok "应用层服务已停止(Docker 中间件保持运行)" + ;; + --all|all) + stop_backend + stop_frontend + stop_admin + stop_docker + log_ok "所有服务已停止" + ;; + backend) stop_backend ;; + frontend) stop_frontend ;; + admin) stop_admin ;; + docker) stop_docker ;; + *) + echo "用法: $0 [app|--all|backend|frontend|admin|docker]" + exit 1 + ;; + esac +} + +main "$@" diff --git a/test-report-phase2d-bugfix.md b/test-report-phase2d-bugfix.md new file mode 100644 index 0000000..3d8950e --- /dev/null +++ b/test-report-phase2d-bugfix.md @@ -0,0 +1,137 @@ +# Phase 2d 富媒体消息 Bug 修复报告 + +**修复日期**:2026-04-20 +**验证方式**:Playwright MCP 浏览器自动化 +**测试账号**:前台 `testuser1 / test123456`、管理端 `admin_test / admin123456` + +--- + +## 一、问题概述 + +用户在功能测试中反馈:**图片上传、聊天发送图片报错**,页面上无法看到图片消息。经 Playwright 自动化复现后,抓取到连锁的四处缺陷,全部已修复并通过端到端验证。 + +--- + +## 二、根因分析与修复 + +### Bug 1:文件上传请求指向错误端口(ERR_CONNECTION_REFUSED) + +- **现象**:`POST http://localhost:8080/api/v1/upload/image` 报 `ERR_CONNECTION_REFUSED`。 +- **根因**:`frontend/src/api/file.js` 将 `BASE_URL` 硬编码为 `http://localhost:8080`,与实际后端端口 `:8085` 不一致。 +- **修复**:复用 `@/utils/request.js` 中的统一 `BASE_URL`,开发环境自动拼接 `http://{hostname}:8085`,生产环境走相对路径,由 Nginx 反代。 + +```7:13:frontend/src/api/file.js + * + * BASE_URL 复用 @/utils/request 中的统一配置,保证与业务接口一致 + * (开发环境:http://{hostname}:8085;生产环境:相对路径由 Nginx 反代) + */ + +import { useUserStore } from '@/store/user' +import { BASE_URL } from '@/utils/request' +``` + +### Bug 2:MinIO 存储桶默认 private,图片 URL 返回 403 + +- **现象**:后端返回的 `http://localhost:9000/echochat/...jpg` 被 MinIO 以 **403 Forbidden** 拒绝匿名访问;前端 `` 因此无法加载图片。 +- **根因**:`pkg/storage/minio.go` 仅创建 bucket,未设置 Bucket Policy;MinIO 默认对象为私有,必须带签名或登录凭据才能访问。 +- **修复**:在启动时为 bucket 设置 **public-read** 策略(仅 `s3:GetObject` 匿名可达,上传仍须 AccessKey/SecretKey)。 + +```41:58:backend/go-service/pkg/storage/minio.go +// 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) +} +``` + +### Bug 3:MsgImage 组件布局坍缩,图片不可见 + +- **现象**:即便 MinIO 可匿名访问后,`bubble-media` 宽度仅 12px、`` 宽度 0px,图片无法可视化。 +- **根因**:`MsgImage.vue` 中 `.msg-image-wrap` 为 flex 容器,但只设置了 `max-width`,未给 `.grid-single` 等宿主元素显式宽度;`.img-thumb` 使用 `width:100%` 在没有父级宽度参考时计算结果为 0,导致气泡整体塌陷。 +- **修复**:给 `.grid-single / .grid-single .img-thumb` 等增加 **显式宽高**(400rpx × 300rpx 单图、156rpx × 156rpx 2 列、110rpx × 110rpx 3 列),并声明 `display: block` 以避免 inline-block 折行/塌陷。 + +```68:97:frontend/src/components/msg/MsgImage.vue +.grid-single { + width: 400rpx; +} +.grid-single .img-item { + width: 100%; + min-width: 200rpx; + max-width: 400rpx; +} +.grid-single .img-thumb { + width: 400rpx; + height: 300rpx; + border-radius: 12rpx; + display: block; +} +``` + +### Bug 4(附带优化):H5 下文件消息丢失原始文件名 + +- **现象**:H5 下上传 `test-doc.txt` 后,聊天气泡显示为 `file-1776653949262`。 +- **根因**:`URL.createObjectURL(file)` 生成的 blob URL 没有保留文件名,`uni.uploadFile` 把 blob 的临时名写回 `fileHeader.Filename`,后端据此生成的 `result.file_name` 丢失原名。 +- **修复**:前端发送消息时优先使用用户选择的 `file.name`,仅当其为空时才回退到后端返回的 `result.file_name`。单聊 / 群聊 H5 及非 H5 分支同步修改。 + +```383:395:frontend/src/pages/chat/conversation.vue + chatStore.sendFileMessage({ + conversationId: conversationId.value || 0, + targetUserId: conversationId.value ? 0 : peerId.value, + file: { + url: result.url, + // 优先使用前端原始文件名(H5 下 blob URL 会丢失原名) + file_name: file.name || result.file_name, + size: result.size, + mime_type: file.type || 'application/octet-stream', + ext: '.' + (file.name.split('.').pop() || '') + } + }) +``` + +--- + +## 三、Playwright 端到端验证 + +| # | 验证步骤 | 结果 | +|---|---|---| +| 1 | 修复前:H5 上传图片,控制台报 `ERR_CONNECTION_REFUSED @ :8080` | ❌ 已复现 | +| 2 | 修复 `file.js` 后:上传请求落到 `:8085`,HTTP 200,后端返回完整 `url/thumbnail_url` | ✅ 通过 | +| 3 | 修复 MinIO 策略后:匿名 `curl http://localhost:9000/.../_thumb.jpg` → **HTTP 200** | ✅ 通过 | +| 4 | 修复 MsgImage 布局后:单聊气泡清晰显示缩略图,保持合理的气泡尺寸 | ✅ 通过 | +| 5 | 点击缩略图触发 `uni.previewImage` 弹出**原图大图预览** | ✅ 通过 | +| 6 | 文件消息显示原始文件名 `test-doc.txt`(48 B) | ✅ 通过 | +| 7 | 管理端 `/#/message/list` 列表显示图片 / 文件消息类型 | ✅ 通过 | +| 8 | 管理端消息详情弹窗:图片内联预览 + Extra 原始 JSON 正常 | ✅ 通过 | + +--- + +## 四、受影响文件 + +| 文件 | 变更类型 | 说明 | +|---|---|---| +| `frontend/src/api/file.js` | 修改 | BASE_URL 改为复用 `@/utils/request` 中的统一配置 | +| `backend/go-service/pkg/storage/minio.go` | 修改 | 增加 `ensureBucketPublicRead` 启动时设置 public-read 策略 | +| `frontend/src/components/msg/MsgImage.vue` | 修改 | 为单图/多图网格增加显式宽高,修正布局坍缩 | +| `frontend/src/pages/chat/conversation.vue` | 修改 | 文件消息优先使用前端原始文件名 | +| `frontend/src/pages/group/conversation.vue` | 修改 | 文件消息优先使用前端原始文件名(H5 + 非 H5) | +| `test-report-phase2d-bugfix.md` | 新增 | 本次 Bug 修复报告 | + +--- + +## 五、后续建议 + +1. **生产环境部署**:MinIO 桶在生产集群也应保留 public-read 策略,或改为 CDN 前置缓存;若需私有鉴权(如临时签名 URL),需改造后端 `buildURL` 为 `PresignedGetObject`。 +2. **错误提示增强**:`uni.uploadFile` 静默失败路径建议追加详细 `uni.showToast`(当前仅在 `fail` 分支提示),方便后续端到端问题定位。 +3. **文件名长度 / 特殊字符**:现在直接使用 `file.name` 传回前端展示,需在 UI 上对超长文件名做省略(后续优化点)。 diff --git a/test-report-phase2d.md b/test-report-phase2d.md new file mode 100644 index 0000000..3d276f2 --- /dev/null +++ b/test-report-phase2d.md @@ -0,0 +1,103 @@ +# Phase 2d Playwright 端到端测试报告 + +> 最后更新:2026-04-17 + +## 测试概述 + +| 项目 | 内容 | +|---|---| +| 测试阶段 | Phase 2d — 消息类型扩展 | +| 测试工具 | Playwright MCP Browser Automation | +| 测试范围 | 前台用户端 + 后台管理端 | +| 测试日期 | 2026-04-17 | +| 测试结果 | ✅ 全部通过(7/7 测试项) | + +## 基础环境 + +| 服务 | 地址 | 状态 | +|---|---|---| +| Go 后端 | http://localhost:8080 | ✅ 运行中 | +| 前台用户端 | http://localhost:5173 | ✅ 运行中 | +| 后台管理端 | http://localhost:3100 | ✅ 运行中 | +| PostgreSQL | localhost:5432 | ✅ Docker 运行中 | +| Redis | localhost:6379 | ✅ Docker 运行中 | +| MinIO | localhost:9000 | ✅ Docker 运行中 | + +## 测试结果明细 + +### 1. 前台用户端 — 单聊输入栏改造 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 语音切换按钮存在 | ✅ | voice-toggle-btn 正确渲染 | +| 文本输入模式 | ✅ | 默认显示文本输入框 | +| 语音模式切换 | ✅ | 点击切换为"按住 说话" | +| 键盘模式回切 | ✅ | 再次点击恢复文本输入 | +| "+" 按钮存在 | ✅ | more-btn 正确渲染 | +| MorePanel 展开 | ✅ | 点击展开,显示"图片"和"文件"选项 | + +### 2. 前台用户端 — 群聊输入栏改造 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 群聊输入栏结构 | ✅ | 与单聊一致的改造结构 | +| 语音/键盘切换 | ✅ | 功能正常 | +| MorePanel | ✅ | 功能正常 | + +### 3. 管理端消息列表 — 基础展示 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 侧边栏菜单 | ✅ | "消息管理"含"消息列表"和"消息统计"子菜单 | +| 筛选区域 | ✅ | 关键词、类型、状态、发送者ID、时间范围 | +| 表格列头 | ✅ | ID、发送者、类型、内容、状态、会话ID、发送时间、操作 | +| 消息数据 | ✅ | 正确显示发送者头像+昵称+ID,消息类型标签,内容预览 | +| 分页 | ✅ | 共 141 条,20条/页,8页,支持跳转 | +| 操作按钮 | ✅ | 详情、撤回、删除(已撤回消息无撤回按钮) | + +### 4. 管理端消息列表 — 筛选功能 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 关键词搜索 | ✅ | 搜索"测试"→ 141→31 条 | +| 类型筛选 | ✅ | 下拉含文本/图片/语音/文件/系统,选"系统"→15条 | +| 发送者ID筛选 | ✅ | 输入 15 → 4 条(周和智的消息) | +| 重置 | ✅ | 点击重置回到 141 条 | + +### 5. 管理端消息列表 — 操作功能 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 详情弹窗 | ✅ | 显示发送者头像+昵称、状态标签、ID/发送者ID/会话ID、消息类型、发送时间、完整内容 | +| 撤回确认弹窗 | ✅ | 显示"确定要撤回消息 #125 吗?"+ 取消/确定撤回按钮 | +| 撤回执行 | ✅ | 撤回后内容变为"[已撤回]",状态变为"已撤回",撤回按钮消失 | +| 删除确认弹窗 | ✅ | 显示"确定要删除消息 #125 吗?"+ 取消/确定删除按钮 | +| 删除执行 | ✅ | 删除操作成功执行,弹窗关闭 | + +### 6. 管理端消息统计 — 基础数据 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 顶部卡片 | ✅ | 消息总数: 141,今日消息: 4 | +| 时间切换 | ✅ | "近 7 天"/"近 30 天" 单选按钮正常切换 | + +### 7. 管理端消息统计 — 图表渲染 ✅ + +| 测试项 | 结果 | 说明 | +|---|---|---| +| 消息趋势(线图) | ✅ | 正确渲染,04-17 显示 4 条消息,tooltip 正常 | +| 类型分布(饼图) | ✅ | 显示文本和系统消息两种类型分布 | +| 活跃用户 Top 10(条形图) | ✅ | 显示卜锦元(最活跃)和段凌云 | +| 活跃群组 Top 10(条形图) | ✅ | 空数据时正常渲染(近期无群聊消息属正常数据表现) | + +## 已知限制 + +1. **富媒体消息测试**:图片/语音/文件上传功能需要真实的文件选择和设备权限(如麦克风),Playwright 浏览器自动化无法完全模拟这些原生 API(`uni.chooseImage`、`uni.getRecorderManager`),此部分需手动测试 +2. **WebSocket 实时推送测试**:管理端撤回消息后的 WS 推送通知需要多浏览器窗口同时在线的场景,单窗口 Playwright 测试无法覆盖 + +## 结论 + +Phase 2d 的核心功能均通过端到端测试验证: +- 前台用户端的输入栏改造(语音切换 + MorePanel)UI 正常 +- 管理端消息列表的筛选、详情、撤回、删除功能完整 +- 管理端消息统计的 ECharts 图表渲染和时间切换正常

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
qLwo@-v0l`03GZch&IWE5|3&>M@hVgNJA0U2C{J z3KxT#6Yu%jF>V#ngU=Q))Q*hQPPv0r(UQVcSP>!)wYyymR|Q-0JyexsKduC4e6IPf z@k#bE%4*C=fZz&;3ZC^bgz9;u4FIB)%$CWNMkP4j9Uzksl5oV3W2SOR^I>a1iZSvz zVhGPWdnTUo(InH?6Hf#q7XYNFnV1AsZ*%6DPsAM zKsY@n9e^cb6Pj|QJ9%Cq&fC7d`}`NqVD1f)!S8JZj^+^_9u7Xt#otNWJgdd}{OK2e z?fWMuj0Lko@PjOZ5<4{)#bRGHgds&FYIZO^S{JVz-KwK04GRe?hMh2GfQ>aP#D;P+ z&ut-z=+v`Iyf&8E<17=~sGf~4t+zSOhyH4y3(*CeU!w~%37950&ySXlUOx3tB$bn> zt_BN{s5d3z#I&|kcB7T6M$36L8k7q1;a$@EZ;N`s7kBY!i) zNNGP}drLlcL8G|lK}|EudW}yg@iHS+%L#!bZ>>_Ia;(;^3q|b5-)P5ftp!a|IzPug zMr`inbBY;5#iVH1l(W+?&&pq<`daYReA#16T7nLYt`=Ba7ZBqbt#wYypH&0gx*OX;#U8D$r$Mic9Jbfw zhdJSxGE04^Bj|mgmb-=bBoYpX^fa-J{z&ktuG6K1v5y4S1urwC(OgUu>Lb3>1y=A)MA9S z$5@RXL+4&CU$F#XUqe#X(h#0GKD<74o;XSPEve$#E-G9JTYA@bB{eaHxiX++r)}Wl zLCSS>zsBWav!k2!>ctBkO6c?#MoVRc9q4My0#Q8{#s1<9ZXMF-|;qmVI z?BeD53dtC&302#N5E$Ki&zJix`12Zcd?m4hg8c2%*{(@7W_!%}+a$JDx=g+@b^mA}=g>-wgs0HAM8>0+lA1LM$i*R@ih9o02?9`E*ID_ImjvpSr)fwPCk_ipc16 z)5@wtQ-=y-W{^DIlBL5Xmrs0*WRjy|^L%`Bf=T)b!kI0rmo^B^WAl6T0H>Gm`9Q5u zKoYj(HyM_t=lNWsiAeQ5)y33N$mSdk5wyDXu}k{S^5h7k*fZR;$^3R8kf_zE9JyVy zrGs3YTmeObZ9-me+|Y@$(ht4Cl`m*K zF&%TJe*h>#>GPCTU=Cp}uOlN}!-KheT>LfKcvSkqPkCtS2!dfFIIaV*kVtUTJX@WR z_>FK1!}vrd9M-q<7i)11An)}EQKMT6~`W7Iwm`C+AwAT=GuR3{5!i6v?t1 zG!5p)bS>fr^lkFtq)g^(CRVa!?@ph$#~0^UpZVEu&=>$pOV25!ANYLCw0c(GgGR@AH zgc^-|<(-0?*osOKnK0P%-dcs5Eo-iTkzhAFtMKJI5gwL)?)8+&W+mDeAw{-%hN!ZH zlF&;W^i8T7F=7mw9R6MV%vUJkhe-aex-&a5rHBnme69)JVQBwGp=hHC0h@Pd13}`) z{egFlFFQ;Cj*KsXOzJQ)atq?Jpn`n!B|&?pJ6y2?n=1wTS4SmIxOT%A?Y-%`ZzXDF zDut23c*5^}R#PJKkPT&nMI|*Kh)9fT+>df=vyE+LVBdLI(yB)zbo1ZC#+*hEpQZdz z8fBEo10%?N?Z3uRlbYA^Gx;g|F(;N+f|YBg-m z-;_sbV}Ziz$`Nb(Eia27!3RgOg!~?@M$E!l`P_2k zHa59#pN?+!&u?@+rY^zo3#}RB9l=Tu)=45#CwMbxf42a0TAwd2d23cw5}_Hijw!P! z%y#Saho_SZHNjMm+|K3=A}lMx^Y_tSIXwC45iL9#;Kyg2e#CF^g(O>|%7K$`x<7V^-w6cx@`=-48DA@bHf3$%G7N8iSf19Wa$5 zj$Ihm_j=8r`S98EvN`fza(a;|7*7vPxB)49L-v(6tYt+aE+Q*WJVWw7UXVMSyC@5( zSj<>#0HGm$OPbfccOZmnJ91@?#fLpQEOm@!GhZsOya@w{cJKUW630oKCJ~fw8E$OQ zWIgS6vdH5?P9Q7H33~90>Q)^nhcib^E@#{$*Oe7HP~6m!!q=us(woxk^fiH=P-92R zD?`0+hNP*gP8U{w`4Nh&8Xwg)S-9VCKltDL{@-xE|Ln`v)&81WCTy@aa_j}(sEcZb zP;IkBAiX>N^p9VkJ!_Eo{NO&XYoy&A@C5r2Xckz|&XO_+&G2xF2#&saKGC;0{tXSy)e&|;oM-|Q>{G%xYu~Dug^iwzU-TZj_ZlfV|4JaaBx^A}KEpL% zO}Kdp*7s`bIIFLYo-P4P1~oCfOuxg2RFP-4;*U{9XpV3YUZ5u9Ca~L4YX;AO?h$)X^#(t2MvSSvVJ}8+H;-VQSr7Q@ zWM+T~38_3o8@LaUW94OA-~>rGZ%Kl8O0iR7&Ge-A{`L=Sp6~726Riau4=KBs!5tG` z04%7?!TB>td-|RK$j|=ROWQLJcN+(G4OOD%qae}F(b*uzgmi^w44&RhDC&Px7m_Bs zTa8qmiGGE>_08H+x9fo;2;&(vx1(jD2OEsI)xS>?E1gA5CG?JO80E+GlqMWC!Ad>O z#H$jNq+3(bNfPp~rw48*jU2-Yl8og)@1Wn9)cx zeW0oRe0}$bWF6x&BHNld=clWeJ~4lds-~ukJ>`|dV)nkbx7Q%AV$}k|@K}hqZ;UN5 zGLeYZ;-rsHW&+3r-=47$G<5WKmzoW!>=cf~jhEoYqoOv_p-FRv6A43)cp5=Rm*7>7 zZ>i*#Zv-pyjwrI_o8-!?XwrwB21V>T=7q_Iw(A)4%*%2Ln(4jt0cgu;$`>a%jdJ`* z$6-G1>EeB+STyICL+=etAks!H{sDf-XiDx8(gKm4JmN#>^ja>4!XAvBxQqky>Cpx= z9`+yuM{Pf0KFcg)(GaVA@;}xA-$~n>Wd``f$=V7wiUOf=z5BacF8^w|-rj5gCYZkS zaQAxuc&%|p`%SZ%v!e|m)R@Dx<{N{x`uRI8HLy~E`+4+C&vbeA60xddjCfWQ)7*z# z!RMV6d{294i_=5ldz^HsWZeT8B`uw4@&EkQq8%3h zW@|bb#sMmy7$7wBI*D~MQf2i@Fei1$b}V|3+bKo&Y}(MKgUN*HO8JvfosPxKg)nV4 zMR3ok01rT-1Iw8d%&ij-bo8FZr;{K2G1@5aWjcp%r$%I=k*LZ=#W%MkxKO7BtMo17CzCWsxH1@VZNvptfcShyDwMTG zwnJeg07%TgemwqA8(uYObb|FuRDFrEY;kg-4JpcYfi<8MFlRMM%2BT{=P&>{1qo2( z)_(latt=VdbVIy75rx`$a(C<_D9_}C*ewAhDJ0Ja1GkA$QP~^`PNNX!LpWZg>pkB% z0Ul}xlpPk_{D=06-5zyz)I(e(c5aT}aeyhEC!khs8XzQL3#j8F)XT*SsvwdU&m=l` zNz3C9Xc|h|qH(21phGh#($L5X>1fhjg+Q2nK+TGMsDqiC6+eKh`K2@1cly~%2U@=R z-oN!B$%FlM5oGDl*)_=_5#Oz&im5E4Fh~(U@l{X%v)}h^5WIXm3P?$JL{dd-#HCe? z+iT;!JS%`G?IUzP9HjKDu!5)x8Y7F(>0^cXoIf2QP{vBy=( zRuP9uVXiF`i)jFfFtzL3_#Qu6DY_=W2dr(Z%bmg&>#=}PWp!}YY3_u|K1MN6Z4O(& zbSFfI&vW~aCC^5HCTIU}wm-tz;28V)OXE64mk3w;p=?H~rPj5_53}P|f zjO0`6j(=O1WE`G!Q;Z*1@H;ntz&uP+{45F*g=-?1H6flB5Xtpo)zzSRpoc?nlHfx{ ztl-rp7!A5+cUJqOX0gQ$nPj0>gIxu#VZPyvCtTdf9+)S((T*D#DUValKcBEzoxPG; zj!pdOp0+QBRvp?Lx_Xr`{gh`!&|(8_Zxx^N+jrZWE9`679DqhUs572QrZ2#Ccektr z@)2pZ&wGtUW-2OCW%)`*cU34>=IlOPc+6B>Z+D!h=G>$jjt0z-$wE=Pa0kdBH)F{F z13}3?eSy0$Kc`$2on{BaoLnBD84Fwf)|Dqc63)8Avj=22Uqryhw2uqI8Ya%jzuC>_ zI2~TRzf(#qveQ752fP<6TbY8&%&!-m{u~_y#{K=9{q7AmOR_Ft<{GG2VLTZo(sSdK zpK9cJsZyM5Ab|5r@LDfkL0nV`;+aY=0+4gIyJfZ|so3%6_OoZFx`Ha;ACec3HJe)a zNQOw1%&L4C#>R#2G59$}B!6^uetyLZL&5ui>R%<<3+R>XD!Fg6oc$tLu)Nk7Jt32G zz8Lkztu`U3ju$upt$9gWA= z0Xub4hqQ4=XLP&Bg^Y=#1@_pCMisI40+tQ5Y^)eu{xL6Ewxr zEk`)0M0bZ#q*oDdzD~@{29bbL*UZ)5h#yC3LRV_s2hVJttqr4AQE|$f<5b!{fJRvG zD623f%yF5sn)l*yWz#lgn~~3FL6$?n*uVM3Uv>T6f8wA1xtCvjxcvgjy}#%n2^u`=lkaq}a0XBZ&f#3u+^0I-%1;&wS6VSK6Ahu;E2fYKVsKfGo* zpu=hK2ytq{AY&4*Y?*oXy7%Mo+J)wo==gv*E4vgBFFwk*e|JrDiX+l_d89PJX+A2F zIwd>A1fdU`FC;3&M7mnMZ_=?_XYKjf@}^r3&6g$*jCJmrYSJ0lV1qh<3Wk>Rbs9yN z4L-pZ)EWHJrb^-+>9S|o*#n$s9eH*M4anr%%9pB2E6yTM+H!|I!^|stbmH2kVJW&P z-XZKo1;P___%vIEVs3*=gL4~*;4>)A_m05Au9FMs?CNj*(8e}lj{c3f8bH^N=l|@k z_eVSCZ%{{l_zhqE{Kx)}|Ln_$AC`r5$^;1^Dt@H;5LwNwu37<~rp4_n-i3w>#B;1x zqRM(gH#W|*9G11vsnvyHp*D?KJ;ye2e@nX|Q=)9T+V2NFAY{)hSWDBI^K&Rp-23UY zS>Yo@Xd4WK^RByOM9j}ZP8EST?BW}EF zbbI^eMjAa&B`7$gpfCUTsiXLi!oz`G)MuJt#SXMuGfatD(6%#s9%H0gW^=#ZLm|j3 zugzB)WV$v>v5vgO8>^8+y6aCW>MgWyvgvV-Sf6Gf>K>+^lqy<6#mDfplNrviEHQ7s z4evKCOQD!>94R8h8#HFZSP~3kWW{~>@F_}F4JAc1w}-t%xC#$uT7W8VdKyd;*nn$n zSsX?}>TP#6D-L-2e0lXgiLr-{JRw`~1QtDMxn|l-K+!r+J4Tun$Pcj{SOD}T<(0vR zSONW3LCgJ3={_?Lz^FVNZ7OpYRy!s`i$i>t?B_&ZHgZ%{n-5gTMlU_<`3%SB@yQ;i zn)+~8#V8-En?yiMdrU+ieuo_~@-MVtKBQ*qv4COIm|ZIQhJ>|Uok5Aw3Bdb*T5g}< z`l(^#)FM0e_M1)3J7&)M62rj#tr|$M=q*1*(1qxP&{rb1WOh%7*T)PTwPQ}o#^u8O z(VLFc&2a#R8YY`^PV=-ucxByavIyyjh7r%2$EpYd1r{gwInmHV5tjJl{rcq#4kYMz zKq2)1V8<(pX3Xs6ONO30104iTD>r^tmU6}b+M%wEyvYRXe>pZ^zNDXWQZ)%6GPgJ`*J404~Yo0Z)m@= zYvl9FjHukC8N~re7DH~Obj%baWFFe9u?aJr{j0^N|EvG||KLCSQ$PF%{;ltOc)qeq ziHF1Yu`twRI$HFO_SpCS_1C=C)ydoK2~cfC8qewsMytuj_(6~)7_sd*@bd2Pofp$r z0f6z?l96{@4qal>57;PRRd8VR-O<)X+6o1{fL=mHGY#3?S{>3L0L!VF(gZ$A(z;A? zf}Q!Jn5+RAS~kd**Bpb0tG(GsQ%Fy^UmvF20((MIn0S2ZmWf|vZQ$4I{lkWq1>_vS z1mAUXY@QlO;1YS1>EP*>r$TB1nxkbA?OF#L`Kk5`xFupOH4@jz%plHqRsx-F5SKG> z9p4oqSx;;PBhVnsM|{|l!09;i>dcIdsSLou%$iJ9<<1Si%Vljf=eOzZbH3hDU4o$y zDDUyYF|lwcCyhRTuUsDjiB6Q5kZ^-~Ekc8kOtprGcgvU;CC6fjQnT6nbdMs#El)rH z;q#CE6lpiV1|y^aIdatIv4iQD1f72UFMR&`U$Xv|f9RL}>Tms;^XDI=p?}SGajX!0 zcEU1G;0#ogW&iwiE%4*eC6Otql!jmVH7Bq^Z5bmu^oX_GtXr-lKwYP@0n=jMX{ZL} zJ077VzwBawz!ml^z^j}CC4qKajCloy4wdcN(egF( zvut>2x0AUSHNGcSR+FNksJ88SaeR_6-Sj*J8x1Uu`lkWXpJ5@l{Z7L}5#f03nz0F1RIM5PeYQhi* zju;(2wNV)S8w@BOom6gdK5u2Fn2E%Xu7yvYsq!X{Df0a2hX;#8#)QGd;WV*m8RSe0 zH@y558Bmvw6_uf8Ce<7ODv5&+_EzPM`lLlSpq|jM21zy*Vk5{_<`la_Y47t#d4bn4 zuD|L8&KD~NX-Na-ryzz9k~!SjL&&I&d35YyWa=8D2tNrBYiV_>nY>^XFsc?)WJY&; z9S&VN{MaLG7ewNepWyZ!zGk}S-I#L>;p(^qH*&PE){IsqUnVC<}lmba-1tP7?7F;80$G%&uW8=j9m9tTcFe?H_zJMUvO<~x2mr2 z(zq;j^VpM_u*mqaDXzDemM?q@SEz82)RrZeZFJf5foe0A);pBj+8+8*A><&Nv^cJI znToA&#-izsB=y%Ej}jA?IkmWl&|^Kis^4FK!J@@3wV=VQ^dj z%rq8}eaSl1J9BE;zR2LgX04(oxjCdbQNNQdsLQt@O(Z2oah6m9n)L8q#!oUBK!hAB z8|U1MkLJ5-XDkk8?P|dm%P&_5>5-1-k}Dl=PT^vgT3^#E&cfIK^?&cT{M@g2)uIxQ zmK`%w4(50H>rRh9_4((Y-aH&HcKY|yDaFDLVl{XQP%KP(%p7=oa{fdo9M}$2{xFp4_lIm=s2j(?LdB_}9;!^M$AmOm5uc`rmcxjsSA)=}(C&`Q^?e` z$E?^%6MDKpTKuiwbo#ITi@)^Oe9P*^;?oxk@H6laC}QfUGr@@Dr_|lAgH>+au~bn) zUp(^T#g(LwG|xO|3Lb7G<4}HN(>aCC~c(f}8;I9C0K#;#=^%1^szA^i( zV>{WBd}PXCXA;rIT5lb*sv@C0p>_6?L4gL{?F_}kNS#9qi8XhH#L zPy#V?lnDskfmv^a1c9S YVfF_r7|0o}+3G1<5CaH>4j7xX{?D`m2p<-7y8CN9m^ zo9pkAB%vF?M{hr4%U!F{~tw7p~gc zY+W#7vwdq<%AQYhXvv=A??ov>itcXnMG!<;*UlqrSbfH`;5~ris!*v{qC%225dr3D z8}#N8TfNb0eOhova9cr6l9BP$aV9dCM%$WZKgAb#GWEUbo-fbnO0`KrX4Clg;r=cA zoXwxV1;e@#Q(O_yp@%aRS{OmKJPYL+Z#|R ziSpG+Y$bM}(~l!+sc)?O(on$SOUK@DQ43aR9fPd$os!7$N%BygS*o6@;zN-Nm7(!_ zt5$1fn;E!gYEiYpsdxNjJPb8^U89TxBm|p1y||RJF+z#W?R7*g|$KBFOm~}>r5D`Oellp6_YyN(46Y#WC=$mV83NN=L&wAM0 z{n;Sk`gR2qp(Z#^?2`@9gzbUHc-TA#{`-7&PA_?biA1T^A+z6n5nUPs>jVi9VT^uxw;UVJ(l*Nri*i(_an2! zWW`n*FpsmSKKspI!}wl*&q!Ons0?GO{t*d0Zk`r@?R!7NzOW6C8#@bN?n_ouv?e>2 z#0W{)pkknzxcPN!X)IWb-usbM28AvUD^G=*dq^vl~1I^coE0G}1F^s5SAONw?T;DUwkO0|)Fe(utz%?(sdLSe zdoQESP3C={rKP&BZ9*eD8SvXCHo`c_LaLE3rNGoxP zB5fF~?wTURe|jEY&ua5)kpF1CV<<@m5bSw7-h3z)oZW0$BkJC!Qd?3{;DJ22a4P7s@5gkR?&1~D}1)XBba=Apt_s4puuF z5hh#}WZn1}l{$egXAHvbks+yA@kA4JgUbn~M%|Mm%aTHxo=z!ZWi2bGdvcDK#f7kkmRoNaPz-OollJ6wE>n>#V!@}C$q_km(~f;1)UnkB0l4| zq!kBqwHyzl91p<`bA>*tiPF;W2;8ZTND1` ztqSdEuglomOM8%#K5dQg;;1>Ohh}X13{tQeUtKo|jmw?iVc)Gl#{by07ObL8J*@`Qb0m_5bXrlcwn@kI0(;&gPu_xvbmzL334FVZ7r&jwB(Kb)KR3m=r%%@XH5hFlCriijWN*eI5%0 z-U3cDre6dIPjC4Iuuc*{z|7^ie1)^!w|(=^N6<%lDdT0Qlr#~BkA`q)1W z0cuKG6Fhu$*jiANpv+)42rE$Ts@p`52Aew=0Fb0e&*3|>(qUVBNC-YLP~G+%{Nnd8 z=$5!`q;ANr3^Tw1GAN)V_5wm$TSO@m#M@<4NeP9M>(QuvfSIo9voOjV18#gWwOuFM zJ!%wW2Yh+i*qK_@%ziA5Pd}`h4N9uAUguq5!4^bi;zp*F`X9L5SqNf`aA=&W=C0p{u#S0R@KO@%@>V8 z3Lw)t#|1IJC!ILE__N>jlLGzbq+txf5|;aUk24P%+wQOZ>Mz5C8DZe5+QR`*L6}gc z=|<@qn?b+U2mHr^xZfeWVQ!EycFbAxen3pRmI!BU=*D+zjuqdVJ?XaU;Px7{8E}#3 zl3<9lG@GEL8cPmAv9#?{NzEftK{nGw>@E2Z7K~(slAI3QAP=@M4tR6eE%>QyZ=|`FQ1|4xVHM(#`U(gMSw>d>8z^vT`GV-*71QG?DJHloKL372Bt+T z8AT^AAE*m1PWHc|i|6#+tUvfMEYCUgxm!V5WQSMz0K>fT8LPY=^vAu$K?;6lF#Y{Z z#E?Z!4z>yTj2rv>C7oZuHfT(WoKMz}z(~%>OxKsBKhuihzSht?6>2ool&5TC5t%Z_ z1N|wJOX^#Gx0Wi_(;1)es^ER5Ny^?P&5>;vBeB3Drwfku}94z_swYDj?ocCn@LU{-}!AUIxMz5jIbo=)iwg`l0o;hD}K z80iUCFGqRP2=pl>^QJ#e>j&-{Cu(Qg1E$r_zv3IeidCFt2L+1(QUfv5Hdl_rz|PM9 z++X|R=H$JckWFV;R2eLJr170lgYCXRIBVj&<6?a|&9%@1PyfJ}B;+fU9M%9@|JAIm zprm1f0P~bYy&JI!rlp1w7^WwC+HqO7V{J)hcSERoxKX5vIX)GH%s!x87AmiWYz8LE zXi2z>b0Mf4255Qmqbz($jCKauP{f&Q?puU1yl;6e_PaGUY~BvF|1 zRF0`cHKJy7dQ)7LMC&quRCw0Kz@orG3T(ZP- zC!ZR|4e9*w+;J^R9zXx#_ETSw@-nCX;VUBsD$i^W&wuWhBQsb(-H9<%FbFF7Dx)7I z#LF~<-74&-e5_oAERE)De!F|(?epnJo*ynP`aNU^M;2;xmU*^hTz~C-&uoQZ;b32C zb!9+cc&l_l)&x@MSVI>`I(DfZHuvRvPjE2R3sN<);}J>avA#6LEC-scH<4;`h?12E z*FioOrQouO%u87UNW-Ch8!_|xgMTl)5p+}dafjuk=K4hC9S53D zk!r}`2iwUhR%fuFrf4}69(+Iqs{*!-8|JtXAA7xrR+mf60@Z?FGmRAcCYxctQaONd zoF*o>u39%s?&>k(vwcZpvN({VGJ`TFK{N%d!jyziZqrkg(qK!-)mzq82_2cLu^F9N zP0;X5OX(T=>R?BaX$_+8P;K*OoqP$rz=%r$8EhbMf4*n3x($D}hxq^t#QA*0($P|} z?HMTK_#9EDEIkx(^uGV+x+Jc{}S5lm@66K-;W^x>1S*V^fBz+G8OY>t6UpLBq>qm zqE@P`y(sW5EQw1jlcm}vatNAmH`@<6*l{2sR#H6q&#`LIv(XV`=dag}qUyyLPs)R#4*lu>$=-+V)Q zisc~nP&R9}EXy10z$PK|?$|oyom>pn>N(U6{dRqf_rfh;4*qK(Igf~q?LG4RmG!`` zrBr`!hEo_k#FiYGWtU1TUVbxYzh{!#5sqUHMP)A7lIY215Px2O4l=0bq#mQ1qRTNK$ zy2jfS2{6UPCCg(brmF7(nAR+mW++i?_i%(p!9Kc&D^NV^z6NkUAhGVb!PAr71Eq^B zS`Yq52E$>;r9nA4wrlK&em2N6L0Un+Hk_4JOu6AZ?IL>Jw3b-RBvM5;_Bb~R2?x)S z7#qt-jm@W99?3dB*%RQdh|{Y!OnY>A(TUfQOQ6PD6sy+qkWy^l{FS*kU)ST7!I=tw(0*r)mev zc5oCfx8Sz5&CpO+HyJ4g^FDJW$Z?f!sUr*Q(Ci^;e*fS4sm)Fk*EyEzlMvrIX5w#i zeY^W_{p$B%Av_;lVhI%Y1rU#>e6tx;|@Zxh98pQ%N>|U#6lnw`r6jHTgzUBOOYe z;FAGRO==seV}Zg6bEb{HziWbCX8Qi18I+?cgLBMAC!ukHD`l5pWJ0EYw@M37M!nA6 z8otN=RkD%3Q(=q2JOVLc2{}=DqLsA-_6)8ZQ2ix-&zC}_u}+ZQ%#7Ai8eyE)$M9^P)ZFD~C(9Y0>71-QSbK|?w*hI(B3{q_du z#^nV7_{m3Je4G+j(##`0d#HFjD@aL>_KfJ@@C59L5gAV}Xo36S>ZWdk1ocD8NjwhJ~zpO*)9qS>@cA{8Y(Lof-Gf_AS(iGOh^LJNd z4p-$66rJ>^DuoRgptjQ$v|;$RnLaT~qm#G_sRE;`n?`j$z>JXR$MKxpr3Q8R>wE=S z8<__`XWc^`LzbnqQi&t446aW~A1QlP{v8eP64vTa#*N~JAa&{np`Y&q&2 zaBN-W8%Obi{t1*rh{n5Jf1Za>PbG-P90MZkjy~N&71CbcgI+;!=0H~atix%yqDTrx`|1%l# zuoZz2IwYrtW5j}V^jLT)o!jIPpbLIo+j8%q9bWV&|BB zs(d6ALop{ytfX9Jx@$U>ZknM@|4L?KL0fCRX>T5IwZs~ z5RS3%(-Z!GR|M})byGBWec-m}fJ`*g%ooJ6#D%p3_F+tBdE+kD;W%I+(O-dH!!eB0 zI!_3w?1J-}oPj9G!EC41#XxdOQOZj=XXD#N?&G*Ye?}-PQ|09aIM>1J_F2H%AW-Sb z;W#5BgwVC%6%j>4Jxd8}Cm`Y3Dz){TIbW(CESPQgqRr<9&=`$jWJ4`dv(aHHw(o}4 zN*$wB{Zg+Xl=7|>lUfedATi&L$YL?SOx#5*S=anNks0hqVh9JnQ>Bbs6k#@N$PX5X z^iIjUaJeN6LI%2V{xAuXlytYgUX91id@^Aa(U?9T+Z)#w<}-*|v%*+jWbK}Pj5r!e zRivx8hOgvQGpE$*Rgcei7{ulZT$l1QJACYJbCEfUeV(VL;+zqLC#@vgqscW0;0_>G zRW(0sZinw`hKSf4q(@Ulux(27ttliihXmW|nE;Yw-5DTzAPSkMWM;gN#nLB5nDu!E ziRB?MFiccMA8seQW*$mePjL3*N20wwhmGg4Zhp2)*qkX7qqu4M=y6yM$<#MshEm?- zQXQk^gP(y@PWZ5~fXkkA8W+cZOqRit%n!^MbQTxc;(hYy;EQn$wT)}*R$<2;5Z2n$ zN#ulR+OT3-oIlW*!ec5BtLh{!*dV^OQRTKtKbvm>%8Ct%dn|}|gXsDdJK-WYD1HvG zxxFhbyll^Bh?u+!UY2&!^0<@em;&kzst;3>$C$OKd?49Ehnc;~D`Y80&A|RWqcTIi;N7n*K-`4 zJk>r3R>;=4M&mv}rp`Nnd~~Y#LTuOZJCyN2+)M==gCY`K-#660^*4XrGgux?Yd#H3 z!&+!mskdE^@BL4YZ5SKeW&n#x5?DeoEu0o+sHkxHCpqA^;ME!X_+#nFyknnX9HYfD zOnVx(2S0B&twV+ZJ?d(6od(hqr>jH1xJCIlC|M)<19hEg+tnH#Ap#|7XH zt5sNM=A%ZAZZIUL^&cPBz&4sZVa;ax3o3YVT6Q;`gr}) zuXzgmM#^%RV%@2Jk7!+Ogc*&b7_pXYxUktvUI5oILR-md?846JlK^{d90p$)wAj>TWmajFHToSv=cXh@$VpUfWTL-hU#c2Z`E z^53oeFecUXKUh@5E~*@Y52^X4l2!%WqW02S!J<(ZdmTSdLGegW;6CIttNg60td^fx zv#q!0UqzVk*G=jJ>R0($s15(YASnI}NM@hp7{Tjs%NnT6$flvNO~jR;FP&Q{wC z>Rxgqr<3-k1A6i1CX)ZC97NC{Ie-qpF?W;#SExWY&U{=y0Eu2ZfKP&jbmEvWp)0he zIb>N}7$zI6oQusxfZQm)i4acS(2Pw|UuyEB-SQ(jX{w zqt_I-<4pb3^&%q`DH~5_V>(}eVkkd(gBX%cPwyl@;zbR3e6&&g7>X&3<$+!%#1Y;Z z`gXj~R_oi&L*=urXu#*mK&JG*lI{&NBzCUG&}pG0AI`{ZQQZCD%FJMFJ0A>4#h$7_|fi& zUCuu^@I1b&qp^SPg@jt3{LBj|EjM38xtX?i##aRouX0woOw2+8ce|&^ehN>n$H>R= zD}Yh~tEpcU&?b{8sW->v6Ij=V7U@Zik+hWE40tz-B{$*#Pi*j%vd55|1Wu(+8Dz%W z*S`E|gEkcAngJ@xlJ}Ld2{{Wn!9Mf3)_?mP>hwhmy9#`G;uKfK3Y;!f2vAxL0`Yg} zmOu&%;|X_%;5p=(N@kQAMWb&^i^{ygcAf*Cg5GmiB-QqXO>^n5aUn2avUq$TfIOQO zbB440fV=@n^WnWHco_2M>GxW*k1-q{% zSER?G=LoOOWF<1`!W}DDaH|5PD}V)$sRoVfz62SS4~a%&j=5fNU#f=183cYF?HmkLT$`c`*jIVOj!W8{R+5F-pigi$wx z4joJoW5eV(DLcz5BK4k$Z1g2QSUC)7p;SalaTuCWXuv#7Be{u=uQ&ud{~lKbR{a|5 zVBN@u+(I5W4taR>#ECTs7PACFSV&pKnyUQP)>0P}Ec;6!mOHX6PlltZDLcw8u3x8Q zH!8YPiex0J;gP~-0&0u88Q)Qk6v2SpHh(wabsw;(c@&lwQgc|^B&_iZS6UIa(G`;5 zH2&P*bZ*zsqKP*Wl$|YsvVm?q32^iU1H5Xu&pFg zBLEQWVSmZ#G3!`MB3|k81)L!;AayPM;)vOp)N$x6_S9S=F}t-X_;GFHkbr?Aq#K_AqFcH5-4Jk1G$`fEkLF51y7iz%X!4f1|9%; znI`$!0>##p--ZHo*qq~+Z`K73s5kYK9EZz&sr<#aObuWGDUg=8sN<<#Og6Q6fHeI*HMQHvstdCz03{SzFiK_IJsCU^H(m5G@2^~b@;AT0$aQo5fN1PXM zn>2{Gq5#!mP!+B?e>6LBcDH0quL&z;;|NcDI=N!Ks+OT~%?W^E)TmvNf3TTVSgty? z-ccyki9^ZGNf$X}UEuD$fIZs(6n&kwML5uNNad=CYvAR0bEPNI!@ngAuAnjbOv z>Gu#NR{;iz5!LFl|5e3=Ac`~^WhAAIuK|aSsnT=JL)1v30M*}&uUdwfrbACqVh8)} zH8U9)k8=r-f#D9hy(X0S+B1PG@Udj9pdu9);x28qn`$g9=?GJ+@t+IMBn_*EOd4XD z*qP59$6(C?!~N<8a`Vq^u$M-R;+yJ=SQGCCc{2i0k{}Z_DL1Y?xz#%fpG*Z`aaywh z9WFz6saPNh2gaPJ$P_{d@|hm80ozZ#e{$E%BS48$F$OXjp3DiniA0fu4GF-z-uF8h zWHuK$f@snl$%vj1X3tbTW8KL}QOXULHkQqFsKfFJP(cfcT@A)eBh}n3LU*Ok)h*=~ zXxmX=DT|V0#0#*z_6X!j5}FQ9OQxQ)3dLbmkqrhGBL?aDW;lx@xMJl4m5hbESpX}> z9s`UMOu1l0zckKR6>8_vsU9$izD;2xL5DnWkC!IL9?xMB3X{7)8%Al}7Mfz-Lw-x- zIXSNAx@(Ze>3S}c5IO?aPdy#f1f8bCJL2{!*g;!L95<~_^yf5c!^uu!EmTbe!X}hxDVsQ0ky9RRak39ek5AoFYOmmV znZsJOU#=~DXkL~U>P z$rKR>RO0Z535G55HbEEgn^U|pV=Z{)(qJd0wm%EZ2&2W9s#_~m1l{p6BVwTUrm%>Q zwrUVeD0q@!KL{@xi)M~vvL8h|wAQSB}VGCR6^!jx>c}jd2WK_;KojAaOtTvt^ zrlJ~Aqhvr4(4q35Nckk9;@!-VV~IwthN^q&^VN!gXTG2t&l9C*F&vNEn4WcK8WlQ6 zmDjw0jO5@#O3{^Hvu;lp+9^ZRAk|r8Qt5fhVq$|^jF}<;?=w{+%wM{dPOXa=o;HbT zkT5ES&he%-+|%7iF~@l?(^;{S`GO70IE>ZKVI4H|y|k8j&Ft4uish8}ldM=32-13L z)rM>#b|Md*#58mtZ3`qy8z?7Z?Ht)8MLFW|t~OTXSC@at(`n2wVx}zdC7*AW?R!iy z6tc5ma)p3wOOK#R*K#oy%7Qu$78O$@mWe0H2Qo(R$BQ}0Bu|s{7vRoBp@=X4V|55d zRdto%P*R!tix1%s?Z+S6fMkzHlS-;800jU`LMX>Eg?k!gMyseU5(;CEk)JE`XaRXu z8zBcMoGeaJ$~!qa_#My*s)USqRf0Ix;`}J{SJu0eK1oSMMe*&p0?k-y@!wmXkR4N8_1&w}?dMJ13+%DH)%)EwSQ+p3B8fzYN#Y zb}5u17li&1-+aNiHY`}T;KEo0(x=cglpEXdc))F7k63P!)}XIcObwg{U=I5RGod*% zOMK37KQ&0SrK;zRJ_zyx!2+f|eKah?4kMcx_FQ&^RdPXxSJ3-jqn$wt%YqNHl~Od0LtxcOMrn%i&OFPV&j$HNn`KH{dJH`+$wywYg`Z_?}zc_2OO1<6ef zLz!>nPR-C&q&BuXj!)(VTLRg2v&9{mU@j&#r~U?+5_mbyGz^<2-QnSsZk#ow)-ju} zHYN|v>*OJq(`j5M$}+>$v<4}LKNB;0Jwy_LA(+Py0SXt7LQ1BAg^Z_?8$Q{FQC)2S zkTm1ObhDuvR6b1~muBT9MO}(*qvv$Vl z$3*>MKqh*=EAVpjNTDX%?qZ)2cw3WLo_H3RyO5=Moe_IRD^@+Ij-+h1Ao>rb~`+8+t#U(f0E*C`}0mne+fjI_nrjS+^RXJ0C9x zHrFWz299Pqsac8(B&j^FpZf+zaW)pOMEC5_(leDIcKnk0O`1*I9IpVBtzSG^Zn_U* zKbh3RbPsK1mpVDpuv0nT zf$OUey5G@MqNBuRc&0isaDTDeXdg*t>E`EHmS@h(6VZvWl8wK8dyJ832D7H87E_Hb z6@Lq#DEB#c>JCY3*|UoyQqzOzQS;VaXT0YS*V+34r2!MtlZwq*kQ~-!ELDgFkyd(< z0L%VZrb}0wCMYrQ(8M%(R{keQ)7YEVFUGf22TZz+fH9Z;?&%*jJ2^%dE&_K?!-MuZ z?5*~sA65>;CxijAtJzyb3MO)JZWof|4rG0CC?+K;0%M`Ua5ZO#b^7-iC_%839aZIB zm10$i*0=LlGD4Ws!%Bm^Rv(CUw{O{Iu-*g292S&(pjhdIrQ8e%Q*u1GdYnE<%D7po zF*EPmJ!#uCFqIM9T*gGiMbTmp!$>1*cTyvJ4~X>lyz%K&KN&0r-s3TEGfwH;iDkrQiSPWlU|xfjvifbj}B0L$3V)&7g$Z1uWoe1a2UA7P{6Q zlj>FRgxT(19&yJ9$cA#jAx}`|35WWQWGI}R3a^}7%p=~NTO?zk++t9nqJ44#4g9Py zSGa7TOF*7RF)AkFVFx*2q`H%(SA@mX25u$azO?RIsP?DoFjlhXxLD=o)MHE%)UhU9 z8C4WxMsv{bPFJ?ZSaPex5WSxL%qR>j=<_gOXOi7I(-!rNzVmbioiP?LVy6#CZ;JIc z1AjPKG`Gj&K-`Zr5c2{L05;I)AKrfCGfSTRp-&|VA)dY?4^BIjHhEx+o84cZ9iR2A zyPW!Ndsq7w2Ni}cZ8i)!KxbhmU2Bd&BY<;L8X^r!ei|=0El609qZzC%XN&F9o6(absE_8e8pQzW zPqff<>8vDn~FXZ)~K z8il%|`y@Q+XYUAx+c}HKLFR4!TqsUP;}h;$@`iFKdV*sZ{VZ>POGMR12G^@!ymACe zA%rFjDNm{f%PJAUWl4UZAv|Y>8!;j(uZB{6<3_C`Ku<#?o zdS2b)B8LLA-}zDKO8hLb0r18QL&g7S$aZjEX@*ZJPFB1MVbFJ{s1kzCI<|+}WQ<#T z3e?Ah{n_i7A8rtCoRDDQHo>DI+XN_OHe_$;&`n-96idXnoG&c#)%J|gLW5_>JKdOv ziF~VQBU@rHNcJ!TP~+>vr83Thu`tlrTE-alp;U7|DK7^ZU zFrG~6Fc;1}ni>KnS_)K9uFicBqh=^0KOkcnX)2z0wdVm0}c!|t=fNE1Y#NNp@8u=USY+gHE#{@Hjz12?7+&e>?HGtID7 zG-6AO@6*3~_k$gL}(K)JggQ5#hyhy6S@?qiz#(m0t>U|ULQ zZJn7bv}f=fK(-*nBgHRXp0`HIavUQW>40VlGwGLY)z_iP#X2O&LQz67&I8wk8YfkJ zm3S0FF_uXqK2t=*Tr@*i#UN5YAknih8@~6~A10XfT1$0o>49cYHyg|x$R%;yyx^H9 zSMVEhke3uuyRd+6G#+KD+0)e1GuD?L?M`VU5c-aahT`OAaPGtSFt`VoSsG0iYWkr; z^Jl2610#69i?Piv!ECq_9-0&@|*w3G^hLt)%VqO*@t2EXG{IV>Sy3D2(8@NDb1HKXJ+NMh zMs+|r;a27GlarZ{7g!SGTzR1Q4Q|f^8sU{Zg9gM~_VBRj%?x?ovD#e?UPTNt^wn8t zp!ZtOoiERLhBDfykHBM+?P7ZEyl8RBJ^(TohP#jAsR&r0IgkS5;e!feG?)q1?l+iW zkoF*MM?)?6pwd7=RIA@^Ngonqo)E=ZWT9qyoq=7-)WO5D?U@F-n-qZwQ zXhK(Q!RoCmm9$D6qG+a5Ou*h_iJ9htfg^x0VJwr4ZAZx4C_RSW{5%3J;e(*^u}W|< zI_(a$33HNLmz%#^$v&pJ0h)aS=Gg zyh;U_?L0Y2)^p|ZZYK*EX$3N=r()urn$qA~GWcw7XDma}bh2ID#`%k9$1kP=Yn)G; z7QQ8uLB|1b@jWlf%>@jJ$}IY%@C~yuLA(jzk-UC?x48!`m-=jxn9Y!4!TR2Jm?X1GZzPt5AHN5=3!tEtkOX}He_FtOVk z4!HAO7-ww;ISPn`z_TzUYkSQ;WRXSN79D!?aotb=#Pc*7v(DA;+xT0F$Z~|JB`}ns zq1zloM^Hw$oillGc*Ir9{4>-szBRj=1%#U!ON#N%8iaUB8QI%qhEZGi%K9%Rj<&bV z+ASi%VB}=M3vL7Y>bQg4R%FW`pxGzJWL#D;r!g2?&9pCOj9eHMmp`e?l&KWgZFnT_ z)F@UzXvy#Zc7#>!w|LLMx_+@P(_LR53utuhiEsbczs+#CR-eWlAFU%}MrY{4c<3=; zgrK!}{p((^Tg_#E$+<35nc8S(z$oP&OY%`p4~sj8Ambis`9 zvY!sl5YME_Zz@KRRFI|!))wv*-1ep8 zXU>E!2{u7QKWOA|a7%*YnCA$V@#0?~L;Vr(r{FB8EF=*vg)UtFak^Kz5I{>*ws(^3{U&7&pFUbaAlPrRFzT7QXDjoxE(q#xMqSaiXJZoSk zN~eN)$wH*j47iLL{aT>8rSxl(<5m1KU=!!rL|H z6{4gHAsL~Rh0?-G6f#`wH#dN$a~e$s!`W)vLVHD<7}$ntj3FiPvBkLoJj2!3O9(KA zln9Fs%=0J9|r%0C|G5IWFSYl2Q{~{KyS`8|h9V7(-0C87o0JwmtQO9bDUtn37 zfSMH^rdsxE&Ml*j3b@BqdCn6_l8Wm2Z|ig33}e5@henfW1CjOn3x)Nq(e!GcDcrR2 z26uFOS45KKc-`ivSZXXkQcLxb8gEPT;2?CAiIYlsqoOYSkNa}!qU)3+!Bdvi$tTEL z2PX$+%Gq3yBX=s{CTF&dx5m!c!UbuMm&1xI6@$DJ>)+ z$9crH?hpxM7eze(z|I#`boGWQ5DiF1#W=rsI6 zH=*_cCWVR<^SHvhv~CL)-5O6MxbY7P^a2#6-}k$ExBB&>au@&F_!11C#ZOoS*wY=m zi4^w2wBGjl+^l>N+a|FO3{v$aP)>evbpmgKLdO}_1TEDYPLkN)<>fB#~>!x0QKWQ|Db zXcx0!>_p&uv13o_C`fyrFk(xpr<=Z~6xs?w`bU<4SOCckvD8^T z`tT5AS=2UT93Et5lV^^$l!&KSAqPB<+=L$V!#(dvU;<4#*EOe1#Egp2{6<4qN_#%t z+CvnTyv4;p;{$t25|btUFM3|QHJbWae8fvqPYoE^yr>`m6?$VgDO=l_j3JhBOt8K2 zwonQ#ok2r7)U<>e$kfCD+(>mnlcNle3NE8~lyz_h%g{3rLpo+QhvI5@Ia(dEHaT;L zeS!zIndwCaw>fRiQ9&?ac&97}w#)#+P?RGy)7W~1I>a#uIZ3Gr$50YMQ8WFNM`yt0 z1f`j_AL^TimC&&D`A54S{5S@ZB+%yWR)T4HS1M2L!bq>}Vfo6heM($*BpZ3M+PtW) zuGj!rK&QVoflfE|^oTiT9J!LdJo*>cIoK=pCzI*=ceh8U*oANxp?FFYHV5@&;}j$& z!8TQX#qVlD7@#8X!|~z*A_4A9%BEsCCD+m8HSmDPs)X?_xlv&oMM%gG)I>sy?gC=j z8Y;6gZ_;Edn~`6k_^I5*j7t~3#%a(`ll+kO2i!GRRt8FjUc=6%Z5N`CFLpjhwqg=u zw=2>rgHHya#=uNF_~ap8WE5c;Qy5#+(zjOguF1Dz##Xwj%AW!fdrVgG8TOHFJAS~J zjFuonR17;|`IN+!>tStI%dGMw&fmgysvB4(T%|(Ed-N&gC-aVi;T0xV4oq>D<};}d z!!k5I11T^o&7d?1Ju01L!6x<5>CrSez60WLiN89IiYcli4*^;jUh8MhRAn^KKXk_} zHx5NVXfKd+I#XyJ^xk7g(iO-@EVB4Pp3WFI2s+*jG}Y)~kil~BU*(A*_y!iTlZxM$ za5@Waz_RF_Vt|?-0stCOT+DkFO&KP>2*IYay|+ z#67~{Ik!|C&d5~wyQFDHOrYas!ZYC6%wCA@`9u&b1PIDzCZTlc)4=PIINxm{0s+9& zGnL4UEOuaLk!_N!OG0HzZ4nW71M8ljk`hT$%Dj!fk}f_*7B=Z?jP}w=0c2y1IW3WX zVym?{yX8W0v>7&&a(F{%9kO&NMrc(DvS8eAI>!O0wD& zS}7EXED`}Y-l%o2olE7BienW~t5*Y&;^IT**H(lbYu^i$B~rGS((1cIOwaHuW zTJlEV4Pk5tY^Vn}xT|>*GFV2T=`U=Rk~-rs9P>)uflUFCillaa84oh8j@@GGA^X`c zqI4rWjG{HOCcF%@jBIR9Q&V!fhs?cG+UCYPyM3NdFr-@N8JWa^%Tp)VesJCDfP|-9 zTt6uAi2TK?IGIPI^Ye4=JzmUiKqb6vyw!0sKH(p@G|h*IgrCcfuA9 zqKoSl`51^I4ZkUDV@gn`b%7@;s30;r(T|j3w|)$>1-qBj5;WMHmu^kT2`>@Qe6w*D z;q0%G2wKZH{?npT9GM~fCYq64S&mcgO7w|7UuFqEo?dFu2;m~QGV1P)idduoDL_q=2g8G1W3@{2 zltRZYDd7VA00k^vQR}G;sF#A1=SCWZ#hb~u*bkrU&`cfy{!MCFb*PA7YTU58KIr{ZbXu75hwPmhq6Q{-K31IV1NJoou6K8 zv1s#j)V3o7o7_?kFSFmuK6=FqyZ2o;_cCfrqV~*lJA@`e2`<5v#|l>A4GID11ZlNm z70z+5=zE`Ffqf+9I<*V!N4pjE0w9@vnT{XYqX;A$;7;|QW@)2@gciuQ8|?D zg;@)~TgD$vIag!O(C+B^*4r%ed`PSK&ZEBhl_yo8O8`!~r>VZ9hrDIhNKF9qV09vj zf!dCc58NcMaokW8Dr(3oK|sYADDh5SoLoKyp%xZ#TMeu$;M&)IlP7PxriLKJrdT6Q zRkE~X+?D?*qA|N$V*d`N(`jhu7^*{!2LD)bZ$lmDu2%Q;i&lP5+a_23?jXbsUjD%Py> zbnBBUB|EfUizdImy(mz!Xu1-NGD*g;l^;iEsLO*TDK<_N=WJ=?k69OhFz6P$g2Qav zeX2|m9Jw5($R*N{;v}U^bhZFT`}(jP>1ZW(wmY0*-Qc0_Bo#z+f@JIMWH#Qv`lWXu z#WqMmPSrrj^TS0X7la7CzA~Ep>^ncT>)hd{gZO-ytZ9g|*zKS4_}B@P)|NqgtVt}L zaI<&y140-fY?!eqH%cs7;i>f!Efk7YIt~_23gDDbYaP36*ae9Z zuI4cM0E7s4xSBb~)N%DuPSK}l(&}+R>f(HR74=ysH2hf?{h44bsTVjGbTP3^K64`~vAgio5!7WG-CL}ao(pgJ)W@H>eZbuDf_ zQ?n>oNu+m>QPL}cjnr#RS8ECYd=XiwcoQgtmz(V5bzU9b+$MSeSDo?Q|L~uE7yy(_ zEQsqjr~Rku!lsAU*V(@I6;JKAm>uEjE(C}#inoGY3Ea$~$@=RhKnVaG@y{lql6Uh}HD8%CA>GC5k_N*ssyu?g>_~E2Jp4PQ-tkJSn z_>&|V()}w)@%uE_s*9Z+?Ze>_J-*$zQL7GllLl*~CzXXrqltfnbA%{c3ykqfnjy+O zrUf=DX=T<{EzuU`gzX`rbg!+lqKXfRNK%M2iT02J3)HGH0&=lHAA1bzHJDW`Xoryt zH>Wo*G`Zn($kM>3`4Bk+lC7-w@&jU^{Bwd#u`Ny5`4u%{4cdTtb=R}4>ILoJQQC1a(zK)7>utlM#tlm18>XR_gm`Z z2aZG~RhXZz`Q*uXChX!EE?JiuMwVkL;L4UY)T5IEr)0ZbooQ69A@2zxIO_u!h+CV@ zoVsw(ooZ}M<$=InXlyVY^XTDNU5M{v>qM&BfjU4!3N%O3!2DMyl#$*T!8Q9~S)AxZ z$-;qtN8+(MH=wg<^>^JXnvF*YStaX31G1P;v1D>k2}f4ZAV)7YKLV8*T*U=gg`@9H z^H}R~02?*)Dg{FBv+$m;&sB!HuZ)034RJP7T>)_Fr0Q5zJyF$5fhECdC@Td~_(`65 zvS|Sg>nh1&W*9^nE{t_-bsIWlMZo+#yIpGso_2~t?2=u(amVq*x4ieIA~c}5ml&7C zuHh#&xk!VpL=}?x0BQ4^glBWAN}-f0w5&2PFC%wSSK<$OXhRnWqzuh{4ZS^+jMDIK zGNdY6@)!R=N1~FweJz;UO@<01n_qRU5=sh{c3=!#ekTe4-YboyJ1VG}>DfFN=(=M5v2RFvn zy=kZmGR7}HaPWEjFFY@u`o7+sb13j&ql8k4&Y@Y=yu~P^q2;a*Xd*clREiRJX|f_K zld>D8R4Oo!a5A5at}{87z!#cYC^ep^vIlLM5G;Xk$RYhwnA3;(0k>G1`v}v~e6?5T z{0N>_VNUy$(5B@U1u9O0_V1S{!dUQw?!?pG;)~kZE-YayQ~XG3r?NdVVMmd?1(@A` zpmQ$M$F6~iE#RzB9nwnQ>v09K%8{bsUc}4`+jvRqtSdWRP8l1F`Cfq9Im%w+rpZ>^ z=hgMF<0t*YbkIHF8$D5oh!jZSCbxHEaQzs*_TKfY4}9q+$Xu)gT*Rix?nb^9^$4PR zuXq2ZH@wi6Wt4wX6l8U%H4{jPx|dhXNy=l@1Vx@sBpn{w^03KAN46lY9#8I<%s?JD zS05@DTjQKM`0f0LZP;KZB^P*{TwF8{LXaJnqW4C%U_&IqM?YAt_+;G2=>P&36|8(a z<5_j1xWG8#m~GH5bOvAJq+jvSvmqxpbk|6S{3~EBnThBKp~h~$jhnc(@JSwaQc8_) zURdq*qWy*0Q(Y~aS!&aSbTwx4e`Ky^=W!bxh)uDtjFyEf475W$4E^A;b(P}H zT%^jd`sd_5Ub8X0u}3P043B4Fn#{^*I7XQfmKzT*OU0t?Fao=HO^BE-O%qVHx8_e7 zzs-(v-z4>Me_cY_g_7o0qcBKs%#Jg+pg)H9%AGU=22wnGJ?>e%`)N)_dcpxcq#3H9 zh=P8D(8yV4`jQe09KG6cVv#E7?MJ*(floH<&|Xb0FP{380Y;>X!{ z%U}cP=gx705l=^)i4ndvUINQ}$>~qxKoSfcn?HzHhpV;2D{Y!Bg$0HqAnSl2aX`Xp zjX@^B*Ok4v;#lQR%&2Egj`}C%+o$82H6{0D-fX(2h@X7K`Hwz8Ns406L4l6++^8@p zUyNv&a?2Uh%o^VXypj#pybsK7WD%lMMgN6;8S4b_GwAzrw^=Z(i`yu1f&Myrs{vIJ z5kwmM!?|n`1R%aEgHCkv)|!VQVE%Y~g-3~5B){$fgF;dWxU(xi+AJT$J_ZpJFxSN5@Mr3x5X-uf6ByGVVY@Atin9jt5PpS|{X5vLED*r@#EsBhU zIj1Frb}j!=Ii81gn8nl?Vr**ewlL4f<4M`Ps$Pj0L^cK91S*>xWE~NTA*>FzP>hVf z<<#s9u192-<>_mE_uxvT()3uD^d8q?C z&^6+&=-jru!~^)nFk?6y))-$<5pt>f?VKNAOJ>M#IWLmoQPhvgA(=}K!!{Zq)U8uV zpcFb<_)O^c;#3@Kds6&>fMzK=4FK%e4i;*Qo0qq$G9L^VlZQ~qA@HHgCwuaI^ZH$D zj4skUp6o4yPy~Y63tXu+3$u9+;HD&Tq|7K{%u6JgJBSdmI~Ig!f0z5yJO1`R`1RrN z3S%RcKiG?uec_&s5tRI%*7n&?@7#M`UsePez|YnH;xAG)sz^Q(DL$#B^IVT~oF(OW zCmA*rsfMFjmGAWLUmvbHo}mo!>=`7XPv=0=AxiAr1P>&sPl$1@9wQYg<8q0Qyh-6@ z`Qd+z7E1I&s&X`a{0u-0Paa5*&nwMWHkZc?Z<~zSy&rIxuc)e~*|TmKkM$hz;;Hu0 zRO!aX$t4;xFArDhLfTcCH(c_L>fD($5KGgLs$?si<$%qZQCy$EO5kEBiJNYC_^0s$ zH$$)RQmwb@ow@!a$@LhrZfel?MuUyCBJnzSHyCXLF1Gim^~+pOrQ`oMa$DQqE-YNcxG&f zQDg&J_fhI$a7CiCUTX@Bn5&JjgJqdc1;mW9kFmPr`Eb+)+hj-{hc&%dph5Vip;h## z-}xB=qis9c`V|_?t*K8_AVQ3wxf6KP?P+z)%vFX(u%L;WpdfPSb{pKYE!3>_(e@av z6S1o;M}Fvofkfk>h)b>I&ThF{LYD@i0bb+Ca)zjS{2G;loh2YPQ7vaS2Q&Y~;x~Tl zdI1Af7F#kV89jrEJ|Bmb4jWy_NsU5^9E%gsJ~6OIVS+45wC`fB)buH>+3g;#0QrMe z@tthZZscH_{mYvITXO5DUYOB|qqWKEMM0AzR%d(-jYgaSs&Z`hdA{V^_)Z61D##*l zBc%|;hL#X;uW6_gRqLEf3LvK96rRX~v&6-1^^DStt3WT7IE8H$I{a3q+Qzk_HhCtM zRu~8l+(fiw0GZ58Ziu5X!{ljz^B(#1R8%!xt6*vka#oHuW4&D_90n!(m_8HA6n~fx zWcBlnq*%NcnRgLhl7|~(WwEm@0pV(1DV$IXRNb)+BSaA}%vfB6+FOpyDu@YN^hdJB z3=5Z2I0&0fr5N$rdbOnPq=w+3M-(G8L5?C2=&Sd>D)pqE@V*k%2z)N_u(tUpaY;|L zbV=BgIRrU_c#<^V^X^!Af<8w)x}xQ-SzW>*B4@0RYm45KChdp)7?MI>pG{bKPMo+j z2XxUR*Og4duRsjscy;PkslV-gQsFWjV!V0XE3W#cDmxO7LDvEqU|196Fx_AL zz>SAiqm%Yy9VmVtt|k{GKc<6DQPt4T`J)CxZZeYKcq5s8AYeGsA+zw!m~84U!4GLG zn3?f~bT*^?2QYy*qY1C6CHv9(nskwe!J)u`OyjL4`cRCiDK9(LqKIcpp|&Rud{-3MRQ(RpUUt- zBYD}sU`1$MtH(0y&`R4ri?mDB?WL;$AoN@b@r7XOV-#snqEGD{dyIgvzW&nf(#mcj zyjXwyzb!uavE}G0`jm*R#Ls+BQdopBDG?!uUHp;n`P$>=#t!t}>744xRlpHJxCb@H z&VlE}0MQA|!$?!DCY~knh=WEFIRSRmJALM+J)t&RFZYxFjFMi!Og@S22Oc07YWD6? z$+dP@3+LN-9?Ndi!NHbLOah$(mT6z9TVe)?WfkQ>PU5hCN?q-{s$Re7MREo%Yc`$| zcp_yNa|l4<>aEaZv6qssQXdiPggS6Sx$$B-l_g}Ro_sY4<7uOj9LQxB`SM`M>j}T4 z0OlGDYR=Sxya)+Pc?8iT_)3OAYs;e17r$7@kZa#DrAd5kx$tR*?!ZMZ2foZ}vpHx$ ztCUd$&bqSF2!~q4cg?>%2F?9K&I+y2&t!S%W1`J{TF2>w`=}env|piZv*nYX1ze|t z8wRBm_U)U}>R4vx#G!+pkrnF+XEY}FHml)?TyMt{_=E1jJaFHh)sjS>Btscn8|fFf zFQY9bk*p3r41aIl$#6p0F=EpJ0nXkYmn-!jPQ?Lp0R~{5Gql5#c#|P@o_2 z6n=(U3OPuaZEkubbPx4}9$TK7RAxt8JNlxYy$ zIbB#2Wm-wxc+5bRANja=q!1mUDUY@X#H3~5BDA*fCZ2@QfUHs&Z6 zj=cV|hvD4r_D(5ldH2Y)`5D)=Nzu6jw5!0^K(36TGfP6rsjgy1X?7t6?2KHyMzE98pcZhFYQRepA`Z0Eu&RN(9HZzfDma7x8fBI` zY2Z+q(HXL%U0)aW}1x_0U0XPAm@R) zDwx`#8xq?kD6l&M2R)fYLC%RzNi7}K~Rq`cAfj^@3*LcOMVy&#+P!jAGw z!h+;pXz{G@^w?h9{NrzX!Dv6{#Y#c2-ZJU+Oma@AEL*51w{}) zhSe(~vJeyFFaw5>v>@YL7B;Al0|cNg&-ICwO~Dfpp5eI18CC#TRWY;tdUW#T>=oxA z#fB97V42&^JY)z06(^aweo{EWo7&O23MA3Rq!!zIJe0=9!KlRT(b{xz= z^&+^!wvF6K5Tblkt>{*Vr`*|k+4DfNHXu4$LWiSNz6M-|O9rw$W+Nk%8+U^+>q zp^Y&nTO_7#IPYKS&b|_YGY?4<+Q10{87$v8cv>Bj9Q*k;dXS(s?dDANGV|So%CnIC za}`xlAr-pmI=6Q~m||Lj^JTGv;|Z#z@0(FpU02G6Vg*&+QvgJhl;j^H3uub8)Lq5t zwzVoT65`sv1zX5YU;0*FK@dtEnn>WY#|1T5JybBUt>fQ7Y4esVw7UI^bz5kVe-bCv zq$plnK|YBUc7aR(74Ru#twGX9oG0&%*e~ zWJky=sWzieixXqTVY8`Fr+ufHei{z5y&?mC{@K2WOfUNkoMlE}`rrO(rVoZLR++Ai zn{Xn{vC^0}<*4p!-Fr<4u(cFF`n(Rep~evu_87rjIc%^VC8r}-;=V}1*~kvDW_3#` zar_)EQxJ9_Y=B&#CnX553T@DleuEf_;PzVN1dO^rXGBaGeT<|s$alk~}!P;#^ajBf_PZUzhvf)<4iM6Ao_FhX*T{ESCp*uk}-*bhtiy0QF9Qz_mdnlz?+(}am4JG+ z^JYlRV0nuyN|d;Sx6 zSx!He3uFNm?s8s-*9aEfn*5!A@-fmN;0phsgV24<@yQD>$0=3-#epyzsR>)BG4_@E zl~NIS%#94O4}MSDe4?15EF53%#NBkn0KzqU5s=wFi3(a$SjT(GaT3OI0pABzHuEEBsY^Gwut)g6kRfgL^F2$PcH9kY;Y}^CK8~`Gp1~wMh&VgLnWla_C?A1sbZLe6Z zMzy9L5V(>FAJVW54%d^z?>u;X`@el~G{w15k4>>3OZ%AixFm@JJqqjJ`^~+3uQ9=p zacN{Bc)Y2;(UMBpZ$_V%jh)I0^tK#XTI2YX!lEV_)kT;-?ePBH=w9k>MZXZ%Ih@kn z;U5frM4q?;@&C)es-}ZgK**Mlz}~4?I(wwj5P)GPT4UrdH)47^{1|^I6+@I=jIhaU z(!nn!guf8&RV5#$5vIjvAx)i@34awBeI`Jg87Ug;IIqylOA^4Yukm)p3aSgfjG{T( zLrL@tlWY~@l0RvzG_*Pk$tHbdDU2EF=MPta@)+|CHzPsPx6*SpS&J4Vh1u|Le25_^ z2V_$M#oLfCy?l}uhaT|$WJVo)Jw^ASymjO;4U@Rp2GEq3`;l`_~$UJ9iWiv8o*=wW$%%Xu)_)wf=aLU#Y z>E*qXrniqHgrXeyTp4dU^I-M6V2g9Sb3ep2oDRJzVHi`#(f|(n5X+tU&idVKZetA! zC?YV9y`i0BCk{j?jp>O&U#*HMAqbNwb{y*n3KXUkIuJ6r>T7fYooj)z&Ots5?OEUx z&CN-&p{Jo1fO5x13r#v&xlWm;xZZCDME`5AY4z`I?=BV#@lx)5nO6E`EyCZ?Q* z`%>vefucJ5YDO3LNT~ok9($4^J?Uhz>^)IZBJ#8+OdJ&NrJv2BZyf#kb^YukmCkH) z?t!ke99p}FDlPTawLr<)?k1N}reg_z0zxLcOwyTqIG+>8FhztQq7oXsg$NM%Lku4@ zY!H&k*TK##DN%sgc&(}iw*yl9PuxYufX3doYz%Xij&O&38b8Gn)e0;Xom>QiU@SD^ z-=B)5WJVw&0=Z2s$fwu%f|Of4Yi_-wUN}RETQu4R15&ZH8gUhCj5_Vh80A<)Mfosa@+I_)=V8b60e z>>A@8F!Vl_;wqV8)>}d=91yleGdd?X`q#g5gJE;E?!&m^ceVF-H(DgO&erSa-q(NO zQ${xWw`AeYT``r4C!{?aTm>WWP}XAC$Yk86O&sw&oG?Vtgj=IJ3iWh<()wdG&S<*4 zSORgey@c#imD9=c8arFE6Cpjc&DJ5jk0HT@m%^81Ik0pXkj_$KX1gMOb-uPHIX>C` z2(p-Eft&S&5=gB)%Mbf;*e6>1C^G4ECzM7sv!MM^`BxQ^(S4vViF}z1owy?0F6iJVitIzJyAIG0l@5Tetu~GLz)o?*6 zG6+vU4+Z1Sd8gNRL;>o%V?Tp&z^sYaiXLf*uagU5BI@K14HKOG7iNzc8T)*UVrImU z$I3YXP^Al-{M`9Ec2YSb96*PB%*R3P{`#s3Fv*p-Q4&>-gz`{C*^J8~>HvPu!mFJ@cv*p?wQ{w5_!UGg1 zzz~IK=w4s}5Sgm$N*ti#Xl4}#YVkx&KPV_d7a-Z1*?zt&GtF+PkST{^rYc-yV_wXW z!VyKG)2qnzg-$c6L2DX5H#8S2Z!ukx@E|K?Va)%@fu}oCV? z$wHGfIC3cS7DzrpvlMd)J1567{v@Q>EJ?&=wu^|7XMr<4%uIY5H5Es|mvV@*ClM@$ zM&T3MaWg2(*YU%7T*gF$VM2`wrA@=201-usv!%FA^yDtgBc)sG4sJ5TZU_xO1&?0C z!Q0}Z1W$N0){Df6W3~@L}wh)fxb<-eo9Z74Qj;4eTA(P$Vd~v~y8;DD2 z=j=Jzn;>Or@_mK#)b#B>GYZud#-G}jR=YEY4$D^h&l+sEU$oW(Q-QO)lu=3o*3xDoUeWM&0UFc^rj@A*USLCOwEhi}ADHaG)O%|rk143-zSzw>R+n*a`>o(NMh z7!fd7YSVC&>5jtD{=fg>e_HRSgZ>Q?Hh3v6S?L$HDDk$DZcdNh5f&ZfN7Ya^(bAl4 z$!3^nNa)mMJ<@q@fJw9`g1FEmpD-w{AP=?6wih|VMjd~&tavj)s* z?^DjmL3v525^TwDqBsNcVTRX&pB?qDIIx1N($8J9i5UNY0+U=rGN4|VF`|pM1)G4- z&38G{q%&OMV`Ql-7sJ5?MAB%!U>uM?@E+(Q%Gue+UKLiQcur`5VdmNM;5P#+#0Ob! zjI=s{9EWefYq0-rB|?1bov?7=6RWt9K49;-R&Q9_4p1X}*(agv1Yk{7#Pms6;N&EV z)A3}=@yAn&_{*|*I3WnFH)m&^yZ`>b_|)VY900D<{2(T09zAJ+vB?h0vm3wf4cD&e zwy0>%C2i&{n&p)2HqthMWS&3o%S4StR@9I~YM_e^GiJ#&A!L#i9q$<3`$D?nsO2pz zH!&eY!VO5^+}e;7W#l#_<(L%ezZ{fHk+#b|333%|`ok%xgzhE$<4bYdTZ$OKIi1{A z8ckZIK!I?8Bj(X{0E@D~;xl+FjneG9D zDP}BSxTu11jTOp@|O<1nwDQ_%-mU>K9`sF>e&?#k#XzDl@P$=HaX& zH>f+cSj~efO@_+zFhTiy*^5;C!R;DAz7+t+B8t|$WR?Ek>aIkt(sx^r-!{^x{FW9gFd)?C(Q40tP4>Yq_InQXX zwsbJquxj9GVgL)xv;pIkk?P3xGD^#$*j-fIGPC1MMWm~PY(7U}L_#Kix=5$ar}9fF z(UjudzwjrX%Olb{PrbP(IoCm@5Tc|u*Bez)L>a|eJn9&Gg|sh$e~3;LrqMWF=6lA- zJ8cQpvkso@W_pa&a~yXWo*arC$9Fnwq%d5m*Q_TCet=}>kZ-C^Kzhy(WRiodX)*tv z(sx%IrwQ$~q_TuvHkH2Yy4b=6nIqR{V<5h0U*IRuJ2kS9caqE-e1nVF zkpaw?V48^yoLu~py`(LugT6EnYg`aPcimarb4B(`xeYMDMUpgzJ;GJAV)3$x;g3nB0~ftz9EEM|5I*R_$^;2gTpV1-h&9J zf3YZ4d%n=~8igP+i?1kqY+k>yQkdG%>5yt>I7d`kq_j|ZXzX>5w|{fk0wO{YMq%ob z6{%7d?!{|v$Iizt3-fr|y`oD(HQG3MD)S7 zV-L0;Tek1NbN2k_&3J^HBTaFitnTvC$y`x?*~$i(QJS@C|Z#^nJT7F?j&Ff*8NL4@ba`v*j_Z?e>Iq)Z$*?5T*-^R=zi z&%77Bo|)MP7!1@e+5zRsg2&W%XWGHLOq%WvBpKzPFm16Scf7Gj-e~3nU}m9GHWGBQ zOp0S78F7Zsp(KGLXp0KlL!yjDQKss$94t?r?LcosM@Wul&?-_ME|E=AwXbgzkXjbB z#7bxM@?2Bp8Z=Q=LhL+VdcV;?Di&oP4T&kDQ!5gDB1Dir)&js5fgn9sK|0T z70#wly7IUF$*11+{u{$VOd?Ee0&3>nn(k6P;eXrR{Mi5gk|&-}=kt9+v^kn%^%I4B z8EJCoLryz*J6kJtK1YnuK_&ccM(#CiU7UAce7yekaUlZa7GSD{2L#J2;03rl#IZ;~ z8>4NB!%>}ZMWx2_*iMU!yysGnsnEepMeUJ8)ZN};ljsM~Bc3cF0|`-6bOZA7E_hs~ z#gLO6dE_Y=z?FVAl+eK2QVIxqyOfBK*EnT(vR+|9$?78b zb12@1W|MW(H5O%j)XG#zMwIB6F5Pu`e5}}&9MkapQlW+|lu&RfWwo@kjf>KmE^V|I z0sdG{_ zLO~Ws9MpAQhshhCPT9mcZMm*hC-LV*A!Vu{A}p_t^N=UDW_R;Y)xi50J)2dYFGRAk=p%44=>3&Wu1~;4mb)80Slrnt+z!4*N&-IYO&`~ zr@mz2g58|0w@ZK0_B3yey=pERyn$<>u;X83t6_g=K~)%|S%SOXcus7ye+hU+^Krdo zOsTo88U)`dy%OdsQ>nKotuByw@Ighm;nQJXAr$A%$-{KZ(A<)&0QjAdOk+&e4!_Qz zuQpLk@+OrL3gl2ciMPV#l=B$Qu^8$+QUVic&kxPtRN0L70=6*C}TpCZjQxAIxKEEH(;Ug@7o1Goi?Xegesyn2h907R!>Tp%m%bm3OH;y=Y+MS_Q3PQ zOJE|%5sv^lK!s6>W~TxZc*t(AroNqfJyoTF`=wbt`DB>{_U4>cB56SQI(;@@fyu^e<2nF+Gb9NQ^7Z!}v!`k6uNF}&2B z#e^MVsMWlUJVUZ)4gGkKw2bW`%igss#ebBRoJURPXS;s%r7wBTKl&HHz3p8Q=`}g> z;8BI*#pJ}~<9nwc_|V6{`#WAVZJo6k*iKI}+yg3JRbymB%E5vg1md}pM(Y&t zAzde20rD6$)L}dOWPOx@WBX=Gc0$RQ;Oz;3XvNOv;82!d$43D$+ZMFTrQV2*DgWLJ zqzl)gr%Y?#x$Z7!yu-+k_0Oc!Z$TJdmJm0;&ju!OF}F?9miA}}j6$r_ zvPA&I*3m+Yp9!#PYw2=(3N176I!S*>!gddWBp9fT{^gcY=O|Y7{9EW;$!ub-L&!GN z3^Cvky$&?%6EFF9Vx0~k!F$rDVHB|hET>ZPFbTW#B7|U=bvMpLacweeOQi)?HcqK? zJe#7%N@t97IK{b7v#{!1XS|_2l5MglY1Jt)w{JkpvJq}KI@zl-I_36*CkKq@&z&}| z(Ufr`NVC6EKW0gg$}o*NJ6u(vRhzy5W?2FJO0}q5(MsGoh*+79ueOhHS^IcJ@?5n5 zO41;v)RC)-CqdN6E#004jhNklrDsDVlM+Sk>XJtlo*UnL>WX!=hpbp$1oNH*5P*$M{B$tVUyWxoq9%mj%rgPk zN&6GpACBKfa(z(Er_+42T}S%ijkDi5|5GPQO6HsET%mZ!>sL6vzdr%JQ^57bYpCPlBMec#)i(;ttu!0f%ru=`1=@ zTs<0#EckMzU2?pTM%44(Q=_zp*Nv`hh_DpH8+WH5-G zUeOHOPX#HPi(Izh_(oN4@ujU$m%hHMi(gH09OuJGPIw1m-LgR(?NZ2Af#lT|8Bxeh?tD32ltJfqdNj$iGvEOs00c*}AuP?8= zKm7}zpulXk&H-`-rs-)!xX!M33c5ylM!U?S0#VhA#Evo7;HWyErhVFvO(QE(>Q8 z7C3f}_zJENrz{*iaU4ZHrdsf@pXzl>w9+`F&_~nVfwt5!v*r9wubIR4&?6Uuq+mj@ zxu78QjT88cb*e_-_9?gPjetG$=8CN?{~Hn+9SeX-m_mv;(h(xn`tlaMkqjYcYjVzJ zgWHA#z2NT>B{ku<0iJcRiq5H((`K9G*-&9F#PEvSbY z9Wjy3!n=%|{7v5_bfZ zs;wNwKngIcO{Vuq(a(1CHVpxdqN>qGW#F9#dcsSM38C4KBZ=^kEDvAX*~DA6UTwM* zJZ4r_$z=?yQL1@ExP8V^qm%P2?ZztaNJG4WPtmLWp$r{rs-{d_NQf3z=MSr)&y}Zm zD?)c9QE5N9XOp!gO=;+f>1qkjnQTROofY7})>@z#4xc9WDVdOHF=E-4=0H*$1>rR= zCsZmokr}!rp-B%H!G~uajmaEXnZu-sRMosyL+dnwK>j7>D%z7{6GNOB+nbt>taYiQ^;lZnO#Ucy99<+;n*`43uZBai#V&wt-(n&7{LUjAr~jk zjXohrv`FmmIwmU`Onr}**1#FsF0*^+fA+Q962{~crJLG2^Ytctij#fTjO--@iUY_Q(z~uHKu%G(+t95 zlz^ITYB7l^1$8^aJr${x+XeNPVks44ZVj4#x_SlrcNLmhB^4!JFV}NHJg&zI7s{b# z^JEoR0mB67^zX>mbIdF@tJ|_=9LF`|U3-o?uEu;^a#BW|YTr@=JH>HjH**{7?Sd!h zq*81?y8NA9gWeBLYLIJ66*hvtqyQzC*JIouzXe60)g#9Ohbh;u_3jK<9(8VRl ziHj^Ci7!eq;p^FYGi(tk4XN}tFK)`D;kV-u<#;crl~EUxrCt)NXF z)BiI=fT_cHrt%?gDo%Dk|D-Y=bT@tIr@nutf@Mt@$rC9Usi0hh%9AJ=(%!0g?yGaQzdHnS4 z{$BAC-xur_o`4*S^i|Egdk5woM~2OpkTtfqU8wh(RTXQ&B|Wh)JXGK~<*6qUR8IGv*rD zzeZ9vvA5^3Ay=DL6)BGDbryqokoy99V}6&1mUfkHT*B5^79Oxr1P%31cooV3LqNR0 zmtu0$Z=Z08N8ts|qcN6EC+)t5j2$DB144rH6u*Cubs;kA5P~!toQjH4o#p1!P_zMn z#4sF$BW&&?8jVO(oIk_1MHv=HZ`%|ke-an$&oaOmp)3zq?Q|nm!=oRSMYvgZy1ixz ztp*UQ%1}DoZ&KlOn6>mJys#YfK2S3gctk|7QMOn4?${riUm&tPpRu)a=zS@$EnuQY z5skwLpwm6yAJ4z=SpWb1ClAi9oRAtio>9ehFs}dxYzJ=UZ2sum-Y~uI3c?G@5|bX_ zb{#j;ZU|$9w^_c)Ja(48&PH6PIOUd0=KNFQL2FknD)v8}>$+%ic=Fmk0o=thEDI3{ z1;GbG?M2&yv@R%xgK$G|OTFXq>~4x74v;N94vjzqtLHz*s~vFw^+}Xm@-ZXqVpYcL zwcsW9k2we5lpsaPWA-40&G=BUvG83B!r1IeShVwyu%JRh7>2Ss2)FnilhZ(-I4}A^(0N0Rk5;&*QAjO-)B=zmK(evkCa>Xmd zxC$~OZRLDfV1B47kg&T7p-r@-z1TLznifhv^oah^DK*^0v&dT{li|sZVz8McR@n8O~eH#<_sIL(iO2 zEgIPPJBY?%smud~5r~A#Cl~kv;WmnJjOm>n6y`8M#B#sWx-;`D&1cAC_3W~J0shBm z2Y%jC9%k2$_ssqpIk|yDKeOh@)|Yh1h{rf+(EJq6msIElONJ!P!LrMUCnBs#VUM;Q z<{acR8b)xQQk4}@lCiN1;)j(vmcOZ=)AJ;&xm|g%-Z9ibIR!Y@g@39(CiaQBAy!9l zB8iyC!as`xq4UZV3xd`R?1y4xwLGWPAR;Oz??LK>$YY8NC6nT~(S_GH_UrH?& zmIE|!-{B(p5KyTUon%OeWp_}LeM7wiVUg7&xVC{qF6PKO&@75NL5?r4gt*>SRocOurpww$A-behTdzBLOn%b4Fc}Bk^0T#?9iK7a%pkiphB* zBM6b`*{fVw-gts{{;CTrNQSS#4U$`CgV|S8WiCt|2Z2Iv!!^syWI`f2hvdX+ zA%`s_%Ci+WMOHLe)ut+tAgvB&6s-Hrc6lXgXx(!)0?@8 zVr27+90THQa{ahL$aQz@htFjUYQ}+Z2CKje-(Tvv1l-3T!U&0)+7)F37#knL%ZidW$j2#Jss30uoVrS*$Rw zC=1(hzg%~ZnY;Yx70oq4CpK#U1gA_yMbX+}5k&kO%K^ubooGu2nm!4?G^kqbSw60z95Kw=8VrBUwCid7hCn+xUT;R*p6^zQ@0KNDSm6 zVfpfSmBPYD?7@&A?8+1-o&@-5gucqp&6%q!EjY!~=Fy4O0kL~9pmT}0tMxEHitQl@ z2WgrV2M!MqPqH94ks8L#14p1P0uSuT(}AamLDJ3Br#0P*+0DKQFSaDizEjHO>usp`UmyOH0-QQF6rUoaPoIy-vrB zG-!d^R|UIs8x%zz4mi{s{a~WtS(0w0 zo2`>WT0goBy{S}&ziY)5>*^*lBvA`iEfLY7kr27^vDvCXdP;7S5F~geZAucNX;X$~ zlv!fZmo&KeU(y%-S`%B07$GV|%#iajX&ea+NgApMv*LVgW*)?q!`;;C5c3nPDiX#X z=CWnaCs*U%Tr_@}CP^wUH7Te?TCv?l8bYKc7#@Ux_bmIAaLQ$3tt0@Gu7$<{W*(`| zWkK2d<9XB*<_Iuk+2UzZG5tu@7jUc#=gI)=IbIzuGra2lb0QU(jtMuo3ZQIj$b>N( zKsE-p3%JrXADwz8zOs;}V*db9de_o7goS}|sOyHpO?WE?^DTtQpoME5 zx@m-ql^3TMpe+|!+Kn?`3cplhzuo_sml7!B2B+~jjz96hD z@)+BYjQ&_JIBR7JgN^I6fZfTIZLIYMOlnBr?ctJn^1C@cIFy#ugS<1VoYvxE!6-5L zh%vlzWh*xzLoXL9B2l)6R>E40aPoz+s1h#_h{946!5p{4$7>Penp|%lFPWQcV0Msj zYfx`eVNb5iYN(x@&|oa)PwE(Ui$WPwAmB7mE*KCmqpalU@K)tbm#r#+LD2+abvmpD zj_?Q50zYgfh%A9jg7ivF2n^e3Spo3J3|%tyA!za(3Wfo@=AR4Mx=dE=>DurjgLagR zMQ{LTD;t(X{CbU~*0N;gtLy3+y@}nzb z%Q@ku31^F(qcgng#ryUZeFBegfeBA~V5Fimy7?G7;Y2o z<7~Tn>@WYhmtXD8TYGf%LBMiVzAtxhx<7431)u)oe|!4_pWE$Emz~)SJOaTjK%Mj% zha8xp(>@Xjyp+*EVijz8yo~pwz3yohB@)}# z+?O5`w{O*f9NGzIR4h7`aMtU3;miy&6&&t;+NQ8_SA{S|QD9qRxn%*P&!M(zS`Bbi z?NKQlZntq|r_I*`#N~ZUfh3JE@k%4G&>bE)brTf{tAbfzB~gjz5B(s|E8>F~dqz4W zixqIS7~o@gh&ijMHAQ#js7Z^H?<6>GqNlV%Hbh<@@{ldL1t}dWDmpkc1erxc@S@h^ z{S^#hbXJ`UWEI;UnG@1mX?D(AcT7LhY6^Tp+nddBsCX;hXDH2{(cgom__C$%tR^UZd1 z$WVvZN&qKP8-I@btJkhr7lo-wWWa>X>`liq?bad+ad{NB9d3=sYHSGXU)OuH` zuJ=5Ef?*7Rv8Z-c;9&`1pzXhu68Xqh?z9W&kQxkq-Ju6mSSxlx{cv?B_>9;O)%0bH zw=fs0LliDlev4?CUVYF3Xswq9`f1xWU~P%{ZQ|$dsss&hx}I3#M~F(5`FT^te+w-s z4_KmA-Fu)f{z2d|UWj^2Y4nw8ef+2TyDybmKrkfMj$U%gDz7SD>9Sx8NP|{ZBg2fM z{y+?-<0TOvU|uNsMF)%k>*p)HI!Q87r~qC-*z-+`^K%-Cyn5k~@_Z%)AG?`w0H)JB z?7aZ|V*bURU3*FJ;+>B{3l*M_i~^gIZb2;ZGHXIgw6APTqsyRks%%=xb*g@u6*F8VGcg$fS`K^qsA%n z%m-@#V>O`x5?Xin=h6|`K|De#I2s?!Sv3tZ za8m<;mW&u4s9h$~$uj~I-vTPmhYGS`Gh=82d^Q0lD-gIU&^tj9n?!{9xAZT_*~RVE3>g7dK&d&;Eth2fuU6T$=aAZa{vTx2X4ptT5b$}T{$8exb3*{R6XA0 zZitTFp#$TZz8&XchNb3#7{?aKl zs{P^rvR)xpyC``Jp4iUqyCCjF6i8i5E-_d=_K9i#VJKm~MoxXpH~WR*Oz=qKdTe#; zlvRntoV*Ul1AxWfj}{Q!EKj7n?{3|GJfvchW9a1SmCd=e0MW4=w-gv5 z1mQU60Xw(D?90(CY*xSm>N}n=X$1KZr!mA-XTP%gB^?8MWb!l4pVW=cKVl^SoiZYo zRyyHb3|1Bt7*9Ahe0oM0IqF>Or?&?8JmcH`z`x?rVv&+j zJ%H_oxsa;E?LlaQZ(-}~C;rA8uXg61(MpOua8kzu^(+{b3RaD zkCQ?|gR%r>GkKzIuD*IPem-C*rt8i~pe9kfmu(mYUEGoz?U_O$=c6gCr>Nm8BczZP z8lqbfe$ASRgZ`ewh}=GQq^xOpDYO?%rC6x;?ga})JIpE48RJn~F@nIQ=jDG25E2J6 zE3pu;ti72SW$7ZU#Y8sP@iJ5!-KhJ>M4@V@Dv%rkExkqZN(hMLDZbq}xl5&&tsTQ# zcCp7jI7dQ-_RTfwAZsm`;n7|>ipfEAAS{z$;c+cdVj>J&teqVF@mUQ~GAWR#MrvSB zCnagdt7IbO@*TVRCR>WOA_)<{P$Fn`VPQ0?A?08xtewS8y-dd9S1A-=9cnh_xBATF z{6ocl$Nt90)(^ZlA~25*$wv7=bq@9xyjWj+Ow>%Fbb;qHNsZ+psgCurqN@bF zp>Sqjr~!fqqdBOyTf&V%EcPd@qPWZpb~_&qGy)k0*eLH7I}bJS^hdZE*6DhKPz$Lt zTI%g!IJ08MNY++}W~js*8Z&)z$|FTJ&wMF>2?5qRXz_($F8LCKHJZ=MBVdDqD)3pKY0=Kpv01g@92i+h3zGp}X zuW2uI-9cGAsW_HcE@HogFsU2*f~cD@LX+|6K}A=R(@wpmQ*F@ME1ZDc$wWgo4~{7D>=s&XbS9BhFQ&ZIJNNxrD0q&1);bBPmQZqjQCfavE6u5OK z8}KqXUb};9^w!8u0Pt8Kb}l_s1=CX^DM`;DcoND}6FWexE8o}}+($zas)YPJ+fJfA zY9*4fvgX*Fgz{*DLYGlP9yyri;{C-OUwQI_BHVCp*&r+b9_}2(NPH$45)heE6r1!8 z3F80pU7)}r9!Zo*o+i{}=%I(PR%duwRfrq&uY4N2LmSo_%WPF)$|vql9EqOXqAS=> zDbLx%PMHzuZ8JWVjECwIgqTuv*NRvv3~eR!?WM zW;k<>HFel}+KQPwk=GND+SJ6(0yOh<*q)BC$zT(|BXe=MMyQ}<5d5YSrObTk?%)`< z@2x&yu1D7ulw4U|J|SZ zNNaqj5_fBMJ+BqT*C~-CgmdJ9M~`1|U;p_p!e)jHZ7irjF`FL*iYbH;bF#9JFJQ`O@;|yu<1#K*~>f-(x40x;XRV! zi2<;OY$8&lV?M)48>Fz#|cL@3J{J_h$eDL*!b*x zM`j4zc-WZM_sRPx&9Fa~eQSoP=bN~X&s$hQ%M0E(kqRI^<*%_xFHna_sNBsUFu9YC zFA@K@E>fMVXEf;s-9OnR_8ri=16VK^+Rg}~3k`%0+XZQ!$6A`(3Z{(V(S{|F_c}PX z2IHIUE2n?$@Bf!y{MDPN5qyKtqcTv!<5IO7o0REo$Xzdf=zsglS3h?)VJ3&ZcEJm5 zh=A&$9>F+KY~Qn@HO6?A-X=5&MXA_t^7{Im?l7~I)9A(1nr!cV)4F>XEh$m}rw@>e zW=0LDDPO%5rxD8#W|0a(SW_Gyow_@l zQ?k*5otQ4T0rlb%!%(edI`Vi&JM0Ue7yq*ocJzcLzhvYLYLV0k!$Ve0K%m%3E0Unh zBE!Rl#Mw$|uPb^eDx`>xCi}FLp*@&ar4jG6q6~Ql`LG2qE?vGJ=63l{+@_IDshaDY zuZw|gS^QCV`Dqd1Hw0<}YoObr_{0dn1kt;Qu^!LID%As4ohkQcaFcMIgfcv*#B4GN z4fCWTq(Nqhky%4zfmF(N5;ZB-WycNeQ+0MI*?Axw2W9bpNbjiRm%HQQq2Js+_Wm@z z)Q5W46*EK>ska@ptQVuiCjXxZMi5d7d9f5!eL|-aJ9TPn2sDw0!?JIIeE_ad%}@-h zFEK%hD*?ak>{58QCY-w?6lpR8Ac>GqQT#0Ui8SwIj*UlG=;o?UcS#ULn0CAwa(Z^h zOh^(V5Hnkd)1VjAX@o;>tVUb6Vd)c=TGn^0U)nmFoCkOTa%EgXoMAa)HQME! zJBf)&#j0mU*q6}+An3WqOvSmp3(j1g3|7S>vOqm)skc;}kStkhjFBxkvWjN~7Gi2^ zE{dERZO)j|nnpqVuyM-KCqOIx?R-c3pNz}Wdj`iljcO7)rbaWRVn{iDSl>SE&lsQq zS%|ge^fZeVf-Ugc!nsHoMgq_5pc-hSrOOEs-}l{>5VA*(g4Ytq#H2sGlLtp15Yhp4 z9ch%sgmh_nBbl(-mffPjACBu2 z#dWs=1*gZ6)^i*hjcS!En1e(FO@3y&V?MEAb5@~3hsdNZe^`67=1kJ8bi&}A14s+%V>gZ~V}tOz0cH~HO4DH=j>=4gEIDE_q@Ymz zU63h`NrB-=qkEI_j7;(3T-!ZUO_WxR(aifhpa<^%(l0&q z`@i$KCuq53!C zSF|SB@nIl_9uYiAc_;D)YAzsfPHw~b7=j89Oiy`GTULlArcSLUTFy9Q&A_IPeINl) zZHS4W{ZmRqlTBqa{QoT-ML$OBueP-MK0Emkd5PG&8ZGcQP2;-ERyAELb= z%0W%_Svc*^Lt^_zSu$-rJ4r42d#2$o{*OQLvg@NcFu1_1AW{gb%6rgy(QdB&OYe5fC6Uk& zA^>7+D-z5#EhI)x2Q7}P!Fu}D+iS1l+0qXw1+ncs;{$1{S%}4z3QNx{GO|pvVMOCl zhE??E{2C!DxV9-uxc`=CrWai{1ZZ5=VLC5Km549mFrX=u7lHemKdhvBA2){r7~RWrm5 zJ{RbK(*$67wph3x1b$#c+U4M6Coc>$hzjtC1u;f(CuXm^1*aP6cOU}-3KFx>{NNB+ zDY;NGrA_g(E??Y@d(+xefe@<>gAf)NTw-ZYz%F>nQ#lal2OOe~1T%b)PZ900^pveH zFec5YPYdi>Iekp9ES};B;oO>xwADadQ(CEqdX1yBLI@TrCrvFqDvV8z33fq{V_7@X zwg*D7Z?$K@$osW2Xj)&X>I}s8h zx(@JSL~(4|VXHf}{|EXd3!8ErBq@HNy0fp?juhJK!_x88GzkWbGUHqV-Y^h$yQdt> zYn~Ucj(!CFvcaig5r0L7V9?`qwv^x+&jnfx86c%~I6QQeGE;eiHB-sf&SCA&&^GE2(XLQ@>$kv}Y2DY)gb3k8Z_(dj_L zV$216apqN;z6%Mm`oTnCv*s?Ur{bFnsifn*B|=%LAL2L2KAn_Zap|Sevure{NaG) zq&GUj(>I@15*fQH`N z!7~+19`kIsjGmIZ2YGz16)spYYakc%7)fT1_Jg9fZk>0oKmFVP&@bL3cQ$eJT@Z@} ziU76JVWCRy?oW2DhyUy!e)iYB7-|u5U)-8Y=laRoc%+a?rLTxnNsoj+;b^j07F9lM zN=41az>V#3)H=J^TshwJEsOsBQ+obhkdLaGH6gZzZBw2K>A}Sr*xEnfN*Eg~7}Mzd znErb*Y0NoIdSukGkX4nZAsY-)Q^8P(taEdISKCU2n;)(oE`MlSO32*I$q-|^MLQ~) z2_^p0v`_xGL}vC6=L;uKa{L2wWMqln7n!b@c7G)* z#*)M|`%0NXVQk6CQ_ZhRZW3NR-DB=*0IclC!Qpl3ioxuxM zg>soI2a!mC7bge;RO}^prh!!OHt$G)RfsU(u02vD^J!$sJy$7HFj5+nE<)xw-FWmi zJN9tvqq_%w&EABpKAsQXD;y*b#pu6rv#P}bE(Y*1u-`+IL3T&{;k8oy@G5n$z)97&;gk=qUMq5Z zvH(20ovC=A@-z);_Iq5i@BpJ}1HaRrN3b7gqfX?2d7N;psgd4#LgStlJk*HCd(iWJ z#Z)fDa0x(Iu!3#tW*I>zPjN*3py!JaQK{Ej?AP9Cr(CL3^6d> z&}KkaYyJ;^hHX3}xZzK@ozqIRCU#aDtuy|sN$XyR5sb8{GI`o~ji6oUm8xJ>EsXkq za~Q5X#U_M3x@#B+0lKJ?jV@iMS59aEkHP7#bu!=3o}4lOc_>B%b4!&xfRCf657^mU zm{2>Go@NjoGDL2-h;el7H4tI42}3aOo^j|M5uFAHuXO-$Y|TM><_xke14@>QNA}x` z)|M%ZTKJj9APH$BnHDNw0xMV)PmBH_m+CkvPv$y7BR6mp2A2^0)USvfsq|BNfVn9; zDscjJy4K^g79h@fgoXp@{pogaW0;6*do3KI!=IZ+6eoF8d0?2=*j);;S{JZf&K}=>z9?4;llF)el3ZaY4uVA**ls1I@f=n589kf(vun>5?C)&Y>UDbw&edB8;nE*(u{>;i6J^3hpR|H=HI zMFc-d&AFX6&q)FKkW8WDO=w_lS5#ujw6v5o4r+nQJHPLxtJZYTX5vTW7@TH&oawPl zTZ5)Op@CD}X-&wxwz%3J&ofrsly5LbS-=85Z6AK;|NOHrS>JwCEtTp|$`}cK9{=99 ztPKPPknH~bueIL(uE+Y*J7u1v?lj{KLaz6iz>$frF6Ws~WmpbFU;3{a0Tmo(Kxzoc zdizU;$v`SWiEhY`}X7}5wo>{AFi&M@nJ zd#5sHqs-u?cto&|G{P>0nyjYM&nF@XmYZ%sa*4dXz`3&jsBdR*o~B_M-Z^+3_GQlb zz&hDV<-}%OjnqH8(AKP^X z-3d3n)4}M9dT8NBXA|)=n+*eSmYf?Q5^{GS6nRxLvFqJ5>utgo)fyf{^9yNu{xIIN( zN>|%RSU%Rh5i{poSl`hT7j5ieN$#d&ry8O~$UDwv-?XMDSBSLBC5)OS-z_0eUt=A~ z^gFSjg57*$y*?w|b3OnGSDcIBtm;Z?5(`ky`65k=YvLFiAQ&ruXD}$&83U(C!6v?= z9E}onVWGqEv!@9JGUV9D=a1JImI(YuVfZz&uQN!hS=Gf+_0s`77N ze0G#AkaFJ%cg=2hwvqcGa(&iZN;EjRV2QdQW>c|T-QIk@W8OIix$vB4)%@mjD%UZE z_QWe~Er>%;1E>40F46*^>w59{ZYzj`c^I=zGgOv#-H#uIk;S`P>j*UtB; z|LMH&WOdURG8a)j{`ZDH4_7)A znPCymmi?!%XD{9!#=xQJKJa1^Kv_wCxD5!0E!e_w<3TOveKrPJV9fM1a9##-?VYX` zi#LA#6Tjve^osy-6xq3YEMJA4>KX8csjJ)5+4ug)hdz6Lop0+ME|}h{TPvqN-FN+y zjGCk`Hc)`5J?xW@%HXj*pY$^7w*Vx3KL~^k9>IvAExGt9rz4QyAAOY zII;`nCdfDN5jbXtKDDc-kjCz+$3;4vlf7$BD>&n~sNT4kWK>B)AUDBu#ITl> zC{}9Oc&X>%5(okXto3vB4AiUIPNOYUJEkSThX=mJvs=_%tj4^OLJaYc9mR^C)Gx&lz8OY7TW z@x^vCBlrL+hF3Tu#E!^HHa9jjSomenjlBMEY(k8hSI0WU8ett) zn`!%P7rWamsCxUh-?5X}pmx&31`-~H7dtj)6I6R4b>-=c3Ituwc<>zMWU74k27?}j zMG%-lk)Yr@?~xfv9J-)S9LGF3ROVDO+wBDoZ_W&0$#DP(dD8VDUn2<&P{KW6dAeSa zIWXNGj{!1N>NJNIBflD)Kpk-47jG0ACf~uCv|S-T!*FQ3xdl{Xy;5U@;ia zw7BG-S0iW6Etn{qW@^X@Y(IJKo`|rhsWitJq`BMIsIkF@u!FXK~eCBe= z(UtyPkR)-ElrpvR`4t*Zaj}Z4M0m#G2_?%CoeI9QvW9&)g!gRn)(XG)nXo5h2F=P$o*dVB!sweDj)DvxtgX@$@x=u_V;Pif~35!XigEE~$@F%=tMn9`VTW0E+>dP%E*3m_{p^Cbm9+ z4qET@rYs=cB^cbaxy2(VyCR50brl4FzEq3@3&2cbDzX)jQ|2%<46fKC62yzc803IH zo%W>8=hGZ06F1dqC%Updsh=pNNnlu4rL=&z#C9SN^96DN zWW)UBdlw>OL9*=egmvaw2*L{K*!ar9^}+Ta17O-8M!mr)FA?t(PXnby6r;smDSJJ8 zirgP}<d2(ovxZV8EcJy@*Qc&~Ee z(9gnJFr$t=TwQS@6B>+znPs@LJ1!n$)=q`Tu$6Tni`7kfQmhy5mun!_QQnKgum`Dy zOfwT*91)!)At!eQ2acOchSDT5$e9MKwl3;L7DH@A_y;@1@qkV{OGJuq7nBWDQiWcc zX#TmdO}c`7BgJ&eu!@9cITcZpm&^LfpW7ED<*LV69 z$^kat*kPMykqbcgZ0wXv z?;IAK^Rp=vQgtV;Ld!Arnmb3&t*YsQK!kd8v*x=*UZ7@i#R*d8M!KD5x+24@1S_Im zH`>d|CD!?_@jU7N=np)*3SS=Kdb4n}CWQ(ArANm{FLOxQ)?U>27KP$l=quR~Ch^8a zMr>Irk}}b@o6{~KSxOV0`j6wD=x-WO))XxA6gVs)n5EQ5-aJOSyua?4NI>666DOj3yI$6b>?_==CUd)U}*OEozA2 zaEvG^SX#8job|0xnOM`q5NAf!oMskT1>`OGkCbKXngyaZs=wfy(9ld}Slo^kjKGH2 z4$l)_!0L|I9sBomx93m=T%VRTM;vu+byx2}VA*8^qm~dF{q~VG$5bflYrrs@(o8)# z2k}#W!cD>xN2(p>mip>!+d6NoY^t!srmzkn-el$V1y>TF$^|F+j)z3E0fLGruE>bv zW69}?aP5L-!E%y<21rpfi*fiO8L*B@q#cB<c_K&Z4~Nx zZ#?Cw7BHv}i~yH#e&_y?FAck2K&ivNfN^KRV|FD;Bry?C7x2~?qtuoA?I*zBIM;p-a_etAeFs?q1UlZyAwc20~>-`tb=Pd z1plg3O6o3oScZRjR{98~l<|WeAciF3vab6M`AW(Q43sgMl#gJ^$$&%l@TOgnrW8^) zeBiXk_;pARGZHL8c>S8#+%_P6BveA(334zztL&aQ4LUxw4l3fs(Rh#As~8jf18cv% zJPgmL*Pj3T{^&dY^Jg|Fv{1PPRFR2gTUsKjoh04gcPIV*;vfI@Z@O#vfKLwdYuag^ z@GL)jjqBrl+d7xbhiyGXu>)N7u%ldll+58><9~=16UNb+@XQYPzIi@*E@uGsD*;jt zpbjHeP2{!V!fmPafRBT@b=7!+mO@)!af_r4{3{in=U@6h)y6VwHDNy>*N^X)?LUtR z{>)0x;K?rw_Xo=f%E%t46me@O;FwwDGbPPd@5zRj-7X|xW;6N8NDD!vtVhL%#MKf` z`Dc-RC9eL7C%yo?#z#rt41}8;&X!rx zsw#qUROL*ueasIDvRV9DvYKTimyF{_@fsV2e_$t*MD_z|69>ccf#2Lc@O~LJaZrgw z%TmRdrNO&JR33TwPvL=unaHEan7N@|-uxlWUy|$)$bdGr>(a3&_+bfrQ%{aZTJT&smDRWP&hMMO>q4vJ;WA68BgDUszP> z-4o3S&g2{9N}OU|0Hdtz31HE90SW+}jO?P{Kjl?0+yv#WGFDDOS($77R5EcnE6j&W z`%9AtKG`v*JSkSdl%z>8Rl~@0_h*g%#(W@Poa z17VAjJOTvEvh>R;$@gYVYs1}g=i4kP6AS-9jeQ)(qCXGqzlKGaDrv7wb?-Fz(w8|$ zJ*2oKXPGL`3O-=GWa2Nb%dgYx46IJcy!ftXJ&obM z0XaOKbz-0=OvP<9YACV(1NKf}#bfF%hg$HXG{OuhruEcbptRl_L_*PT6?+_wIiDr! z(PFUu#XEwkMxtpIAYQUpFbsE6>Khd>P^IlEwOe{fM1R6waLi5HvJdb@^d1%`GDw*CW-=61Nr6x`ag6xZ6XiMA}sSesrq7hFNs8MM|IEbG^VU8w1#WOlA~#kX?Unil|#{_ zD#iuo5Gr*Y9mppDf$-I~%#ut6u4CbgP1wF6K#8b{;zqC%#Yy^JA48HSFxb zqxr9wUC2;9Z5q61M0qnuzC=Xl=be3_evA$YOkWCD ztweweXri+(CtM72RLlIODX2KE*$-2Gu{h>y;oVBzQ|#q_)Z86g2kIbxNaH%75TRZk z9qEMALX(Ud>NC_+Ga~|a+-Y0GDX0g_70*nbCd^J-3qSh(&+%?ar*!79hENKt@c=}^ z@)NZ>r$I_O!h~3~;>Ja9o)OT_b4F^vTrDNMj!!^UGbxY(H$xb+e5duBS*rpJD~2x8 z70JA!9RX@35APQCaT&5KqZ#ZxtDpY@(8SLIH4xkA=yM|*4jjGB42A&ER(_%GPy;!i zlcE{*6tYiDZ3mnwo$fRwd(LBtjqq(bP$gct@y5IfH5`sv6_#|m*y=V(3p-PYOE`zu z$BE%t&0{6!E>xzabf5EL(SE}Jyzkz{ECcQ15|dpiBKB?wYnN020UrDleph4Syirek zSv$UROT8E!(5keA%vn~CdENee7hjyZ`e3m;(PRqv4}CEs!; zb|Y>|{Th@F6jRs`CeV~(tDMtPx^bC~He8q|? z-RN6{abHG1mlP4}2x~BpE6y_xC(@F*=SY8O!SbtAEo0JofVAY-lxf0O{!$$B)mAC& zH^pG)FdJCh$n4w2Poz`on4}!gf!7zNQ+$!E`_-Bg;{5`y2zNx*7~y^dJ3FZ$eF|Rj zjG1)+KN;c2qab0R)ecd-#b)Np70cPHPB+=I8<_&4@N^b@BI)Udn=W8u&{~OL=>1Jp zHSsl?60(F+=%Cs6G&H19s=czQfV)IaL&|B{_T>sw-=3-AoR_F}?{hsS&*(@PboGfXx8z9o^kB8{xPHxCI zw%eFSNyb2nH{=6V^MIdb2L3a9D4!;Hm~`1j%P)d*_p&t)I4Qb=!{6EM_ zNZAwO(ui2D6cOuZ5yeR;N+zS60QPM)O-)ob1Y6qK@@^z%h9LGrajz`;8`#_DlMAaA z#SzAR7!bp7QW|EyZ#1(e#Hbb*e%5noiUW)qm0InaXAE8FFCY2%=Hd77_>$DDIZsr zKS@0=gzp9Z@oVW3(_Y5$RnG)Twu9cSQc_-MiwS{giZyIA8s;rE$Fe0?*9DuKQG9+D}g6Yo@RQIIi}QwHaL)KU0mSsOotoUiTxNl{SKYr zx0rp1!=orD2oCKHM{Un>iqvVF-{e~CmEdd&lLlY_EJ6Q<6G&;m>=?;%BA^qC2Nz-z zetO9N$jB`{Q`K^EasDXLaui~@9FPS$AVd=p7>;t{5aPmL+r+gQ+>EOSN}k5mMt++< zPP+DyD&e7w4-jsCT2^khbGm7G1DJu52k(zlsvP@-y!bH(5{o0ozUA7kkw$b+$enps zTZYB&?taU$b9Z}-4-h?dC!GiYM?kp072^1EIZQO28jnF4c45F222fyf;0#y4HAGTn zd3*xb&OlD{#gJ4j>nP+K(+hk1zAl#@A5sb_7fOT`VUwkNH4c0%D)BrLyj+%J$n(tR4b(e9>LZep<+ zm@cdN5SNec_)Z7s`AgGEW?>xX2c@iD-jR(<%0B7Xk%il0_B?bViy}ad7nX~wogD{- z75>Nm)_)#%@B~uG;1oYGYhyekPC-4_2yL`s(5%=pXRudg?uc z&4o(jY1O}7IJKy=q@BOZq_13rQl)}cQY>smrglJ5i zzvv#(R6xUlUu7|d8*T3gCKOaBf*Y2G8#N$Or!;Njbu!$qh5eexi$n^Kd1$}5iXwgT zm@(@U`PGO*#@@kDJmpii*Y51L1VTI);if=V>UDVPf9F+)Ts zM;+${9E4lCKVnlG$N*Hwkj?c)Q9=LV&jlb{LPwpj9 zEHrO%(p62!5_U6&*Q61AL5&|~_yW$ugg?|i1hJGmP!-0l; z&u#@4&YEYEA$4<_Hx`yWTC6$-i_Wu-Pkz(+b~Mo$goc3jIZ#PSQZ*EY8qvoX1)kz^ zI>SjQC~11)>;Vpg{JfK##Fy;?rr5_vx`HabM1R!7+!=e z(1($tFN`nRBQyhd4I`m+crl^YYQ|%Ez9nI^nC4A4&CsWG z!q^pTNh1Ki%V`wxkC4y;WFn))nHwCIW+V=d;8`wV@AUiY8z0?1^q%6pJ7L{0Yg;v~ z^%P6;Ai`l+66G@WWVgu@vts?046rE(5oLfi@_3n%!UyTb?&P3Kan#ReUX1!hG66OX z;dlyhQ21fL+I3hh^3z$mrs~cn7l6_q4{Jmt45QnBKQNVwyRCp{n0=6TxZb=Qkc>Rm3fUeMI1In%VV(|&#u`p&IAh&Q86tpgn`>c zBQ7ojF!AB0xVpf55kIuS8Uv*s>j`nDi8=!|IXzl?BB11|9h1e5ONFHrXO8-k%gul< zzmGcof!ASmN<$9TQ#?qjReF*JxTIyeYS$eX41@0OkI zg}qGvlP49>EBPDz)gfXQnshQ+Lo4xA(Z4QzduKA)ZWG;0`$3S#GdV6Q##cIM43LDt zdf49a#$)epsPpDXr6>9krIh+2m< zt-jSS*XhUJ8Crk43}D($t_XB2-5?Q^0HMdI15{l6D!DCpY@OPHt}sEMh`TGGt2`dh zxR@eZz)7D{ZEOoUmOtbQAm`pb(3I?-OJ~(e;&7-90f=n0lFg_39 z3$jn)bMR^F%$H&s<#-!JkdA{KO>aB)2zH&cZwUJ)q99u%7S^KRVYiz&tC-UDG{>ca z5tD3t%XrwBtYEvBDFl$Aq`)HK48_GXkXxi6QQ+&_bfB2C&1uYTR&zE$P7O*g^8!yu z;@e?Kfup^EQan0E;H*Sa!5~r=10F}azZ3wz-)}n_6zaJRM*kSy1mn93bs1tUQlb2?f|CYi{ z8Ek$mNm(IDfolsxVkc}Ebc4&VM`^_F;Z_&t$(WWfh}C|Rb)oVB3-$REaCi}nS&E)N zu`9s64>N1YY$q2iXcNfa_*|DA)`Y=4^`19-$)t|aP?+f!EukAGF1Qs4{y%0h7Fv zZUY3TeVu+$xI2(`G8=%$#ZQWB^G?hJ&1B`D>U$oibDG9>~(U_ zz%ZPe&b1&skr+C%9PyWAs~#P?DHh?I#SJ=(B0Y8+BJoN0kqXc;x;9DZ1Id#&_Y8!a zH9+@EJ8T<(YEwqRebZI(L^Tt0fprGBSR$$$thR@{-gxNVjW<0FSql583<$-v5^SmX zwfyE~cR6Aib9L4b+b;w_QNaoswp!A%DNR8zf3q%r%rUXLNR$5r1hRPyx70bw+3}u6 zqNCOSk~*UkIWu)jNEL=n#WELnb@8iAF)QM8Nwl@K3@^vlB0r`#0TG#|UeY581QtSJ zz!VxhnM|zeczVuxQlBLRE%!1uUoofVhR84?b|Vbwxh$+5+Eay|m>(vf#PB*DMvaBS zr!r*o<9KSBqLzsfi&V^822!znisdR;5R$coXh)Ws1}SDFS4MWnnc`5Ylw4uJ1V%cb z>i2{bh{m{2;{z&71Efe*OdT>lJt=DaF%^o=H{lHg!_QEYHQndQXnXS`)81{+agJK$ z)eiXPFoyQ8KZ~MzN=($tVmW~K#tCo;4_DiQa!~{8;TwU$%a_0P>!0(EpZ&~gd_|tG zTogl?nNV{;B<*!((CmQ+H^2Rv-+uF3zvi%gSUY1dWR=nlfzhQ84MwDf)dChsg3ce| zRzV69m$@_(lM9)hdCYr-vNAGf!&aT}V=@|4+X^9dTrKHRjTq$_z{}X+K980zd$@yu zbW8xWj0cW~c*yKkbz%1W!Yx;Gju*V+qp6j2KC}+tSYkWzd~yWHe54!J2Ve*NKGz(S zDwIEOF~^vURzqU_^+sLxq8HECa6x3IEK7G3!Vm?XPUUp|EK5ZSHcSaGL6WRZc**fR z9!+woNj#ZDSr4dW??Brq72R|sdl$>j&Ed7@yy5r1C%u2}2&3qyeZ|zsmr@^ol@23XP7MjgMi6To{L@)q@OjW1c zSk{Y8m`?;t6UKI4jeHJ65%`KazchV9q|-s5JR?%A#BL|7yJQBoU+icL&?@({5hev& z;|amJgdq1s{0w>0PB?~YlLZ%F3f^S+^1Fdbo7r5n1k7pS7OK36>@gy~%RY&HsK?ougE=FQenx3zO zq*MT0xx>!{%_{vegE7sLW2KXYPAqwj!FBweqBchL))>83+b#`vFImVr(~2sklMxlt zwC6>Pnz&IccovH}4Nr)t+p|w@zVz;Vh3@Xgd;8y(G5Ityi!_SUQsIB;JQig$C=mB6 z!02hr20KbHCka9(Ip(w3P;3!@Qf$h%5Z9E+n)3=5e&kJSw)`AguH8TB^O)6>9S(VL>%v33Anos`Eec!VM={=3C z1?dua^x}huxJF-SDXV0BL?MXGZDzMpkqQ4{BImmEn4p~Mqik9ZCs&aaV5-Iv+OEz} zq6|A2M@Cy|ox+7|uve<{FY(TUJL6^6E^2rNyi$1*j-nL)cHMB-oK5_>`qyOi_?7XW zO?U`}JW6S3_5$O0MJ+;|)PtpiMF>22P<#@yqe+R>Y~Bl=sU(#kCaA8sLGn)LQ^P1r zw!yYW@=8AlHomhRgdzn|?0w1y$H#QBfh5koKw4_w{gz$#PWe=ns1n&ol3a??*g>0t zi(}H2svy&6vIiX;A#6~?`HF55b&~i~v?tk7S{(Tf-8p*w(KH|dOu`Pho#WZ5F&yoc z%o;=#qY0OhAMl5xA@9p9$Cik-W^#PS#Hwp`UzP7W3)S75GtR@wdM_}k*uSzJiyN$f zBFHS%x)5gmjf}yH#1!0ssQROZi|In9?`rPLIU7_}Qh!{{VKTWVZD#p*bAESt!%vF% zljp$a6dKPWinv2%1jS{(+Eg@=rO-9vFUkvQ5YeoZEDT@%Z*RgqGS zx5o1sQOZ;S8D+1{HQW7t1V^m@4DcfVcBpc29S^%CLq1(z3xMEWBhZ_@!-EpRvU~H) zP19|SbK|54whNbz-X&&%q@58q5c|&Z%4GGN=iKpAKl7#8)hTNzT-7{% zQAyKrqqjXu{(kb2PtHI8;OE}_&0md{egs8jm-#1lk}5lvPbQJfi3_&RebLQ)BIj$O zee-lPFp*y?O4D;#Bvh~>)ehe-OD#3FAUg~m!%^&egpNrVWdGRDqj-?xP&*rD9fNM1 z-4ma8a}?f@X902^g1HHwFpo;6U_Ndip!N^)g&BgZD)62yvm?F2D;Gv^>=K7gYYOLXWC9O(wc$hU*#+xIQ zTvX{h2X2p%q=)5h(Rspi{@@S3^F99+4xy4bG;JQjB7Hf4Mbcyv!8rjBdhS=Ye*DjV z{T-c0Y%4{gFB>A(6M(9eHi`n|Y2X%N*6stQDD-TPYT3DSJ!Tdq7sNq|PT7^glfUia z_@p8J~9 zvBh4x5XI*USI@5yFZS5A>{LAv!y9*>b6e7mPfk-mmS0cDEnk;fu?f7cQlGuv6-g;X zfYQXb>nLDDv6D@G^#0zeX=0BUB0Hc8_QLo)2yM?PRi z&Ph0=HIMWNLLL@5$iaqVhy^TbnS6U()s|L|E+1zT@{O!-DOa)xn0UU>4v>Q{U1y`7 zpDwHw*``%hR@!D6FkW;{C1f1I+)`4h=&Nyc1ZsYXl4m?TF$jmhN9|;u6AcETIaZ%m zI5NHL0h*2(`=k-Z;N(Ys;5oJ~l}0-1##%`CBLy|SGf`SVEQ!hjhUJF35?Y99I@Z~A zl$AY^HsW96_Yq*Wi_T$ADnykfn@Ihtx^x&y(kwh+2}6FL%UAOd@)kUxn7~EHda*~e zM#jXWM@81TqN+k5qEKz~c!6%t>9{~R0yjE>EpCre{D`)Zf6HUhWCWefU^J7>ATucq zQs=tSO@yX_CWTa2mFbXPCQHG60j8=@m6H(}I9hpeS6`oAe+p>Hvod?2OKb72HyrzS zV~@np4Yy%%+q8|%`aISn*CJAIw6khq_NZ!0JIw7J$$Iu`n$zf1*(yB~6n>s9Fkdbu zRVJB8kzx1<-od+yq3sUA%UIZi>2iF6`LF0l)7k+=-oAHy!PAuSe%+rN@sncJCThr-OFU9B)jc5?~93n%FW1> zDtU>EA)zCQR6>=Yv1uXKR+TyK=@~o2?DcNh~cG3y&(Q zE?I9@{cuygr2n~R8IQ?w2fLx_dm)sKDZ_Lpxw@-5%+)sXPqzxpfs zn4Jn_--XA-Yvo=t&07>#idDCVIg`8Ik@EhqkSXUS8H2RS&V(O>OXHcLhp$|9pOaC6 zz#74@`U(4h-kqN{XbrC_{9-);Q*=;sh#ynT!zM(>Et|oSBqw(3K+}X6MfA0hh%rH6wdy(-xS452a@^S@rPKf9p+m93K$kLDVG>?vI#L3jdf^LiRg!!jWQC z(*bo!vQoHgb9x>iTkvqC89|J@-J=mUebxH<*THDe8`pG|i2%6Knh$Wx9sDQBDFMIq zVhWqaQqvS68^If7AL%Aaw;@WG9N6xQ;3eo)VH%}uWGnV4eMNeNkfWCf3hPNryafOz zO4#4AVDtai!5`+fX|khEDb9duVkBLVMv~6-)bd+7{>}8lMRW_)M;RruG4l6U~w`J&bJs^7kSQgG?rDoEYUk zHMvTTRTUa9S1p^}m2}yHHs#b8+zNms%2H2NfM35pLvbkKUVO4Bi(YHIG#otygd0;y zx?e4#$tyC@J!@7xRvgUF?X>3?yw3La*2lLG{7R&W3J{8oYw96U+1WGUROiUmkpVoL zNd`X12XQ8@A7Xvpv|VDGuaSo4Tl)Zh{)IXK`6 z=r+Vs%}XG&#w%p(xrO}?#aeIL9nO?gGIx-%p&8Yjtb)V~jMJQig&(*M`#%Q7>)?-l zOvZJpmNjeq^WXn0S?+>n)~&SdgOVjehZ;mKW?Nh1F!9#a66+eMni%lRC^#4t@5Zpe zwTzNEdt@>?=>-+ijHVPB2@@)`wzKO-9Ov4|a?G=+t2sdRE(`u#z$1%+!BX}G>6oWe zOFl(5YBCRr*}Q=pkd_fjyw43@C)?0uGl?xA4H+e)Y=z~yPaI#Y4k1c|82hHlcj6bq zX^l`HjE|YiCG=x`+E`TweQYrwmEf|3UOt-ei#)h$LC}ygwFQnw-Er-8$KE~N!|MFP zxXW{bNfE#?go8{Lv}5H_4SkAUhIBTIelgz2#gl?mbYOuN=f-*hf*Ud2aA-Vs`({9C zx=6;XG~Bg0;cM}NvHq;B7s<+llPc#*zwz9)fCOuV=SX^@*@R<4tnSl??DR(KM0O+?BOo{E4B zUcwSoGwQ-p&ROFM00&*SKLj+(C<*`5fd~S&(ce{m1O|v7#*|tY=Po zj91@&so$jrqDN_`C|;~3CoTXfd6Cx(fkf|giu(*HutG>Z?HCdQ-DG%jzI^nJuYLKi zz5nB%eV}#-PNYE^T!;Cay)h%77CODt_r3o{YxB@Ie%%YtH(#8M%uG#IEW4#x3Oyh* zC#?+5oHEmM#mTNf3yRRvdtj@}LRO4n%S%L!(oC~d%|6U0iU48l5o1{=sa@)9X>VtQngg7yfWv5xtOW;OoXD&x{|I>+rDB*i?VkD%A6o7@R@HD|eHf(vlJ4BxRShPFpJeHnT@OwIW-W8?0INHh!qF`qn6^FO=(b|ivfuw zpzUs~p4k7&-+TM;gej*IwNG3pB+2E$L0*VWH&Q#NjaK_xzCSgpMKgkAVGQCq=TIM`$o@%YDAZ#%kmf5N75Pv0zT(jmjtGRh!Tl=sv*3bl zGHb24;Y)%PovIn7>@)_c$~TZ}Xk_5tQ-9j4Dh7D%1s4&*A%C;sL7KA@9UZi z2TIr}6j=&AIYPD8QWvNY)?kJM?boL;N8`o%qSHuLj=f@LC3h@Y?af5?xh=oRz_3~KuRG> zR|FSZFclIkD%TyBjef5)ycp0DLREB@r8zuxl-?K__JFE@=z7w_FS^&oJvA1C3=#7C zkTZc6*!5<%35*)iWZodDK3WP*n%2v6f@jF!z!|h_Sts5mY>zNZJL&dL*d0))!EmoOm&$|kVq#cI;KC+5#U7dlaJV4LowbI)C{j5x7)8ho-Y8WPF`g$Kvcox9be z{{r?upS?Z8~zGN#9VUgl#`{4hIu-gbVF zNGs@2y9Kd;p~y~zAOgg(lQ-f?Y@U@Ap9llXP#aUy4`_&vmq;g6AX(y=MNql&kF>oo z@uAtR?KZVGlIHg0BAd=e|W<#DvU*gbmpGhg}#|Mb84r|(*wUI(}$c@2aRr%I0& zxs_6iZ806j7u)TR{qTLSf9X9Fon2A8y1vW_(tKh$$g`ul@7)-VaH{2168&g_agc!X z^C*;yb*7t*okQDX+`_e2E@m(1xig-a9x6z-puXqp07dCp3j>aQ@$B9u^I|YYZQB&;4ehdi7FwVJP=ET36 zW~Ddh*9E630a^}-Bw;BFo1ZD?3$~R>iPRJ)%^Jv?PF7(;MNhV0A6%K)WLl}Aeq%2P zV+5s6>rP+^HiB@qj4@YBab+c7%S6Y;kLW~VsP2xe54O7vt~8Fm_jl(+wzhC<|B5HKIN0) z$hH~6o8=^AgL5h~FcqH?p=KHKMf=il@q(Tm#SRahJAj>JiK^|Zg9$fi6wqtOAxZl} zbuxC};%a7*(EUq4_#BCf88%3x(e9ydmMmpO$px7pnn@}HUkuM{$>1as{rMb{ zw&8*|DRU`|+3f*eJM8eVa_7@XWau+7n115u_jI8>8@+s#b^+o&{7h$vN*oh-{*Fhp zK_q*dBPx=ynD=%Kv6(mOj0EP zT}Bjy9m2P0e~FZs7%Z?}2$c zxFnB9Bj(MLBuuAMLP_D&X}W2rM6hV!>Ptvfic;q|9nDNcGhVTv5wqvb8qAzKjqM@F zEQzLWvlr*gnfC(taxm6P?)*hJd`dh^I%jEyuWjAZ1K>E91wbNKiY7LfNR}q_Zi=F=kO_SJ=Kn4n)ctDKzSK6)dC^91@bLlRW>p!XXCkBJ=n$voL`5Q`+979hov)Sr~T z`0uf0_i(BVN&|gz^E)H(yR(*#_yUe#%O_CyI^!V^~|Fm**^4M zzk>V+!j=_H*uxp8QC!4aOHrZuY70`|2supgjl$5N)yB*Rq~iRfWDg^5#S$$g4Ea;wNLY;XXrE%AeZ@Z!^(BkU()$a?ChwQR ziM*OD#x_SLp?XRY3m{^Xlw&oF-x!UfBNE6iL0EYb&kei0AtV7;u!fETE9fzaf)vTj z^<(P%JkyX^dqZJs!49?==LV%0&pdE~eszq(_><3xWRRUtvclaEC&7#M!!hD7o+14% zZ&EF)jW@(^W2dEiV631-3D(-lwyR317ZaU~q#EI&BOkRb35A^BzX+Yk(Yjy{yzH3Lxmi*A6|r+u(KW?*N5!c21I z&{(F7hJBgR{Gknku-i;VycEnfk?@f=nc(c;SF#TJ%&j7MQOoWiA-h)!KM<>fN%&UO zM6x^ii8bIVONdZ^=j*!NCv=%>Zo^hKhDD(t$(Qo%sBdh9%N-F*b5;W&GfSGzU{KKL zp0XW`EH>;V4~9kPVV{suGYYVx@_*P~-95mB0h#lNLGu-$Ig*xG+YZHsul~%Zvxm+G= ze4{48x7=$??2)@ggJTgm_zJhI)t2ll z`jPoJkBcallYCgJryCeOU8QuDDoI)5B+2u$%WilxNLEG5A4lox(BP_cGe9w(>**dk zcrSd(`aqsTk-_FEM8`x>VoMD!sCa^(v6bZz)3}hJI5le7>@Ach_UUJVr|AjBM2QyD84;d97 z1wRPK#63p-J};{`{nYPVeB_g#_&sla#qQ!!8gzU&bHdmxf@n5@(Nm~lPg4dgVZq(; zGfEX=W3Qnj*i0V_V2&PSYx*y+PGk1!?w}JcPT;&m)*`u8@XR(p&8wl$>--wmwWqpb zU@6&>az<^iA5PT0qv(7Nj?-XsK^mBLN$>bG10hdhWiZTOpA_g$?$j+=?h!vv1On>D zPe}fm2 zy6p7ktK<5PCqMt&zU$}y{cp4wx&!?W+}%QfAFMr>6&N^BClVgk3!l^ae}3pyW5}MZ z@o~YUCnD%`@6k;$xWxiM1jzG`TDV2(i7kRX6y=F}o+YY`BbHjRb;bZ`Y?1mR7_MW(~auHu!zxTH6PeSq^2_k#&l6H{H0 zstK{^$fA|E6m04F3V~%{WV~SFY#EcL(VW>hx`za-u(YV8C(SQm+R%z+aTG!sa5rKX zx(^KBNJn2TGwBtu<@kqiC2)8x|JpU@~EPf=sICsc8Ub>t} zBnyQ;Oo3jh{czxsv83o}gf~PMCPc-0wBrjyGDltWBIkUZE*~tM7Or;8#$G#-k zsINni1uE|LW6C8J%TnaRrmu7N(j*Bg4vI0M=PD)$=0vPBWmPh=+AoM{+$Bs0Ws$PU zagFy-*)xBF6O5w8x`WPogpeTW&ih(~oxQTE@rAPF0C=O$a5^<-ANd%97*k>PyJgW2 z{n4j~oEEg0MNH!F;M6HPXxvJiYsM_n9d7H+nTp2Az{@-2lugK%%uPJSYu|HI+_($u zL>Gx$U2kvO&pt}0_mwzP##3&+Tn}Ub4QRS0Hzk! z2`OaVIe}+2HHyk90tvI|YyfNfDoSh^8B<;Gg=FND57X%kALsOXQgb@=O$BL`?a>4U z+wh0Yftabpl>#2dpjoJ?@+1=q5BST;Tp(m380mt0mgEX&;|YP)q0~GsLLmrQz~_Rj zQu#%(kOC{?#@<=u_73M8jY_%@AqBR$_z@QEUv8;g~uW*{GV*RXCbq+pEev z7lmK}+p|QhT8uC9Lz=2C$VtMY;h;iKv9lY*yE#oOQnU5#AORKdt|A8NQJO zFHt$49*j{f$z}V-PExgTAUD;5L8_?mkmgKB!@DjX`|J=Bf_ehQT^6ts@5FtIyOv`^ zd(=K~1?I@u=3yY@As8ov$A^)vfn_%u%PTj#&yR*i#*C9PZOmdz7U6T?RT9)_(gW(qYBUSr10}fN zy>2qh^T2k>N<<2RrG->e>m7g=t6jlYACy^{0&ri6{`HPtbu^XkAjds04^ulblrU=` z5Dq^BFf#+xGZ_$;uxnT2PL0#)E{T~dn3A*Qk2uCbc*u@i^uGC@ADMU6SbJkaM#kft zirF_o943a?5}a${5EqnI1u|poFYzG~4$H9x^VaTSMThzB7r*5@|Hb=1(c&7nEpUra z+Gzn4!P3)mzK`Nd>B z{ymQKS~FYn#Oyc`BgC)t+0*FPcO&R-v8odxUm zSLQcEb4kKfjj9|CAwL-}6)>EgGm5TvJp1_i3noBrY6%10oyLn?ql})^#I@aYcc9LR z-B9ASE!Uu97G9n>Lap*0t-_fs(IBA#-8}zcs0y&E7UZL(p+WW~Z41-V{lilkjj*BF zak_9jnC+3wI$$APX&#f46n)NXJ&Q7?dACMNMYcJ1m}9uy%rIT;Gp<0UBr*tYZaf%F z`8FqQP-5`)E;eV)ihh)Bg+n6F+8t_6o2{JrEM7npLtGr2<26oQZ+2dLmu*Lk>HeiZ z{k-hWJzoL~nVCHhzn!n%!)26X8gUi_yqr%QeA@@csTh}M4f3Q|A2Hrpk@wN3^GQ0K zg1$A!#6sUV=WUVT5>!@X`~a8W?lx6-9=E*6KoUJD7je^}j~)1h-j5lNM} zoFE4baG~+bLP~hT6WYWm<~P|e(T59}YM+`7%w_{9N_Qp1I&n*5kGsl8YfRDMu!O47 zcBZ`|`cyINahN9+Rp8ISztP>xbV)DFHDF=q6A(mj6&c3tT1Ql6TgUE_)RD@5ijVB| zq}+)CWvED%uh?!g>jGX%7rIe+`T^WXZm?=5;|)#8)BtRiWGaNbDCARhmG6Lp4uHnT zA#rwvDUlMerhT5e(A8T|S!DzwM&XrLZC74Lm1tJ)k6RdxoO2Q%1pE4VJgV(@Dk0_7 zPW7V$w}h32arMvCXL!dlMNVP6(>0AS%inf@}aMJ!9DBcgTMMgaw24?7KaAh^cGBf zjMUZ#>?TKY^v0k6;`W!`_leiP?ZuRGLuox?5^SQ+Yd)iToY=y*Q(8-cYI?x70A&H$KTqN(ocr46DMe1J2sIZQgAQwxzw1q4ZXZ-j|1WoIG&$gs=U* zKljOp94x?%>VIUalN3GMvzj2GgTP#bqSyNApZvP}MmJB|3^)UkVCt$_G48f*w4OA2=G)FT*D2qSY3uXloAb5v z-Qs0577vsP1RdTYi1Z6BJoZNxzXG!1gZFL#7;2tf1(L5OE9BiY|jdzseB@d zfD5{h1hXFjf!rhGa{Iy+sJ8!^{mVMHMNOFN(w5QpJ_vWLuya|9u_ zNDJX!A}Bqt0a^!!X~dFO2x>?~BSUaP1*Ot}VSnsXPJ)rtLff@scLY?HK%bdH*i@6i z^ru9I)P0mSIm>)OA_AT-cD$3!|M2%dohM9ljPydLy85PR8nU<>&xvb99IH*3iQFkM z8w5#P9{du=!BoU~LXI(+4O1Rk<6H`z!|7SLBwzd(JZ^fuyoqTh^s$bY_M?s2uppP% zK$7qRprut$#Gz;f>#L$(xWeuNA)|vae7dd7rG^7|WSXZbp=gjvOgvBJlF}nDQ$uuT z8gsx~m$PS|3+kn?P*pCHd`Tce zYW5ea-yHFU{K5K>>MjevhrAL{S}iLtMKD=Sq*Y7pNgtz$pzIdfafxEqe2zhbd<#i$ ziBbRnfB;EEK~#s$_f@i%4A$`1UWUahH`Pp~%`9{+TzD*c3~0U{ z$Pb5p(n=bA3HLk^+8bn(Jjv75&GXUljFJWDH(^;A*?5<{py-VO&3Nt;+5Mt#MnaQd z%Q-`j=bSLnNvA(u-u~ zBjnbK4A7P6Wc2fFwKc{yBA;b-LB)cUY<>aK+$}{U{ZbaZ{~z`_{?5Pygj#d*nO+&~HAPF@1^um7IIKNq%%gN}HPd@>Q(2 zhoAn5mp=XK_HO0`q5)h(Y2sj$`)SGVxsHK|{7?6F7vx5?I+`;=KkE*;95>Gi7L!Kj zvoag};`VyddGcG9{THy1VgK;NDWq9SMC{}bG_V}}!1L6w3<9a)C8Hh^i+GXYy4n77 zyUX&CGwGvp8LDOR*i*n9g{FX-gaJ{!j6jZmZ$m3#@dS-%dQZj74Ul6NSo^NJ$x%g# zd?a?MsWuIY8$|>CMm%L9m*X~>Q=V;!&pm65M)l9`tY2yUP&Yq$RB`ztci2KucQZ?j*HfYS+^)FCm~no8iK}0VgYl__|sr zmNr0U5J7dacCvy!TbLyaOfV$`=?od|Z4w~%bxpi%!gwGV*H~E$@t?G2$oz92at7HN zRNP8>_*pwG>37mXx$%kJgYT&>EN4P8a=#KNI~O(o1c1G&X6P)8MsS*jF7|qHCiIJvW-grLzG$kUDbr2N6tYGpjusesl_R$ zZ(goPNu_2fgW>nIFV;)iyxxqD?k-jIu+c9>iHHAg561gr5MX7`0EOOI=2v`;4~* zshc&nUc*=N*oI#|z+GF73Fj7J-{~Q;vv~1Hw-}4FoySf%5ONuq>Pint|9UKS9wk8-_uBeV`W;^~hLW}_s{6U0ct=Q7<%yCl_m$vEg%!7Jix ze4J63v6QBhS;hlnSGPOd`I%(BFAQ~ZyaN_HLVDl9)5_Iev8!7?yGh~{&X4=DPGlc|9az109XII!QIb8TC^@e~+<}ON|^U;|}*=U*F z7}-uHg}yGyDT@1ek-|%yNdeW8C`uo+Sd$9IY$N%{fzV>(5eLOIhWrVBa6Fmn#DPL- zsmp^;&pYLoNzKi}Oaq+{>KsZN4KN0(Sca@-i-O+7>16tZvxh!+WpV}?NL%k@P_|Ir z*;_Vd06(9W;yh{U*R$^U zn!;46tuo2Xdz#)|Arn!)IijNfQ~&r&_dk97f@j`$*nA0hW)K-2B7{IW`7Absg^4B9 zAu9ZRB;ihXg2-wr9z)0v=fKNKo{Y6o{%^D;A8}Gxp$9ug(s)?tI2ee(eAH&wu7GJ_u=B zmIfgx(=8hOCmSUOkZvfU1Y7vKpZxLXf6dd{r*yC8j3ynnx70HdeLT^%clU{~)`%mXh(|+xJ$~`w&Tl_oPi8~zlnRv!cDE;#EDyvcwUuk`jIZwSfi9v4uJ{5#I2{=ZAV|R+_?t zFv8cw)KLNND5E4QPFVSv@CS-crX^!N!9;R#$;T2^!f3UlZB|A(eQ7G@)8bx0l-<#; zq!@+Ngs)_Qftre29Ts2^o#b{w!ZJ`OX;3DP1x}Ij8R#ruoz_yyK?8okAtPEnopgdWLn4c^ zpi}(dh^egBO7A3+DDhKdYKVxuLsKG?oDt01^w(HNzCAfKl4+w5ohlI~M{zDQ z@!D)p0yq=LBgssUjTp`?LH|eQ?JEI>P{sxiS~d`7B^)Uqv&u<-iXM`K?(NW$=DLm<;Xy5r zy>)ur1#{1Q=uUHUry02Lv8g~`>(U4|0jAL8DWt!!QVwRPP zoAslKipZSOrUqM*1v5UK-7&xU`QdP3ejU9)m8X_odQ#S%Gk}cJhont+2>oX*-NaX% zW>d;)FjrC(^$_FL*#mF-mjCJDN5AmF58oaRu98|X4?F?1Xz+3B@ey+J>9oKi>`z<2 z@b7Owa_jTo@P-$44z~cM3?H5WB1mdp(pT|t4wT~=>5d6J7^^~LUV0VAua9SA^9-oe zJB?YfuiYh0{mehp+wwtVW{XbQh6!?C+IC>cz(-=ZR&8Fd3I-yn1{ZJu_-BR3DeO4R z$*YVX9#FhJzk=4AY7VhDfjVqY!eI4DhJ4LrB*&5{-OFSjegNl8CerXtQ#M{} zcZ<2UXS@5yPyVh)m-n8WK!{$rb&$)6x&v7QvfK1Xj!1wStrr<;@ zlN<_Mh%r<16x{3hM&kI2`dK57qzJ{mb8uJjdiJt}#_Mn+TeqS;++JF_%ieLOPMpM0l{!pz4&xNyLQ3gC~bE`5fn>C`;sf zI?nSev?Qb+`subb*lFThX8Oh@V#RW`yWqTg?31epe#K8uzU007cud(dD@RIyX1dAw zO>IdRM4ZWlGH9_AtcAmRqv=V9$?g0cb1-Pju8~tY7+oE+P98QtXaGeHBT0NRnAr9~ zwuzuX-4>*-3ny1(<{>{o7e3&UCQ6xzX~C=y2vbC1%cKGai!}6@@sK@JND z0y5?}#1~R4NSfizpjvXdg9o_Ccyc}$1T>r5`}St6WwYv5@*WC!@Ehl?8V-2HHmA4{ z)<58wk66oGG`jqQ)@?ihfFI!*qojj$Xv|6Yu{m~}om>OvV5$a_J9OQVNJW_?=T24` zCptk7BMKfgeJwh045n}a(9u$Up^(XC$_cn0O=ctpD!`*p#B&>}H7p10O`$C)slW5J z$Id;+%^8&|EhKJPGcj0oW*&BA+)_Td8;KXjJ14+E zjj*tRl{IIA6?vB)Ic9Ly!2&|O#nEWOme%tyJuhPrwQ$5xW#S%q!~Ss{=b_6a*+=e< zGTiD9i67EL6N~`EQa)A-+OaXLlkFi*Ps6knH{nY+3Rsy$5)MQTHQ=n`` z6Sh5or`KF92V}sW%=8GIxiU7r$T(ST^I4vG$D&;6NG6`P#xn$*NfUoOL={JSWNbx8@A4gu6ig`f1PMA z45iqZ!---m@7^7@xO_P}R;LOpfYoe`7+w_2Eyne*Tv~|I$}Hm?~b$MVKPKE zLh;GG&_ic)g!(CA+|0%HCyYz27>PR6l|$`(so(}$1&X}Y9GAQlfN8-6|RX?R@hZ(o1LQ~!Ua-aOd% z^(yQ9&Ewwt%;!$Y%{<-AAs}E7f{BIzoq$H13M_4>AY$1nL_~#BXuDbXFboe zKK8lcyT9${KK?{&aFccEqYI5N^A3tR={ec(pz(5&xYRlPFF*WM?|tj|l&e}Z|7Z-Z zA1GB0ndmIkPhcUP86BfdtB%ETXhV5iTKaMIJQE%Wq^Ld3v#G}PhdDUibIV71FaFM1 z@72Ivz5R+;yG(@QIYT(BEYd8H3D6{4hIU1!D!{{0Wb5H-aixm{ z$^!*eA6~U``f4g`A>6T#jPNef#Iev;Y$Qp$q*hcSuKdTQO3ae6FCn?Xo*-VSvFCB4 z6($@w#GvG#TN_%B`5Tg6z?=AhMrhd^4mnff8v?ipMrk?aROrl;&bW*w)7sDhl$JyX zz-H`#v?&y30q~?Xp4&ulTLM95tGgF2pl`?5nDklHFti?{=6zU8(Tvej3!)UWjb*dV zBFlr67k;0wxVkAp-1V~{xlGpN4otxof)NbJ$a48lQ#8{!^u-$_*2(bVN|2GI!R^um zl93`M&O##K3J;sd6()e0FV=IqF5La}>dBu@8Il%`t34UNl})pHtA*2r>mY}nUDMg4Vo+X_9(xI3*-h~XbT5lF^IkrT9&x&=6 zbuD7OgE^z=f=4jhQx4bM{KFVVrN}WUR~z_AxL-q#jZ{E33aqP0LJQ+_IYLx(Hq+m<3g zd-VSF@TUG*&M)Edz@%BC_sS8%Yqi#i!8w}I_85W{q^4Et!S^0o4>AXKo$=A-x{09@#cl}M4ircAf2>D{Qc{R&y(0av=i|J=r+ckYUUh#M#(YI$2N5wQoPP2b+~ zMFZu=lp<6GIZVlZDwYK)F)DemSS+xk^v)R#guci^Oc&Dvi%7%|WF6sGB+WH$mNkMt z1y+n1CxmPh5u8ZUz4kV3mWBFfP7`1^LW!V97Wc5nOp?UL{gmT$Jh82*zkrn`pF-H? z3rd;Kx+&ftU$0}H(kG2q4ow%Uk!yt=C;AnBvWzgO$I_5?t$V`F6~ zpOR!VP{mY=CzBv$ozD;8C9)Fe=eo4Ct>EHW^MX&2k}zhD#FuOrdz53WQoj3#SVhvTi16?@{yG2=)HYiRetEN^74`@vHb$0&Q z_rLG0`{frt{E^vUdJQ<7Vz|gDMFI%8q}Q*LOmWDArrd8`%vwM3kG^zzb^Yt!{)U}7 zP#Q*15yJuq8x1X|TfsEd@SsDCLa@xmbaEA}u+60*wh4wvG-J z>Wd4xP%!DJLQ&tZnu(DXGL#~d*dQ(c(5iix?vgy7FVmkBr~{Tnah4-r z-4id-AQ=}#I~E%ClEs!IQKPHSTFv}h)Im_nS0hEKpec?Ri3i%#GWT%GCtL3|$hHs1 zh(kai&y-STq6RrKeJhJUQ=>#AU$g8KJ9(mhYyxQ|I^e6<&VYk)!%c8F?{3W;1& z3I0g|?GrZze2ANgQ68_l^TW7+zR4>NzpeCTTGT|!nkjcYSM)X_JxpOj$*WIbkxb}J zn1$RgZx5H3l=!{X^PgNl^#yaC=OzV^mEIU|j{Jc|E>>hBxFnB>lbJ)XRN7?9yXUcq9DjwE z4__Cj1bfsG%mS`cG?{ErcCz^OAE({Kt4D2Z)km{N*@ih)!nQrxG2TD&k44j?6(M$Y z#?upa5mgj7#`*!r0eRv@ITLp@iNm}(wSBP+IN%4>B$6=YJKgX9gRhA%2rG+|U55&y zt)YjB1U3xeUu!nVqHw6aIt?(0RUh+FFgl`-zJnqc6eU!ErnfE?6S9 zX=(;zh0|(Al`c{jDlxB#eZ_VXE%lBJYTPwPP}sC#RoMHoH&Y!`HlQ;5FoCMKl}(#? zmicOF;uVlE`q+*6SR-qmw@r+NcY_bpK$SBOG!9QSY z-M2T4>ck=^Nu+_U;B=you(P>@A;erNh!>fP6Ei|u^p2#q(8N>{LfNxgFRCZPTdD1JV;+qlOZ#LvF# zoo~K=cKFGkeX2darsg0l$g~GjY1`gRK-3N0W{@XPzx9#-u>RTq`1!a0x|ctAo4dJZ zOlL!ZAz57NxG@@@5d3+EEb9E^A3jWN8X+1 zP#^Ob@f$~SGQLZc5A-wX zG%D&^YFTy)rJApB_(h0rfbBLM1Lo3m3kuG}Wv5q|AyBYsVuByr;qJAUzy4E?pT7G$ ze)?a1xOH-i@8$4_vr~GenM{z9+F~kAPW^tYCJ8Km=dV2Wb+2k)VXdq?n1bMJ6 z1(6@gGJZo84CymVo7%J-;ZBr~3q1F6%Jpe6aXjUFom}Byo5^PUj_!-U?RZ{}m9XJ@RxE))s@Lf-@z{yFCM5#h!bB25xS1AOji`=c` z-sToQ7ReYg4N3~_WAq6Y?OHmExsg6nr4jQ-s4q#l3sRB*9%@wRcMaK5p_OjYJZ%}o zu~IYQH+WSnTZ8>*x5iztv|^PM=C~Ds5x%Y@X<5TDqSL^4jh)zoAjt~T)FOZr6%Cgd?n)*+4IEe8lfgkR0A^f`?^X7KBRl?M?Q zY(k6c*1hi9P&go;N;i3|0)6r}O$cNLP4XMvr#)VfCKKl440g$ux+7atxtkqAgJ#Rgr% z$N{PAPp|s=N z^jH93D~Tf@%yy4qE=FFIr@Ax%gja^Yv(!2; z34Bt)v*A7p7Wo``?5ON`Xap3kO<38SV|gEunt=3}=vCu1NxI`XwIj11VQgb{Gm*sd z2`g?Fo5+MIj*22&DPvAaLU;W=t?mPz-JDkul7Td`giCE>!sIU^i#S9YIL?R#Soni>43vR~K zq%1bh;}#!gD32~hm60QR(o`?u!f&hISt<`BL6f*xK$x#&FiqN^H4EAlUsh9CW;*@w z2|PiG>fsDIa@iV4I3vw&NhTy*~p``Sp*!;#I?c^{=0RWFB)x=`sQC z0|g}wl1QW7jQ_NH>a;%prPe?A=TENpFMRdazNvj&^x7AeGle$-Gmv6X3+9(?>Mc$kH(CO`8X z70?K#5uQMYaaLNdF56eHpFQw~Kl6kC?vMQ76X)E5uC8W3Ub#|d?1vIO5J#I^eQj7~_#PiS?ZY&H6YdYyDk`j8yBqoeGlUUE8fVlogSnfJb4*O0n=CP6>@8O z1V<||2pb%&j@@7{R9Ma{6W$cT1V_=b zzJaL(fU}*W^RNWsPmHUSH!F}8{qEhu8Gn(wnDgGKPGpwt3HF}p z8A}_{t`(Qgz+^-6MR775;=#;w(09{O)_NG5S!KzvJ-f^o$_y?E!J>Uy{F6Rlp60R1 zmZbnNLnR0yXA-brAeDHVWwR#vIfR_hKy27LbjwvO4@^kF1;$Dw?c>|hM2bMRIuO2Q z9;dmKSCbY3Pncn-uTD2Jbatqn+SX0m+tn6RMaSf|`{S!PnBgLd*jx6qI*JZNNH$H( zC800S@U!RWuqZKmxY-(6(kX^6pxfCNdAlP1F=Ns^CJB>V1*cIq1ul~XxU-p$h|h7p zC_`A*#X78VlQm-(lzs<$i_j|YA>RsppYqlIab&qzm4?|W_flqfjI_8|vSrV#EN87! z@$J@epH7@84GnIAZ7oqnU{fntdTv%T7YuPHN2~MUfPy;%vS@x9w|%(v&8_Y&e1Ir@ zS6CUvOAyZk9z^xs1Hpz(!rl^O({Ugzq?~sl6np#mm4M;~t8TG<346?Dk5!PR7f>$J z0#OMQ5vbA8w{*82V(;nDl0cAb)lyf!uzyoJNmoYLIgx0Ya+_v&Zlvle3M3miz@INB z8{TbH93%1D;60(MyVi>cnXJZ!M@hE~5Yf^*{Z3+_DNTCh*2FOf3mBGOJ3wh+>;;nf z^7ZKviHtP9+>Zn@*w*H3{2{=%_7phifppH6QjvDcz2$N~74QmoL28XVBb5;Z~Adz&E^_$n%SbOv12n{?Ku6(f_ zABNXy9Cuou8ysc>cpfMbV;r9>$_89g1f^m!XK>te{HjNVqaajE)DXzRb{y_S(xq;5 zxZSKCfAeckzxr*HpZv+^eHmeA3am$%K=@5B-Mq(B+|A&L&W}N}@Zq0p{nMZN;-fEq z@k?IX?{4lLM>tI|gw9QVMA^YB1qt3zb+Te0%dx))AVdU?Oo9sYk~ig)ui)<@U<$d& zQIvgz&#r_-JTg>K{S86$tjr`crs2Xh@x1vwZj#rek+h<4X<)GhGWFq=u|RyE4BC+! z(u8JA2@G+`obs-zvTc0>{0Ii)Rsrro+}VP?2=MU~8SZl4y0aN=ufOz-|NIx$@BjTj z`{AE&O>V-DN6Kg1$%6OMRkO>N6XzdQ^Way8&l^?TiIrrOkgabb3nNp0}jN!>eQH&y zjIKh_QPW(BkZmMR1#E>kOW0$QbFUl2TIC#Hd|`W(=E*8tX0kjFGxZZ5r0x%m~~BjDgmQGx~o zq|4fLpqod*LL0llOd1;YaSf%JHUiKxSBj6k$GwM%H=`T_sV`57p_$+)yn4xv3`70y z*LczfL$g;GN(Y>6J^m-BEFM`-{9+er)qJ8N%+V~SyqsU0O)-oy3uFw3gTqLhgly4} zc}htHQ=q1UWSTzKM7!fGK(_-vLNf}4qX8()W@?=!y5x8qL2b6_z}4ZWEsa!HAD%C? z1v3&@gr;F?xy)l+6b{wFE}Y6$KW7gwi%2;CClFp3;xHIac@WIUI2_^FrsmLIi2)tR zk73~vqRg*7$ly~?oMjQkj9a(Gst2hQ<IRARNqFcA}zW^`X+zjC%WlTgL?8N2lw0whU-0rYVEXUc{O|Vk$Tk|!sr}njUGltI)|2AP5H}d=Y8(` z>(+EIeenG5v*W=`N5q|IO!YaPN-5r%5{Nj<)9}FtSxNatfgy-1>eBR_(xfBAawZR3 z{po!D!mD3?c>jAJ`KLei?41knP5UiAypVy6etxUZOMXtNWL;0byURuIAOGZ2pZv`8 zZ-4vCu3Y0;oD&&1nO8en*{AZ=F*Ab?BQJaaKL-zlbY93}*?)vGU!zDeb)3pLH_DRXnR94RWG&Tp2$irKA>bhh^-X0x zX1&(?F~W1oQUGc$&#TMy3)T$3=bZCcwjIDo^~3rwUZ1__b)R{r_ea0?=YIIFJ)_zf zip`D+Dzq}!Zj!}XUjBEO!LCRUB1R(4AA4=ed+N6DAAmk-@)h|?=$#gZF_4Mf^Y5nNT7x8{MH9+~oCzJ?i^ z=CqRh1PucYnF)qN=26FwkT|9HyoDZ_Yo26KVzXzvTxr$u--thw@aDA2gsIGU4$m|j zzd@QaQ)ov%!5b-snz&TDYz@rZ44IB)XB-+cbE6?{TkQk@E0c)Ov^9W_3v22S*zC#6 z0!{hY?+*?#jFg~E{y+nSWdybQDee0!e=IeIaW#EA19#6ljqi<{voi{9Z3NLRFv*!P zac-P52$NlL_mkTvet~o^5wfva@%3h+-n@^WNSI!xQ zlr}{~GzXFsmT7i}fEgMxT{-T6_pDJR7$79k_^0#S?Xd8%Hk-H+Yun7(lX}C;VN0Z6 zVXQ<@wShiGs;WjFQ=eFWTjE<`@*}vA%x}Ga?@}NXn(=c++Sl>qIGfNE4?;E2FT|rv z1w@<=5u@1+AM>~=m8D+5?q)m#uFFn@G(kf2?XKb1_y56HyH&Gv0+kunhX_+O(J_T% zat91pegtoaQ=L+o$&i5y#J+4KnU09^vh7u+@<+z)ky((~lon>JEYLkJ1~uo3Nrb$> z!L)@hv*CwM8jM#*L>%@D0;scyrRLG9=#gVE9U4iReIXs%%#XmY?HUV7BOluixm86d z&=gL%c7}Y>jrGJoEI`hZx$_oIP5sjs2tI+Y5Y&B#QK1u zk24CZ*F4hlLEx_GPY*`42>Vb^Z~bNxAj<5^`O0>y350YlC$3of#AShtzyJVXal|v> z_KdpWH@L3MiyXSyxAPTlCYp0lZ)tm(vX-R56On{zJe~%FRWHLXs*)u;R$gIRKMvH) zkaovw1XWIMlMEoPLU5T&#%WkADA=tixM)JnG9&^nH;jm4$?A?D%-Ix!uMbEo<0ksZAb;IIu2dMSsAkHL78j4JQxX*6A41m7tl2 zmS1f;nM1s@Ub=-UV^fS4bj`q!u3W`0FH<6RQkR|%qOiSLSi;|P(h!5cd z`4)6WK#XSV#q0wPo&b&F9iK~(YUw!2v*Q@##s_R?go7z^#1K)&T5Tk-QlRh)`=n5FDKod_bbAhr-N*;xcg5D~CG%jYgg0QDI-MC;(tQ3(C*a z)2XHc2&@Op@*$JSiJ8%7bDS_nIJA&ZG3fY+x(U?S)PXmQCpCX)&Ktw?YSVCjdvpP( zm=Jr8@W~Q=_(G0pJ*4Gq%4uXcqNS0gL2tO&cki~x-RZ3tJ+Z$2-GAyo{=g4E{rNAp zCf9_afCxlPt&3TOB)?{5|oxpE;F!K5l4XXnf(cetRubU>`~sWKqV}7MBIB0r>4RqgJir!^|abPZ5T zh1-Wd_}UDx)L4R-wpckPQwD&I43^;rL4}q{>W6jU*({fgIPQ)CtB4!K8m4b3i%j(A zRw&=K{Uip&NlrS!2u;5{FECrU%)9oGCpaYpa!Q-rTaJ*iEWn-OMFFJA2teW{FdfSZ zXM(|Y6_pu<))6|GlaMn(Nyp0cJN1j}p`9~@1N>rxXblN}Hxm6cKT#(|4yfIXgmYdn z+30ZJAvekqj!O_FKFf>-2PHncDBK6z&c13IPlO@9#r0)D!z2Wtq#N%(_HVbL(>gza z6IztWAmY0YcMpd(;rJr-Sb|VvvG({YR(S^Z2(e@Wf?0yCh4g@GG6svDTf*^?k|?8L z?KKw8R6!@js&c$Q!L%dQz2`$%wu#|QinGUdh|OJGpYUKx9aH|Ta`dZrZsAVdLJp^G zt6utq#cUJv0P$%nK3PF&lb4Vr%pUcq<{W%)ZC96A8_krwB@f6b*j?fpS&0a8?ZJDD zgE0=_1Fh?|e6{5t$S@P6ZHEb37S*5}$&8&zM8p^6=?5YS4(Gm(L2b>KHB|XbBr#;Q z_(!79MX1c-LA9zE)`lb=#;zCOWA-J6pkPUhZ6=ee2Vv7;qX2g=k*^Ma36)-Lr9sBl z7@24(EqBypgG%)Jbojt?PdAf=>LpZD!9SGj+0ZnTNmA_1 zi{6H$srj8g<@|HddG2@pj<@9Cd{E3xO*pR1v z`jflA{S%Krv)H}$&5xaqCp#F>YOF!pO;1^0A*wMFIn)~;KgSwLvf3rLyg z327Oo|I0nDGf$8VL5>3ZwT)#L(ybjoUQ--hR;eoSbfAPt>J&bZ$D@NyTM%){g3|0>p%GZm$w&BpE!wnaM<7m37-Nu zq90okSFs?c2@rWt*kl0sP$N*TbZPAwdifizw4Htp6OrWA(xKH|F85c~CtrWO@lA`} zb=*de+e?qDOmTGNTo^gfV`8=|4FEFhsE_`osB(d_V>dA*v!OF63R6l(dw=#v9807n zG$%S+6%bn0WF!u5v3NG>gB7izt39xnx;y5rF0E{hLgYRa(6W+6^-!%x8z6#PyO{4Q zt$TGyl3*1vv5|%~KBDTD-69&OX5$+Wl!M47=EGQKl(}y0xFHMECh18FFSx0(($&Ea zN`FeeNp&lYForQfmY|YaVEa-@zgTV=O)R4=+=KdX&yj#j!uIKx^WwZ_``D(E@+RnC zhKo*W)ud&J8subXcNA8JwWUCbVsFMtB?a_LgAB`4VDdDDr5I`=PZ)>c1Gty6qr|y0 zu#eC|{Uhu2ehL*b0Bb3fBU;5|gMJ>ZcfJ!)+1%N=^%nmm*4Seh%o&Q_<4Bi_x7`uUWQ_gR@!p z6G*p+7uN@w$2mcug(;D7dKmX5o*~`2Mrv@lFITEn_;BD0{L@HH%PCpdsX19_8XXvg z@oFn|>^P;TLbOZ#oYU9!$YtvE7~kDu#cE^U#>Z>9&vhqYoY z#d{+K%W0AJB_(*ct(bN@)z)z}L#Ap-XWCKT;yU4Q*UkpNziuYt!}GIrSmyNTHSe6D-sAB9}^4@3y=3jqT3O<9dc)wzY(O zl`sJVy|}`{>ZCZ}r8rp)T4IKI@i%bES)Md{1#)C9`668!5}e&aGR0#>nyK=(+fz>2 z^3su~5vG>ap{PL`T~T7-D2*vmn9IS0Bn8(VbD%K|4EmsH!zTx|jJ8%z?iJmsmAiCC zs!0LqDm(mNz%64XVXl53v8bbfvlz6=ArDjQ0QiBZId%(yyKQvosb}kiwyFGR{z^e# zSZU@bVX0K&SVq_eJCh3=r($Cx4K{gi0g0qqr+!j~U7f^$UZMrTr(`!1L+PW}EVF8y z*xGN(Q}dVme#3bJJ~}=P+Bo|p$xMc@MsjIPK|&1T0O+^^LA0;z_vB*@VgEfFv!QK` zjL1_xWj#M#K$_RMZ!g!g&;Hi;z5Yh$nVh$}^+_a+&bw zBuSi+25wwRO#6wxnYj_s21D9e5IWts%R38BRdOeqHTbSMYMQO(wi5#e1`1<0ROvKV zsl~!fa9(4m-tmaH$0+|Oi5%w;M+y&x>f~}iT69lFCl5aQi%$>#*q{6GpZH6k`A@$x z99<{;lgc^H!}V6bYNtl?6{35wyj%MvEn`X_tpxtxfA;lX`;vC&^1RbJ-7aV&;g-oQ zQ<9Pi+2+w^$B~du>JI;ebx50u#?y)-madE1T^%pg39~_QLgkEWw`Z85!I+(Q-qL&U zcb)I9oQLaEHvA0%daJgAuW3~9J0W7ZLe7lT}!$7o#_-A1@Y zEM1#lGG>I=P4Uz)$=z{!tLS4!PqElgP6e_hDOseq62Q!ND-4>PM$3S_rv|?X%v3N+ zNM&{b?XMQwS}kq5Y^6a-YL#{4{~6-!ut(%uS))H9o;Sov*`LW@xlYm0=wwq-O04Hz z3}}s*Elg(Bi{{V#(*P5zp&*nbJWQ(RZ!vc|GQ5F>Lw@=vuD`ea1!t{lWr-(zr zdvOwCXJsiDMJJ!CB+7!^GcqsHE&z7|tOtWcy(b$r(*nIANp#`fBr)GU5BCuivh(gykg%wuaZ?FhvRQn#MtXO`K98v&vyHk2Z$K3)_G16qGK$|!# zOyRurvI!7UA3Zh>`?-}VP2cXMGnnic0%-QX0ojoZ#NCs z33**igPf{t|BwA-LzLq%gg4G~)!ke_o{Ig+@B{=1;6to~&2yNGKuHBK@dr@Qs+pNY z&Y|Yxs5Wd7p`C|G2Go~kFh>BJWlCl#m7n*gZ>Ild(@LHvX6gG!8cD}t4{OUy;xxr_ zgZHPgXlppp!Uutb;*%j|F7J7<-QC?XsFnH4`q7ypbASB3S)-%B%}8tyLmg%052~}t ziJ^qsz4fif_Dy(<4h)g_%@%ci%Zy74nT;wCN{WYhg56YlnOuoSCQ(F~2L&BE0&OI! z6Kt00rsbs1nD?YUjk#)Y)HL1gpfw&R{AW#as8}u#B?VHI=5%U_7SyED0%M<8j;R!v zVGA{_EB99cC*k_I^}J|ygd|F>7mG#&gi8p(^ehwFbxTVwQse_!gnDC=#$$}O6xw6M(Z?c z?Yr1R_8G#wZnmTTJU&w^^7xMU8sn5>iV7?c)=`j<;ARMZ_iI|@R~Hwbd&gJbde1jL z^ppSg`ST0?pfyx;{zW`(O7HyTll?gdO(J1M6NNXPQ4hP z4JHpixE$a3v48xjKmMox<6rvG&-~gKTm91sE0@|KXQmlYHAQnk`1{x%r{SCb?C)FC zQS0Ko_3n4I{=wgR&x8A4g~`=xpW;%BAw1_Y-777WnBuMjRQjZRntkt`Me7hWQN??v zb> zolmddNe*^plPlYZ2}CUtoDNab+H;?h<%qvhYs>tTOj%PMRU(NSIYNi?00HlTb63el zX4QxK;ty<6s8AlG$*>a_RMczD5R9~Q4XRcdcHfABP62`dCvPf%c;;C121491bQI~Q zm`QBXG#_zQB@-28=gYE4t(DTRFU5(OQ4?*Fg7N44GfI)_n~BGn!Zls~6lEDCLXtbj zEB2X>AD;UUT)cIxD>zl5k2N`5`eo9eJ#E4TY*?z)qBNNOkwkHx6mt?r*W4OIt+C}Cp{Ty*^A~at^-=qn1^BQAhQ^m zJOx9H5~%wo>=_vZQuZRgfv7aT!kf$#LVE)7OyCIR)gZpG4&Y3qdBfMQ;Pj+Or$j`# z1y9EO3GW>H4h{>$0#Ws~pGq>6T!L{}_I43^qfd9toC)ps{o%*R^gt$9R}hWOsW#vl zD5Qo=v>#vKj8sL3i!F)irzc272}X>(4M3TJpa!YgVm5+ar{ZT=P3F`8wJ zVmc+9ACH7^J>}_Jg%Eqz3Q9Jx(ziF>)9&8x0L>-8(hk8>m>{e3DoYj9lo|n8dMKA8 zp}T1(OFH2uL-F$nuimhZtOhL9l$cb1yZlT)Ue;}0qxPC@(G^niW;;U6WmU6V@E#? zwPgC~4oXZ7D=g0DX-ipnO8UY0JDN}3=L3>|w}b_tPQ z$irmQGfrHI==$Qxhp+8^_Xpni_^*BGlmCs+IAtS9o-_ulKc=Hl{V==!9tGwBa-Z-w zSH@%~uGOD>=BeX9{nuao@qhN;KKIoA=Jo3jy=dGUa%OW-UNSa|d_xCdAXVGzC~F3?2&E5@Pxp|z-Ir^=iZ*nqf$1Ylmj z-7eWG9vBu&+`4K{GD11OaA@Z3$>i*jhg(-~{_KCWqV_Y4(r}wsR7`^BZ z+}ppz3J#vR<4}9Mm9|*fcP0=pSOpxdU=AawifCBL6gUG|29!E|K3U!*7|nW*Tdrh9 znZxlvw$S5# z=za14GD{G2gg+2lr$H4Fi*$Mm9&KyFPjZa62acUj`rd46rh!py+Fo~b0+?UyQb72J zBW6q)1wAsd4kD$1km3N%jK#1EtT!^0d6!M zlc89%AW=gQlQ)9-$8CRns-nc}w#x5*{~vfQ(Z@l9HWu}2B@|=#Oe>Bo!%hukQYKxX zW4BYvkW2Dl?fJQUm0uzGwGIpN(F1*HHkhkOYM%4?I0n+RSNTn~$HR5B?9p7493h1q zKO{mSlC?GGt+_XjhfyyK$0ydM$iA49#b-Fn30)k)d#zDSW@=i9i@cC3@ou1Lx1j{E z?40?01clH=iAmZv$H3J~ol9!P=x@40ct0a>0TZ+5$=E!oHk^o4zC~7>^mQAH#T0|^ zW3bRHNMR*E03*cxEqs7(bq^~Tx*P>Aw6HTR%JjD7a}{v$>Jhl5nNcFv_|;Y4u#9imW_d; zXpa()BKR@E^;x?Gi?|?H*=zS{ShqwORX470M8lCX-g!OIo!uub1)Y@u(Fk#&cq5>w zLOdW@;OLs}9=)5WO-8|SB#8N^=~U+)50C7}_9Hfo+oi69rmB2+jW<$P949Pi+!A>` zr)3j4*`2%zi&EWF97ATCKM9s+HopO=HXjTs9)R7Z`*PF2b@P?af9Z=j$V2#zu^eBo zoIAOtPt3;{h9@seF)Cf)coXnwMiYLV+#)l7nLRX@TvJjP(=Y3fZ{TU)ZQcEj_rLB% z5A1*Xr(ZCw7Zw21*3u^5mH(OP)celbG>BRkMZ6a)(_SA};$QeL%OC%LKK~Q{>a&kO z-5OuL@$jQ(qyBu*CaXBd1+?EG83K_2NkF#0<%&s}#s9|eOSCUyLW}eO6~VoD|A05i zt(2}TA5SycbR2BRYG>@B+XTl5d>rt}vy=twdk7rps8~-k0Cn*2b)Ol2w{Bx%_|Z?b z|LWiPr9bv3KJtJ3z0Z953xm$M-$NA9UIBmP2=G{!)#;?0B(7;$@NZHJX)WfKh{yV8 z{cF!ZfBDA8T0iw;zxj1HFUOnb1^_>py|vB`+cAd%z)V`4YASO~QeR5>ar6sxKu9bQ z+)3P+C*385C0%k9JcqkZL@flW`qNUa9a_`N-OI+0e8-~y3WFdm9tRcB$O1$U896DA zc!6spDtNs@*vpRAaLcfY&0*<(v4U7guzvu6d7`#y5{R;2NO-~h5@#fdr)fo$4yHS@ zt(>&R*qEH&d_1I_%u_1;SJp?5 zbGgSAe@I<0+)8D3!5hK2YzheqLUyI(7*(oCTdn1U8T={Suvo18#bkR@loY!~5#oCR z5DPcJ5xwq`Oo5F{VTG5VB#lpx^+_4e7V07hZCxkkq=zyEmSa3@#%G|S0*t3JL&Ew%k-y2X6R#)Dcz_7ZM!B)8f*sIylh~qX)F}jD(+S*}-@Ao;CN&&8pej3vg&o&W}D8Z(5)$mpY zoa`XZXRyFlo1t6e_LjK(Qd~~P6A5V^zE5<$LQi84Od%SJpL$qzgAr?aofRC)6a^k*n|{qD-)WS}~9 zjWTas(nZcD`>mu$h$EcbM~zGv*Vq+`-Dd72S)QY(w*Fm)GG?A{Y{@Zxh#cB6ze_S5 zqT`f#gahV??e0>Uvki|udS1+5o^kM-r*mv;EkLn$b+wtnOQY%C9h^9{PF9)|Niwy= z-3NP$7s4j=edLEaip#G4geW*%&9`s*-wuP<_m}tXEll|RTY)L}HV>iLd9}#{Bc%>V zY7orX)(?v?AMVD8m6r9y{jR)tZ2F2e#auwX_nZR$G%vUoE5B+8jz2g1jnCna888l= z#ci3)hP59Gq*-NM06UNboQn)nZLo;lO}-M@Cu$q7j(k_sOc_-m-U*J5wvk1iJEFU) zf7;q$X&B4UL@zO*uXpB!n>^TP&cT|lR<726`cZL5Ezj9xR~8tiM3v1*Bam|RW!;3$ zsQaySfk69Q{J?Sw30|kYiQ)l}0#1{d%CKb3kTP74OvS-EK1X;zJJi3j2YdpahhA8C z4B>0r6!wndI-y*}Rjo2n)(}s|C&^DyaVh5HWh;tC925=?(VQxRWv0Kfy+=HCki0!| z?fi*f{2LG5e7wDTp>+T#C21hstl6QC1U9N`nMTiBDu%p#z!mc)c2L~S<-utiVS9<( z)2-EIsuhEyfQ`Dd-sHTq|I*3zn|EG#;1B)r|McNcwpyoGR3Yr=ge;jZ0fD?P7EUa1 z{7>#w{Zt0{d6L?R14pA?wfVtFjqd)+Wcju?UH^u!d*ofe{>F>19mmI+Ru$r-Qf4-I z$UEc`_}n>nG|KP2e(V>+F_(+eanu9z!5(3^{%e2bH+Lo6ZrI0R*KCmU5r6D%Ep2WZafkNPB!j<4Ks_bQ;Z`ZI)6=fDrKB*LYUPGF|ML zy^AP-9Iti@ISDaksg34-kqr#!OHL(ATpmXsgaa_4tn$XjQcgtWL$J&p>MOcd@Sq? z-DSg=5d}%PLo~Du6Q@-AY>E?lVlqg-J*_SorOAHGKEp~3@6a<@1%3dh1Va-K7a$+v z6cLGhWIwWZYfx($<(Is!Vjwe`Si0B);)6IlZ0~*Q$F`sNt8&+J5SxfwI>Sh_j1VvH zsPN)@=~#j}genu&94oH+eQ8JVU13`Kn=shN*#CIDoi*|xW{`7L8s)f^?3XP-6+0*W z_L}}Txe3(|?@TgF{IY;shycjWxo3Tk(P!b!rv-resx9FgPThaCk@kUZ9pq@?jF2uBY$9g!u% z5b;ya3#o!4$I^Ph$U#HHAMcj*vUQf8oVn09n3EWBApUI#B6j=$OUSMyRMsJ+eTa=D zYe!Fvok$YF6hsW93o*RGO9EJ4FxVN@9ElXKO!X$M0dCisEQ8)e3HkP(>?#s6erW&9 zY<_j2qeh0!GPOQ9gASCN#q*5t+a6J5*sHMe=#SWTVogj6#Mu*I0B@m`$ofiI)bwY- zlZ=C#Uu@s>quasjy6d}_i+EAkU9h#3k)@Inv&YOxLKbe?-qnH${?T;Jc~v}dx%Kjg zLNvDGGp%=cO;x;(s>x=HB*Ji}ubqF9y(BtaB}kZn0>Y`xY{T%1MSZwJOGe5TFN$xp z6_pbYXqUxEVj3l?zG@=sj)7wVn;f_zWxF*LzY?xDx(RKQ$`HA1er#wYJIQ~hA5>v0 zl2-xDVgg#P_{+MV45o@a9Z_XoRdi@jpD1GuokkzCB7?RGYaIF$A1MsBRI}`w;gHls zhGvdfC-UJ1!rLTUV=b~?hU3(ou?6A>HJs>x-=vE<+N3`gD3ws?jhldCJHBR@v5{l} z2Y@MLPRxeKw%pLt+Tm(#o3DG4J;vSv^Y^R@rjwk^Y;r)bzR`c~sn7oSt+W5y+uWlA z9%zk~vm%~UP6ouzb6RiqLqn2pACT5~bC1%+h&EVG( zr~2cU{Hve6{G)&F)6d)+Pp^?H&nU1f8;E2uYIm|98~B0*+M2SQ<1Nb%z+jNL0Y>TK zlgGxXz>0toJ%7>3@hcuX`wd_B;;(w!*`p8iC!>vpHKI<2Bdfs)_f}Xa1(we8moU)KYm(1SMG!M+bBK_gt76tHE)sX+@4>Oh7pseRy>s*$8vxdJV1F}n7?lSIX_Nh2I z^!L;CXTom?bC4>x?eXmJ=+%e5sES_p!EewT9E{bb6{)$68yC|ig(RZK*W1Ib?v=gAOCFf{7yzoTBO($*0lMPm$^cgh@mf2&v)yTQjld^?J=?yayXk5>^{PU$vQcf zUU0w^R8Fe%ILf(L4sJ~r5t;@00b9~V-HAdXc5E$ZaHGUqC(FirhUg{$X0KEQ8@n4F zfTn+tmDn3*44omzGnfk;ZOu>VW$Af6<$*I=m~_J22>5(xAJerOy?OiYFZ>pZJYAA> zOT@~M3WN1$9gG=Fn^uvq^`Qmhk9-4v0w#jd57@n;l!)u$4|H1uT;Nf`lvFqPW%`(# zt`8NOm&uT1Mr2~N$`*o1q^ALGkj`NNF1IpNjVP-&TN;h51CBlZf%gUiW)F|edJa9> z{#)k?eN{yr%yr|m(IAssgRYTvOwW#GN-LCuhZl#70>X>VezIE4Ui+61{Wo;BcQ58g zgbYAjshUkeVk{ZDcQ<{4~26eOeGmpxFyG}v4vmtsFQDiI;tsv7)v9dF(O&9C8vkB-F_1!xPN zoUg#h6t^KC6HgDG&4BWS#BH)$?XON=c=A_&^wqcj>t?>79#(SEu`LIV)~4hKOv+h8PBfnBv)N^K47g#RCLlfcBz zQvpg~*|zT7oqzF(%TIsm@|Qk6|Ak+E{)uPKv0|tG@xk;k=}6&Q{hg>?BE^zNRp*Ll z890*Ju#lW*ecI9%!VX3NkRR=rvzNT6_2<9u9q)Mk>2dY!U2~@`34kg5TxyYiDzz%a4(|lMsM5OiZGRFz=c|7d!xM?atU|jEpS1wks96a