yb 4 هفته پیش
والد
کامیت
ca3781bd4e
2فایلهای تغییر یافته به همراه23 افزوده شده و 24 حذف شده
  1. 14 15
      .obsidian/workspace.json
  2. 9 9
      pwtk-admin-web/architecture-v1.canvas

+ 14 - 15
.obsidian/workspace.json

@@ -4,20 +4,20 @@
     "type": "split",
     "children": [
       {
-        "id": "b435809757579ea3",
+        "id": "7fbc909157a3ab22",
         "type": "tabs",
         "children": [
           {
-            "id": "f3b74f1abf7620d8",
+            "id": "d1c67f0d3fca314e",
             "type": "leaf",
             "state": {
               "type": "canvas",
               "state": {
                 "file": "pwtk-admin-web/architecture-v1.canvas",
                 "viewState": {
-                  "x": 882.8236981256205,
-                  "y": -3825.245116722238,
-                  "zoom": -0.8743896484374999
+                  "x": 305,
+                  "y": -3874.5750890511144,
+                  "zoom": -3.7170646889186036
                 }
               },
               "icon": "lucide-layout-dashboard",
@@ -47,7 +47,7 @@
                 "autoReveal": false
               },
               "icon": "lucide-folder-closed",
-              "title": "文件列表"
+              "title": "Files"
             }
           },
           {
@@ -177,19 +177,18 @@
   },
   "left-ribbon": {
     "hiddenItems": {
-      "switcher:打开快速切换": false,
-      "graph:查看关系图谱": false,
-      "canvas:新建白板": false,
-      "daily-notes:打开/创建今天的日记": false,
-      "templates:插入模板": false,
-      "command-palette:打开命令面板": false,
-      "bases:创建新数据库": false
+      "switcher:Open quick switcher": false,
+      "graph:Open graph view": false,
+      "canvas:Create new canvas": false,
+      "daily-notes:Open today's daily note": false,
+      "templates:Insert template": false,
+      "command-palette:Open command palette": false
     }
   },
-  "active": "f3b74f1abf7620d8",
+  "active": "d1c67f0d3fca314e",
   "lastOpenFiles": [
-    "pwtk-admin-web/discuss-2025-01-02.md",
     "pwtk-admin-web/architecture-v1.canvas",
+    "pwtk-admin-web/discuss-2025-01-02.md",
     "tg-live-game/architecture-v1.canvas",
     "tg-live-game-hono/auth-system.canvas",
     "tg-live-game-hono/README.md",

+ 9 - 9
pwtk-admin-web/architecture-v1.canvas

@@ -2,21 +2,21 @@
 	"nodes":[
 		{"id":"api_layer","type":"text","text":"## API 接口层\n\n| 模块 | 功能 |\n|------|------|\n| advertisement | 广告 |\n| betting | 竞猜 |\n| bss | 业务支撑 |\n| chat | 聊天 |\n| expert | 专家 |\n| live | 直播 |\n| login | 登录 |\n| messageNotice | 消息 |\n| photoSys | 图库 |\n| site | 网站 |\n| system | 系统 |\n| task | 任务 |\n| user | 用户 |\n| video | 视频 |\n| webgw | 网关 |","x":2200,"y":-1750,"width":350,"height":590,"color":"1"},
 		{"id":"bbs_module","type":"text","text":"## Bbs 论坛管理\n\n**bbsMainboard/** 论坛主版\n- index.vue\n\n**bbsForum/** 论坛管理\n- index.vue\n\n**bbsAttachmentManagement/** 附件\n- index.vue\n\n**bbsPostContentManagement/** 帖子\n- index.vue 帖子列表\n- editPostContentDialog/ 编辑\n- auditDialog/ 审核\n- bbsPostConfig/ 配置\n- comments.vue 评论\n- phoneFrame.vue 手机预览\n- **new/** 新建帖子\n  - addBBSPostDialog.vue\n  - BBSPostForm.vue\n  - postEditor.vue\n  - gamePage.vue\n  - lottery/ 彩票组件\n- **components/** 评论组件\n  - post-comments.vue\n  - commentItemBox/Form\n  - upIconToggle/downIconToggle\n- **explain-components/** 图解\n- **issue-components/** 期号\n\n**bbsInfo/** 论坛信息\n- index.vue\n\n**bbsCommentsList/** 评论列表\n- index.vue\n\n**photoExplain/** 图解管理\n- index.vue 图解列表\n- addExplain.vue\n- editExplain.vue\n- chooseIssue.vue\n- commentExplain.vue\n- explainEditPage/","x":1600,"y":-4720,"width":300,"height":1340,"color":"3"},
-		{"id":"photo_module","type":"text","text":"## PhotosSys 图库系统\n\n**series/** 系列管理\n- index.vue\n\n**newspaper/** 报纸管理\n- index.vue\n- relatedLayout.vue\n- RecommendSortedList.vue\n\n**newsPaperIssue/** 期刊发布\n- index.vue 期刊列表\n- batchAddIssues/ 批量添加\n- IssueDialog.vue\n- IssueForm.vue\n- IssueImageUploader.vue\n- CommentTab.vue\n- chooseExplain.vue\n- clearGameTypeCacheDialog.vue\n\n**issueMappingList/** 期号映射\n- index.vue\n- editDialog.vue\n- batchMappingAdd/ 批量映射\n\n**commentsList/** 评论列表\n- index.vue\n\n**websites/** 站点管理\n- index.vue\n\n**guarantee/** 担保管理\n- index.vue\n\n**bbsEncyclopedia/** 百科\n- index.vue\n\n**advertisementList/** 广告\n- index.vue\n- addAdvertisementDailog.vue\n\n**gameResult/** 开奖结果\n- index.vue\n- history.vue 历史记录\n- calendar.vue 日历视图\n- lottoBall.vue / svgLottoBall.vue\n\n**issueVideo/** 期号视频\n- index.vue\n- VideoFormDialog.vue\n- GenericVideoUploader.vue","x":2060,"y":-4720,"width":300,"height":1440,"color":"3"},
-		{"id":"user_module","type":"text","text":"## User 用户管理\n\n**userList/** 用户列表\n- index.vue 用户列表\n- userListComponent.vue\n- **components/**\n  - persionInfo.vue 个人信息\n  - accountInfo.vue 账户信息\n  - achievementShow.vue 成就\n  - phoneInput.vue\n  - blockList.vue 黑名单\n  - followerList.vue 关注\n  - myFans.vue 粉丝\n  - myTeams.vue 团队\n  - userVisiter.vue 访客\n  - anonymousVisiter.vue\n  - userVote.vue 投票\n  - likeList.vue 点赞\n  - favoriteList/ 收藏\n  - myComment/ 评论\n  - browseHistory/ 浏览历史\n  - points/ 积分\n  - stars/ 星星\n  - editPoints/ 编辑积分\n  - ChangePoint/ 积分变更\n  - TagMaster/ 标签大师\n  - SaleLists/ 卖料\n  - BuyingLists/ 买料\n  - cashOutListForUser/ 提现\n  - SMSCodeSend/ 短信\n\n**clientList/** 客户端列表\n- index.vue\n- basicInformation.vue\n- browsingHistory.vue\n- collectionAnonymously.vue\n- followAnonymously.vue\n- likeAnonymously.vue\n- voatAnonymously.vue","x":2520,"y":-4720,"width":300,"height":1140,"color":"5"},
-		{"id":"user_module_2","type":"text","text":"## User 用户管理 (续)\n\n**customerTags/** 用户标签\n- index.vue\n- editCustomerTag/\n\n**memberLevel/** 会员等级\n- index.vue\n- editLevelRule/\n\n**pointsRules/** 积分规则\n- index.vue\n- baseConfigTab/\n  - PointConfigTab.vue\n  - StarConfigTab.vue\n  - TaskRewardConfigTab.vue\n\n**pointDetail/** 积分明细\n- index.vue\n\n**starDetail/** 星星明细\n- index.vue\n\n**activityCenter/** 活动中心\n- index.vue\n- activityCenterDialog/\n\n**leaderboard/** 排行榜\n- index.vue\n- fans/ 粉丝榜\n- leaderPoints/ 积分榜\n- overall/ 综合榜\n- popularity/ 人气榜\n- query/ 查询\n- showLeaderBoard/\n- statusTagUser/\n\n**recommendList/** 推广列表\n- index.vue\n- RecommandConfigDialog.vue\n- RecommandDetailDialog.vue","x":2980,"y":-4720,"width":300,"height":1200,"color":"5"},
+		{"id":"photo_module","type":"text","text":"## PhotosSys 图库系统\n\n**series/** 系列管理\n- index.vue\n\n**newspaper/** 报纸管理\n- index.vue\n- relatedLayout.vue\n- RecommendSortedList.vue\n\n**newsPaperIssue/** 期刊发布\n- index.vue 期刊列表\n- batchAddIssues/ 批量添加\n- IssueDialog.vue\n- IssueForm.vue\n- IssueImageUploader.vue\n- CommentTab.vue\n- chooseExplain.vue\n- clearGameTypeCacheDialog.vue\n\n**issueMappingList/** 期号映射\n- index.vue\n- editDialog.vue\n- batchMappingAdd/ 批量映射\n\n**commentsList/** 评论列表\n- index.vue\n\n**websites/** 站点管理\n- index.vue\n\n**guarantee/** 担保管理\n- index.vue\n\n**bbsEncyclopedia/** 百科\n- index.vue\n\n**advertisementList/** 广告\n- index.vue\n- addAdvertisementDailog.vue\n\n**gameResult/** 开奖结果\n- index.vue\n- history.vue 历史记录\n- calendar.vue 日历视图\n- lottoBall.vue / svgLottoBall.vue\n\n**issueVideo/** 期号视频\n- index.vue\n- VideoFormDialog.vue\n- GenericVideoUploader.vue","x":2060,"y":-4720,"width":300,"height":1520,"color":"3"},
+		{"id":"user_module","type":"text","text":"## User 用户管理\n\n**userList/** 用户列表\n- index.vue 用户列表\n- userListComponent.vue\n- **components/**\n  - persionInfo.vue 个人信息\n  - accountInfo.vue 账户信息\n  - achievementShow.vue 成就\n  - phoneInput.vue\n  - blockList.vue 黑名单\n  - followerList.vue 关注\n  - myFans.vue 粉丝\n  - myTeams.vue 团队\n  - userVisiter.vue 访客\n  - anonymousVisiter.vue\n  - userVote.vue 投票\n  - likeList.vue 点赞\n  - favoriteList/ 收藏\n  - myComment/ 评论\n  - browseHistory/ 浏览历史\n  - points/ 积分\n  - stars/ 星星\n  - editPoints/ 编辑积分\n  - ChangePoint/ 积分变更\n  - TagMaster/ 标签大师\n  - SaleLists/ 卖料\n  - BuyingLists/ 买料\n  - cashOutListForUser/ 提现\n  - SMSCodeSend/ 短信\n\n**clientList/** 客户端列表\n- index.vue\n- basicInformation.vue\n- browsingHistory.vue\n- collectionAnonymously.vue\n- followAnonymously.vue\n- likeAnonymously.vue\n- voatAnonymously.vue","x":2520,"y":-4720,"width":300,"height":1240,"color":"5"},
+		{"id":"user_module_2","type":"text","text":"## User 用户管理 (续)\n\n**customerTags/** 用户标签\n- index.vue\n- editCustomerTag/\n\n**memberLevel/** 会员等级\n- index.vue\n- editLevelRule/\n\n**pointsRules/** 积分规则\n- index.vue\n- baseConfigTab/\n  - PointConfigTab.vue\n  - StarConfigTab.vue\n  - TaskRewardConfigTab.vue\n\n**pointDetail/** 积分明细\n- index.vue\n\n**starDetail/** 星星明细\n- index.vue\n\n**activityCenter/** 活动中心\n- index.vue\n- activityCenterDialog/\n\n**leaderboard/** 排行榜\n- index.vue\n- fans/ 粉丝榜\n- leaderPoints/ 积分榜\n- overall/ 综合榜\n- popularity/ 人气榜\n- query/ 查询\n- showLeaderBoard/\n- statusTagUser/\n\n**recommendList/** 推广列表\n- index.vue\n- RecommandConfigDialog.vue\n- RecommandDetailDialog.vue","x":2980,"y":-4720,"width":300,"height":1240,"color":"5"},
 		{"id":"video_module","type":"text","text":"## VideoList 视频管理\n\n**VideoList/** 视频列表\n- index.vue\n- createVideo.vue\n- createVideoDialog.vue\n- editVideo/\n- auditVideo/\n- VideoPlayer.vue\n- VideoHlsPlayer.vue\n- DeferredVideoUploader.vue\n- FileInfo.vue\n- UploadProgress.vue\n- VideoFileInput.vue\n\n**VideoTagList/** 视频标签\n- index.vue\n- createVideoTag.vue\n- videoTagDialog.vue","x":220,"y":-4720,"width":300,"height":560,"color":"1"},
 		{"id":"chat_module","type":"text","text":"## ChatroomSystem 聊天室\n\n**chatroomList/** 聊天室列表\n- index.vue\n- createRoomDialog.vue\n- createChatRoom.vue\n- createLiveRoom.vue\n- createVoiceRoom.vue\n- rulesConfigDialog.vue\n- whiteConfigDialog.vue\n- whiteListUserAutocomplete.vue\n- selectGameSerialNo/\n- selectIssueId/\n- selectNewspaperCode/\n\n**batchRoomCreator/** 批量创建\n- index.vue\n- addChatroomNameDialog.vue\n- addOwnerDialog.vue\n- mPopover.vue\n\n**chatroomUserManagement/** 成员\n- index.vue\n\n**chatroomMsgList/** 消息列表\n- index.vue\n\n**chatroomMsgManagement/** 消息管理\n- index.vue","x":-760,"y":-4720,"width":360,"height":840,"color":"1"},
 		{"id":"live_module","type":"text","text":"## LiveRoomManagement 直播\n\n**liveRoomList/** 直播列表\n- index.vue\n\n**liveRoomUserManagement/** 成员\n- index.vue\n\n**liveRoomMsgList/** 消息列表\n- index.vue\n\n**liveRoomMessageManagement/** 消息管理\n- index.vue","x":-240,"y":-4720,"width":300,"height":480,"color":"1"},
 		{"id":"system_module","type":"text","text":"## System 系统管理\n\n**account/** 账号管理\n- index.vue 账号列表\n- addUserDialog.vue 添加用户\n\n**roles.vue** 角色管理\n**resource** 资源管理 (路由内嵌)\n\n**gameTypeManage/** 彩种管理\n- index.vue 彩种列表\n- addGameType/ 添加彩种\n- editGameType/ 编辑彩种\n\n**operationLog.vue** 操作日志\n**task.vue** 任务调度\n**taskPush/** 任务推送\n**ipAddress/** IP地址管理\n**uploadLog/** 上传日志\n**dictionary.vue** 字典配置\n**SMSManage/** 短信管理\n**sensitiveWord/** 敏感词管理","x":680,"y":-4720,"width":300,"height":600,"color":"2"},
 		{"id":"ad_module","type":"text","text":"## AdvertisementManagement 广告\n\n**index.vue** 广告管理\n- AdvertisementSortedList.vue\n- addAdvertisementDialog.vue","x":4820,"y":-4720,"width":300,"height":230,"color":"4"},
 		{"id":"site_module","type":"text","text":"## Site 网站管理\n\n**codeManagement/** 推广码\n- index.vue 推广码列表\n\n**templateManagement/** 模板管理\n- index.vue 模板列表\n- addTemplateDailog.vue\n- templatePath.vue\n- sketchRef.vue\n- codeStaticDailog.vue\n\n**sketchManagement/** 草图管理\n- index.vue 草图列表\n- sketchInfo.vue\n- sketchPath.vue\n\n**siteManagement/** 站点管理\n- index.vue 站点列表\n- addWebsite.vue\n- domainTab.vue\n- bindTemplateDetail.vue\n- sketchTemplateDetail.vue\n\n**Domain/** 域名管理\n- index.vue 域名列表\n- DomainInformationTabs.vue\n- SketchBand/TemplateBand/WebsiteBand\n\n**Navi/** 导航站\n- navigationConfig.vue\n- naviNestedTable.vue\n\n**componentBase/** 页面组件库\n- index.vue\n- viewComponent.vue","x":1140,"y":-4720,"width":300,"height":1060,"color":"2"},
-		{"id":"expert_module","type":"text","text":"## ExpertManagement 专家\n\n**expertList/** 专家列表\n- index.vue\n- expertRulesConfig/\n\n**competitionList/** 竞选列表\n- index.vue\n\n**pointsList/** 打赏记录\n- index.vue\n- configDialog.vue\n\n**saleList/** 卖料列表\n- index.vue\n- **XSdialog/**\n  - index.vue\n  - saleInfo.vue\n  - gameBox.vue\n  - ChooseLastSale.vue\n\n**buyingList/** 买料列表\n- index.vue\n\n**sixKingList/** 六肖王\n- index.vue\n- Sixking.vue\n- QueryForm.vue\n- Switcher.vue\n- ExpertStatistics.vue\n- HistoryChampion.vue\n- WinningStreakRank.vue\n- SixKingRankBoard/\n- GameTypeCodeItem.vue","x":3440,"y":-4720,"width":300,"height":980,"color":"5"},
+		{"id":"expert_module","type":"text","text":"## ExpertManagement 专家\n\n**expertList/** 专家列表\n- index.vue\n- expertRulesConfig/\n\n**competitionList/** 竞选列表\n- index.vue\n\n**pointsList/** 打赏记录\n- index.vue\n- configDialog.vue\n\n**saleList/** 卖料列表\n- index.vue\n- **XSdialog/**\n  - index.vue\n  - saleInfo.vue\n  - gameBox.vue\n  - ChooseLastSale.vue\n\n**buyingList/** 买料列表\n- index.vue\n\n**sixKingList/** 六肖王\n- index.vue\n- Sixking.vue\n- QueryForm.vue\n- Switcher.vue\n- ExpertStatistics.vue\n- HistoryChampion.vue\n- WinningStreakRank.vue\n- SixKingRankBoard/\n- GameTypeCodeItem.vue","x":3440,"y":-4720,"width":300,"height":1040,"color":"5"},
 		{"id":"betting_module","type":"text","text":"## Betting 竞猜管理\n\n**bettingList/** 竞猜列表\n- index.vue\n- bettingInfo.vue\n- gameView.vue","x":3900,"y":-4720,"width":300,"height":220,"color":"4"},
 		{"id":"message_module","type":"text","text":"## MessageNotice 消息公告\n\n**index.vue** 公告管理\n- NoticeSortedList.vue\n\n**maintenance.vue** 维护管理","x":4360,"y":-4720,"width":300,"height":240,"color":"4"},
-		{"id":"task_module","type":"text","text":"## TaskManagement 任务\n\n**TaskList/** 任务列表\n- index.vue\n\n**liveTaskList/** 直播任务\n- index.vue\n- **createLiveTaskRoom/**\n  - index.vue\n  - LiveVideoUploader.vue\n\n**components/**\n- basicDateRangeSelecter.vue\n- createTaskRoomDialog.vue\n- createVoiceTaskRoom.vue\n- fileUploaderBtn.vue","x":5280,"y":-4720,"width":300,"height":500,"color":"4"},
-		{"id":"order_module","type":"text","text":"## Order 订单中心\n\n**orderList/** 订单列表\n- index.vue\n\n**cashOut/** 提现列表\n- index.vue\n- **auditCashOut/**\n  - index.vue 审核\n  - AuditCashOutReason.vue\n- **cashOutConfig/**\n  - index.vue 配置","x":5740,"y":-4720,"width":300,"height":380,"color":"4"},
-		{"id":"other_pages","type":"text","text":"## 其他页面\n\n**Home/** 首页\n- index.vue 仪表盘\n- echarts/ 图表组件\n  - index.vue\n  - bar/ 柱状图\n  - line/ 折线图\n\n**Login/** 登录\n- index.vue\n\n**SSO/** 单点登录\n- index.vue\n\n**Demo/** 演示\n- index.vue\n\n**404.vue** 错误页面","x":6200,"y":-4720,"width":300,"height":540,"color":"6"},
+		{"id":"task_module","type":"text","text":"## TaskManagement 任务\n\n**TaskList/** 任务列表\n- index.vue\n\n**liveTaskList/** 直播任务\n- index.vue\n- **createLiveTaskRoom/**\n  - index.vue\n  - LiveVideoUploader.vue\n\n**components/**\n- basicDateRangeSelecter.vue\n- createTaskRoomDialog.vue\n- createVoiceTaskRoom.vue\n- fileUploaderBtn.vue","x":5280,"y":-4720,"width":300,"height":560,"color":"4"},
+		{"id":"order_module","type":"text","text":"## Order 订单中心\n\n**orderList/** 订单列表\n- index.vue\n\n**cashOut/** 提现列表\n- index.vue\n- **auditCashOut/**\n  - index.vue 审核\n  - AuditCashOutReason.vue\n- **cashOutConfig/**\n  - index.vue 配置","x":5740,"y":-4720,"width":300,"height":440,"color":"4"},
+		{"id":"other_pages","type":"text","text":"## 其他页面\n\n**Home/** 首页\n- index.vue 仪表盘\n- echarts/ 图表组件\n  - index.vue\n  - bar/ 柱状图\n  - line/ 折线图\n\n**Login/** 登录\n- index.vue\n\n**SSO/** 单点登录\n- index.vue\n\n**Demo/** 演示\n- index.vue\n\n**404.vue** 错误页面","x":6200,"y":-4720,"width":300,"height":600,"color":"6"},
 		{"id":"service_layer","type":"text","text":"## Service 服务层\n\n**业务服务**\n- bbs.ts BBS服务\n- website.ts 网站服务\n- kv.ts 键值存储\n\n**拦截器**\n- interceptorChain.ts 拦截器链","x":2960,"y":-1800,"width":300,"height":305,"color":"2"},
 		{"id":"env_config","type":"text","text":"## 环境配置\n\n**开发环境**\n- .env.development.49gallery\n- .env.development.6gallery\n\n**生产环境**\n- .env.production\n- .env.production.49gallery\n- .env.production.6gallery\n\n**构建命令**\n- dev:49gallery\n- dev:6gallery\n- build\n- test / test:e2e","x":2960,"y":-1390,"width":300,"height":470,"color":"2"},
 		{"id":"cicd_pipeline","type":"text","text":"## CI/CD 流水线\n\n**Jenkins Pipeline**\n- Jenkinsfile.dev (6gallery)\n- Jenkinsfile.49dev\n\n**构建阶段**\n1. 初始化\n2. 代码拉取\n3. 更新子模块\n4. 依赖安装 (pnpm)\n5. 生成配置文件\n6. 项目构建\n7. Cloudflare 部署\n\n**通知集成**\n- 📱 Telegram Bot\n- 🔔 飞书 Webhook\n- 🐛 禅道 Bug 追踪\n\n**部署目标**\n- Cloudflare Pages\n- tk-admin6.pwtk.cc","x":3540,"y":-1495,"width":300,"height":680,"color":"1"},
@@ -51,8 +51,8 @@
 		{"id":"utils_layer","type":"text","text":"## Utils 工具函数\n\n**数据处理**\n- dataFormat 数据格式化\n- dateFormat 日期格式化\n- numberFormat 数字格式化\n- JSONFormate JSON处理\n\n**认证相关**\n- clearAuth 清除认证\n- saveAuthTokens 保存令牌\n- isLoggedIn 登录状态\n- passwordEncrypt 密码加密\n\n**业务工具**\n- getCid 获取客户ID\n- getImageUrl 图片URL\n- getServiceUrl 服务URL\n- validators 验证器\n\n**存储**\n- localStorage\n- sessionStorage","x":-3970,"y":-3965,"width":400,"height":670,"color":"2"},
 		{"id":"constants","type":"text","text":"## 常量配置\n\n**const/**\n- options.ts 选项配置 (9K)\n- options.json 选项数据\n- phone.json 手机号码 (30K)\n- medalMap.ts 勋章映射\n- commonSet.ts 通用设置\n\n**constants/**\n- countryCodeAndPhoneCode.json\n- localStorageKeys.ts\n- sessionStorageKeys.ts","x":-3910,"y":-5060,"width":280,"height":280,"color":"2"},
 		{"id":"types_system","type":"text","text":"## 类型系统\n\n**核心类型 (types/)**\n- GameType.ts 彩种类型\n- Request.ts 请求/响应\n- Models.ts 数据模型\n- Interceptor.ts 拦截器\n\n**全局类型 (global_types/)**\n- global.d.ts 全局声明\n- video-upload.ts 视频上传","x":-3910,"y":-4510,"width":280,"height":280,"color":"4"},
-		{"id":"title","type":"text","text":"# PWTK Admin Web 架构 v1\n\n**日期**: 2025-01-02\n**版本**: 1.2.51\n**状态**: 生产环境\n\n技术栈:Vue 3 + TypeScript + Vite\nUI框架:Element Plus + Vant\n\n**Views 模块**: 19个\n**Vue 页面**: 230+\n**公共组件**: 109个","x":-6360,"y":-5640,"width":400,"height":340,"color":"6"},
-		{"id":"df8065411e2e3be3","x":6720,"y":-4720,"width":250,"height":540,"type":"text","text":""}
+		{"id":"df8065411e2e3be3","type":"text","text":"","x":6720,"y":-4720,"width":250,"height":540},
+		{"id":"title","type":"text","text":"# PWTK Admin Web 架构 v1\n\n**日期**: 2025-01-02\n**版本**: 1.2.51\n**状态**: 生产环境\n\n技术栈:Vue 3 + TypeScript + Vite\nUI框架:Element Plus + Vant\n\n**Views 模块**: 19个\n**Vue 页面**: 230+\n**公共组件**: 109个","x":-5575,"y":-4890,"width":400,"height":340,"color":"6"}
 	],
 	"edges":[
 		{"id":"edge_system_api","fromNode":"system_module","fromSide":"bottom","toNode":"api_layer","toSide":"top","label":"API 调用"},