Files
vue-desktop/.qoder/repowiki/zh/meta/repowiki-metadata.json
2025-09-24 16:43:10 +08:00

1 line
103 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"knowledge_relations":[{"id":1,"source_id":"cd4e8e64-364b-42cb-ae8e-51b87893b90d","target_id":"d18c07b3-69f1-4e27-b56e-a8b9544e03f8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cd4e8e64-364b-42cb-ae8e-51b87893b90d -\u003e d18c07b3-69f1-4e27-b56e-a8b9544e03f8","gmt_create":"2025-09-24T11:59:33.6624602+08:00","gmt_modified":"2025-09-24T11:59:33.6624602+08:00"},{"id":2,"source_id":"cd4e8e64-364b-42cb-ae8e-51b87893b90d","target_id":"68daa48b-ce9a-42ec-8e55-ac643381a1b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cd4e8e64-364b-42cb-ae8e-51b87893b90d -\u003e 68daa48b-ce9a-42ec-8e55-ac643381a1b1","gmt_create":"2025-09-24T11:59:33.6720482+08:00","gmt_modified":"2025-09-24T11:59:33.6720482+08:00"},{"id":3,"source_id":"caca8d03-ce84-4ba7-94c2-64ad61dc3de9","target_id":"975e680b-61ba-448a-b383-99a35f504732","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caca8d03-ce84-4ba7-94c2-64ad61dc3de9 -\u003e 975e680b-61ba-448a-b383-99a35f504732","gmt_create":"2025-09-24T11:59:33.6813936+08:00","gmt_modified":"2025-09-24T11:59:33.6813936+08:00"},{"id":4,"source_id":"caca8d03-ce84-4ba7-94c2-64ad61dc3de9","target_id":"947cf24f-2552-4d2d-aaa2-0737fc3ffd0c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caca8d03-ce84-4ba7-94c2-64ad61dc3de9 -\u003e 947cf24f-2552-4d2d-aaa2-0737fc3ffd0c","gmt_create":"2025-09-24T11:59:33.6887341+08:00","gmt_modified":"2025-09-24T11:59:33.6887341+08:00"},{"id":5,"source_id":"caca8d03-ce84-4ba7-94c2-64ad61dc3de9","target_id":"396b9978-9232-473b-a5cd-876a4af0d45b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caca8d03-ce84-4ba7-94c2-64ad61dc3de9 -\u003e 396b9978-9232-473b-a5cd-876a4af0d45b","gmt_create":"2025-09-24T11:59:33.6936283+08:00","gmt_modified":"2025-09-24T11:59:33.6936283+08:00"},{"id":6,"source_id":"3960fea8-9325-401c-ae56-7556635d9aa9","target_id":"96adb5be-dc4f-4562-8cd5-dfaa2632eb6a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 3960fea8-9325-401c-ae56-7556635d9aa9 -\u003e 96adb5be-dc4f-4562-8cd5-dfaa2632eb6a","gmt_create":"2025-09-24T11:59:33.6994291+08:00","gmt_modified":"2025-09-24T11:59:33.6994291+08:00"},{"id":7,"source_id":"3960fea8-9325-401c-ae56-7556635d9aa9","target_id":"d8160f90-9ac5-4bbd-8378-25a1627b15a2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 3960fea8-9325-401c-ae56-7556635d9aa9 -\u003e d8160f90-9ac5-4bbd-8378-25a1627b15a2","gmt_create":"2025-09-24T11:59:33.7051066+08:00","gmt_modified":"2025-09-24T11:59:33.7051066+08:00"},{"id":8,"source_id":"3960fea8-9325-401c-ae56-7556635d9aa9","target_id":"55c5330b-0122-492c-ad6f-f017577879a2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 3960fea8-9325-401c-ae56-7556635d9aa9 -\u003e 55c5330b-0122-492c-ad6f-f017577879a2","gmt_create":"2025-09-24T11:59:33.7112026+08:00","gmt_modified":"2025-09-24T11:59:33.7112026+08:00"},{"id":9,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"33884aee-972a-4d24-a111-00dc78ebe014","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 33884aee-972a-4d24-a111-00dc78ebe014","gmt_create":"2025-09-24T11:59:33.7164021+08:00","gmt_modified":"2025-09-24T11:59:33.7164021+08:00"},{"id":10,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"46a5b3df-3ae5-4938-9836-fcf7e8e20de4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 46a5b3df-3ae5-4938-9836-fcf7e8e20de4","gmt_create":"2025-09-24T11:59:33.7211913+08:00","gmt_modified":"2025-09-24T11:59:33.7211913+08:00"},{"id":11,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"6dec304d-fcef-4651-a558-d1dffb8a2ae2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 6dec304d-fcef-4651-a558-d1dffb8a2ae2","gmt_create":"2025-09-24T11:59:33.726759+08:00","gmt_modified":"2025-09-24T11:59:33.726759+08:00"},{"id":12,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"b3828780-1d20-40fa-8291-b7768e25ae83","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e b3828780-1d20-40fa-8291-b7768e25ae83","gmt_create":"2025-09-24T11:59:33.7319356+08:00","gmt_modified":"2025-09-24T11:59:33.7319356+08:00"},{"id":13,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"0ac4a034-8b6f-447c-9d1a-4781850c6b86","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 0ac4a034-8b6f-447c-9d1a-4781850c6b86","gmt_create":"2025-09-24T11:59:33.7368337+08:00","gmt_modified":"2025-09-24T11:59:33.7368337+08:00"},{"id":14,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"1a2230a3-d1ed-402e-8418-144715c655c8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 1a2230a3-d1ed-402e-8418-144715c655c8","gmt_create":"2025-09-24T11:59:33.741844+08:00","gmt_modified":"2025-09-24T11:59:33.741844+08:00"},{"id":15,"source_id":"396b9978-9232-473b-a5cd-876a4af0d45b","target_id":"6545ca5b-5ed9-470d-bef7-d3db1a225135","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 396b9978-9232-473b-a5cd-876a4af0d45b -\u003e 6545ca5b-5ed9-470d-bef7-d3db1a225135","gmt_create":"2025-09-24T11:59:33.7473141+08:00","gmt_modified":"2025-09-24T11:59:33.7473141+08:00"}],"wiki_catalogs":[{"id":"ea46b30c-f8c7-4da7-a096-5ed47aef0ec8","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"项目概述","description":"project-overview","prompt":"创建关于vue-desktop项目的全面介绍内容重点阐述其作为基于Vue 3的桌面风格Web应用的核心目标与功能。解释该项目模拟操作系统桌面环境的设计理念包括可拖拽应用图标、响应式网格布局和状态管理等关键特性。描述项目整体架构MVVM模式结合Composition API说明各主要模块之间的关系。为初学者提供清晰的概念引导同时为高级开发者提供技术深度涵盖项目定位、适用场景和技术愿景。结合README中的浏览器和Node.js版本要求说明开发环境前提条件。","parent_id":"","order":0,"progress_status":"completed","dependent_files":"README.md","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9297314+08:00","gmt_modified":"2025-09-24T11:41:27.0195129+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV7f+ZSFsWmYrjwHaKSwENxBxN1ucZGW6XlNSs2MVdc8odMqIgIWEIrS7P7agXewNIoyyWJfhhtpGaybgeu9K9MiOYgo9D8hDYq7ZYaoPi7rwrDkBXrrBwP1zfcmUK/xOoRStaAMDhH8WVeEXOkTfy8h/JnMvGyw9J/N01UwFQB9hZLdwBb8q0yN/dIWksqmeVyl90c4TZk7Od0cHm5d/o3+Aj1XvOk33KmZShK9Jg6OmhwJN39uT+3/e2Os0Py/A+PSBsYXrGAat8rEZfeOuGWmHo6hasR43Nh8cBfmuo5bWArWAYg9SPjLmGhG+MMplwHGrA4ZfgVald/lc0OfZ/FZ7OiMPagwcEdQHsEtXipGNWti1G6ba+3HJJv3MBrOvjRnx0A4SbO5ieU9FXDJel6GM2ouyqj66xVZLga3Yk6d9d4Q25hIlrtvoIuvos0zeGVgYIXZVOKKnT5ZBX56YorQveOPaWo9JMXKKbF/n5Zsz7g+w1RyE+t+3uz4umqZm0WofGWOOLjTSEcZbnLPuYZtMGiyyE0e/8f+QUwHq0jMCjXyAbBgWJvsP50k/F9mP+2mO/NquvpRquHvHBhpd2RHkl4jiUv/4IUnHF5HFGtUe8y6+f3uUS5I4YIXvZ45DP298m1dl3GSQy71aYxZDJ5XuvwbrTsepDtylegwzb3I4QQ86gto67i9ckVotODoUUlwN+nVwwIsJAlN2XBe1hjrAoK+jMYf3LloDQr4WEYeDekKMN4EuDb+knWmbCtBhC7Zdcwz2WEhC7i2jzhkkKxuKlCB/YoBLEwyhUWgQ4lpYoUmZFmeJPkPN+qUOIjBtYDeU7CK3yxV5GJFAzRqdBZXKFXkHR9attzcgj108jYsG9A9qbcHPHrmJGRWSWcDce1WSXo2SQdaFdLh6oQZkih0oSi02ydcwCxGbgqGy/Nm6fjxTHqEmen4Nr9PT241CjnVsCD7tmG+xdKNI28F39qemqD3Y5HYXYk2Bsd61ZgAZLuLb9mcUH5/JuInoZP5nmw==","layer_level":0},{"id":"a7a86a66-7820-4786-a494-f5a7487ad3b9","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"DesktopContainer组件","description":"desktop-container","prompt":"深入解析DesktopContainer.vue作为桌面主容器的核心作用。详细说明其如何通过useDesktopContainerInit组合式函数初始化响应式网格布局包括gridTemplate参数的计算逻辑与gridStyle的动态生成机制。解释ResizeObserver如何监听容器尺寸变化并自动调整行列数和单元格实际尺寸。描述appIconsRef如何管理应用图标状态并结合localStorage实现持久化存储。阐述组件模板中v-for循环渲染AppIcon的机制以及runApp双击事件的预留扩展点。提供在自定义容器中集成该组件的完整示例并说明containerStr参数的使用方法。分析其与父组件App.vue的挂载关系及数据流传递路径。","parent_id":"d69709ec-a40e-4993-af63-9dfa6203e1a0","order":0,"progress_status":"completed","dependent_files":"src/ui/desktop-container/DesktopContainer.vue,src/ui/desktop-container/useDesktopContainerInit.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:21.9941677+08:00","gmt_modified":"2025-09-24T11:46:57.20865+08:00","raw_data":"WikiEncrypted:74j9IZqKlM1shMNZeRAKqj/AxunbHV6BPb9+APXzVAvA9Y0QQiuPRuJUSy/EGITE46lAWVMkcui3QrsR38E4xppz1BvfMx3wgVcyIqcSDLCMqfPU72ONElQLJdg4ATqjM/hDMvGr4SkA6vazwmM1IK7HXrwoPDNML1/6wK7u246jz4+3T68uVne1xeq2EMRo7kdjrr+PnpylcwcSTMfEAVIXNpoqIYoVXR9D2Ybe0c8SGnxBDQ8f3/E5hbHtVUxXiGOkgu8HpjrmEmpod3c0Kh7Bj3YptJPq4llJes5e+VBa81o9yUNe8/h3Ns24AE1P0T9+5IUlbnsWwD7dYEg2tMz9CjjujnUhFoqIwE78deVjvQfnoEGMZBN02eeLlnvGjF4EJynoMD7FUTrIcrWUlI74/x4Ijm49yqZPhfS5oj5kO5h8Jobv+rX7yOeG1Jeqkdx8zaXsvfGbOcmDbInvm1uQEy8LbTAsAGcg/RM6MRcKeUY7wUR3sObnxhGhRnc7maq+9y87F3+46LlJUppXYlewYsbUAN70yJx+mfSqfEDUVLc5Y2kp5JbMO7TgguJKRn5qkUcTcn5gJrGjXRqUDwj1rNPP/kTUeI87CL0RQ2a8OintGL+NOoM063uDyLnf5baw63ONsyTatOhKOG2nbvtpZ3Nk6UC/Ctujwh6wPGP7aF2ACTbjA1EyWVYBbrq4SFnUO5zuZtoPHsXuIuIHhYY0cEl50RgFOiSt4dXBou2OZJPF+iDieNY99fWoqpqUf0p6nGQdXc6Jqv0ynD1XJAwPl/ng/KJ9CMCmeCLAhsJpRk7ZjxYryT+qxSG4ubaapIhycAc00aTGqRksqdnUzIQSINHYtAWCsrBotRf1jpznMMCGmGVjvhtMUht59h87yD1l9YpUp8c0Q/QBREvMN+Gvvc+99ZBGOkgstD4fnhy3L4h+zrVXv06GuP6bY2hU2L5UmunisQNiEc8EDYvRR8TZ9AO90scU3hx3A6b6keJOUGECyr/IFCGLKeIXmLJoYHlcttRaNTPQIxmv6FBOL9Pi1aacE/kMBGx/rUfSHtx5Z2YPxFiicmmbMt1s6twoRxVuXE655c2MbpnzH3kR669RDvx3P/QTRedLgnU3UaHLf3rbvumoV/w7cLkMFN5yBkZ4TSiITWGCv0II1p1ah+QCxPrOc2hdYrXwIJdJ5xcfXtjjV0rHOH1jJAXiHEKZn/hBQbcI82aKBnXf0+vD9KhT67v70+ZgTykB5SE7GNKDxDIGv//GMcIcndPJqOE58wvsMTEyDFiCESPAImcnomcRNK5j1x0SE4gmP3bSnrWb+MLwz0MtV13XzRsPR9bgRmvz3rYu7b73Wmq1ve9PBEcWqRqCSvTvitt0V221gpLPqqtHnqrCJbiY7/macY9+KPDEuVcbH4nOlqVhozJtHH8TJ3lmaB2C+OE+z2Gt6rc=","layer_level":1},{"id":"3f617ac3-d485-4073-8a70-85e937c00c8c","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"核心事件总线","description":"event-core","prompt":"深入解析EventBuilderImpl类作为事件系统核心的实现机制。详细说明其基于Map和Set的数据结构设计如何通过泛型约束Events类型确保类型安全。重点阐述addEventListener方法中immediate、once和immediateArgs选项的行为逻辑及异常捕获处理removeEventListener的引用比对去重机制notifyEvent的批量通知与once监听器自动清理流程。结合IEventBuilder接口契约解释IDestroyable继承带来的资源释放能力。提供基础事件订阅发布的代码示例并分析内存泄漏防范策略如监听器去重和destroy清理。","parent_id":"aa21f1f8-88bf-4d5f-8445-95fb19c74ef2","order":0,"progress_status":"completed","dependent_files":"src/events/impl/EventBuilderImpl.ts,src/events/IEventBuilder.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:24.3581169+08:00","gmt_modified":"2025-09-24T11:47:41.2136899+08:00","raw_data":"WikiEncrypted:W27BoG2tWSBKbrlfVNVQ+rsI2PuZxhJ27GuUXDyOkGrKr+p4ousgy4tNUSnDymOWWzXQC08oCBqJkELDq+sf+EO1n+iU9/IIdJQ1JJPOKuQCtweWG0veKie16Zqe/fukVlLLz3p4oiN9C+RRcBQvkRcbb05YNqt3Z3i+AJCAnRMeBC/3EMIY3ZYKRs6hSKO6JVHdHYOj7SCT6swnvU2q7WXYuGh+OVptdBg8QUOIaGQmjb4oFzmAhVWoOKNXTpq1uyB1Vsen8zPLSIGOEBnyv+quopbtet8tiZJCMzIv5ih/ba4FtDMtr7d3Svu9nuWznsSgiSowgkWNe+MjUhNM+GtmNoHauYY0Q0/Zd8UNKdo5VOKHm9Lh4y5bsUPv6d5eTpeznO7YcOvroOx7jUWcpHkKTgNa/TvzDnLMX06L/Vu2CM+IfGjiIyXsfq8Pi25vR8AJnWW+mheqm41YiD7PZ7OnE6O4MuNFqqqwyuiGxTQFpHW0zSZVZC3QLd4FyoRVmiHK3T5iNlnDPg/jJ2fNuduwtjCIRqjiSeB4eTb/51F+AXRamXkwaqVrw+fPeRLTWXJr3udKYNs9OutipM1p07QNV4mldm5imxrFVrJnAUo64ndPO+k2jS5KftK1E7rfghzO8HTa1ud69q1/TuhcIopmLvdR0emykpBkGemIhI1EpL2Tt38lI8UZBQSUcsZy9ENptO1fgtYkVIS77fjxsEgPXKUi3zoxzcKMfSgVYYb8IGLBiqwIgB61kl/IDlM2a0QadmXh52T5T2vOk6/MCrs1ttzQOcKWKbPYil/qL6BGid3VsQvsuBjT6WUVDkOx/U8iSrz8wwOwE2PO/Ki0j4k344xxjDTF1kl/4q/QUs0WcDp8M0xZqUbOlxL14TKBuTPfKKyQuddDSbpiXWNtiok2HMVvZMt3IwBFfuwoPkpc0xId/uBHJkVS0w/Vt5bBGwCB6OtPyn/kTREkcg3eFsmMwwwBkZrqDmeiLizpa4GAvMr1czWyRHyuMGtQnlVPKb7LERXO4OecRZSHvQQ9rEERcOMlBdREgXE/2sRGGMgtWKbbQB00FVSMhsb0oYYfzyVZYUer/IImaBMHyU8o7Fzigi9bG+1PmieXWCtN59/3INM71SMhHYm8oZjQBDpo2qaZgQzGi7JJ2rakELXytNABIjvskdHtdk+mZOIwhWitZsQgeHhyIpgyTRrM+wZ9","layer_level":1},{"id":"96cac29a-fd09-422c-835e-c063ee03a149","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"布局初始化逻辑","description":"layout-initialization","prompt":"详细说明useDesktopContainerInit Hook在组件挂载时如何通过onMounted生命周期钩子初始化容器元素并使用ResizeObserver监听其尺寸变化。解释containerStr参数的用途及DOM查询机制。阐述gridTemplate初始状态的设计意图包括期望单元格尺寸、间隙和行列计数的默认值。描述ResizeObserver回调中如何获取容器实际尺寸并触发网格参数重计算确保响应式行为正确启动。","parent_id":"0e04207c-5112-4d7d-a6d5-ec24c3e9dab8","order":0,"progress_status":"completed","dependent_files":"src/ui/desktop-container/useDesktopContainerInit.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:43.1430939+08:00","gmt_modified":"2025-09-24T11:48:40.4090399+08:00","raw_data":"WikiEncrypted:x3LcpLCzT0KOPxd1xeYY3fvKBJZGwEF+pB5Yq7tEWfqV7svp7QSGGk6hSMWk3K7IyiBmXuds33CL5met0/zVv+Ibx+7Be/oPFyhJxtxgd7Z4KYGNwMlCudw60HVKrJ6NyadmK7tvK06PHLH46sYazJ3VJOq48uDsIIec/eyYLJzvrok8exl/wP/ACEiZuZmRrq7vKFI/LiOxVUMmHLdO0jNIBK5OFHGPoAbktQnCkBhoSGiCJFzMT2F08NZRdTB2pLAd1DdGyb6VX8Jp7eQhuuqFK54aXtrZPSFzPesbav8GFnm1//64uV/q+GgahuMvDFNAoMb4ckUEg6JTs6l62xo4YhYR3WLKl6CvGj39eMM2IYwmhcE1Tw8oY0G6imnMqgA0R/wLhTY2vaHvDPJNexY681iRGte4wDe2StoGvlb9Aw2yDrfOWA14vxRS9QinqN3pnnyMZxtvBmS95OWyzFSnKBmOxwUEB+RI2e3QBJUsRYSTnmP0Ov4r9Azm5P4TcGu4Y7fbzmMM7pZFA7sGoBLY0AlvNQVBjqHdK7LMr4+HcN7XhtpkU+amYcIkzCJxgbib4adG5q7nWdl6YIfOfZrnkuTlOVPkME+4GVI7LS8x30DvuDSEyg5j6KKhOxxL5JYl3dG+oG9EGTmtK/RJp9/rgDGek0Gyv70IE2YPT9dIzF4n1a5mFoMe7//+KZ38+e/XVPGR5IBwCIzsLhbqX5EeEOfHZq8+QkhE+hLRy5kuy+y8U0B6dYQEfxnE/6WavoeGp9CGWherRgxq75XJH1vqEBO+AzVG0AexDGzKhmw67Qzk8sRfkLYN2fb8I/rlF+11Aptj+itCvp/Ipwr9Qxm3nt6BsQtxyoDrClOamD2RUV3ce3/usXM5gdMRN+x1V39gdZnXMZZOm0ULicdxoEx0IklMNPZLBfhJPwLFFtDDZWTMQh2e6FH5thWYx7bCwZP27rW8LBjIqcqD2DelTw==","layer_level":1},{"id":"fd1fcc6c-98fd-4cdb-af57-ff689e2dfeb6","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口最小化事件","description":"window-form-minimize","prompt":"详细记录windowFormMinimize事件的触发机制与业务语义。说明该事件在用户点击窗口最小化按钮时被触发携带窗口唯一标识id作为参数。解释该事件如何通知所有监听者执行最小化动画或状态更新结合TWindowFormState枚举值'minimized'进行状态同步。提供在Vue组件中通过wfem.addEventListener('windowFormMinimize', handler)注册监听器的代码示例并展示如何更新Pinia store中的窗口状态。描述事件解耦设计如何实现多个窗口组件间的独立响应与状态管理。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":0,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8065541+08:00","gmt_modified":"2025-09-24T11:53:54.1646615+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawYSCt+G1I7lA06Xh8vBKUd3PvRsYe45omBwWko2NxdXpUsW9YggF6sx/UyaY9/g/z8IN4wZFRuBkIIj24fTv91U5EGHz1IxNtuKuuugGEzbhLXHrM/g7rGo5gqQY97yrxZuLESiVg//7CD1edVtlsyYFxclMhLjgya/DfC3FP9O2eRma4xww5ofsz88H0D1LUt2iKDu3BsCq/T5orbJYn85+C6a9n6USz3E+ZlQmHQBqaj17O5dly0zSWeeThZhC/lAEoWBqkR17V7OTuKBcfjZQBPtGjHNeR2OgG8B8NERxQAE1maCY/ipKJUalEbcPo2qDOFmm4HKWVeLbP5/s41hWoLlbiIjQlBnUeVcJqUDVbon087IGVkBStd4Cv2iSPNlLWi+N24+e5SQsNfi6qNOWaH2vF1+iqbY6MitvOVuDn65EfWRwaNcbVxsI2oSi7e5VQQuaCPQIY9kgAd2FO69e+ULNyArJNvlOJgYp3m3Nqswpl3ZRWfOARc7y/1JP7vjfZIhBK/7US9nejEkIVKqFx9eYKo5MPxTiQpSXhNngcaPx4m0RVp9B/Nf5Q3ggE7pBzpZBnQek7rf95dIRd79aZnKHo4wwjIu8aShqfhis3qBrC/c0ve1U33UQg7TPRTCF+/3XaWN58Ksza1xIjtvEOXIYGhXVFRi5fubel47UcmI9rtHTWeh8Hoq/SRuUWGwkDGIorV2facYNv1LKrbWQjkzZBoyJ4I5jaHFijned2u/KT5eebrwso/uflHnNz5wkITJu0pPO8FGLDtpIEHZ5GK7nNqDoi6QHS8O8OcEj9Zwt4Y88nn3QMp7a4OKWsuEKyUz203H8Eo+SdUWemrI5nRyU0m81d0PNbulN5sFK9XwJUHICpfh2IY94Qtfq7HSA6icsgWHxShi7FMA97FWtLyH9IIe9Nx2oY3Zzxho1AkIDgKNsP/u3UiQxln0WZVtDfzmYBzXY9Pw/qVBJ8fJexy3Uipf6+hiLxqWpCSxv3I87yhzrnpguZiZS9ZGMZ3/FVYHJ6bk0o4L1P7G+dAkNqFNHMtfLY9c++v6uWcdiTC5gh4s8FOqooHzQd4EOhT2DWBgtyH156sTTQYu1mzFNAVjszAK7sM92AafX4xbS","layer_level":2},{"id":"d7de51a8-bfcd-4a18-9eac-e44a4b38b8b9","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"快速开始","description":"getting-started","prompt":"编写详细的入门指南指导开发者如何在本地搭建vue-desktop开发环境。基于README中的指令详细说明安装pnpm依赖、启动开发服务器pnpm dev、构建生产版本pnpm build的具体步骤。解释package.json中脚本命令的含义如type-check、preview等。包含常见初始化问题的排查方法如Node.js版本不兼容、依赖安装失败。提供首次运行后的预期界面效果描述帮助用户验证安装成功。确保内容对新手友好步骤清晰可操作。","parent_id":"","order":1,"progress_status":"completed","dependent_files":"README.md,package.json,vite.config.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9449988+08:00","gmt_modified":"2025-09-24T11:40:49.5916624+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWju83LC7H/jAM8CEAvWT8huE5OClmQiIfNYNxHQ9s7RRS0qKOV1Xow/Q40Lf5w81YusS2iGllJNnbMYTNb7aHpUoTUl7/CRlQK1bJD7k4j7fUjMYR8CI0tZ5jzvF50EPVkCQxtJazoSjowf9E3BfjxCRT8yfag2BW7ppC/vTIFnitlpAgSXT+CJ+gXy+QgcCKBXHatHUZ6yGStYm1wLJ7GbgTzIm9cYF7lEUqJx27m2VpO/5rpHseK78mtP/XaaBWtYoH09Qo7oE6c3m++slF6VBIl1qEHfC5nqbJTmxcFVHoUD5hPX5oCF2pfMKh18mEgiu4foYrWofJpNmHdc9fIApn2SLZZcA4i4OtXxP4XenHRGNcbIVxL6ZPKE3skNH8sjUICufoyJBcB8m/VNwyCYtvQrGAo7Oc/UePiDRv7w0QRPysogJ5/CVwXEOgQoAWhHD3A+AxiO4m224oZuESOclIuGT+OADHrLi0DCpVgmtMzMIMXIVaROgpgwqBF5lz+kHocEu9OOY7+662thmjQ1OFufbCd9HT8Usl5zvtaj/suSKzclv9NC9mA/OTffxFpndM3Ue+XkVmMBItYjkp0nhjeGavkELN62AiYezxj18S2IKMXVtqSDs+eKOcn09nUOwQ7F5fiKXdGs7vI4IqYPd7LIk6mpIbetZZQsAyL5G68JEtCq9l/WgKsgFbqbNaszU4blGJGZsa+xYiBAVBfLg6ghPjKc4GhPMizS/i/iQGKn0PzRLmNCFH28WZDQEn/Jn+BOcfnnbJl1YWtsPJLFLqKX3Oe5YJSRgbANBsp1aYgBp/LAVf2O9pnJcnm8DZLngvsIR04UhdO+71w+jH0AUafMlHNwXUQP2t8lcQYvLUhoCrVaWJVYCWTPhLlQuZzMi/hG8LxKEa5vUQXUHz5wprJ75FC0BQ27v108oVB917xM0h5ghKtqEyhlHAlvPijJqUKsQmGAnp6GIP0EKGr0cjT3hc90P2Lek2EDnklq6gX2G1DmGVWlZDFpdj8hT2sw=","layer_level":0},{"id":"45ff00d1-079e-49ee-a2d6-e4537fbe574d","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"AppIcon组件","description":"app-icon","prompt":"全面解析AppIcon.vue组件的可拖拽图标实现机制。重点描述其如何利用HTML5 Drag API实现拖拽交互在onDragEnd事件中基于鼠标坐标clientX/clientY和容器边界getBoundingClientRect计算目标网格位置。详细说明iconInfo属性绑定与grid-column/grid-row内联样式的动态设置原理确保图标精准定位在网格系统中。解释cellRealWidth和cellRealHeight在坐标换算中的关键作用。结合IDesktopAppIcon接口阐明name、icon、path、x、y等字段的数据结构设计意图。讨论事件过滤逻辑为何当鼠标终点位于其他图标上时不触发重定位。提供自定义图标样式和扩展拖拽行为的实践建议并指出避免跨容器拖拽冲突的最佳方案。","parent_id":"d69709ec-a40e-4993-af63-9dfa6203e1a0","order":1,"progress_status":"completed","dependent_files":"src/ui/desktop-container/AppIcon.vue,src/ui/types/IDesktopAppIcon.ts,src/ui/types/IGridTemplateParams.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:22.0120794+08:00","gmt_modified":"2025-09-24T11:49:12.2328109+08:00","raw_data":"WikiEncrypted:DMDSVGPBUolKuw80ZDyuXk7u10OIGoP4v5X9FCF2ewkNN86lne6i7nMaQcpulvsRkL5nAmESpw9hBpgwQU4WGDAseztaNA9bBjnbneDanH4DC8sg8ZtYAUw6fxP9yCBK5Jf+UbxAiTdu7vWf9MBSGpwLnWkHWZhxXhbZiUNvxDnjWrV0CRs0g5R89jaSlhTGayiRZCo2ukEDlOwPi9dugg22jtZ50SbC0GsLzG+5tis36seFJKpCexKPGDNdAckYPfRpnVMK1YzDYLmQ919n+ztSJIMiZxlYhHUA0/h4aiUq2aG+JtmAf78LmMzIy4sMurTcVAvYamMr5bdeSXpC/rtU69x6fyN9wC0Ad/ZL6djlWOXJOanrBLdy37w1uRT/8zUr7uMGpFuk5IlAA8UErzNsqoKltSxzOiLEFFQYpHtFkYXqiSITll3IQmjViFcrl4iPTORgujQzWkWjDiNQCVx/SojzP9qwbAF5mov4E27yGMzV60vjy4aQbYU227V5ZhH6xMruk40VNGTSWDak2qtB4vGRwyi/HEKBbxS2WkaEryP7mLyVBKduRHsTFzw+i5rNchO8dGBb22MuOp3ZcGGFOKNFtE/hqUj456ltvusxC85Ghbpb8HVCt5nMgYWtJjSOeqfmh7iPyHtQAVmdMzNX/goXNpZTzKBdYidpDKYRzk9WJw3dC2zKJIEfuoOWyQHCxTwLoDT4LckGGVK39UfecEcnGuApVeEW4UNuEtiOG9xoHWNYrCqF1DmFzQZyOSTKruix59SaOAIKaGEOulm+i5uh5LjrZ+j72d5Bzjp1Be/IV4Hwr5bIV6NPYSpzGI2sbPKuR9nl5oxZ+LAXqWRVaO3C/yUle/J9/hARVw+dRFLhrKRE1SzASIAGC9eLdPb+XfGIChtb3Fw4GVfEMlGDf/I0N4FQC1ApLMiazNnaxLEIs4SFzUvOir/w0VF1FN0zNki7b7g2gz1OwSMJ5/6Z1g72B4A1yBs1h0VHUMHanpQbSggmghVkr/sl/3oUgpBo+0yV3eF/okysWXB2bePlj8rg+L+EPTR1Qf9cIAPkE0IDPOA8rLDRyjAqan2tG/vQvjgt4X7RIXQly/sOqMfh+IZwmJ1Z0f6D/u+7zGYwZ6rBeYOW6Ou4YhHw5Tn4vfZFX5danckIDUmrlre8Pr4haH7gwNMZfktS44M5chUF5aLZTPzOIj2sqGW4iT94BbC+zsYg0kAdbhcJ/j39jDeACLxG2YAG0s2mTdHuf1PjY+uSZElEcSxT/t+60DAzZZhLpDmNfaxw3Yo2RKOre1HTRW7WkuF5tgVLgDgB09JXajfkW6pM32IQsQsMe2XmYKsuRN0tz0tijxnNfIDAIbs8jwGgdS2i4MnH+YBDDC5fLnVCTe344nwlELjeETdJKj9Ho+6Yu2gYCjg7lIBFOAKDL4ZNXJvDcJ2KXqF5G7yHt9Jzo3phEB/zpetdSugztjI8LpzVagkUxZ5MvhEtAsJc3zRjtlLcaxio24dsi5jhmEwJATP9yvlNptDvLqLf","layer_level":1},{"id":"037d6505-62ac-4541-84aa-fda2fc3e3775","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"桌面事件管理器","description":"desktop-event-manager","prompt":"详细说明DesktopEventManager如何基于核心事件总线构建特定领域事件系统。解析IDesktopEvent接口定义的desktopAppPosChange事件语义及其IDesktopAppIcon参数类型关联。描述desktopEM实例化过程及类型注入机制。提供在桌面容器中监听应用图标位置变化的实际用例展示如何在useDesktopContainerInit中订阅该事件以触发UI更新。说明该管理器在拖拽结束时发布坐标变更事件的调用时机与数据传递模式。","parent_id":"aa21f1f8-88bf-4d5f-8445-95fb19c74ef2","order":1,"progress_status":"completed","dependent_files":"src/events/DesktopEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:24.3644278+08:00","gmt_modified":"2025-09-24T11:50:13.6320942+08:00","raw_data":"WikiEncrypted:74j9IZqKlM1shMNZeRAKqrSyDjIw545TlCbxU9IcOMVxGWg+dOq2JR9dPnNMm1XnV0KYcMn2808Kztp+n0WSLSiGUS8GIFTXq16NMhOOZuEwCwXSFWsQbdv/bO7+v9crVKd86fmePAk7oQoL06N/g19RtLOGqiR+oEi8Vq63ieYKG7T+yyF3nrgobMq5OXtjibzKtShMBRSLuV1wCTzGs/LuoawEnH2LiKrQxswQ50pGnBFYLxwGsFzLQLjNo6Ybrw/lOxV4Z0wAYkNGMPztDZKU7o0v0UzsxRcuzbRJQuzxgFopeLu+anCyk1ODAasg3PeghkfKHgJWYDWqLGDgpHAUVvdoDtgzFjXf2p0ELqSzr/wdrCe/R5Kp890YF3OdFLU60pI5qDVBvnWawb9MKm7hH27YqxTM+vTrVIg67ulsvvRZG9CNGzefWrsZhIqcBPBzcYRrEty01jIhwfoTcsJAM3YWmS+haq2s45WL69UIBkPoz/GmrSq73Jsy4mjslQZ0o240wq0NpDPkMRCZ5ed4Ez8NH1iOc6iM/tlA9egz0Tm5/gjUuyaiK3Uc9MnTMrrS8j4WVmbtt0aykGjLVTwumPZHQ11P6o8xopqEUycxqu29WyvT6Huxhg/p1FBbbvJNdUzbF/Y2L1QHjtD6QGsZeckfDuaKesx2YwS5y55vZz2kONeY/HIQAz+VaypL7HF4GSP4TX4QT3Z4XOJOlxnzhGVkOyGj/mwfi6/bEc00dAXbGuahDxRprvvxDoK1lxUljbWOyUTnEnpofSxFWnNNTPsYZyXcJCOyPJPSOX5eZNpM4OCxqsqSuOA7+/TpBEcBmT3gN4KXZyK0OX6FkbBdm49vZwZ1xCNEa6cVV104jNdnoiRR3ujM5O8UbmFFHVKVDfgj6ftOgRMqEhBVjtWaONAgUZCKIKsQPnh/e5eOJduzMw4jHIlF2zTRW/6CcF9c+akgXhuZFkylmkqOXVOmaQJaK3lCGpywpes3zVIvpxDpDw/9Y1MuAxAQiQYE2PRTxzcZ/TzQcVoy56mnEI/tb5ftdz1/Sav3Cw1P9S8=","layer_level":1},{"id":"c44fdf60-dbb4-4cf4-8f4f-6a572087634e","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"网格参数计算机制","description":"grid-calculation","prompt":"深入解析ResizeObserver中实现的动态网格计算算法。说明如何根据容器宽度和高度结合cellExpectWidth/cellExpectHeight与gapX/gapY计算出实际的列数colCount和行数rowCount。详细推导cellRealWidth和cellRealHeight的计算公式解释为何要减去间隙总和并进行浮点数精度控制。结合basic.css中的基础样式规则阐明gridStyle计算属性如何将gridTemplate参数转化为CSS Grid布局样式对象实现视图层的动态绑定。","parent_id":"0e04207c-5112-4d7d-a6d5-ec24c3e9dab8","order":1,"progress_status":"completed","dependent_files":"src/ui/desktop-container/useDesktopContainerInit.ts,src/css/basic.css","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:43.1590558+08:00","gmt_modified":"2025-09-24T11:51:15.1900172+08:00","raw_data":"WikiEncrypted:wM0t/l+48SB5eM//K/sDYscyE7MLk3Mc5VTSkQ4Kp8/3nS3Rm0ATTlMfbIjgoCYi3tZvU6TS/BE77tHjBq6pQEI+/6F5j81SOiW3uoAMHz10nF3YMyUvrtB5siRmB4lIN+jTx+PqwUVgNIa9ANlcQJOmNz4g/NRjWL5LTkkScXQDq7GPxjyb/c8Bn9EgpCNlXe8m3cpNPEEOSNPH0V0V3RnCxHQXStJ0+OSKfp4ezUGJKNx/CHhsL7dA7ywHLMTDjld7htCOFFQrJumZWLncR0PgD+S+dgjeta/sMY/GZ1vppnNPpsiXFKeM9X+DHn8iMvUpcSBWuWW2NZYm2TQLBBkNI/cqvc5IoMnKjB7Q8CHLfYkawUPlJGFKq+DZiUKn71v0PojNoZwNd0yWZFxcUanE+QqWwHAAVXtvyVFvbeG43/6kfT9OWILaQ27jNZw/Dv3fbSDTw9491xuuoV3AIeGD3V5zXa2EY8zm1TF/wZy00ulIe7awfL11ogbBDT+Pm9VKPgRfbpUBrmHl6tavzVN+XSjIuHi+EmNdPFXHwR97jye8mm68VWuvi+2d6Mnuvb1dQha6zBvLjKMO5WHxOzIejviFFoBw9RRw17xHvbnsDzQ5ybxNjtlKsMhwpwxp/d0bIsvIGYOE/zfoshYCURiltR3KR4idBK4rCwusEpskdLsR6a+vF9Xi9+qvUOf3YQnwJxpXehs4xZRvKn1INY9ABTZCxZwggGjzo+Ugtzfftgcg0rXFcHuoS520UwGBtC39ZFbV04CBKoMd57yhdR3vkxW2mU2VItW2ZREyGp/KFu6lbUkypFl0xubtuInQ7AGFH0m1oPv/5IBWYTqi1vVTkNUFoHMiRmEh8JMBa6uXWAeUrVeKict0qwq4QPPN4WI1txp7y3DxaxTf3kTS6lLEu+eFUIcJm39OKT3Tp6/vnQaBmQi8eS4YTHZKX4iVscMvf1CsbTaI7bKVKtfR2i4bm5u31N8rpL/+m8cSLSvOR/QHiZ1uMdwMryWrw8VaSgleMPq+zEWoGEDDDMdEqpi3g4E+QphAgPG4Syxzjqd/G1s/7IlQJraGwKA72gg+9QQRzdWiVuYo4TwQX1b/AAoNZFdK9UWgRfeKY2/8GmwxZShxAaegvG8Dx+6zgSU4","layer_level":1},{"id":"0fd46909-6306-40ed-b386-ba929aad6839","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口最大化事件","description":"window-form-maximize","prompt":"全面阐述windowFormMaximize事件的触发条件与交互逻辑。说明当用户点击最大化按钮时事件携带窗口id广播至所有订阅者驱动UI进入全屏布局模式。分析该事件与TWindowFormState中'maximized'状态的映射关系以及如何配合CSS变换实现视觉效果。提供使用wfem监听并处理最大化行为的TypeScript代码范例包括DOM重绘和状态持久化建议。强调该事件在多窗口堆叠场景下的协调作用。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":1,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8147732+08:00","gmt_modified":"2025-09-24T11:54:16.9230366+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawRDaPo38uHBXwZPFrpwsy8QvrqIBfIQTVryJlvEydbwliI1mNsYVJdL1S/Qf4/es1n6HmWhlFVF1a46xdFCafmHniwQ8BtWJQxoGPLtJazQv0gDGZxhMJ1pp/U4H1jbp/1FASWGjc0Kz1NVP2i6rKnuKuf9nsl+H40suYFyfQSqF/lpnc8V06fUTR2s2SWitlEZwT+gW8Dc777DvGaNGFvDvNXuEAfeRPL7dnDqnc2lV0Pah1LYVcY+Uab94/cJmtiZCNyMvaMsKMzkn7UPLu5NhpOrltClGXS1ztAYylaEX0CRVNQZuWyLwDhLs5x41ecZVwMEInpmGCt768X+o5qYaHW43etY5IbG9pAUDAEgV7kICQkvCOBoA1JgB4E8h3Eb9uNoZCS1mmr1DPpeuD21D55hZBNkuNnXs6cygSIcg/J4KKjVTLZptsNrle4bnEIhnczNDloJJCDfzxIHUoZ3hVXztHPyrZTdQs4KE1aZaV/nDDVlxgds/6F3NvGLR/357q5S60P/tPUPyeJHXE8a8WgOarmky0ngj7IU0YpAT3bk7h8XvQ9bA0bF3cO0Uiec5R/0JcLKas4znFJuC2N9PpxXTtsbL4AY46WfIoOShx5XGXMcXX3dW/04CYtYa7bVCUhbDW56QuZf9uk1iMgQ3OpJCdDJghIrE05vnhS5FwGKa89nYMxsj8KS+xQJi6Bp+3nm89+Fsf6062STMZNQWfTdljCNwAVsqGZP/Ll0hP6SjgWWJfCgskn2zXNe1xyUiliKw2rgr/LXJiGMVPYneIbo/EtRpBs75FoZTeiaZAGYLuQfypHhRPRVg5VRW+lZYSo1hxa465iz9eIjHV5nIO1pH3K8goQMprnZOqqxXhmDI25Tdn418zbSNHhFLFMzKcmN7ZYIKT7qbFX/u9ESR3mZoU6U0HVFY3CBdvl+Tkd695GXUv25kmqMdEDt+coyPY8Mu3U4BQRXjmyZAAw0z5stNuLgVuQPxyWwberojb1dW6KVgr7O9iim2lSj+tg==","layer_level":2},{"id":"7df11792-ebf4-4273-9d25-521e61030f8a","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"技术栈与依赖","description":"technology-stack","prompt":"系统性地介绍项目所采用的技术栈及其作用。详细说明Vue 3作为核心框架的角色Pinia用于状态管理的实现方式Naive UI提供的UI组件支持以及UnoCSS如何实现原子化样式。分析Vite构建工具的配置优势如热更新、TS支持并解释TypeScript在类型安全方面的价值。列出关键依赖项的版本范围及其选择理由如vue-tsc用于.vue文件类型检查。为开发者理解项目基础提供坚实支撑。","parent_id":"","order":2,"progress_status":"completed","dependent_files":"package.json,vite.config.ts,tsconfig.json","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.949705+08:00","gmt_modified":"2025-09-24T11:42:05.6026787+08:00","raw_data":"WikiEncrypted:w0CkdCdnXCcvlN5xOpiEhEX3U68GI0Ngj6azFMJo9xQD0Nwsj9XajeArLn33w436LuYJWl4xP0dT9zLNODhOpEvTpqqzzCkh9lnex5/8+kRsO8HUgo3JPf1vfKOJEKRq1E7JbgABHSAtDRPMW8/wUh0xIl33/gbh2BAxXYSmZO3qKyWkN4clScOOkIMi5nU0HiEU0So77ENCVrquykcZWI6PkR4DwK+mqnZPtin4U8LGc0nzbrv3wwdfgf4UuGC4tNQa9wZmrlDHAdpTqEq5nsvXYxysMQ2LWMAJYNhJHlFkPAtryBHsS4k9JmHlhd3Ok0uoccMC6gNPMtIB5lnuCJlSktIigZqRATUY2IHkEIm5dpNMT2Ww/ZqxYai9JooIcXj2Mjsv9cbpev70deeBU1a4Lc3djJXJJNcwK68jEWfHfqyVjpZApzhDiC8yie/94QJvBDvoMUk/j2IVBEwelW2gqdZWDZAs/FHXY82sDpb2My+E4R6RsuhYRjsxspVBj+xmHJk5Buze0Tbo8Gq0SD9dnwm97sJttMQCLkBgoPbHPJG5PsN9Kz4f7Xp6l3+Y6GAhbNCO6wuFjAAIRDDsLe3nfIqeqB2cOVA3Pj9ZRJSEkFsCGfLwQ/FhEDxOjqnO3S/FaR2Q233PI1kOXy+8NYlq89htr9Ha6RWykmGF93csjtO2TF3smJPD9zFeOcc6vLtdGK+CXRAcGQJl6et+2DwLBO7tphPJIDlcGxD8f9lhJogjPbzyrSR6yzixxqfiOlaw1A/48B74T5qb1/ylwcYWa0qK09kXRokC4mswq1gJ/Dxg9ABK1K8h2Loe6WPMTUiIUViSYKlzj1vDIxgi43A7eFqCFQnGXhegY0gkDoIC5Ssfn3H4Yd5Qi6mI9c1LpK9E8+T4l/VEBKN7NVPw07t8jKkh1PX635BrujX8Hg0XD/JZZQHQ/EZUyEKuG3Z7UnGy3AS5R++fW6c3qC+kwsdynTMmiFSyGx0f2cvncBw=","layer_level":0},{"id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口表单事件管理器","description":"window-form-event-manager","prompt":"全面记录WindowFormEventManager提供的窗口生命周期事件体系。逐项解释windowFormMinimize、windowFormMaximize、windowFormRestore、windowFormClose、windowFormFocus、windowFormDataUpdate和windowFormCreated七个事件的触发条件与业务含义。分析IWindowFormDataUpdateParams数据结构各字段id, state, width, height, x, y的作用及与TWindowFormState类型的关联。说明wfem实例如何被多个窗口组件共享通信。提供在Vue组件中监听窗口聚焦与关闭事件的代码范例并描述事件解耦带来的组件间低耦合优势。","parent_id":"aa21f1f8-88bf-4d5f-8445-95fb19c74ef2","order":2,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:24.369396+08:00","gmt_modified":"2025-09-24T11:52:24.0787411+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawTQnYarv/LWqJN2CQqLgdSJ91QnkL+/j7a60ElN0mhJaOYAeVUWBWGqmkyR/M76wBIb/0IetjxsGkm+OaBMtOkxE1fXLlzHpETVrSv6Cc8e1JY80LzO+m33MoaFSdKPjXLclehGlLQDLKcPCzwC2xE5nTIm7G5DIfLEn03oV3YIg5P78ZE/W5tG1kTC6lUrZor8yu95wV0jC5aZkNZ3pcjmRH+5Gdv1RPm3jHhrqtDZ5EnYCS0AMHg07HMWFW4r+SnxLuO7AtGR/cO6TcH280+auqQ/QJNn+dEGuFSnVrvxvgvrFQbJ5fd2gnVTfbcJpNtevHmBvmAi6JtZU5lthE4YV3eHJFqLSMuP3Auy7zCq8UoEvZqhTSY0aYHazSYaI0e6BC0CH3o9otS9XrEfpyCmeDWFtNlpMFfxQ4Ho4how+xyovV+CDx9smRYOEdcP/dbnJY7+JTQt7BDPQ+5iSptY4crfXyvQmg3MqMmMl4QxzlaXH7E1YitIFQ5R7bsrdqtLzY4mSVqu0rwVvvQdVadwOB4cGn43naoT3aKmTNiG2gHbYAYR1JcmLtpW8yWsufBqcYupDVBDDsYqYMefAKtGTacKlfg/jCFY3CUokkYYfCs/6yA1THHnZHITmxnVaAo/7ajbV4/6anpfZPNb8fXulMDBGNZeREfJ/Ms6O+WGAfJkJeSmSEI++to4PxXnIRyWXxt55wGHfdxaSuetT/f/mcjCNZhPkx0uqEDWd64VXKpSHJD/fOJ8VXjWeMi06WHU2KtO0E/jQeQDZFlo52g/rGynEJUu3hJYaj02/wfAEoa910RsdZqX/aIuXadRohvCYvHDMjmogL36SJJ0qfF7fuQTMJjzxun2W0wNv9y563xKcrZqaUBCR6efvP9S5rTBM5+0WOTYu/cxi7+8c0j0RbeYkQTRnIPa5SdEGNGkRtI6xr9Auks63Ncj/6Y7qgcMwyt+/9C/Nf/+OnljPOajyIGSL3aGDq3DKCXCsrMUNGuGffWS1O9xN1txSWvgyi7CnKa/9YkQNkO5ZhtSaJUJJwke8HDSt+TF91KS1i2u/jHYjR3PGSPeyJnqkPhinOcZPvOvljW9z2iNv6qSUlrYABcLMPYzkH3OBGXGAIhrLXvHVZHe3FU/0V8N7qGovMt9NsC/+t9DWf/n4v1clq15PwBsis9Bt9d1GMC5s4kAu","layer_level":1},{"id":"4e8147d5-6b1f-473d-b958-49bc2660167e","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"图标重排与持久化","description":"icon-rearrangement","prompt":"全面讲解appIconsRef的创建过程及其与localStorage的数据同步机制。描述系统如何从localStorage恢复图标位置信息并在初次加载时按索引自动分配坐标。重点分析watch监听器对gridTemplate.colCount和rowCount变化的响应调用rearrangeIcons函数实现图标的智能重排。说明rearrangeIcons算法如何处理图标冲突、寻找空闲位置以及超出可视范围图标的隐藏策略。最后阐述appIconsRef的watcher如何将最新布局状态序列化存储至localStorage实现跨会话的布局持久化。","parent_id":"0e04207c-5112-4d7d-a6d5-ec24c3e9dab8","order":2,"progress_status":"completed","dependent_files":"src/ui/desktop-container/useDesktopContainerInit.ts,src/ui/types/IDesktopAppIcon.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:43.1650244+08:00","gmt_modified":"2025-09-24T11:52:39.943613+08:00","raw_data":"WikiEncrypted:4S8JYXB1aoiO8J6XSmRYY5jt8oAWDoRKggxuc1j/cv2XeTKf1Eqv3q93G0krnAEa7Tm/xstAE2EuILuY3lr6y4jB9Fi03er3SMqcuZZAQmlsROmeyJUJnz9FI1oDkpYeLC+2hw/pclatwKA7fCqXvNj3Apg/dtEBmbsgo9u4poUTurt3jKjuOaQGsLaxf2FBpg6H1d7Ep6uWvjfnMpAA9hF5vk5SIi0QnKgOoqeEK3oovc5jj9yW0KwDSi8DJiAH5AOvC2Zfa9vn836501xW2bS/C6pKSyjQHBsQWJzd49YChnaP+wf2VkmeuFxNOE/9KG4WkljMoHKnKzme9yV0Rkjz1Fi36fnbYW0JdvCHo1b+gAs+CsqFvJ6XnpgRVjJkx0JZLrRFMOr2ZT/4WaiJeN179zSMsN6vQYYsqVR9KEEJp24tc6TG/5aDQmP6NQuVP35UBku/yfiLU+AZjNgOT6axbZG+3gj6SHl9VzMqoIq9iYQLejN6gP4B8YR5Ea4ckY1xWYPO2FY/2SQ0VLXFPBASGCw6jpbIy/gzg0uOviy/0um12JTbSiXzihubVIMSqLjVon5TSTwCB5Y4VLm/eOg1+e6zn0oMk22vNNSLyh8gb2X+GW4Vzbe6vO8eXngY6VO8+c8i+Dd69xifaQV7sly6MPjveQiUNVfFjv8p0m2QkRrZLm++ihqibJ5yUG73PqPEeBmn7LCmcniSXYIUlMvaNCt2/yf0TTS5+ujFPEMcvqADbex8JGv1sMfuJr61vNob2DgaM81JeWYtElm5lysucx/5HfV2YA8jXL4HO4HmTR0cUxA91z6LBHYjJTaON4eUSlr9v1CVl+ONraUBtwbtuC2eyA5bAz+LzMq/1fCpN0oMBtI4cywkCnthTtQ+5poLnTwO4lt4xPDfyShQfoOZ6WOsEEfuJSUshkruGYhgw/Af5abQBGNqh+iCpuw4FKbkydLzUzwwz9bBRdFD0f/lcQYzXwu2ige4vqRyL+ZLgY3vFVRQQWMsoB7+CzjcelRwfn1QV1TewoEco8UeKD+Krb9QXlrAdYscDWCO/jctKj7NiWgJwHXQJBVL+ovVhcvhSFUH15YzDMH0ghWwc7MUp6S4924hEaqbG6o/j+APId4C3r66SEYQ70JHfGtcsSp2fI/s91PeOBJcKVHOgj8fPe4IhYBPdGRO+NqTWSExYzN9zNDn+JuQf61SXHg1Y2nuYaYOc1l1oqKRQED+guysVI2DvcTw7cdNBiVrYFeLrpynK4h7cWLcAgeCTNclMe/pC8AYQDUu5WPO5oILmQ==","layer_level":1},{"id":"ed522942-00cd-413d-9171-46322c66de8d","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口还原事件","description":"window-form-restore","prompt":"深入解析windowFormRestore事件的设计目的与运行流程。说明该事件在窗口从最大化或最小化恢复为正常状态时触发传递窗口id以定位目标实例。描述其与windowFormDataUpdate事件的协同关系在还原过程中同步位置(x,y)与尺寸(width,height)信息。提供在Vue组件中监听此事件并重置UI布局的实践代码建议结合过渡动画提升用户体验。指出该事件在窗口状态机中的关键角色。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":2,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8209949+08:00","gmt_modified":"2025-09-24T11:55:40.9590799+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawfjRyg9Wy0FKfyzNH5VYMI4MZNsmX0BEtbdt+zOVZb7CtIA/Bv5qAJmg+/LGGjbH2FkxHRSzgTY3qmn0Mpe/y7K/4Zt9ENJWMSx0y73l2fmhqmAFWO16oZ47XrYdhARSDSRpnhDMIszfJhBFzWKzq6FOi/ieYRE//7Gk4aoDSH7smmtqSOQgme1Cpcc3fRXsVNpMMuJ5BFmgxfjaaq2gZ1Aq5knnm+0VH9ZYlDSl62fMUIcVer40zxxMeepqbFU2kz6b1gpiTuuJv1X5KnBIXM/QErqkNPxbZZu37YqHJzbYsVHcLGOoGdFOVE2YB5GjwDqzPNI2/lPDyPNayak/yfgRVUE0cJ2XsBkVBf9RXu/mu9csuRbozreXx0I6mHcXUMFKP3aQVnjLRSlAuzW4h7eyK6MCozGlPuLLiKwPwo/mgEDO8YSZ9r5vJ6peDgpdF/7frVXxqcwu6M1bsu8AK9zXGwLC0lie+aeZUfd2B/+7yXxInb/8iUHVkvtUPsQ80pSpajSE+vzkWCUuJxYI3wKX8/OoUFIpmbFppHW07M48G6k1qdL5u01/4R2d/nyYrCsdspJ34J0W/V87yPF4P60BkujtS6Wtnk+WTFmqJmu+rMmvGnw6SHKHjqkPgvNkQR8bENXVGyyye0+JZlnjp2+bUkiYafCg8fGupldY2kYCSZu/1QfAKDcK0/UlBxHT6sRktYTsWTsrmhFKXAc2JHzjVB+ancdRKj8uwkTzh/H1x7BRd2DC3XPxJJn5NBb4XBgnrANYp3bwUsguWfiLQu2Tav/7NyBruHRwiACqwyWF+p3b8TUAC1VKLRsD3l0kzj+LhTX/+tNJ1tuwlTTcqn1P7wiaVrxdi6Of86qVKF0Yj1ODW147m5juN1vCjvJS/PSVNwhEhzpNM3uwZRWIkzFkxIFTj6pMXSmKWjuwuvlkEriQcJUr+TOik1gHGYvwVa3RUV1qdF2reeHITH8LB7A=","layer_level":2},{"id":"d69709ec-a40e-4993-af63-9dfa6203e1a0","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"UI组件体系","description":"ui-components","prompt":"深入解析项目中的UI组件结构与交互逻辑。重点描述DesktopContainer.vue作为主容器的布局机制以及AppIcon.vue如何实现可拖拽的应用图标。结合IDesktopAppIcon和IGridTemplateParams接口定义说明图标数据模型和网格参数的设计。解释组件间的父子关系App.vue → DesktopContainer → AppIcon及数据传递方式。提供模板使用示例和自定义扩展建议。","parent_id":"","order":3,"progress_status":"completed","dependent_files":"src/ui/desktop-container/DesktopContainer.vue,src/ui/desktop-container/AppIcon.vue,src/ui/types/IDesktopAppIcon.ts,src/ui/types/IGridTemplateParams.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9546207+08:00","gmt_modified":"2025-09-24T11:42:55.2841688+08:00","raw_data":"WikiEncrypted:olAPfnTddGwpj/UgpBjR2+Msft6uTT20LZDm0DpzpfWj4tqOzJGpdXFRqfAudaHVGfV41YP/JnI4RdO79WHZsC8w9J/rPsjpCoH+aAjyGgfhJF0fW1qvJIcd0KBucAywsvEuP5EyWlszI7a9LE268oISyror6rLpmSr2iyZr+aogYqR9N2MeYAVELVHVfR1nF1HjgSA0+/2eVQuKXnKX8sgk3Ew2+G6N8gETYqelucOR5ZLhPXs1cUzoWTqwsTq8Y5vju17/F1VTb3nvjoNrqa1hvH1kw5NukxvqxDxiI+CTqRKdOMBl+YVtyChkePkeLIEQ04b8BuT9JLp0r8thS1AvC+SMb7E5iUreESZDREjbilO758YxvhC3uZCrKeyV2VxRa+xo0vviU7oLkEBj7VJraUDEx/wVOkvPdcXbqFPtgTCG0r1OU/usKzCek6kx1H1KS3lFGHx37/1C1/A23Saf8EtlF0SSTuWgixEEztBClewLg2G8E93mZ0pKdXRRl2EMCEcB8c9aMze9QAG2797SplQrgsT7nY331bSCUlUznXDvAphLYdiCFHsuYwU7QIFz24H8m7GVbXu9Fx4RMDdU5fBPc9gB7VS5IRn/8SBGH82d/ku3JwGOUZszgo69T1SQl/asOA+GHNiutP01Es7nh8iir0HY+tfqAIM/upbObBSRn0UGlSduv09UxlJ5C91SCaCrJmGc+g69Je3ZKtZ2dP9Dqb64+mbBFTC5WceFFnHHakVJul2TGYvAGiS9njvyGVb5EW36SE+WCz+mYm52KCffSKsSYc+ms+1GbToTU9neeTcDJzFmcJlSCRZgpyZTtldQBi1NScvQuW0NH1BsRbydN+DeYbUjzAblgA7w8qVQonF4rvUvFsoNJxstcDx/82UWii/veB/jku5vZEWTpvahh12iL61KVLBOuDVAOmBJvT0oW2Gy8TzjH5kAGiC0qA1p69hEPwIfFKCfwnHFli227BgVopvp9K1aPGL6huXhu1iVqiwaawUsZe1btzOHNmie3/BDYibs/0Kbz7usS2hHhJbyTyYQo7FamLa7hsmrorSzsBCkufMfKDq3Dq3919J54b/W1I4n0fQyh9tVnvrLf/yl97QqPUg00OI=","layer_level":0},{"id":"4e1bb658-6b43-486f-abcb-18d9aa0bb81d","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口关闭事件","description":"window-form-close","prompt":"系统性地文档化windowFormClose事件的生命周期管理职责。说明该事件由用户点击关闭按钮触发携带窗口id用于精确销毁目标实例。解释其在内存清理、DOM移除和状态store更新中的核心作用。提供通过wfem注册关闭监听器的代码示例包含确认对话框集成与资源释放逻辑。讨论事件广播机制如何确保跨组件通信的安全性与一致性避免内存泄漏。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":3,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8259867+08:00","gmt_modified":"2025-09-24T11:55:36.4309511+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawWjyeIGTqtdeAVJnGN7GcJg2bkJm0LIOi4Rt+/d5vq1LDGHpfNnWSpLcXzGv0+TmbsK520wX8H/i/9ihheeM5SpWjKgCCQNbcgShyhXoA6ovMakAkOUHYyLu1FqrzqayLrQV57QSr2ONbylDgQ1L/AdUAg5qMDsy7qfwQrnwfAeTpacMfAwXPQu3GmpWU1OKygVtqkHjJl2j6BItQzk2RLrEO2CAMwEqC1w1uq+n3VIEA30CQ9M6HcH9CKdQrgarjWCgiygmN+FeKLs2ereiYNmuldzGc5TWRIFc4rsD/iKA68Vkx7ogs+yfqtPSmPn9eXvLtxGJoMHfICKyX0hSssApBCB3Ll9d1BYlSXe9etdW+wFXrTE9Ox+1lXe7GXogE2Z5llx0nN/WG3rdvpuyxB47GAECnx8WwAbEdaee8Yl4099I5DGi9/B8d++RpTGKUpFVaQJI+hsriI8LX23S8sdSe2ca4YqOtMxcC6OmVCqnwgJnFHHCkw9GH9N3pRqkPDcrL45ek6gF6AWwEWTqshTDuYj08y9OHbl7TAFzovJ6uUWb4R0tsUtGYE5GZqU8RSEVDIhR7Q4nDWQ+yDTU4wNPjA5xZXNmzQvr/Sm/MiCZCkvf+z1L06Gq+yzlcQo03xBdKo2qmJW58XxLK9rpGO6fV+9i0qYt6DOlP2xob1akEVxq7nr/1+2mIis21N0MRHB85+Rz9ob7Z82N72ySSYdxz54z7pyYxYFmRyuUs5SPwuxXutgr8A3TEgbp//4uhlXJjuoSi6H65KqQWEcM+t0bMuBqZcW7hBjvUBiALgYNkVoGCegR0E2CC03dPREf7HW/vzQtCVOXijAH39sv7W/YGUk5RQpecYXHv0QysuhHneUht8kJASwN69F4Dh+KvzIE7pQW1w1QJKOlr6B/p/MbaGezVIZBLcqeew2/opeb","layer_level":2},{"id":"df7d8b9c-d734-4dd6-9ee0-247c0b9c1667","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"状态管理","description":"state-management","prompt":"详细说明基于Pinia的状态管理模式在本项目中的应用。以counter store为例展示store的定义、state暴露和actions使用方法。解释其在整个桌面系统中的潜在扩展用途如全局状态同步。提供在组件中引入和使用store的代码示例并讨论状态持久化策略。","parent_id":"","order":4,"progress_status":"completed","dependent_files":"src/stores/counter.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9594231+08:00","gmt_modified":"2025-09-24T11:43:24.2540304+08:00","raw_data":"WikiEncrypted:29DQGcj0Xkj5ar8OataJBBxhchc25ft/oSjDSUQ9oFMuTtSh8oXnlbImzVMruuEkrfNOa4VI6r5QPuUjp3qOo7b6QA55UPJEeD1gFJb0ideVfw9+zkFGmF28q27hG+w3apQkBJwfJZpbtR6rECgrB4r+9WPb9CQy0Jbzp6h8Jdl8ULiM8rgXRHFqCsQPqVsE/ouqK5m8KvJFEmGCn6+mHJevNgxAgXDjfwYFUTAOvZarwTR5f0RTT45Q1ZOCxDR/EKYLTUY6zLWjL8FIAN5HurBOPsUhv1yKlOXNPmqKnOXZfckXrY7+AUQQJi/RHHH8F3G1At11on3A06UvjD9p6UVo4Vd5YXNNAkY8VxxerrdH3AUTjhDMLduJhbj3HIHSeTbggF2nKnozmpCSQ19RrQwOCDc+oblh92L63eRDEaswiD1pp5AZ2BB5iPXEWWHtjZk36CmQ7L0OlirrCgbqdOvFGu9202pH4wiNXP1kx4QTq0ZkuDEeSFvZdF9D/0Hc+jpEbwRUeeDRB8Fnw06k+/n25xFcpozsRwlADGa+AY4IU5Qd5ByxR8WWdqCw2qbFfmBZoRR6uVfzc/sMYeHQrAZWYq+bni8HHsTTWaNQ5u2mpFbo0TW8l+VSeVHPg6XiSkwwxhmyX4rVgzeeDS+dBmgT57ZMs6bRqvD7f4G4s9nZkmm9StQi1kMiHbVWFoa28HRChcdP9xzUeSSzulQgL1rK9lsEo0dcDFxAqyygprGH9wyzfgFtQQBZszwmB4mE7s8XfdI2K2+7Pi3LAfEqDA==","layer_level":0},{"id":"090309a2-d471-4812-9b3a-9962ab81c22b","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口聚焦事件","description":"window-form-focus","prompt":"详尽描述windowFormFocus事件的用户交互背景与技术实现。说明当窗口被点击或激活时该事件广播窗口id以提升其z-index层级并应用焦点样式。分析其在多窗口重叠场景下维护正确渲染顺序的作用。提供在Vue组件中监听聚焦事件并更新activeWindow状态的代码范例建议结合useObservableVue实现响应式更新。强调该事件对桌面级应用用户体验的关键影响。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":4,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8318961+08:00","gmt_modified":"2025-09-24T11:56:47.9034778+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawQADM3DCk5tTxVIKem1anUvN22zcwXxT3Gus7VawksaH+R2jgR8Bh87CIqxOIVWO2OQ0vMlJPDdqNpNNvXPxn3hul0k/zuxbwWA/QVJ8brEWR5NV9shexKIlo2FvhRbRG/4R1CNyGXaCp1OFlMM6A17/pT8QVI2KbYIju6qWjm0010IsLB1X78GCqATNrA1jnfrzxNCjt85wL4KI3WEVFDN5LjrW3x4JEAufAvIgIBenVlgrNC7WNpT4zDS+PNky0ngn2DyJ1dB4TWOGx/FNRT4/Oqm6d9wH0rjniuXRd2D8Yg3cwv0qT2yMH1E/rW5rGwtrkfCpodVOZqcL1YB80Mj2ZY6/M9DQvRimQ5Z7Fi2WN0zshWABx9P6k75hIiXwrHng8VFSHP3R18tcNmTe1YzRNcGDYRS7YR37OSbGNrEIdO+fEzQ7iEJrFkD4ewC8Wghvd0DKuflZn4VEVWdLeW7d4ytmPImudossFlBGu49Z1Q0iAe7RlfNrvn0KnX/gpzSkT/6XEcZ76vX9jEZN7gEioMgDfq+j+ig7d2qOXkY39So/hJUYR+Yj6zmY6cIsHoVyua8uSwILx2NiWWbQJUN0PcXdwuymAl2b9CEI/b0hFk0V6Nk/g6haB68W8dEq16knzCeNV016PR/QSKvKf2iG6Kf+mzO0JaFv0eEJ97LIOMuTULfsH+Hj83PfPjZXHhsOX+Ib1Wt1Sg/94d5Ra8N7/2vYUJI7gCtKcLHZzCilWySWi+dv+0staLUhelof318fDXjWOT5hbyfWMnpIYJClAXgnuegQqOhCrMPSBmqlKyahu+q9E/4E2i04w5QHRY6AwMRsUY3/dVQvtFerYP/PdZp8LkPbWtgMs0RprH2sEOJom9SMPTHSCDQdtZXEBEmXpzOgYyZ9cFYsFZTl1Tw=","layer_level":2},{"id":"aa21f1f8-88bf-4d5f-8445-95fb19c74ef2","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"事件系统","description":"event-system","prompt":"全面记录自定义事件总线系统的实现原理与使用方法。基于EventBuilderImpl类解释addEventListener、removeEventListener和notifyEvent三个核心方法的工作机制包括once、immediate等选项的行为。描述IEventBuilder接口的契约规范。分析DesktopEventManager和WindowFormEventManager如何继承和扩展基础事件功能。提供跨组件通信的实际用例并说明错误处理和内存泄漏防范措施。","parent_id":"","order":5,"progress_status":"completed","dependent_files":"src/events/impl/EventBuilderImpl.ts,src/events/IEventBuilder.ts,src/events/DesktopEventManager.ts,src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9636824+08:00","gmt_modified":"2025-09-24T11:44:20.9077812+08:00","raw_data":"WikiEncrypted:W27BoG2tWSBKbrlfVNVQ+jhnraa0wnmgMERgctkchXG+sZDJLZiz4PK36MbNagS1/AYMoVn3iLvz5CiipDokxbwyJu5rX6XHLSjq8Vg+c+DHzH3UfbYeJ2KpLvlsFNX60ZdLuSkIx97h/siLc70C3wH0UEsh8VDCZuW0uJMndmlKL5ONcwwx2kVe6yY5doy9OgDUEYzfaGTo83XCgX6FIpJ1dImmmRg6ff37v43e7cAOaP/TC2i3+oO5FUUh+tj6MxS+toyUq41He+4N/u1Me0S05DSZyPERuh5xNQUoMT1fjLW1j467ueMZg2xrUJN5MpNLxlTrlzxABmVnCamW5rmCDIJ/kJEDUuNrG0J8PCTlJXrgDtOc/yuCV9QnMRLUIAHPd3Zm63dQTsH7EuuuOnSJMsGJVory5T/fWQKTQNhUYeHemdx6x8zkXbkNF8X67NYa+Uca9HErseGOFx1NYJ28Mmqsqr45GOKOZcODHQbaprj+1vYkuGemnwt70OeggKB0tLWMqVfwfOiAVAjq2zjD4dPvqjqbuhtHw/Aaqu/x99+ONT9YinVFHVCpHoWPRUISlpMVNwwAclx2K2AowJJvQfihUmnmoiBQP/sY86o0NDWglY7lRsW0lOj4Lbhoe3Sjtp3kgDLR1zl4X7BXfWocAu994BIHuLb41yvKcwl3C9+OGqOQiZ9sUROuemhPnARvKQJX3/jK/knGbE6u0qGBh/Lq3vszctDBsev73P+YD89Q/p9ibEA69Zl4gY050bD/ShGlO5f5bNk7tyG1iIYLYIp/9fQShD98QS28tevErzFZgNWB/YdkITbaAB3vwQNg5SmOQu/Gl54rHvaV2mDR8WasxIL+OXep2EmLFazAysjkf/nBImi9dtEUGFWNh9LyPcLA7+exhn2HKCFyG4BgyBjSXqYG/Xwi/St3QxS535OFTL43n4fNrn0hl1l10DmgU986vDrvMjRXftVkxe4HBecYE3/T9sKDu/1aaNRezpWi2vFA7rr5g7cDO0NhyeTDjsUkN41W4dOMFOluKymHt8qiQxOAeRyCP3fpJQDj45Co1V/B7O3gcGdwqPA6KaN/dTI9NlnGGVvyQedahvIf9Gaa4W4wswJ8N4kLomf9CN/cIbQvzALRoFMghLDI/ZMM8YG0QVQP5fLO+XzJGvaRUed2Usb/XYabYLPk/NhbwcK2t/w0AaUw2IiOlJrK","layer_level":0},{"id":"8656162f-2f73-4cb8-be8e-7c4419753110","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口数据更新事件","description":"window-form-data-update","prompt":"深度解析windowFormDataUpdate事件的数据承载能力与结构定义。逐字段说明IWindowFormDataUpdateParams接口中id、state、width、height、x、y的语义及其与TWindowFormState类型的关联。阐述该事件在窗口拖拽、缩放、状态切换时统一发送最新元数据的核心作用。提供在接收端解析数据并批量更新UI的TypeScript示例建议使用防抖优化高频更新性能。说明该事件如何支撑窗口状态的实时同步与持久化存储。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":5,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8374562+08:00","gmt_modified":"2025-09-24T11:59:33.6314922+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawRF91O8i+5mDgtTF2ZywtB2ydzj1TIgfgzGKEMlGXN4zYQnLJMuJACEIll3SCA7RxiELFQeQDPM/CL8VYLzpdgF6/AZj6yz0KWvj2TVPVxoc4ANKI6T2+0cSMhEa9EUU6Z5JZol4UeAPV1ivIUU2/363ZFrnQjLhhKb01P4kZ2hx5Vnm2gWxNm4IMwfI76f0h84+K+Dbjn5MFLLACvs/V8v+EhfnkOKFlHLQ82K3yQ/ZJgt44NBlOcagFFaKmIjx4nbATDCOXVgoymWc+6wp6D7j0P98iIzIGvA4skf/bTm12MJjvzD2jfZvfzzTBB8BXkhmRO2FZQyQgyfKUqTf4lSckkxrPSh/3r7doM7cKFoHaceloE+6Nc0bEZR6XhFEbtN1qikmU9qfdvPHHZQ6MZcnZ1J0DCrVa0POjJBAxtC6sQkHp9d8GrDCC+LgnDTr6i/v/juKRyEzk14lbUW1QvwjiyckXq+qisZF0l0JLIXb1BqCs3fWnwRS8ycQrECGa+nXF7Y6OiexYQ8b/v4DzG8/oLetVCi0+czbEUjBSKWf4mlWfrsF+xlib4tjAlK5UjbZxrFue6fBsXpgjQOemCBKLeEB7GsSJqY4CXbSbsX7oKYgcUJsbKr+MkTt7OdgHqfb439Ej6NZVp2bjRl0pzBiC2MAf23WZ0G484LhY6m7T5iv+ZUkDCkd4dmmJe/FKuirttQoG+l4oyMdpeBuLhQdwH5ZujLROsGVmwGPHgoJFp43VcPfNHFwpGjZnNxpWGdGqEI64PTtjxqBHwFdTRTW1v5UQCjivxj9Tnp5KBwA7vjnA/UDEJ01nXe+cAxJQPyGAUpkL9vUp4ykA+mVpZ6P/fuEYTeSWScfjCP0Iej53ob/tZWCEa+jRrZMs2HEQBYUuQ84joW3ELNHZpI1n3ezX2BO0h2R9uuHzKeyahj0WQxebo5KdzeROLhiGfk4qhnsV7TxJmXxiznfKzEwENAvB1nArtd9wKLC8ZZkjE+FHYTmYyZJPVRWv9NlpEhHhg==","layer_level":2},{"id":"0e04207c-5112-4d7d-a6d5-ec24c3e9dab8","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"响应式布局系统","description":"responsive-layout","prompt":"深入剖析基于CSS Grid的动态布局实现机制。围绕useDesktopContainerInit这一核心Hook解释其如何通过ResizeObserver监听容器尺寸变化并动态计算gridTemplate的列数、行数及单元格实际宽高。说明gridStyle计算属性如何生成CSS样式对象。描述appIconsRef如何根据网格重新排列图标位置并利用localStorage实现布局持久化。结合basic.css中的基础样式规则阐明整体视觉呈现逻辑。","parent_id":"","order":6,"progress_status":"completed","dependent_files":"src/ui/desktop-container/useDesktopContainerInit.ts,src/css/basic.css","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9683081+08:00","gmt_modified":"2025-09-24T11:45:24.8154683+08:00","raw_data":"WikiEncrypted:hjmMKQe6U1Jb6Cx3gbGDIPeFvqmiH7Hi8XdAo+9+wow3ec/q67a9z4Ljkuk8OuRYWZp4QcQ0IUrLb6tz94QKdSEKjXiYLYgzeAciMGSx3A2q9lH4tSMWDA+8sB1vnl+TqybobktYRSUS/O8pdlxOBko14xTbTQlNNG8yMnOb7jruIlvWAGJ/SilqzlkhaakVTrXa88FtsnuwbE+1++8N+yaOTFiuU/UevEhMUMZsZ5hRxRJtllECeDEzPbydThrtkHd7orDjOxgVepwUAoJciLI6itAdYQYnTlmkJJ5qzVU2PnV6AHrIXbtJYniIdcfF6m+5w6g5BdH+kP6UrAvpyY10B3+vsFnem31lCELf1sqngx/68CL9aJyIbI0KninebyZBUep8ZJp8wxzCp7USJlLX5Vn0+rFebRPn/wZSdczU3Ss1xaBfAyBSsO1s335M44JwHv+sK84oyXLECWJPoAPqLXN+sjlSK7N/Ip6W1R4fNLQpC11JvkurzH/1Ck3TN5HofbUTkWsbp9awAinEXCkqNslF5n8WyOX/XDmNhTUZRVdpCIep1/ZSRK1X7kYBFlo/JGmZqV8pdxYj8eL/1o9To8yPrpT6o+/NiMd0DVvYlW/B4P7Az6fmOuOcE4XgMf5/dWz4MlZscmQhtqqo6n/jkzYsVtVwxEu8TkJX+aX6hPmVWFuDwtKkO7VrMzhsfQrDtr+QNA9RgVGzZ52F6qXnmsd1fbQyghnKdH9ISnFGU3N2msCu+jEfccD6urylcPpYg4ghoH9bAbpU3QpWtb+7PIp10E4XaoQ+F4jY+21kmafS8ON5Ku/78NbqHBi3nO7uYWDpVTVnusDcQv5ARyWt8rfIsbT1Acc+FGQNfC2RKdH1DXnNpIG76CDZSlwvyDJBh2z5vIlY4PUItlDdwX9R1+nnJz4ZFlQcfPeKSz+CfXyghOT7VC0/TryJdHlb9Dq4YYARXcFmSOnO4R6zbhnjyq4lF44IIlaDNoiT+ubNAW4xAPfUZGS9hNmeUCd0tnZTTpENyfz8cgfrrxlh/PSSLcwBmAsKVXEki539EydrqV48aOpTCMkPr0U688Ha3tusoZNosyP6cVtFGIRDMzLN3bjrCiGJfJFcCVN0iMA=","layer_level":0},{"id":"4e6b288a-be6b-4d24-a742-a2635e3c1bb5","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"窗口创建完成事件","description":"window-form-created","prompt":"完整记录windowFormCreated事件的初始化语义与调用时机。说明该事件在新窗口实例成功挂载并完成首次渲染后触发不携带参数表示全局创建完成信号。描述其在启动引导、任务栏更新和快捷方式激活等场景的应用。提供监听该事件以执行后续操作如日志记录、自动聚焦的代码范例。强调该事件作为窗口生命周期起点的重要性及其与其他事件的时序关系。","parent_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","order":6,"progress_status":"completed","dependent_files":"src/events/WindowFormEventManager.ts","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:38:56.8426227+08:00","gmt_modified":"2025-09-24T11:58:32.3545413+08:00","raw_data":"WikiEncrypted:FUZS6U84+pFN68Gw9RhawXMjNw2Vb914lWfbB7PXUTQqoSk7zlm1kXVVAtgb7HvTElYSQcXQ8Ez1CmkBLJimdRthz/5SSF26PBuuTsAM+izWjNwF42B6LOVKrVevN0RqLuJf3uH+MyyBau8YOPg/DvWRFNwJWXPZ/XV2x6KLWJWHjHcFKETuTRzihBt2ff4uEX/X1eo8NEv5qV1t2Zvq5f1svI9/Q6jQhyNJdwXzfi5EXbKGpwSK/8f+HtNE6aJj7t2ZOj8V0vGK7G2Euk8D0V8VE73fQRP9g2yl0aXph0oYd9N9kjD9oBLgwnEb6KXVwJHC6YWrIli890F7KVZrxkTIfLYMwuuIPULqAdI9QISX6FxMlD0PVC0V7SktSw6oO1AZI03q0G+Wvo+jsWSq8J1Fc6Fzx9Oh4k88Q8YnBD7i/CwKqcT1LqDLWUPQddoYYwnYhpGY81wsj9S3Hdl9oaAedRb9deZxXIfu07TrhGMWGPfytmHnijqrMH3ghfzmx/1T5Fmx79Xutj0kbpYm5cjE39tIsrEqqLIvCi3/G9rZpzGD2E2x0gvW1nmAEP3P0otvzjBzqKWucSEbo0P4unWu0DSF9/DsznuXe/Si1JnWTlx8Zop6b1PCmt8tRqHqNKvwHe+/gZp3dUr5UNkyojQokKtdtLCEbLaMZ1ebtSTZEvG4JaUVflMo6XFl1TNIP6u9KKoVSXnYUZ20XZ1Nz8RYGcudR1MBKVjPMvon1fCRxtNiOcB1t2/ZbHcYK7MfstSF+WBKKZ9CYA+2Om8Z0ENqUn6ap1OtEgpDF6TEJPWbGsCmS45VHemSL6qCtOauR+0ixvue4A8pd79Urs3Bi35x5b8x337aTdou/6CPQqm2FB8lyYI6/YDMhdHFlnKy1shQvgQYCXiYjumJ5CtjH3frsC3KxRZc36Z38vLVBrBWUoNoeOP4oW1b8La5cefoK96S5fJ3ZGOZVbBn5rWfyvXsaUn5iLMsH4dPO0MedlUmzjI92seAvzKQpp0UcdNN","layer_level":2},{"id":"e5f6cfc1-7266-4b2e-a0d4-7e8f96b2b122","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","name":"构建与部署","description":"build-deployment","prompt":"提供完整的构建流程说明涵盖开发构建与生产构建的区别。解析vite.config.ts中的关键配置项如插件集成、路径别名、环境变量处理以及uno.config.ts中UnoCSS的定制化设置。说明如何通过package.json脚本执行构建任务并生成可用于部署的静态资源目录。给出部署到静态服务器或CDN的最佳实践建议。","parent_id":"","order":7,"progress_status":"completed","dependent_files":"vite.config.ts,uno.config.ts,package.json","keywords":"","workspace_path":"","gmt_create":"2025-09-24T11:37:59.9730261+08:00","gmt_modified":"2025-09-24T11:45:49.4115988+08:00","raw_data":"WikiEncrypted:ZHd6gDb1oAMJeik+Vv5fPt4q1/347QQ3+mYbyHIfJP1/AwRevRaiY4B/rXvjsi98diP0KR3sR/eIhQWQxbyzuBz+oA5BdkJXzobqguvzb+jyVg8iIl58jMTaRFBI/u5EUZpQoY+29Nco9LVHEFNUV3MCGCACfPX8VPQwmyzF3RKtixDDtAWW9D2WvCNVdTOcEgfyt6yyLEw898wu9W0dXXA4Uxztb+TyHAJh+Kn/PXxsd7aDx6p6ZRFXVGyybaBras72KJOLYwHTEl00j0OOHiLlcsflxGgg0CBBAyODpkE26fV7r3kA39MnuUopomjNlqzBt5LxDjZ6mjXKKpRB++amMIAZfezK8uKwqOXsdd/eBT135sJ75R7hpplNWVw3pHT0+5DEjpE03qpIRpa8CUKfjtHdulZi9mAWxsAMXoWKPHzy8v25fuYG2r4iBCq5tJZEmEYwMEr2CUR4Dl6ZKrvcKockLv6Y8CC6XnABL47YYyssb7fizcAZ0ZAyLi59nZGUnQO4JQ49Jmxk5Fkd2s7zJU4YZitvmaUOAvYg+ge+xu3fKz+VJlrNNUqMyhY9AIeX3YFWwuwYrnH6dMGQYjtkVfOFS4ZIytFEOrlZ7kD4d1nNbexGlowYbF30LvkUTZPT+2srEB95gtn0UHhhph0YLfFWyLZeJrYI6EiO7vYKSfVKQbPgga1Dacwk/e6ac164kxqqLGngRJVXaO6fe64YK/NdcmxmGXiZd90PsIfuOTHSW0gxohGqtzwsg+c4+nEZx04/ug3aR+qWzjOEp6J3d12aYeiCQ8Na5/ZFcEjNJQQ6aBJ7bQyqN123O0TsB3FZ1x9mrxW1QjIAYLFslvrqmGLTvzbmr7cY2EwD+P/tdsu1yLmIYi1cBH7+ikYLstd8rthSTcAxhBhA1k6TgPeUw0R0vBQ94fZf02nZ8P8=","layer_level":0}],"wiki_items":[{"catalog_id":"d7de51a8-bfcd-4a18-9eac-e44a4b38b8b9","content":"","title":"快速开始","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"b9e9ea56-5beb-40cc-a17e-b78322700c42","gmt_create":"2025-09-24T11:40:49.5833471+08:00","gmt_modified":"2025-09-24T11:40:49.5936006+08:00"},{"catalog_id":"ea46b30c-f8c7-4da7-a096-5ed47aef0ec8","content":"","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"41fa31f9-e2a9-40b2-a8cb-e5dc1a5f87df","gmt_create":"2025-09-24T11:41:27.0007735+08:00","gmt_modified":"2025-09-24T11:41:27.0221945+08:00"},{"catalog_id":"7df11792-ebf4-4273-9d25-521e61030f8a","content":"","title":"技术栈与依赖","description":"technology-stack","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"a0ebc913-eb6c-4e84-876b-8b70df201643","gmt_create":"2025-09-24T11:42:05.5856997+08:00","gmt_modified":"2025-09-24T11:42:05.6048577+08:00"},{"catalog_id":"d69709ec-a40e-4993-af63-9dfa6203e1a0","content":"","title":"UI组件体系","description":"ui-components","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"cd4e8e64-364b-42cb-ae8e-51b87893b90d","gmt_create":"2025-09-24T11:42:55.2666365+08:00","gmt_modified":"2025-09-24T11:42:55.2855775+08:00"},{"catalog_id":"df7d8b9c-d734-4dd6-9ee0-247c0b9c1667","content":"","title":"状态管理","description":"state-management","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"02c47c0d-15e5-4fe5-bf0a-2f0099ad62c2","gmt_create":"2025-09-24T11:43:24.2341735+08:00","gmt_modified":"2025-09-24T11:43:24.2551856+08:00"},{"catalog_id":"aa21f1f8-88bf-4d5f-8445-95fb19c74ef2","content":"","title":"事件系统","description":"event-system","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"caca8d03-ce84-4ba7-94c2-64ad61dc3de9","gmt_create":"2025-09-24T11:44:20.8904309+08:00","gmt_modified":"2025-09-24T11:44:20.9088268+08:00"},{"catalog_id":"0e04207c-5112-4d7d-a6d5-ec24c3e9dab8","content":"","title":"响应式布局系统","description":"responsive-layout","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"3960fea8-9325-401c-ae56-7556635d9aa9","gmt_create":"2025-09-24T11:45:24.8057165+08:00","gmt_modified":"2025-09-24T11:45:24.8160823+08:00"},{"catalog_id":"e5f6cfc1-7266-4b2e-a0d4-7e8f96b2b122","content":"","title":"构建与部署","description":"build-deployment","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"c5d04b78-1a67-46c1-bbe9-1e59efee379a","gmt_create":"2025-09-24T11:45:49.4037396+08:00","gmt_modified":"2025-09-24T11:45:49.4132653+08:00"},{"catalog_id":"a7a86a66-7820-4786-a494-f5a7487ad3b9","content":"","title":"DesktopContainer组件","description":"desktop-container","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"d18c07b3-69f1-4e27-b56e-a8b9544e03f8","gmt_create":"2025-09-24T11:46:57.1919746+08:00","gmt_modified":"2025-09-24T11:46:57.2091996+08:00"},{"catalog_id":"3f617ac3-d485-4073-8a70-85e937c00c8c","content":"","title":"核心事件总线","description":"event-core","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"975e680b-61ba-448a-b383-99a35f504732","gmt_create":"2025-09-24T11:47:41.2047486+08:00","gmt_modified":"2025-09-24T11:47:41.2148054+08:00"},{"catalog_id":"96cac29a-fd09-422c-835e-c063ee03a149","content":"","title":"布局初始化逻辑","description":"layout-initialization","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"96adb5be-dc4f-4562-8cd5-dfaa2632eb6a","gmt_create":"2025-09-24T11:48:40.3925375+08:00","gmt_modified":"2025-09-24T11:48:40.4101606+08:00"},{"catalog_id":"45ff00d1-079e-49ee-a2d6-e4537fbe574d","content":"","title":"AppIcon组件","description":"app-icon","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"68daa48b-ce9a-42ec-8e55-ac643381a1b1","gmt_create":"2025-09-24T11:49:12.2155615+08:00","gmt_modified":"2025-09-24T11:49:12.2338845+08:00"},{"catalog_id":"037d6505-62ac-4541-84aa-fda2fc3e3775","content":"","title":"桌面事件管理器","description":"desktop-event-manager","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"947cf24f-2552-4d2d-aaa2-0737fc3ffd0c","gmt_create":"2025-09-24T11:50:13.613447+08:00","gmt_modified":"2025-09-24T11:50:13.6338385+08:00"},{"catalog_id":"c44fdf60-dbb4-4cf4-8f4f-6a572087634e","content":"","title":"网格参数计算机制","description":"grid-calculation","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"d8160f90-9ac5-4bbd-8378-25a1627b15a2","gmt_create":"2025-09-24T11:51:15.1802539+08:00","gmt_modified":"2025-09-24T11:51:15.1918176+08:00"},{"catalog_id":"98dff2b7-5bc3-43bb-8685-92fa05a058c6","content":"","title":"窗口表单事件管理器","description":"window-form-event-manager","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"396b9978-9232-473b-a5cd-876a4af0d45b","gmt_create":"2025-09-24T11:52:24.0618851+08:00","gmt_modified":"2025-09-24T11:52:24.0797178+08:00"},{"catalog_id":"4e8147d5-6b1f-473d-b958-49bc2660167e","content":"","title":"图标重排与持久化","description":"icon-rearrangement","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"55c5330b-0122-492c-ad6f-f017577879a2","gmt_create":"2025-09-24T11:52:39.926802+08:00","gmt_modified":"2025-09-24T11:52:39.944676+08:00"},{"catalog_id":"fd1fcc6c-98fd-4cdb-af57-ff689e2dfeb6","content":"","title":"窗口最小化事件","description":"window-form-minimize","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"33884aee-972a-4d24-a111-00dc78ebe014","gmt_create":"2025-09-24T11:53:54.1490907+08:00","gmt_modified":"2025-09-24T11:53:54.1652173+08:00"},{"catalog_id":"0fd46909-6306-40ed-b386-ba929aad6839","content":"","title":"窗口最大化事件","description":"window-form-maximize","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"46a5b3df-3ae5-4938-9836-fcf7e8e20de4","gmt_create":"2025-09-24T11:54:16.9072634+08:00","gmt_modified":"2025-09-24T11:54:16.9238915+08:00"},{"catalog_id":"4e1bb658-6b43-486f-abcb-18d9aa0bb81d","content":"","title":"窗口关闭事件","description":"window-form-close","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"6dec304d-fcef-4651-a558-d1dffb8a2ae2","gmt_create":"2025-09-24T11:55:36.4212473+08:00","gmt_modified":"2025-09-24T11:55:36.4345975+08:00"},{"catalog_id":"ed522942-00cd-413d-9171-46322c66de8d","content":"","title":"窗口还原事件","description":"window-form-restore","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"b3828780-1d20-40fa-8291-b7768e25ae83","gmt_create":"2025-09-24T11:55:40.9498264+08:00","gmt_modified":"2025-09-24T11:55:40.9606263+08:00"},{"catalog_id":"090309a2-d471-4812-9b3a-9962ab81c22b","content":"","title":"窗口聚焦事件","description":"window-form-focus","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"0ac4a034-8b6f-447c-9d1a-4781850c6b86","gmt_create":"2025-09-24T11:56:47.8862965+08:00","gmt_modified":"2025-09-24T11:56:47.906287+08:00"},{"catalog_id":"4e6b288a-be6b-4d24-a742-a2635e3c1bb5","content":"","title":"窗口创建完成事件","description":"window-form-created","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"1a2230a3-d1ed-402e-8418-144715c655c8","gmt_create":"2025-09-24T11:58:32.3356151+08:00","gmt_modified":"2025-09-24T11:58:32.3595533+08:00"},{"catalog_id":"8656162f-2f73-4cb8-be8e-7c4419753110","content":"","title":"窗口数据更新事件","description":"window-form-data-update","extend":"{}","progress_status":"completed","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","id":"6545ca5b-5ed9-470d-bef7-d3db1a225135","gmt_create":"2025-09-24T11:59:33.6132985+08:00","gmt_modified":"2025-09-24T11:59:33.6345261+08:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n# Vue桌面应用项目综合分析\n\n## 1. 项目介绍\n\n### 项目目的\n本项目是一个基于Vue 3构建的桌面风格Web应用程序旨在模拟操作系统桌面环境的用户界面和交互体验。通过现代化的前端技术栈实现类似Windows或macOS桌面的操作感受。\n\n### 核心目标与功能\n- 实现可交互的桌面容器和应用图标系统\n- 提供响应式的桌面布局管理\n- 集成状态管理和UI组件库\n- 支持事件处理机制和桌面级交互\n\n### 目标用户\n该项目主要面向需要桌面风格界面的企业级Web应用、管理系统后台、以及需要高度定制化UI的前端开发者。\n\n## 2. 技术架构\n\n### 组件分解\n项目采用模块化设计主要包含以下核心组件\n- **UI组件层**:负责视觉呈现和用户交互\n- **状态管理层**使用Pinia进行全局状态管理\n- **公共工具层**提供通用hooks和类型定义\n- **事件系统**:处理桌面级别的事件分发\n\n### 设计模式\n采用了典型的Vue 3 Composition API模式结合Pinia状态管理实现了关注点分离的设计原则。同时通过Naive UI按需引入组件优化了打包体积。\n\n### 系统关系与数据流\n```mermaid\nflowchart TD\n A[用户交互] --\u003e B[UI组件]\n B --\u003e C[事件系统]\n C --\u003e D[状态管理 Pinia]\n D --\u003e E[数据更新]\n E --\u003e F[视图重新渲染]\n G[配置文件] --\u003e H[Vite构建系统]\n H --\u003e I[最终输出]\n```\n\n## 3. 关键实现\n\n### 主要入口点\n- `src/main.ts` - 应用主入口文件\n- `index.html` - HTML模板文件\n- `vite.config.ts` - 构建配置文件\n\n### 核心模块\n- **状态管理**`src/stores/counter.ts`\n- **UI组件**`src/ui/App.vue` 和 `src/ui/desktop-container/`\n- **公共组件集成**`src/common/naive-ui/components.ts`\n- **样式系统**`src/css/basic.css` 和 UnoCSS\n\n### 配置方法\n项目采用现代化的配置体系\n- 使用Vite作为构建工具\n- TypeScript进行类型检查\n- UnoCSS实现原子化CSS\n- Naive UI作为UI框架\n\n### 外部依赖\n关键依赖包括\n- Vue 3框架核心\n- Pinia状态管理\n- Naive UI组件库\n- UnoCSS原子化CSS引擎\n- Vite构建工具链\n\n### 组件关系图\n```mermaid\ngraph LR\n A[src/main.ts] --\u003e B[App.vue]\n B --\u003e C[DesktopContainer.vue]\n C --\u003e D[AppIcon.vue]\n A --\u003e E[Pinia store]\n E --\u003e B\n A --\u003e F[Naive UI]\n F --\u003e B\n G[vite.config.ts] --\u003e A\n H[uno.config.ts] --\u003e G\n```\n\n## 4. 关键特性\n\n### 功能概述\n- 桌面容器布局系统\n- 可拖拽的应用图标\n- 上下文菜单支持\n- 响应式网格布局\n- 全局状态管理\n\n### 实现亮点\n- 使用`@`别名简化模块导入路径\n- 通过Vite插件集成Vue DevTools调试支持\n- 利用UnoCSS实现高效的样式生成\n- 自定义Naive UI组件按需加载\n- 完整的TypeScript类型支持\n\n### 特性架构图\n```mermaid\nstateDiagram-v2\n [*] --\u003e 初始化\n 初始化 --\u003e 桌面渲染: mount App\n 桌面渲染 --\u003e 图标布局: Grid Template\n 图标布局 --\u003e 交互监听: Event Listeners\n 交互监听 --\u003e 状态更新: Pinia Store\n 状态更新 --\u003e 视图刷新: Vue Reactive\n 视图刷新 --\u003e 桌面渲染\n```\n\nSources:\n- [package.json](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\package.json)\n- [vite.config.ts](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\vite.config.ts)\n- [tsconfig.json](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\tsconfig.json)\n- [main.ts](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\src\\main.ts)\n- [counter.ts](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\src\\stores\\counter.ts)\n- [App.vue](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\src\\ui\\App.vue)\n- [components.ts](c:\\Users\\98354\\Desktop\\develop\\vue-desktop\\src\\common\\naive-ui\\components.ts)\n\u003c/blog\u003e","gmt_create":"2025-09-24T11:35:44.5190393+08:00","gmt_modified":"2025-09-24T11:35:44.5190393+08:00","id":"57763d58-417e-444d-9443-f842326f4968","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":""},"wiki_readme":{"content":"No readme file","gmt_create":"2025-09-24T11:35:06.2465327+08:00","gmt_modified":"2025-09-24T11:35:06.2465327+08:00","id":"decb5b96-4a18-45c4-b070-98c1f0cd02f5","repo_id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":""},"wiki_repo":{"id":"3345af1e-d583-4bf9-99e9-810db5291e53","workspace_path":"","name":"vue-desktop","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── src\\n│ ├── common\\n│ │ ├── hooks\\n│ │ │ ├── useClickFocus.ts\\n│ │ │ └── useObservableVue.ts\\n│ │ ├── naive-ui\\n│ │ │ ├── components.ts\\n│ │ │ ├── discrete-api.ts\\n│ │ │ └── theme.ts\\n│ │ └── types\\n│ │ ├── IDestroyable.ts\\n│ │ └── IVersion.ts\\n│ ├── css\\n│ │ └── basic.css\\n│ ├── events\\n│ │ ├── impl\\n│ │ │ └── EventBuilderImpl.ts\\n│ │ ├── DesktopEventManager.ts\\n│ │ ├── EventManager.ts\\n│ │ ├── IEventBuilder.ts\\n│ │ └── WindowFormEventManager.ts\\n│ ├── stores\\n│ │ └── counter.ts\\n│ ├── ui\\n│ │ ├── desktop-container\\n│ │ │ ├── AppIcon.vue\\n│ │ │ ├── DesktopContainer.vue\\n│ │ │ └── useDesktopContainerInit.ts\\n│ │ ├── types\\n│ │ │ ├── IDesktopAppIcon.ts\\n│ │ │ ├── IGridTemplateParams.ts\\n│ │ │ └── WindowFormTypes.ts\\n│ │ └── App.vue\\n│ └── main.ts\\n├── README.md\\n├── env.d.ts\\n├── index.html\\n├── package.json\\n├── pnpm-lock.yaml\\n├── tsconfig.app.json\\n├── tsconfig.json\\n├── tsconfig.node.json\\n├── uno.config.ts\\n└── vite.config.ts\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"12f46e6f8e8eac34a604c03a25178a363da8e846","last_commit_update":"2025-09-24T11:30:06+08:00","gmt_create":"2025-09-24T11:34:54.6094997+08:00","gmt_modified":"2025-09-24T11:59:33.7531838+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"ai-dev\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"\"}"}}