Files
workspace/code/fms/.qoder/repowiki/zh/meta/repowiki-metadata.json
T
2026-08-23 21:02:41 +08:00

1 line
486 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":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"4da2335d-274f-498a-816e-733e985a71ce","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e 4da2335d-274f-498a-816e-733e985a71ce","gmt_create":"2026-08-23T10:31:35.8052046+08:00","gmt_modified":"2026-08-23T10:31:35.8052046+08:00"},{"id":2,"source_id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"cf83bb5b-78a3-41ab-b784-4cae3c951c0b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e cf83bb5b-78a3-41ab-b784-4cae3c951c0b","gmt_create":"2026-08-23T10:31:35.8057184+08:00","gmt_modified":"2026-08-23T10:31:35.8057184+08:00"},{"id":3,"source_id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"2682cb78-98d3-4d80-8500-f4419c9b1124","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e 2682cb78-98d3-4d80-8500-f4419c9b1124","gmt_create":"2026-08-23T10:31:35.8057184+08:00","gmt_modified":"2026-08-23T10:31:35.8057184+08:00"},{"id":4,"source_id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"7cf61993-39cd-4405-b952-1a4492ee2b6a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e 7cf61993-39cd-4405-b952-1a4492ee2b6a","gmt_create":"2026-08-23T10:31:35.8062326+08:00","gmt_modified":"2026-08-23T10:31:35.8062326+08:00"},{"id":5,"source_id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"c3c42189-bb9b-4be6-8713-10630657c8d1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e c3c42189-bb9b-4be6-8713-10630657c8d1","gmt_create":"2026-08-23T10:31:35.8062326+08:00","gmt_modified":"2026-08-23T10:31:35.8062326+08:00"},{"id":6,"source_id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","target_id":"d7203e41-a8eb-4700-90f5-27cf610a98c8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14962eaf-8af7-446b-a2a6-edd3d63656ca -\u003e d7203e41-a8eb-4700-90f5-27cf610a98c8","gmt_create":"2026-08-23T10:31:35.8062326+08:00","gmt_modified":"2026-08-23T10:31:35.8062326+08:00"},{"id":7,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"43838607-98fb-47e6-8aa9-11e184a898c9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e 43838607-98fb-47e6-8aa9-11e184a898c9","gmt_create":"2026-08-23T10:31:35.8067472+08:00","gmt_modified":"2026-08-23T10:31:35.8067472+08:00"},{"id":8,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","gmt_create":"2026-08-23T10:31:35.8067472+08:00","gmt_modified":"2026-08-23T10:31:35.8067472+08:00"},{"id":9,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"9495a343-d0fc-468a-87c7-115227ff3078","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e 9495a343-d0fc-468a-87c7-115227ff3078","gmt_create":"2026-08-23T10:31:35.8072608+08:00","gmt_modified":"2026-08-23T10:31:35.8072608+08:00"},{"id":10,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"db1e3b87-1d85-428a-8d7e-530c28b3dc74","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e db1e3b87-1d85-428a-8d7e-530c28b3dc74","gmt_create":"2026-08-23T10:31:35.8072608+08:00","gmt_modified":"2026-08-23T10:31:35.8072608+08:00"},{"id":11,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"a77c5c1b-f5df-4ebd-807a-fafcb6c54c0e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e a77c5c1b-f5df-4ebd-807a-fafcb6c54c0e","gmt_create":"2026-08-23T10:31:35.8072608+08:00","gmt_modified":"2026-08-23T10:31:35.8072608+08:00"},{"id":12,"source_id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","target_id":"8387757a-ebb9-472f-84fa-528901aaa844","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5c225fe5-6b5f-4893-be4d-80155a636f1d -\u003e 8387757a-ebb9-472f-84fa-528901aaa844","gmt_create":"2026-08-23T10:31:35.8072608+08:00","gmt_modified":"2026-08-23T10:31:35.8072608+08:00"},{"id":13,"source_id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","target_id":"c926a152-2358-4291-86aa-0e725cdcb0b6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 39a628d4-ea2e-438d-b2c9-7adc968ea593 -\u003e c926a152-2358-4291-86aa-0e725cdcb0b6","gmt_create":"2026-08-23T10:31:35.8072608+08:00","gmt_modified":"2026-08-23T10:31:35.8072608+08:00"},{"id":14,"source_id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","target_id":"5b3cd3c3-598e-4217-8e5e-7519c50fbd3b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 39a628d4-ea2e-438d-b2c9-7adc968ea593 -\u003e 5b3cd3c3-598e-4217-8e5e-7519c50fbd3b","gmt_create":"2026-08-23T10:31:35.8077766+08:00","gmt_modified":"2026-08-23T10:31:35.8077766+08:00"},{"id":15,"source_id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","target_id":"1585bec1-98e1-42b5-beea-d55ca741cc61","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 39a628d4-ea2e-438d-b2c9-7adc968ea593 -\u003e 1585bec1-98e1-42b5-beea-d55ca741cc61","gmt_create":"2026-08-23T10:31:35.8077766+08:00","gmt_modified":"2026-08-23T10:31:35.8077766+08:00"},{"id":16,"source_id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","target_id":"63c74bce-7d47-4314-a8c7-9a9d94ea85d8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 39a628d4-ea2e-438d-b2c9-7adc968ea593 -\u003e 63c74bce-7d47-4314-a8c7-9a9d94ea85d8","gmt_create":"2026-08-23T10:31:35.8077766+08:00","gmt_modified":"2026-08-23T10:31:35.8077766+08:00"},{"id":17,"source_id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","target_id":"89a1510f-1d2a-404a-9078-ca469e784200","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 39a628d4-ea2e-438d-b2c9-7adc968ea593 -\u003e 89a1510f-1d2a-404a-9078-ca469e784200","gmt_create":"2026-08-23T10:31:35.8077766+08:00","gmt_modified":"2026-08-23T10:31:35.8077766+08:00"},{"id":18,"source_id":"212db95b-0595-4958-9e3a-4303fbb7eb8b","target_id":"571466b4-b577-4e6e-9bf7-7e6cc0aa6932","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 212db95b-0595-4958-9e3a-4303fbb7eb8b -\u003e 571466b4-b577-4e6e-9bf7-7e6cc0aa6932","gmt_create":"2026-08-23T10:31:35.8077766+08:00","gmt_modified":"2026-08-23T10:31:35.8077766+08:00"},{"id":19,"source_id":"212db95b-0595-4958-9e3a-4303fbb7eb8b","target_id":"2a2e1303-5793-4bcd-b2a6-b37c7ec01904","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 212db95b-0595-4958-9e3a-4303fbb7eb8b -\u003e 2a2e1303-5793-4bcd-b2a6-b37c7ec01904","gmt_create":"2026-08-23T10:31:35.808285+08:00","gmt_modified":"2026-08-23T10:31:35.808285+08:00"},{"id":20,"source_id":"212db95b-0595-4958-9e3a-4303fbb7eb8b","target_id":"43a3dbf4-4a96-4b2c-b226-b88f2204de6c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 212db95b-0595-4958-9e3a-4303fbb7eb8b -\u003e 43a3dbf4-4a96-4b2c-b226-b88f2204de6c","gmt_create":"2026-08-23T10:31:35.808285+08:00","gmt_modified":"2026-08-23T10:31:35.808285+08:00"},{"id":21,"source_id":"212db95b-0595-4958-9e3a-4303fbb7eb8b","target_id":"b45d8549-cc18-414a-98cb-9af50a95db47","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 212db95b-0595-4958-9e3a-4303fbb7eb8b -\u003e b45d8549-cc18-414a-98cb-9af50a95db47","gmt_create":"2026-08-23T10:31:35.808285+08:00","gmt_modified":"2026-08-23T10:31:35.808285+08:00"},{"id":22,"source_id":"664e51b4-a072-4f0c-946c-890d23ee6753","target_id":"1ad04d75-b5d5-4956-917f-130e4e99918f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 664e51b4-a072-4f0c-946c-890d23ee6753 -\u003e 1ad04d75-b5d5-4956-917f-130e4e99918f","gmt_create":"2026-08-23T10:31:35.8088111+08:00","gmt_modified":"2026-08-23T10:31:35.8088111+08:00"},{"id":23,"source_id":"664e51b4-a072-4f0c-946c-890d23ee6753","target_id":"d659fc27-2722-40c5-a463-7e8448080c30","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 664e51b4-a072-4f0c-946c-890d23ee6753 -\u003e d659fc27-2722-40c5-a463-7e8448080c30","gmt_create":"2026-08-23T10:31:35.8088111+08:00","gmt_modified":"2026-08-23T10:31:35.8088111+08:00"},{"id":24,"source_id":"664e51b4-a072-4f0c-946c-890d23ee6753","target_id":"5e424195-102b-439e-a208-9df511602dfe","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 664e51b4-a072-4f0c-946c-890d23ee6753 -\u003e 5e424195-102b-439e-a208-9df511602dfe","gmt_create":"2026-08-23T10:31:35.8088111+08:00","gmt_modified":"2026-08-23T10:31:35.8088111+08:00"},{"id":25,"source_id":"664e51b4-a072-4f0c-946c-890d23ee6753","target_id":"0c794315-43f6-4465-85be-3907575f3bdb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 664e51b4-a072-4f0c-946c-890d23ee6753 -\u003e 0c794315-43f6-4465-85be-3907575f3bdb","gmt_create":"2026-08-23T10:31:35.8088111+08:00","gmt_modified":"2026-08-23T10:31:35.8088111+08:00"},{"id":26,"source_id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","target_id":"08ee4399-c25f-4544-a685-3b0d909b7333","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9b1805f0-53f8-46c6-a6e9-d7b166952431 -\u003e 08ee4399-c25f-4544-a685-3b0d909b7333","gmt_create":"2026-08-23T10:31:35.8093328+08:00","gmt_modified":"2026-08-23T10:31:35.8093328+08:00"},{"id":27,"source_id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","target_id":"6469ddbc-e960-4858-8c53-0103a4c76055","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9b1805f0-53f8-46c6-a6e9-d7b166952431 -\u003e 6469ddbc-e960-4858-8c53-0103a4c76055","gmt_create":"2026-08-23T10:31:35.8093328+08:00","gmt_modified":"2026-08-23T10:31:35.8093328+08:00"},{"id":28,"source_id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","target_id":"2df90fa4-2dda-4fcb-b369-ac902a2ceda0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9b1805f0-53f8-46c6-a6e9-d7b166952431 -\u003e 2df90fa4-2dda-4fcb-b369-ac902a2ceda0","gmt_create":"2026-08-23T10:31:35.8093328+08:00","gmt_modified":"2026-08-23T10:31:35.8093328+08:00"},{"id":29,"source_id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","target_id":"a6604d7f-2351-40ba-ab86-117255d62b3b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9b1805f0-53f8-46c6-a6e9-d7b166952431 -\u003e a6604d7f-2351-40ba-ab86-117255d62b3b","gmt_create":"2026-08-23T10:31:35.8098473+08:00","gmt_modified":"2026-08-23T10:31:35.8098473+08:00"},{"id":30,"source_id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","target_id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9b1805f0-53f8-46c6-a6e9-d7b166952431 -\u003e 168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","gmt_create":"2026-08-23T10:31:35.8098473+08:00","gmt_modified":"2026-08-23T10:31:35.8098473+08:00"},{"id":31,"source_id":"10363b8d-cf5f-44d1-9980-18a3e4e24b0c","target_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10363b8d-cf5f-44d1-9980-18a3e4e24b0c -\u003e 5cd28776-5ce2-447b-9d47-bdce2f77510a","gmt_create":"2026-08-23T10:31:35.8098473+08:00","gmt_modified":"2026-08-23T10:31:35.8098473+08:00"},{"id":32,"source_id":"10363b8d-cf5f-44d1-9980-18a3e4e24b0c","target_id":"246861d7-0fb5-4298-b394-ccc8627eb601","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10363b8d-cf5f-44d1-9980-18a3e4e24b0c -\u003e 246861d7-0fb5-4298-b394-ccc8627eb601","gmt_create":"2026-08-23T10:31:35.8098473+08:00","gmt_modified":"2026-08-23T10:31:35.8098473+08:00"},{"id":33,"source_id":"10363b8d-cf5f-44d1-9980-18a3e4e24b0c","target_id":"177d5baf-2d4b-4ae5-a832-97a2f1d93cb4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10363b8d-cf5f-44d1-9980-18a3e4e24b0c -\u003e 177d5baf-2d4b-4ae5-a832-97a2f1d93cb4","gmt_create":"2026-08-23T10:31:35.8103646+08:00","gmt_modified":"2026-08-23T10:31:35.8103646+08:00"},{"id":34,"source_id":"10363b8d-cf5f-44d1-9980-18a3e4e24b0c","target_id":"d49fa2f6-6d5a-43bf-8afb-b614d9a45b0d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10363b8d-cf5f-44d1-9980-18a3e4e24b0c -\u003e d49fa2f6-6d5a-43bf-8afb-b614d9a45b0d","gmt_create":"2026-08-23T10:31:35.8103646+08:00","gmt_modified":"2026-08-23T10:31:35.8103646+08:00"},{"id":35,"source_id":"67131fa2-c0ad-435e-ab81-a7f51d3e425e","target_id":"d1a9ddb5-5dbf-4e2f-acc3-e9e47ecaa66d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 67131fa2-c0ad-435e-ab81-a7f51d3e425e -\u003e d1a9ddb5-5dbf-4e2f-acc3-e9e47ecaa66d","gmt_create":"2026-08-23T10:31:35.8103646+08:00","gmt_modified":"2026-08-23T10:31:35.8103646+08:00"},{"id":36,"source_id":"67131fa2-c0ad-435e-ab81-a7f51d3e425e","target_id":"6e439df3-8cd6-4c10-811f-ff235a836ead","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 67131fa2-c0ad-435e-ab81-a7f51d3e425e -\u003e 6e439df3-8cd6-4c10-811f-ff235a836ead","gmt_create":"2026-08-23T10:31:35.8108784+08:00","gmt_modified":"2026-08-23T10:31:35.8108784+08:00"},{"id":37,"source_id":"67131fa2-c0ad-435e-ab81-a7f51d3e425e","target_id":"d57e9d5e-a11c-4d65-b4f1-55b9ec235e26","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 67131fa2-c0ad-435e-ab81-a7f51d3e425e -\u003e d57e9d5e-a11c-4d65-b4f1-55b9ec235e26","gmt_create":"2026-08-23T10:31:35.8108784+08:00","gmt_modified":"2026-08-23T10:31:35.8108784+08:00"},{"id":38,"source_id":"d7a32bef-a985-45b5-aee1-9476afb0d8b0","target_id":"51dc1365-c191-452c-a7e9-5dfb14eda544","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d7a32bef-a985-45b5-aee1-9476afb0d8b0 -\u003e 51dc1365-c191-452c-a7e9-5dfb14eda544","gmt_create":"2026-08-23T10:31:35.8108784+08:00","gmt_modified":"2026-08-23T10:31:35.8108784+08:00"},{"id":39,"source_id":"d7a32bef-a985-45b5-aee1-9476afb0d8b0","target_id":"25a9119b-6187-4940-8ae6-e1f898afc898","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d7a32bef-a985-45b5-aee1-9476afb0d8b0 -\u003e 25a9119b-6187-4940-8ae6-e1f898afc898","gmt_create":"2026-08-23T10:31:35.8113951+08:00","gmt_modified":"2026-08-23T10:31:35.8113951+08:00"},{"id":40,"source_id":"d7a32bef-a985-45b5-aee1-9476afb0d8b0","target_id":"f71f6b18-8161-4f94-bd5e-fd96c70d002d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d7a32bef-a985-45b5-aee1-9476afb0d8b0 -\u003e f71f6b18-8161-4f94-bd5e-fd96c70d002d","gmt_create":"2026-08-23T10:31:35.8113951+08:00","gmt_modified":"2026-08-23T10:31:35.8113951+08:00"},{"id":41,"source_id":"123cec10-dcd7-4880-baaa-681f910adbb5","target_id":"94d2806b-987e-4c40-a92a-8d3d4ea85c0f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 123cec10-dcd7-4880-baaa-681f910adbb5 -\u003e 94d2806b-987e-4c40-a92a-8d3d4ea85c0f","gmt_create":"2026-08-23T10:31:35.8113951+08:00","gmt_modified":"2026-08-23T10:31:35.8113951+08:00"},{"id":42,"source_id":"123cec10-dcd7-4880-baaa-681f910adbb5","target_id":"242f4c1a-4697-426a-bc5f-e10171cb2b55","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 123cec10-dcd7-4880-baaa-681f910adbb5 -\u003e 242f4c1a-4697-426a-bc5f-e10171cb2b55","gmt_create":"2026-08-23T10:31:35.8119097+08:00","gmt_modified":"2026-08-23T10:31:35.8119097+08:00"},{"id":43,"source_id":"123cec10-dcd7-4880-baaa-681f910adbb5","target_id":"5155b37b-3a1a-4462-ba73-37e50d6ed0b7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 123cec10-dcd7-4880-baaa-681f910adbb5 -\u003e 5155b37b-3a1a-4462-ba73-37e50d6ed0b7","gmt_create":"2026-08-23T10:31:35.8119097+08:00","gmt_modified":"2026-08-23T10:31:35.8119097+08:00"},{"id":44,"source_id":"b0b9ddf6-3a4e-4361-87f3-d5e2b411388d","target_id":"76dd0716-ec37-4dcb-a755-363b3a7e35b9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b0b9ddf6-3a4e-4361-87f3-d5e2b411388d -\u003e 76dd0716-ec37-4dcb-a755-363b3a7e35b9","gmt_create":"2026-08-23T10:31:35.8119097+08:00","gmt_modified":"2026-08-23T10:31:35.8119097+08:00"},{"id":45,"source_id":"b0b9ddf6-3a4e-4361-87f3-d5e2b411388d","target_id":"577bcda0-ae86-404e-ad20-4ddc508dee55","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b0b9ddf6-3a4e-4361-87f3-d5e2b411388d -\u003e 577bcda0-ae86-404e-ad20-4ddc508dee55","gmt_create":"2026-08-23T10:31:35.8119097+08:00","gmt_modified":"2026-08-23T10:31:35.8119097+08:00"},{"id":46,"source_id":"b0b9ddf6-3a4e-4361-87f3-d5e2b411388d","target_id":"0cb76317-7504-4f59-b3aa-b0638cd8116d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b0b9ddf6-3a4e-4361-87f3-d5e2b411388d -\u003e 0cb76317-7504-4f59-b3aa-b0638cd8116d","gmt_create":"2026-08-23T10:31:35.8119097+08:00","gmt_modified":"2026-08-23T10:31:35.8119097+08:00"},{"id":47,"source_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","target_id":"f441c941-9cb5-41f1-a0cc-3026a6cdb2e7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5cd28776-5ce2-447b-9d47-bdce2f77510a -\u003e f441c941-9cb5-41f1-a0cc-3026a6cdb2e7","gmt_create":"2026-08-23T10:31:35.8124268+08:00","gmt_modified":"2026-08-23T10:31:35.8124268+08:00"},{"id":48,"source_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","target_id":"ca158a11-c905-4b2e-81c6-f80e0d831a2f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5cd28776-5ce2-447b-9d47-bdce2f77510a -\u003e ca158a11-c905-4b2e-81c6-f80e0d831a2f","gmt_create":"2026-08-23T10:31:35.8124268+08:00","gmt_modified":"2026-08-23T10:31:35.8124268+08:00"},{"id":49,"source_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","target_id":"ae4b224d-9350-4fa8-b951-0ea51cf6b934","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5cd28776-5ce2-447b-9d47-bdce2f77510a -\u003e ae4b224d-9350-4fa8-b951-0ea51cf6b934","gmt_create":"2026-08-23T10:31:35.8124268+08:00","gmt_modified":"2026-08-23T10:31:35.8124268+08:00"},{"id":50,"source_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","target_id":"1fa86f0b-0a70-4de0-b6fe-5e9157a5edea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5cd28776-5ce2-447b-9d47-bdce2f77510a -\u003e 1fa86f0b-0a70-4de0-b6fe-5e9157a5edea","gmt_create":"2026-08-23T10:31:35.8124268+08:00","gmt_modified":"2026-08-23T10:31:35.8124268+08:00"},{"id":51,"source_id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","target_id":"588708c6-45f8-4b23-81ef-74e4a8f41c4c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5cd28776-5ce2-447b-9d47-bdce2f77510a -\u003e 588708c6-45f8-4b23-81ef-74e4a8f41c4c","gmt_create":"2026-08-23T10:31:35.8129445+08:00","gmt_modified":"2026-08-23T10:31:35.8129445+08:00"},{"id":52,"source_id":"c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","target_id":"fceb0297-2ad4-4242-84c7-d2bdce01d9b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c9b5b5ca-543f-472f-b9e6-1ebf9b47c352 -\u003e fceb0297-2ad4-4242-84c7-d2bdce01d9b1","gmt_create":"2026-08-23T10:31:35.8129445+08:00","gmt_modified":"2026-08-23T10:31:35.8129445+08:00"},{"id":53,"source_id":"c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","target_id":"17319f00-0b03-4719-b63d-27411e3111a1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c9b5b5ca-543f-472f-b9e6-1ebf9b47c352 -\u003e 17319f00-0b03-4719-b63d-27411e3111a1","gmt_create":"2026-08-23T10:31:35.8129445+08:00","gmt_modified":"2026-08-23T10:31:35.8129445+08:00"},{"id":54,"source_id":"c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","target_id":"581bbf3c-5c0a-42a3-86cc-318679976c64","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c9b5b5ca-543f-472f-b9e6-1ebf9b47c352 -\u003e 581bbf3c-5c0a-42a3-86cc-318679976c64","gmt_create":"2026-08-23T10:31:35.8129445+08:00","gmt_modified":"2026-08-23T10:31:35.8129445+08:00"},{"id":55,"source_id":"d659fc27-2722-40c5-a463-7e8448080c30","target_id":"ad8cc938-6e22-4af1-9972-860aebab4082","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d659fc27-2722-40c5-a463-7e8448080c30 -\u003e ad8cc938-6e22-4af1-9972-860aebab4082","gmt_create":"2026-08-23T10:31:35.8134604+08:00","gmt_modified":"2026-08-23T10:31:35.8134604+08:00"},{"id":56,"source_id":"d659fc27-2722-40c5-a463-7e8448080c30","target_id":"df589577-99f3-422f-aba7-b3bf59bab705","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d659fc27-2722-40c5-a463-7e8448080c30 -\u003e df589577-99f3-422f-aba7-b3bf59bab705","gmt_create":"2026-08-23T10:31:35.8134604+08:00","gmt_modified":"2026-08-23T10:31:35.8134604+08:00"},{"id":57,"source_id":"d659fc27-2722-40c5-a463-7e8448080c30","target_id":"dbd03d0c-9d68-44ba-b627-fe42d9882eaa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: d659fc27-2722-40c5-a463-7e8448080c30 -\u003e dbd03d0c-9d68-44ba-b627-fe42d9882eaa","gmt_create":"2026-08-23T10:31:35.8134604+08:00","gmt_modified":"2026-08-23T10:31:35.8134604+08:00"},{"id":58,"source_id":"6469ddbc-e960-4858-8c53-0103a4c76055","target_id":"55d8c0f4-616e-41c0-8b6f-a2f71830b048","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6469ddbc-e960-4858-8c53-0103a4c76055 -\u003e 55d8c0f4-616e-41c0-8b6f-a2f71830b048","gmt_create":"2026-08-23T10:31:35.8134604+08:00","gmt_modified":"2026-08-23T10:31:35.8134604+08:00"},{"id":59,"source_id":"6469ddbc-e960-4858-8c53-0103a4c76055","target_id":"78b9b2e1-da91-4fa2-9ef0-82a33f390ea2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6469ddbc-e960-4858-8c53-0103a4c76055 -\u003e 78b9b2e1-da91-4fa2-9ef0-82a33f390ea2","gmt_create":"2026-08-23T10:31:35.8134604+08:00","gmt_modified":"2026-08-23T10:31:35.8134604+08:00"},{"id":60,"source_id":"6469ddbc-e960-4858-8c53-0103a4c76055","target_id":"ad80f803-1713-4bda-a410-b00d62ec11c6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6469ddbc-e960-4858-8c53-0103a4c76055 -\u003e ad80f803-1713-4bda-a410-b00d62ec11c6","gmt_create":"2026-08-23T10:31:35.8139805+08:00","gmt_modified":"2026-08-23T10:31:35.8139805+08:00"},{"id":61,"source_id":"6469ddbc-e960-4858-8c53-0103a4c76055","target_id":"aa025a49-3298-4a65-a1b3-7d6d9b2e3e0b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6469ddbc-e960-4858-8c53-0103a4c76055 -\u003e aa025a49-3298-4a65-a1b3-7d6d9b2e3e0b","gmt_create":"2026-08-23T10:31:35.8139805+08:00","gmt_modified":"2026-08-23T10:31:35.8139805+08:00"},{"id":62,"source_id":"6e439df3-8cd6-4c10-811f-ff235a836ead","target_id":"36434342-6bb3-4f99-88e9-107551c977c1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e439df3-8cd6-4c10-811f-ff235a836ead -\u003e 36434342-6bb3-4f99-88e9-107551c977c1","gmt_create":"2026-08-23T10:31:35.8139805+08:00","gmt_modified":"2026-08-23T10:31:35.8139805+08:00"},{"id":63,"source_id":"6e439df3-8cd6-4c10-811f-ff235a836ead","target_id":"c69f75da-fb83-4b5d-94db-746b8223d68b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e439df3-8cd6-4c10-811f-ff235a836ead -\u003e c69f75da-fb83-4b5d-94db-746b8223d68b","gmt_create":"2026-08-23T10:31:35.8144939+08:00","gmt_modified":"2026-08-23T10:31:35.8144939+08:00"},{"id":64,"source_id":"6e439df3-8cd6-4c10-811f-ff235a836ead","target_id":"102b124b-ffa6-4999-b52b-1a6d5a11652b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e439df3-8cd6-4c10-811f-ff235a836ead -\u003e 102b124b-ffa6-4999-b52b-1a6d5a11652b","gmt_create":"2026-08-23T10:31:35.8144939+08:00","gmt_modified":"2026-08-23T10:31:35.8144939+08:00"},{"id":65,"source_id":"6e439df3-8cd6-4c10-811f-ff235a836ead","target_id":"20d20b62-308f-4801-a61f-bb0fbc47f005","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e439df3-8cd6-4c10-811f-ff235a836ead -\u003e 20d20b62-308f-4801-a61f-bb0fbc47f005","gmt_create":"2026-08-23T10:31:35.8150138+08:00","gmt_modified":"2026-08-23T10:31:35.8150138+08:00"},{"id":66,"source_id":"9495a343-d0fc-468a-87c7-115227ff3078","target_id":"f425a10a-7798-4e3f-85b0-f883d343d625","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9495a343-d0fc-468a-87c7-115227ff3078 -\u003e f425a10a-7798-4e3f-85b0-f883d343d625","gmt_create":"2026-08-23T10:31:35.8150138+08:00","gmt_modified":"2026-08-23T10:31:35.8150138+08:00"},{"id":67,"source_id":"9495a343-d0fc-468a-87c7-115227ff3078","target_id":"ea559159-90fb-447e-83d1-76fa0ae6cdaf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9495a343-d0fc-468a-87c7-115227ff3078 -\u003e ea559159-90fb-447e-83d1-76fa0ae6cdaf","gmt_create":"2026-08-23T10:31:35.8150138+08:00","gmt_modified":"2026-08-23T10:31:35.8150138+08:00"},{"id":68,"source_id":"9495a343-d0fc-468a-87c7-115227ff3078","target_id":"2bbb242a-088e-4651-b790-acf0c6d0112c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9495a343-d0fc-468a-87c7-115227ff3078 -\u003e 2bbb242a-088e-4651-b790-acf0c6d0112c","gmt_create":"2026-08-23T10:31:35.8155291+08:00","gmt_modified":"2026-08-23T10:31:35.8155291+08:00"},{"id":69,"source_id":"9495a343-d0fc-468a-87c7-115227ff3078","target_id":"9ee8e3bb-c661-432b-b67d-e151cddf2054","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9495a343-d0fc-468a-87c7-115227ff3078 -\u003e 9ee8e3bb-c661-432b-b67d-e151cddf2054","gmt_create":"2026-08-23T10:31:35.8155291+08:00","gmt_modified":"2026-08-23T10:31:35.8155291+08:00"},{"id":70,"source_id":"5e424195-102b-439e-a208-9df511602dfe","target_id":"5556be66-8401-44b9-a1ea-a1df560fd2a6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5e424195-102b-439e-a208-9df511602dfe -\u003e 5556be66-8401-44b9-a1ea-a1df560fd2a6","gmt_create":"2026-08-23T10:31:35.8160399+08:00","gmt_modified":"2026-08-23T10:31:35.8160399+08:00"},{"id":71,"source_id":"5e424195-102b-439e-a208-9df511602dfe","target_id":"8cca292a-a35f-4cb3-bce8-190ddeebc765","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5e424195-102b-439e-a208-9df511602dfe -\u003e 8cca292a-a35f-4cb3-bce8-190ddeebc765","gmt_create":"2026-08-23T10:31:35.8160399+08:00","gmt_modified":"2026-08-23T10:31:35.8160399+08:00"},{"id":72,"source_id":"5e424195-102b-439e-a208-9df511602dfe","target_id":"2dc53ef7-90cd-4776-acb0-cfff15f269bb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5e424195-102b-439e-a208-9df511602dfe -\u003e 2dc53ef7-90cd-4776-acb0-cfff15f269bb","gmt_create":"2026-08-23T10:31:35.8160399+08:00","gmt_modified":"2026-08-23T10:31:35.8160399+08:00"},{"id":73,"source_id":"5e424195-102b-439e-a208-9df511602dfe","target_id":"07664610-128c-45fe-b292-9bb13ba1471b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5e424195-102b-439e-a208-9df511602dfe -\u003e 07664610-128c-45fe-b292-9bb13ba1471b","gmt_create":"2026-08-23T10:31:35.8165513+08:00","gmt_modified":"2026-08-23T10:31:35.8165513+08:00"},{"id":74,"source_id":"c3c42189-bb9b-4be6-8713-10630657c8d1","target_id":"19fc0074-cfe5-49bc-89aa-05bf144c0d3e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c3c42189-bb9b-4be6-8713-10630657c8d1 -\u003e 19fc0074-cfe5-49bc-89aa-05bf144c0d3e","gmt_create":"2026-08-23T10:31:35.8170772+08:00","gmt_modified":"2026-08-23T10:31:35.8170772+08:00"},{"id":75,"source_id":"c3c42189-bb9b-4be6-8713-10630657c8d1","target_id":"8d7a0b2f-5dc4-4298-85c8-c24a1414949c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c3c42189-bb9b-4be6-8713-10630657c8d1 -\u003e 8d7a0b2f-5dc4-4298-85c8-c24a1414949c","gmt_create":"2026-08-23T10:31:35.8170772+08:00","gmt_modified":"2026-08-23T10:31:35.8170772+08:00"},{"id":76,"source_id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","target_id":"3d75207d-94ee-45d0-a698-6096ae02b443","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 168b851f-0ade-4bac-8cf8-e9a0b1dd66ba -\u003e 3d75207d-94ee-45d0-a698-6096ae02b443","gmt_create":"2026-08-23T10:31:35.8175936+08:00","gmt_modified":"2026-08-23T10:31:35.8175936+08:00"},{"id":77,"source_id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","target_id":"259c78e8-21b1-43dd-8fa4-0e8a18760af6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 168b851f-0ade-4bac-8cf8-e9a0b1dd66ba -\u003e 259c78e8-21b1-43dd-8fa4-0e8a18760af6","gmt_create":"2026-08-23T10:31:35.8175936+08:00","gmt_modified":"2026-08-23T10:31:35.8175936+08:00"},{"id":78,"source_id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","target_id":"c9eb034b-304f-47b0-9ed8-eb29cee6432c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 168b851f-0ade-4bac-8cf8-e9a0b1dd66ba -\u003e c9eb034b-304f-47b0-9ed8-eb29cee6432c","gmt_create":"2026-08-23T10:31:35.818231+08:00","gmt_modified":"2026-08-23T10:31:35.818231+08:00"},{"id":79,"source_id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","target_id":"59a72896-54ba-4535-9999-da7c7fdc7ed3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 168b851f-0ade-4bac-8cf8-e9a0b1dd66ba -\u003e 59a72896-54ba-4535-9999-da7c7fdc7ed3","gmt_create":"2026-08-23T10:31:35.818231+08:00","gmt_modified":"2026-08-23T10:31:35.818231+08:00"}],"wiki_catalogs":[{"id":"601cf011-1cbf-40df-b383-3a3a673961c1","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"项目概述","description":"project-overview","prompt":"为FMS财务管理系统创建全面的项目概述内容。详细介绍项目的目标、核心功能和技术架构。解释前后端分离的架构模式,包括Vue 3前端应用和Spring Boot后端服务的职责分工。描述元数据驱动的动态表单和表格系统,多租户数据隔离机制,以及RBAC权限控制模型。说明项目的技术栈选择原因,包括Vue 3、Pinia、Spring Boot、SQL Server等核心技术。提供系统架构图和数据流向图,帮助开发者理解整体设计思路。包含项目的主要业务场景和使用价值。","progress_status":"completed","dependent_files":"package.json,fms-api/pom.xml,fms-vue/package.json,README.md","gmt_create":"2026-08-23T10:06:35.9069717+08:00","gmt_modified":"2026-08-23T10:08:34.4075364+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV3TbVTwChn/8g3/Jvqy5Vx2onimQxwmO9XJqwumNzTs5IybRjr1oDkQzylJMTDh/+d9aZ/2GRFeknZyaFi9ayxkVsCptjL+PCCQOUO07ZpxuY5FZfSQpzuRl0y+UwJUy1KzWR/kZrWLYLFaHAeFkseWuOwsZTOevGRfQiPoI+qTBxaEt7tOoQwK6kGyTNpJDlfixuQK6vdmGGD1LWyAWPIKsD+iGVvXrdUhDhWdYvsO3UxdY62zTeg57VP7hZSnsFw0CGl/gHDp+ZbBjLNfd+rGUDQzx0VO+alodz8f+0EEXBbZJC3MIVLvBLT9/oUnUvXvxB8pbeSFGuy8bsMaW9HK1SaNJ2YN2l1rVo3mzPyfv/l2MdNauVvkc0G4AyxWKPVzqGVkmh0hMEPsztM4331a/TZ25L7ik9gjyqHEJUak0LBg7zv6memjfpe2K+AzuGefrL+fyIUfc1Ez7rVnfMMXs0nUmHLUpUNtJWHOMJbR1UwYUX/Wvw655OA2Hf24J7wlmMGbs5f+dxeCDmk/GurP80teS815Q/zQ120xsh0u3bn64J4v92BLK4uZjo6eCXTDSDbkhHu0uoRns+vn4J6QyHLEKpTYXH4yFLb7uthgJ6ZVQonf2nS4F+UNO0bLitAlscj9ZX2ytS4DCh3k88rfEQQGO8bP6Ee6Foejb7BkMgd39s0wv7irktsKqp4EaYZVxE7XXCubaM3feypj3sjFpwTjpw1rBjTSbAz1r7wXXRZXnpWPeavo/Z7BN6colhoXroXVpCJxo9fFQGw+T2O1fJNWNBFBFIrtATSqchEsWfvnewp1RxYs95hUqroAgpt1S+l9Me2VZ1A8HMZyjWE6QGJuRuG2nv88xkjRHGSIyW/N5GnD/K+Zmr9cBBaSyhwnAegWqEQWqFRrpgePOKMLEPKwkZJxpG+KZQCGgSZqlqCIyBezPAsE0BrWwcz4E7wZ+HvZen8jRmiiFsRDNJYjUuXcT4IMuK1V5kYzy2U+6pBUOh1QVB7i3V4XCWLZCS2NOcIVFJ/rQVP2v1OWMzxmPB2Y7Z4IeU4T4dGieclF1F8FDfyvmxMPW97324T7qpJvfPl7i1cyxQfyvz0qOKmuSqahwVGWdu2wPFP1P7if/LfRebkSLfsjOpMMkDiAg9w=="},{"id":"9466df5c-da39-46f4-9b5b-d453c7a723c7","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"应用结构","description":"application-structure","prompt":"为FMS前端应用结构创建详细文档。深入解释Vue 3应用的初始化流程,包括main.js中的应用启动过程、Pinia状态管理初始化、路由配置和插件注册。详细描述App.vue作为根组件的职责和生命周期管理。说明Vite构建配置的关键设置,包括开发服务器、构建优化和插件配置。解释HTML入口文件的结构和引导脚本实现。包含应用启动时的错误处理机制和加载状态管理。提供应用目录结构的组织规范和最佳实践。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","progress_status":"completed","dependent_files":"fms-vue/src/main.js,fms-vue/src/App.vue,fms-vue/vite.config.js,fms-vue/index.html","gmt_create":"2026-08-23T10:06:52.0468075+08:00","gmt_modified":"2026-08-23T10:11:24.8917842+08:00","raw_data":"WikiEncrypted:6Fw6zeKwEGma9eKCQx5Pd60zwyF8PZUy2Zq+wP7iy9Vstvq7doZnhapO/YJixT3+ljyj9kzuAHagiO/NORMget/fcUkT1ICE0uhSA43XsEJVSpk6mK0LEYqJMT+ANlqRQOgt4GxlIjeeBpmptLvffU9hlPC1B8VIt9M0VIMM3b97CmYoVvHGbJUlImwJm2TqMTQflHO5J5BNTDbSZDQ7svaQn2epk7b0BGmgcSkyR4q1X0v+SzVwplECEcnYU8D2A9iT+gN2Z8c/VSW8wj0R4gui33KSF8fq0+NsoNtec7DUMr/q2+Mz31huVPq+8qiL9qx524Ul4B2NGnt1U3n+GfEYpmhZMtmzIqxccJNntEe9m+HeEDUX3Z09fyZGnL5xJlR9AQoBPEhLUGGPA1BRa12ZyI4yVdKe3MLzpAwNxSV4nLamL5JOCeObV083RMrrjjbE5WfrOIboTf5x12XljwcSjltCDp4QeKdRKOkQaLSYdPj0InvLf163s/NK5j32DD78P+7fLBMW7+C6n1vHIKhCpeedXDwq22KknWRi92+BG2OGUKFcZxaKXJEbszYZpAx8uXdQD0y4MQ6RUQlf6UWaWXc9kMEK1nPCTuIG6MCJmWrKH1VV5Vmae7xYm2W+2WuYZ+OcvaUvE8SPopZvt31SykVggvtLZjlPN5gg3WXCwNDAsYW5RZXHoPiV2xKaVqp+CB1ej5m2CA8y4bQb0fMjyK/k6AeSG36XE2Y5cNLcyhA0TISCO3qZ3hmvdDVbmobEYELbH3UXEYIPOFQP0RJwhpWnK0hZfTBzCeqR7TTa3ZSvT76xMNlcBr0KW09OT7v3u2btmPb2XNVDYfCUJ07hfbOmyFWHJ3BIkRBzEBX0c3bUiJbwpMEwkRZkpbLbPzFAvah50hg9gddVknWQ0kagLLODORmh62hnK5urOxdrRaYo0SaiCVQfP5QGobMDmK3a4OhJHZEiMCfwhpvC+XQsL3mwyJKO5H72MdRiVmWGsz32UjxQ578Te4YPWsx+cOCXE7uJgG4Jsvodem5BS7p5pL0fgqfVbgG0VxdPbBG4/NFCXXH7sG3um7aVDkAnHfLoWGmye3T5xvjOe4LxjLOOJhVg8aoWuL8bvxdSCfx0Kg0ezs04HTHxxZfE6PJL","layer_level":1},{"id":"c230ed41-4fed-49b6-abb8-e9cf18d8bed2","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"虚拟滚动优化","description":"virtual-scrolling","prompt":"为FMS表格系统的虚拟滚动功能创建详细的技术文档。深入解释StkTable库的虚拟滚动实现原理,包括可视区域计算、DOM节点复用和内存管理机制。详细说明虚拟滚动的触发条件(MIN_VIRTUAL_ROW_COUNT阈值)、性能优化策略(如requestAnimationFrame合并重排、ResizeObserver防抖处理)。解释X轴和Y轴虚拟滚动的区别,以及colResizable列宽调整时的性能考虑。提供虚拟滚动在不同数据量场景下的配置建议和最佳实践,包括大数据量渲染的性能调优方案。","parent_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createCellRenderer.js","gmt_create":"2026-08-23T10:06:52.423444+08:00","gmt_modified":"2026-08-23T10:11:59.4382205+08:00","raw_data":"WikiEncrypted:y2a4hKtf0s+4uvn2ROPZrZ4f+V+kyKdcsxAHpCYmDFqvoP6bng/PbkBhz+GDytQIQNpQQP4Eg7DEMljrgFjMjHd0tDMLP2i3bn6qdqJq/xszh2vgS5Orwv66xtxGuYyZg8qHHE/dE7MmQvbCCbnOf0DvBRD2kvN9rexN6KkdgqccZNU840pgniLImV31MG2s4ZzSoSuoVX8/dSQusGeCK/4yipNGBwRM03je6lWyMfgftYV0G2QhRN2rZuHmVF6sT+IOETnBOoTth5P7/MV7RFIaod842TLRMAFW+69607MtLkHmJQMfjKMcge0DIL7SaaWAKF1YSsJfGaUxsGBDaQAlEiMq97KkgFXUCa9p6c5z+XuhwQLZFe3bAvAaYQnj9UmG42E0dlVrR8w9eNqx/UgTTQRAHbEZRjnGIxK2aw5QqZ53A7IOHmFMJ2WImhOW5m85FexWufIvdG7xErndiAaHEEO7hjA1bx3s2kmwT1w9EJfgqXwlAbTZ6YuikprXvx2AxQ4vnBouhWSVxnEfUNK2fpFgVeHV1Ug5kbUFo6W6fx+aDdj5xGBrmCMMFlClpArsP0FudLBPOh2JhWNDAuWr2pjd46VhDikz0xBSQ+UyVdoSB5vj5+9V9P8G+OASjjCcSDb7qlDK+W4kuQ3wt8xxBbVra0gUDxyOY22BxRlM0EG6t3G5Gx9BTVIZFpqh/sA2uPukpdIobngw0LNpcQ/hBjVzcbdSd65mL604MNNmGLGIyjmg5sdPNkRLgVBWb1uvpTf3B/y9Exnbu3FfP470Co/RqyhFfsJmcZvPgOzaK0FPXmu0mFWwq/Z6mwOcFZCvJDmj702OhLTDOL5P3Rj1bgxE05HcBQjAShBGErSlD37a+JSQtZXc9FKd9wRMaimZSPqc687O2A0++n20Ekc5XnvG4etgsVgmozi4objSRp+2Zu8Yku5cUEtycZiJHi/3kgFvdfN5pA8b7PbKrBUrd1dmrCBU8xZDOdas64w7PDqCmyJL5Wni6DSVKHN5jzghCCZnJezifqahAqEYZ1t5nH7phmDeka0IyCJ4IdA1X1uBkCUirvt5rk7Fyx0EjO810PqymjOHjT7X1AfMFJcIodJz937wbhC75X1YKJGdnab0lbcppi1DvBWOWJeE/5mCz12hruAikLjkxY69AZyUuih4ef2F8dyzBlS5tM7tymKJNDXe4ACbE1X1OHmRwiwNDiSKtIEyrcLnUxF7x97f25EaU2+Vhg3vwEyB+oZEhXznTnbKvO5rRFpzFly3rEzwMuK/vbVkRnurWVSH+B8187RUjKoFMtaAUvHOTphoJhzoKE70PzWtx6zWafDvlFH4eIxBylTUotHpEsrjzxkpthG7i8xqorV+wWfMkkU=","layer_level":1},{"id":"dbd5991d-203e-4745-823b-847017895d9b","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"基础组件","description":"basic-components","prompt":"创建FMS基础UI组件的详细文档。全面介绍按钮、输入框、标签、加载指示器等基础交互组件的设计理念和实现方式。详细说明每个组件的API接口、属性配置、事件处理和样式定制选项。解释组件的可访问性支持和响应式设计特性。提供具体的使用示例和最佳实践,包括组合使用和性能优化建议。说明组件的主题适配和无障碍访问支持。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","progress_status":"completed","dependent_files":"fms-vue/src/components/ui/button/button.vue,fms-vue/src/components/ui/input/input.vue,fms-vue/src/components/ui/tag/tag.vue,fms-vue/src/components/ui/spin/spin.vue","gmt_create":"2026-08-23T10:06:52.7661656+08:00","gmt_modified":"2026-08-23T10:11:44.9877392+08:00","raw_data":"WikiEncrypted:OVW48CGFh2rQaIE/lBBJpKHLStDClzNKJ2fGON1XMSxLhh/PWpejY3MUt3BLMXjftmmab9TZeBYSdG6ad6/HpRuDM5vdxeWIodCBdNl833x2dnWQwxPw+N3iKWQiD8b9IsUbe3nRQqBt/gx20ClSNxKSI7yre+TJAmmYw9kSQreOPasHw1Sp6BT/FS+dC8pLiBGkrfCwDqunI30oiqc2blfciD2QvaphAErgxQVMpQVATBHmCqXejWq0o/Y4HODpOiGYKkQoG/g6ndJ5DnoIC7uN/jDBpTjr95AAG9kiF6GdLtfV3WE/geqg/1GDWo2GMsMV5nInGGYwSYLXBoxq8QOnUgoHUQEjQ+y9VKhG8RRmHRWFpYjMp1PnZIRWLrqFTRABEzuNlA5c7HiIJWqtQWz0pzuUDJZ2vfK0L5TXFgSsRWW2G4DP+XgR1ZqEAMeyCQ+W4GELZEcFGwnmJK+IcEVyq4q5zHIKGac1s1HcW7hqbke+p08vGJx7smMWDUlkFGC9j8EpFfITeWNaV1HhgjBJWxWYoTbKoVKydFMQZS/g95ZmbupjCj/Q9XuMHRZWwxH0xjvE+rzjsQTfGG2KqvAYeo4akWN55SUeRxvyZaeQjia3YTuLf7/ydy21Al27WaI4DyidnXOdTkLPxREJ0gRX2UbgtIAPVR6NpRid7LsZDXDWjmavhfIhwyixVnDn+294SpOAAx3LEqyY6m8rcmXVXdfPEKJvhhKdIA3sdCl2o+HwH6H0o4Ce2l0ATJ9zNSIV1Pdae6MCX0dGiFOQDI/tt33s+EU0egsl6F5a+z/rDpyGzxlfDoTTIsH1OkO/xIR0FryzG921WTbsmsUDAAuJefhHzE8jaLEc5iuRL35cs0hgUAngg3asDa7sWp8U3iMzBSKqe5SRyEQj6O9BAAWcywq1jstGiUUuSjVGIJLs1Eym0TJqnUU3a4fWcF8a4gin0b5T8OjQevR2bh94C/+F7KzPnAFw+PM+912QqvpGGyWbGOUKRWIjdRt+WaZal5FDMOyM9pxT7WmjxR6m3zf16/g9dzdIiC+KZydhYRu8x31fvkkCYvhqVZGdRrtmnOIuwy2BdB4GTJOxFTY2ihkCxwv4v7ZjdafqE+WH4vO9/dYnuKMfw0He2pkr0QV2e8RC5rzNNoxS6O6NFL7JGF5EsmQJw23VMV/EMzFCh5bLqXdToiikjV5yQRi+lTMlDrYgfOi0KapZqomKjnjsnw==","layer_level":1},{"id":"482c7107-6987-4cce-b7f9-94e4aa4834ed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"JWT认证机制","description":"jwt-authentication","prompt":"为FMS系统的JWT认证机制创建详细的技术文档。深入解释JWT令牌的生成、验证和刷新流程,包括令牌结构、签名验证、过期处理机制。详细说明JwtAuthFilter过滤器的工作原理,包括请求拦截、令牌解析、会话验证等核心逻辑。描述ActiveSessionRegistry在会话管理中的作用,包括多设备登录控制、会话状态维护。解释OrgContext在多租户环境下的上下文传递机制。提供JWT配置选项和安全最佳实践,包括密钥管理、令牌有效期设置、安全头配置等。包含前端token存储和自动刷新策略的实现方案。","parent_id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/JwtUtils.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java","gmt_create":"2026-08-23T10:07:03.4704629+08:00","gmt_modified":"2026-08-23T10:12:13.6911454+08:00","raw_data":"WikiEncrypted:8ebUGRa7qCwWfB8YHyDHESvFrQQaaYoCnwBeRxsXQ/pOUkfYcBJg9tanzNivhH85kJhj14qq1um8K/EP7sUILAttLzzaAXPyN5dPwvkQIJBGUoaOw8Pf1iqeNZgGSqwnCdYfWEvdhx364FeeFbBWjDmAkWMY/DXQDf0VJ0VJF69T89lWyIhIXeRUUZvwErIbtCLhPQsAD1lj9wdFV7dDxbCbi8d/u0496FypMjnLAm4siMjBL6wFAaMjiyaz5ihmnuZNIus5ijUnawDZQNoBwnnnzqvi+VANd+MsoczUjPmm6mUyJCPn138+HS3MvlZxCamwV/WVuelSOX11pG3V7jWHP5NAf9M6BVg7x31K6NuWqdDylaMRHWFwMPPoRA5ZB7urNr3NHi/CQT2OijoJHuxKyUuRfX15sSfe/QQWQWsulF4x4EPvpGrx7utl41yAqsL353rJArmCI8EJHeZ1ov4xKgDRNkKWUUsB3GzQlxcVXYj90+CXS8gosWeDnUn6dyqTjQLKw6ztDsZWeOKQ6hdIdCFNMnNJBkJ7MdIfOyzs7La/1R9e6RrYIFZQs/SbGZ8KMMCpo2ylleYBXRtFl1FtvbLBtqH8LEchDsYBWMn7JCn9+u73KsfYg73JvHZAKS9dYJr0loRGItApTN3Imdj3PhRJ1qvmOwZ4SAvnoSBBTZzjBBk1+kFme9ZAHH6E2NWwL1EtuP7VxJcPP6xOMCw8tkf7Ok7iWTzmfKgR+pBrn6JJ3l/Y3PD4nYKVH5x9s+2++hXhdrBf2eLD/8DDKWfGoXSEYKG+2WNnsECnMju7XVf7N9z8zdCTMMfP/3dDftMdN/hGW++hWU9Lo1FyXm5w91Rr7UxnQOekz9L0NcC2BfypIjfWsrlNepjvMVii/pJ6ZLbkWbd31/YLWNPQkYwJ9UO0B3FQC5LqUyMb/bscWURn2pnK7CBu8AXQIiobyPkjKANePPm8afNPltu/Jdj8tIBWmBg3NT61lFR9Lv+3a77/zQi2XxxqVU6OJLeDzniKVoZHLi0IenDDz5Q+JZYthGpJQ+ppGLxeeSiNlN8HV3Blwk9rFNBgAf17J48HhCWOnwkc9ig3EC27tmlwWu+XXv4GQrIjO8kREGOk/LsMYOLNr3dOu2nqhnZ7EUsPc0ff3fnWob1UyW3Rt44uea6BdbG3E2t7JA+BWe3SDLMFxirndpj46kQ51mErMs7FyoCHf91wfQDhtRbp8hKNkD0jMxiERCnHeens/ywvRppUOUw+H8Mmh5kUEMtXAPH40djzyn56JVIiDCSbmw4gqS0JYeLnhbEzT8Sk0v8GtbnoxcjyR4s0/alQ9sU0F9mgX97TveyRSPXrghWfCXtCZPPVduM4u12rNaa52htZ/MTXoWVh38VyCz0CHpg3rI2xyglTcNddVN4+72bf6xPzBC+x0T0FLS9r5SZn8LDON8cxmaw5/tI8LTmFnnpJaeCSawx+/wy8Q+4S4vesdraLPLnVo14GR6FMJVS4tN9n0jvdfSnEC3D2q1Q9oSPXYkdo","layer_level":1},{"id":"e0763a6a-ff08-46b3-a8d1-dd64e8594796","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"前端文件组件","description":"file-components","prompt":"创建FMS前端文件管理组件的详细文档。深入介绍FmsFile主组件的架构设计,包括三栏布局(分类树、文件列表、预览面板)的实现原理。详细说明各个子组件的功能:FileCategoryPanel用于文件分类树形展示和管理,FileListPanel负责文件列表的显示和操作,FilePreviewPanel支持多种文件格式的在线预览。解释useFileCategory组合式函数的分类管理逻辑,包括分类数据的获取、缓存和状态管理。提供组件使用示例,说明props配置、事件处理和样式定制方法。包含响应式设计适配和性能优化策略。","parent_id":"32372749-256d-4739-86ac-7f74eaef22b9","progress_status":"completed","dependent_files":"fms-vue/src/components/fms-file/FmsFile.vue,fms-vue/src/components/fms-file/FileListPanel.vue,fms-vue/src/components/fms-file/FileCategoryPanel.vue,fms-vue/src/components/fms-file/FilePreviewPanel.vue,fms-vue/src/components/fms-file/composables/useFileCategory.js","gmt_create":"2026-08-23T10:07:04.0848482+08:00","gmt_modified":"2026-08-23T10:12:44.0342075+08:00","raw_data":"WikiEncrypted:vpDg22ErIUoZQc8uu08MW0+yoBEyntOnN75wb33rwPj4i2BvZNbGyReIXE32GIDwiOu7pH3djRtickY4RLXXz6Y8AVH7eSRS2m0oOtJk/4Wjj6khky27usidayBryNQYYxBW88t3IS7hHfpaterd+ayqGYq9u3noCZmDCgFmmlJ01S8fxKKIE4ksqqW87+xK0jvYt6yOMuqVGQ5LLQmEWJa7MXSh7nqeKLqm0lkubXKicWE9sqFTqpLM+yIK59dBVt78kEUNNUvE8xKxzT/uFF45igW3veKJRQ+N5di3YJTVVDk6sPFRwXcf3odyNCNfNxIZtcfPY6nWK9xAGc39+UpiOWOtfA/n4BPUJ7e1Gx92CgA8rsCUd18Q62phiwOC3ww9K/1HhqyLwIXTrFSFVouDUcJv4EKlLEZLuHZodd4eJvJw8kHLa8RoFTAYlwv4bFZgoPIEDoQLFodqK+jLZSPuzL0dP6tO8x14zjGnianOpeoN0JboUY2BA9SxkKyIdZZShjjA/Uuo1MonosWvglyW0MnC6fQU4U336Vh0h13AhNqNXsaVtzuhHafHn1IcQsqEcDg2jTSMUeODeYi0ymZpN+vAL2wgoemeMaST9P0z4Ki2En4ynOWh+LF/CcSZ/wdHDD1xI3fVTm5TCw/oGdiWMPxzl7cyO6QXOoTlHZQ8fI56KXPbSQ/ugepohp17hZtm4oAADxZgK+aMGg3g0zNowBhDOhjA/RhZ9bNeY6YXT7CCINj7U0dCoDCUi0VJHOwI6SqgrIGOhk/mIpk8EISv+EdzCf2IhQKCwEOQwWCeZwrtzkXrzpUGoRkUGnpILSA6iQf4Zwj60B6lCR5Q2ibBFfyxZ2ZAoEUq4zAAOCGQaqv/Spzn6X34m5CcvnXk7/pC2Ji+g21DyrKVplVhgGSrTsZah3sl+cKNnieRxv8WSsb+CDDgo3BdwOOvfmeeq29WJXYACb5Z2/aVi+Je0aVLTnVnJ4LgXBmrDMbkdayB2B2ycII/KoZmmsLJoasiQvo0r7bFfmpag2UtsyVOktVJDVMPSn6X/Am0tcZmG58Oq7zTTeD2CvZB+thXKCLhqF9+FDwFJwr7SU2Ni9H2jdhoDAh3js/dqjCY7Mv4zKa08dWATQysXyNN86W/mhCB4bD0CFN8CRrg3pCCT4dSyFbM8nRon6JbTzMgqN58sjK4+4Smqb2CScmhDtV0wbi17IxzUuY5zknXd6E5nDSJtVjW1DmAEMJFo0NOXajTodvKyObP/PHepADgrauRBaH58BCJLtnQguMMEhimbal5ZTXs6J2/nixLjnwgplB3AsqP7OOKajnOFBdhwCsDRxcOLM03UIeG/0TPBSpkDEpPhTkM7WmWehIgRbNZZTkjFuj9wk7qO2y8TTB4jSwufkggWUqp2Q8F5+UxxsejxFpE5kzpsn212wv4/9s9A60Q2Xv0A/uZctrrdmWp0kwzve3ZaaZfvvNbE6qOTjUvuZD2FnOWzH3GAIvjDsFZUgY6h4RWdMzIGQtZl4Gx1o0NoDCgapa6ZpbRWedXWjEKMMYzFNhHI0HwU6+T42gB9mec4LptLNJQfFdSHthlRiskuJeBRjFNTQsRMgm+NHI4FT2AnA==","layer_level":1},{"id":"29b2f075-eab7-49de-8831-516cb8f2dfd7","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"应用结构","description":"application-structure","prompt":"创建FMS后端应用结构的详细文档。解释Spring Boot应用的启动流程和配置机制,包括主类FmsApiApplication的作用和Snowflake ID生成器的初始化。详细说明应用的分层架构设计,包括controller、service、database、config等包的组织结构和职责划分。描述Maven项目配置和依赖管理,包括Spring Boot版本、核心依赖和插件配置。解释应用配置文件application.yaml的结构和各项配置参数的作用。提供应用启动流程的时序图和组件交互关系图。","parent_id":"803cf389-2e38-40a5-bd14-57d653cea595","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/FmsApiApplication.java,fms-api/src/main/resources/application.yaml,fms-api/pom.xml","gmt_create":"2026-08-23T10:07:04.4232145+08:00","gmt_modified":"2026-08-23T10:12:45.7621751+08:00","raw_data":"WikiEncrypted:6Fw6zeKwEGma9eKCQx5Pd60zwyF8PZUy2Zq+wP7iy9Vstvq7doZnhapO/YJixT3+ljyj9kzuAHagiO/NORMgenHwYVGESQ5NBjzLT4aCKNX+D8S8xr64j8ep2VjUOES+s+dVOTif+nDZ17mHKlfYjM2v9yQsdysWxllHgWFMRRSHHnWN7Q8Eb+QzZ2FZ9yZagAuGpkrBJYOP1opZ/eaDMdwk3DQ8pKM7kEHESKJGmXxp8fmKKrDZ5nlGDKlfJvqiyhsj0x+B1DyCe5SPfsP7UFP131l/wVqjbNqSeCZI0rUDYc2VC0NEYLRxF/bGZfaggYaQcb/ZrjbC+RAelwF9OnU1WrZMyNFJMtgGsvWhJ4HgqOb73k3OCSsKJ8qOtuYsZ7pyzxiap/xa9+yRks2bJI4EOJ3TMwtC6t35W+/qotiagLPOH0rjqjCbUrudtGZT63XdeSnL8BzCSnJGaOSNawyyGGotL9jFEJQIMZwwNH3qIi26NSL6Vs/HOQtOK9nIdY34k6I1FlGauSNS44d9z7KS4+QitfdqTlZ6xW2rOZhwwAmbwuBikWVy62wKBGme4Uo8uWAWOMXpoJyCl5HEcX7guq6ohK+rG388Y5xHBCV8uUrD8IhO4gxz4Ip6iOmft4g8f73cE22kzRZRkEgyHP6dQgL92Jo6oJDzXZn6o1nhne7VqLyWAo4EDWUNFvwtbRCRo4DNogdOeP4/OChb0subII4+0I1qbryfprVNUlJkuAGl08B1XUyEAvCEqQef3xOpin4t0zWAmu7X/z6TYNT/0bRG+sh2wOR8UzLhr3kYWydHOvrZ13mn0hFpQ0hwCZT46tArEYlb1XiqRnHA6dCpOEf7eCgC1hd1jEyxtoAvaIj5x4U13VQiu5rl8KkH+MmfNW391wY/IyaoKfuUoZDvajFBQ3extwatoxjjlJHIMoeDeCT97ZTIITHzIHKLRWN8HB1uoZKeppOX6zRoywXQrU3NtEUng0TxUeqF6nb974OhFzpFZCf5tpYdbB2xGtsfj3yftREYrd1Q8nLC12K2amYBLUSrH3tx2rEuDZm/Q4U/0fgXMJsKKeYsJNcw7VDN2+tJ1HxAchGDE3s9vEFfNnp4ISOi1UQXly8YayOwWGYQCwDZ42m3ZtuZK7XHolrL2xEUdtzVcrBju3rQLM5vPOsyoGeZJo0/zCI804zHTJBNm8+pXDBUsl/pJe45QyESfhEdZqY1iWcJwKVhIQsq2J+hcyUzb5Ghr78Xpy6vs2h31OGA5HsXZgltsj26","layer_level":1},{"id":"eab3395b-a436-4322-b967-bf64bb92c24d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"认证接口","description":"auth-api","prompt":"创建FMS系统认证接口的详细API文档。记录所有认证相关的RESTful API端点,包括用户登录、令牌验证、会话管理等接口。详细说明每个接口的HTTP方法、URL路径、请求参数(orgid、userid、password等)、响应格式和错误码。提供JWT认证流程的完整调用示例,包括登录请求、令牌获取、权限验证等步骤。说明认证过滤器的工作原理和拦截机制。包含常见的认证错误处理和故障排除指南。","parent_id":"91f0e42a-fd87-4731-82e7-941d2a568389","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/AuthController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java","gmt_create":"2026-08-23T10:07:13.604059+08:00","gmt_modified":"2026-08-23T10:12:55.2691929+08:00","raw_data":"WikiEncrypted:I6KYYMxpAemyHFwJy5bny+FhLrJAxcHi9isgLCIR7jIgzXRkKkCtBznX2heJa7Z2qUcVqgwKmAK7tvdFP4CZSDWpk3XoFwM0vujWLPZo/NhVKjOpBBI/s/SjEF+hJyO+ccFciWrBkasvRi0TMtvhsfBjB9w/LNx/gIabbDCR3OnDS7gAtFbRRMz5SAhzan6HkndwQ4Cwl5f34kgB4E5j2j1sreSVv4KFHozWUKoZC+Dxz0BHEJ5sY5rPgWcAxRloEa0nR8MtL938rDL700ppIM2SVrGpYZoKchVnzo8jNbMc+RJkiG++9bwfcPyX7wzBcclNJtn7kjKWoGrEIVl4BXSD1tfdG9RTsTvPFhsVwVtjrt+I1mfFdcDAAKwwWNwZp5U2NeF3IVz0AiANfb7orgrgjpGYhpc4+NwIO0ag70b5QtUSX+2Pk+HvPVLIHh2mS/95B4KM4XkE5Y72GdD3q9e/zvIk8VdUYGj1MNxRY3eVK0s/pmWDIYSjmkfuRXyDYxmMKNiQ8XE/51VcO/0TxTQFd6pE5a5f3vuDMhWS+ksWlkDMmHETN+HDyADKi1XS6b/aesLs4k/QGYzKN0TlqKEnCiGzlPqDmCgxjoeFAFPC6lCDaUeuO3nPvKCcw3fT0qDbX6aSORcOCI9j2uAhDBbHeRqknLuerExKG1EWiu0fExRanux0eNFS82E+tEPF530gKbXxadLe6H3HyNqNOaXDgc0RDijyv7FVwp13QOHVGtSa8/hKXaLVAzxDQOll8N9jaNc937t72cpbj1xc3BgKEm5lgIFPoHMQw34dpMQcnKVTR4nXy4732SgPxW0LqkWtcQ3DxG+F4vEHiCIC7PNG4u8kYZQV2LDsBY0/N7Hj048gm6tNfpUmogMhjLWfrUWUg7snufPEdE5AsVGt021has0JcBvA/VYAUAhCvvgQ9U2NTTD3KIreFFY+DFXS8VZahArdPOT9GXFrNKGUDV9o69fZPCRslDby3xwOAdBxKRV+pFAe8P0R1bPaSiSRUAnPOhjTP98g6Y/bYGByD7/aK5jwYGh/fBE+KCqkNPr6mDDZif1/YMT5GWNUhfFx9EnSy/NWP7oJuk/vebavCg9Frny4tpCcxJTXuphrqjKLn5OlwIxtWYxLwV+7PxAT978ATOKkHve/oJeo5fG7Ccr9EfmhB9R4VICXAfXVo9OuPfIDLswhrR2regrUoy8N","layer_level":1},{"id":"32bd2f27-0783-4f67-8141-bb72dab51a10","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"前端配置","description":"frontend-configuration","prompt":"为FMS前端配置系统创建详细文档。全面说明Vite构建配置的各项参数,包括开发服务器配置、代理设置、路径别名等。详细解释主题配置系统,包括颜色变量、样式令牌和主题切换机制。描述环境变量管理策略,包括开发、测试、生产环境的不同配置。说明插件配置和构建优化选项。提供前端配置的最佳实践,包括性能优化、代码分割和资源加载策略。包含具体的配置示例和常见问题解决方案。","parent_id":"931bb9e7-f8d2-49cc-bbee-7a861d12c4c0","progress_status":"completed","dependent_files":"fms-vue/vite.config.js,fms-vue/package.json,fms-vue/src/theme/index.js,fms-vue/src/theme/tokens.css","gmt_create":"2026-08-23T10:07:13.9679333+08:00","gmt_modified":"2026-08-23T10:13:36.3634918+08:00","raw_data":"WikiEncrypted:rJ/rIw0gVau8jPGqKFBAsGouzpyFycUI7PALuffvWgk65oBlcPFJ9Ai/8ccqYZuMtwoUoJ/cnAcjwhXrckPLxnhk/E/8N/Bifq8F8q7H5Zr41rxQovcaxWFfSReJOphSwgFE8BMaF7BA0LABhAiXROPXwCtwhovhU4JgSpwp+WUcHlm+wwL1/6II/py/hKCnZlsMcVu0XpP9SbJbC7rjYBVbqU0IVVzHUxktz/8LzZTSDXQcUXGfZ0sE4s4TBnEGIHfBh/QKSYjLD7kKK/LuXUm/XJpQILZBOQVwffXtXBluXXEUs8/0GGW5C9L0KBvfEkHH2bgwlIx95G2VazlRs+69PZlb+MI7CswxMYhIx0Bi6uNpj5yVKJHp7arhYne6h1tgkK7avGsHceqej0bmgG8H/Ig+rnp8sX36eK5u2dNJN+OQ+PeNV62av4pGcI1Bmr/hGY4J3UJo88sP3jK8I5HbKGRSqDFEPCVyv5bwSXoYO9UGgMfEtUIfv7fbRKDz+Vs3U1+34PMZAKXKw6Cgp0lRbJVXr2qnYWXGs2XEKBfJilbOfXMhNltsuyxadSn0eFcOQOgQRCk+n/fE7cURt4jKthtIox/CI/I01u/Z7Z1yt5MlfVGqo+nEQOXUHbmQuHdcwjopl3liP/sq5UResMptpf7DDUYOokCeQd8BNsIrg3OC/MuMtgZZz77toTHn3C0Xo+JEW/lqx0BRC415SDjPkfPqQbukcWdiDq4s7S+IfPiRPONxjqVHJTOTYRmjuQqRp9540xiHiC63CGdQSXxLPL8HA+9bu1xV29XBgswB87G3LSFHSTe7SMvVdOjm2PKRsBisPoliFZ0W+TgcPXEzTLBcop6ySHbtIzjtPVu0TEUwbla7D77hkUO6A+eGGrcbUywKanwCLIy5yHezCsXuveESZy9H5CCS66QlEqDsdPlWKKJSKF7nN7xUBrntAm8YcqZqmm2wcI82JfJbGRnybKsKhwOIyQYCzONgPz7Hm+QLqtDQAcHcREg/UoHXDubY/zRqdp5j2wXwWtAOpNCMnalPyp1C7v/qtYsQqH2UQ3XDR0UHrN9W/DL2UcgL0fq9oyNw6LJpR704XDc8MyohY0bN2sOfVSsJ6KMaBnofYzq7zQ5w8VAIGUI88/FhuAA6hSo5S7VptyRvghCUOQkj+mEwOq+aBAYxmsBw+At/Nd0w0d0rvKyIfszg1sN+lMS/q6tPVVnRKTnKwAmEc3aKibOcaEYk3Bry04euyi0=","layer_level":1},{"id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"核心表结构","description":"core-tables","prompt":"为FMS核心表结构创建详细文档。详细说明用户权限相关表(b_user、s_role、s_power、s_user_role、s_role_power)的设计理念和字段含义,包括用户管理、角色定义、权限控制的数据模型。解释业务模块配置表(s_module、s_field、s_field_group、s_field_view、s_field_edit、s_field_query)的元数据驱动设计,说明如何通过配置表动态定义业务界面和表单。描述菜单系统表(s_menu)的结构设计和层级关系。包含表间关系图、索引设计原理和查询优化建议。提供典型业务场景下的数据操作示例。","parent_id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql,fms-api/config/migrations/verify_business_schema.sql","gmt_create":"2026-08-23T10:07:15.6787476+08:00","gmt_modified":"2026-08-23T10:13:28.8015883+08:00","raw_data":"WikiEncrypted:XVm1I+WppVKL78ieCCB4kV0mOCX0nDaL9FU208x2bjRifQ/N6b0IVuBKes+xNpRoTB1RNMLB264Z/TJFUuoFoqILT7ljC3OOBUvc0shXwdr7YmRTwiu1oTmsmAd1gNIrxOcD9oVhUQ2Ez/NvhLHRN+QMrM9lh+9NofnWI0NfMjnzX0wSMJ1iNsAeocS/Ae0rnKzF8fy6wsWR0VhwVwC+Wf9hZqdGFehH5pDG1kq1eyzwD+27wkOkvLR2bBPrI6jv7AbKcNu4Xl7U0TmuvUB1cAhXe/Q015bTtnQ1vxqB3wTJz3jHvUNJ+W7hrK3vnqlQ1ET5slEikV+YxV0FylA+fLuJhAiqknCpB7b6T+s/K8UtL1eZcvOvUvFK4JzPn2EEYWfL+/WHmzmbRmzqMEgN+FNbHYpWA7REJOLQQH925+QFv+ww1Fy2YtpmU4rrNmWPDeCnIrp1bOVkcxilnd8vE5TVLWM8cfXvuRi9LqAFmsSH1jjhdV5Sq6OM5ClHj7aRbWUT4Ysn/XIT8Q/YV5Lk7gWTtRBegMHmaR6G8sXyYm52AuqC/TXRKlCAdW36OK+04oJ2Xst33ibfpPLD5pzYhjv+6DsCa0HKHqarN1zA8HJd7bFd+jifIwVRP83qjzZmKVYndk/5wGh7wcblPQqSs55hSc+ydPkp8GF5+v3Y1Kc0klm+SXL9/oGCQkwFDPUC2sLMMN1TTzMM6IzX/UGzCSOdXJxJg0GofRBDPnSmH2/Xn14+K6Y0D/vX4WC/fDBDJN3YT/625vvktv6TQCNBEB/DgpHcAbQFdqTrUVpZXj2cfd9MVdH1qJCQ1SiOG7r4EzpBQo30lPc3PpThh3iP/pdmI5uJwPZ8HEOXj04ClMcDahIDH4PMqKpx+ohplyQeN0+4ExKXgVkx5pY00Lc4CtAzg+ZPGwsZgJ3MeBhBkiLzQweY/ElJyilBTfo4K8bqEyhUZilsZ8GCmSRNprO86rBeZuuiRfIWKYWNtBeVR1Fv6Q5flWrSEiq2TNUfK/kypgtSr8XVDzjHVRjFBNdE7XFBt+GYYDelDh/wciVNFnXRX13joKvWbroUQZyAh4Aa4XZG3Pv2ZFTwKBnhw0frRP+0ESkXOg/p73XfBydIu47O4eTF6HIuimls2Nct9PGz/kyiGoO2MAsy3ni8wZrHmVygaOS6/C3Bl2o6dm6KqmqsLTGzUmOU3LHLxwW3EQUju17fAaweaOl54RxAVuZXslSD74Im1VmIafzE357B7PC3TMHGv+h+aWoaL6SIv8yW0G4lERGkn3bfoca8BhrDTe8EYJytDF2UwYWjuUqrEpiDcDr9oabbgOZnE2+/8UH9nBLIXNm2skO0dST485Tl5KTge22MjZVJjkcC6CHJry5GbhAuAf00dG6dfIcXVziWE0lD11gaQrZWsiphwq1LdkqbGpotDLlRofIPcL7UHrEKuCqrQauUjzMGUed7hUgV","layer_level":1},{"id":"33d77277-69da-4fac-b1f1-965c9a4dd565","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"开发规范","description":"development-standards","prompt":"创建FMS项目的开发规范文档。详细说明JavaScript和Java代码风格规范,包括命名约定、文件组织、注释标准等。解释Vue组件开发规范,包括组件结构设计、Props定义、事件处理、样式编写等最佳实践。说明后端Java开发规范,包括Controller、Service、Repository层的代码组织、异常处理、日志记录等。描述代码质量检查工具的配置和使用,包括Oxlint规则配置、格式化规则等。提供模块划分原则和目录结构规范,帮助开发者遵循统一的项目组织结构。","parent_id":"ae7dfd7d-aa4d-4443-914a-39635c408145","progress_status":"completed","dependent_files":"fms-vue/.oxlintrc.json,fms-vue/.oxfmtrc.json,fms-api/src/main/java/cn/g3soft/fmsapi/,fms-vue/src/components/ui/,fms-vue/src/stores/","gmt_create":"2026-08-23T10:07:21.9529307+08:00","gmt_modified":"2026-08-23T10:13:29.9568458+08:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9C40b3wrVqgUOe/aBj6phY0aUMIsWQ8Lw4ze43N3NCb2GeboTrOMujntTgQomqVR7f7hlALL1h9vb9lA8WuO0Wf5rU8Tzu5L9woaRExptWrgRiU4Cce/Jg4sJBhbBXCwgJtIf7TvvP3b9FOk8V89Lj/ndY+JaYQK+hzzjhHJo001KvcTf1IrpCTWDRoGm1aM7iMfvKyT4eN3obigsbycNo+6U0CeLavdkf6NrDwEgzN0N0gdKx3Nau8uzX8/v2BZsRh+d3Qu+Xuf2S88BCDVy0pGFMQz6lGyts+12i+fjFUUPGPNE20XcAkqQYwpGFZxO3gmuBjecrfuMHB1a3/PK1lpMHJ+Q2yXGgthMk0U8JLv/U+gCo82ADA4UJ/u9BeWEMw6eNqADfY8/mN8AccJ0bJEMk2ftfNMzg9vHghUke9TuxOlqOopTF7jO0VYokKIIyS+kqXIM3sD651bLoyITdA7ZzsSe9lhMprEc3UZNRi7ddzalMXstSSIrRSbxcDk4EYRr0FMktHzLiyOGFYpcT1aNtzPspl/VeWILPNk49g75/1YMbXInnwrgrv6MtCoVQuyMKWrE4s6pfisE3PaGS7kNWdiCsGENO98ZDhywMusmA1L6enJqszX9sNUe5fQX68T7VhHwk37T6KHH/LPMOs/S+O0Rg1fTK08MKnOrCfXIKqEWS9eA85u9xSvhUki+yWveXpoDLSCCgd/4JW5f5nLhj6PtZ2TvJIx2GKy7xYtzXuxazWglftAr094+TWiy+0sDYWlNn1TigsMTlpGCFKIFrE7w0vdBEP2SdZnvLSjK0ytl9/yGvaPg6V7/Ai0ck0bT0vfoaudyByUGLzO5AQuHEZ7YXF9i2FVRRVnKM4jZWQSsTn4MXQnFbVzRRjyAIOb6JNdXs/22SKPMp7U3XAvDaI42feyXyWrJGAoIgsTe4YNOVoZDwW6JEUsnWLShE54ByRCgySdIg2aWFCNihrRxRi6xUnPuqcSM63HUrhzGKHiCogowK8L1pjULBnxTK1qV+4iA/l6Zl4qbt6b5i386O10hs6ekeshqf+8RQSnqHpcSEr8/cRHpcpktas/Xm9J4P9eOaTKDK038xP/UQmsAs3lMtLmiZcVPI0jvVj99W2dvwp32YA2ZLQT96A+pVWdRkPhhLMCM5T8gkofRToXEFutFfRdcknlLQPxLhdNqRpkzGVFiYYst8SBzQ/E7GVRuWsLYVyBm2gWq7XSjlr3610kR6EvaX7A/XpadCk7RQ/3Elh+85/HhGEZzuhZ3HTcb4+lEzlN2B5kUmJkmCM45F2pczf72lwrUzKyXwUyc","layer_level":1},{"id":"a9f3088d-ca48-4bd6-aff2-742a987df4f3","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"UI基础组件","description":"ui-components","prompt":"为FMS UI基础组件库创建详细文档。深入解释基础组件的设计原则和实现规范,包括Button、Input、Form、Checkbox、Select、DatePicker、Modal、Drawer等核心组件。详细说明每个组件的API接口、属性配置、事件处理和样式定制选项。解释组件的可访问性支持、响应式设计和主题适配机制。提供组件组合使用模式和最佳实践示例。包含组件测试策略和性能优化建议。","parent_id":"e336a373-66e5-4790-b912-d807ca6ea88d","progress_status":"completed","dependent_files":"fms-vue/src/components/ui/button/button.vue,fms-vue/src/components/ui/input/input.vue,fms-vue/src/components/ui/form/form.vue,fms-vue/src/components/ui/checkbox/checkbox.vue,fms-vue/src/components/ui/select/select.vue,fms-vue/src/components/ui/date/date-picker.vue,fms-vue/src/components/ui/modal/modal.vue,fms-vue/src/components/ui/drawer/drawer.vue","gmt_create":"2026-08-23T10:07:22.1245235+08:00","gmt_modified":"2026-08-23T10:23:02.2347569+08:00","raw_data":"WikiEncrypted:olAPfnTddGwpj/UgpBjR2+Msft6uTT20LZDm0DpzpfXJf1j6Qli/K8yG3JEE4DqgSg+7bYoVYaIkZopkJZGpD0pIOzBOVExbTTTTxRAkAXqUz/VunEMw5cg54R2vH/6jd79sJ6iIVmIgbjs3zXcQLhwth4X8HyCkyS+hXgsQ51TSiSJdXH/GyFlVmabjBFgUYZpUTzX2jm+3p8pLxOyjlHu1bkOmqLaUap1m1xiVGdEehJqdVJqbhyeDbqmK0PAtVEDGbbcP1fn7xrb5GFGjApoPJzxe+I0hEF/VWM4pbY95cFJruJBlh8UUvCP1tW256EbDpRtXoSZ+FPBVMtg4iKi5HbL7qWtDpsiD464x8MahMDoYwR8AyPZSZ+Ms93Y+azUgaIQH8CBW8MBMzdRE4Wlu/SJEv1zBH6F1WyC7qowsU1N17nMd8Ah89EYpy1ggMoWZk6Z9YLWTE/y7+hHWLFDSxysFz1/nZz6nlAhBso5GnoAW34S2uhG9aBB6DgzXGBGcP+9lYwbCO/PU9sOLB8rekUJwehKKFO2rcDHfqk4mklOuZUcNIIILiiywoXDZn3ACpOzTFZNVJsJYbFUwrqmveHuwzBRAjSa3Zg43tNimCOy3oZpkYVcjb/azxhMTrVpdOQaSPSscIJcTAp5UaSIsX9W4c91qX5Y470PYDRqarWRcPYnwsnkcm9IkBlrk4DWyh0+lJ/Kn4cMY1PPKWQpMD1j2/hsagnpjJpvKYFFXjn9j7mHpzPZZljLhvnxdDw24yJFCw2sBa8esE01mrsLm5aSqmKImCdSGJJkF64+ms9Mtu0Qh3J//kPtqU1DNrbBVPezky+BVmPrpMgaCLeZwvKdJcKgpF2vApXCxovEHRj7Pa3qI9akb/iSbzLHDmgAvy/G6BGvVPFqiJaUvDQpLQHC9rcbWq1q6T5TvprlXry5tRvgcZeOVa/PBj5x1WB8brIJQ/BXm9YT/7wuThS99eT4hTPHB5aynoqMVUOvaTTfllx8UbRuoPKO2xY4aQy8ni/9fT3+YXNdKl9XWw78JFryPkFJzSWebZSlSa7OTrjtGUG8XrF7r3e2rTH510ivOYDaQs1/Jc6M5Kvi7sCUSpjcns8haiypFsQW1D3HXKC9sHSN13VXwJZyJs428JKpP7WB9of1WvUqhF+oxr4ee3cWXQ0YIZ7KvANzCwNMq4TsxGghWWrr9P+Gm2Bj1sx8JfRCIHHWv4jA58MzifsDbMAuVb1pWGJtE2kkRd91Klx+Ubpl5J8J9GoiaEO0hPhZysA3CJK7v21rBNsv/e0krAKxS7hMDx985+YVjwEVo/1VF4GzIShpN+9jwxiQKY364/1+F09/XAAASNQdYedsoIH3oHzkVH42ZNL/gprhg5XSzngLmbugjYcL3BUOvDDcTAaeKwQJLSrEn7fbi1D8DtbV9nALqwOfeXHbsiyy5IUvTRitIbdv8i3BLthV7N6tYpuwbtaoi3Ux5Us3zbQ3cg1E1Yy+oWeMJ35sNJHMNl1ZrHWYwvjUxY5C2tapMdIa151vqumrW4pvAhMrO6X33qSHDcUxJOhiP+ZI1yP8=","layer_level":2},{"id":"59d5789b-84b9-47ab-ba2a-4de446f854ed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"部署方案","description":"deployment-scheme","prompt":"为FMS系统创建详细的部署方案文档。说明生产环境的部署要求,包括服务器硬件配置、操作系统要求、JDK版本和Node.js版本等环境依赖。详细描述前后端应用的构建流程,包括前端Vite构建优化、后端Maven打包配置。解释Docker容器化部署方案,包括镜像构建、容器编排和服务发现。说明Nginx反向代理配置,包括静态资源托管、API网关配置和SSL证书设置。提供不同部署环境的配置示例,包括开发、测试和生产环境的差异化配置。包含负载均衡和高可用部署架构设计。","parent_id":"e72ca331-7aed-4794-a645-f7fc94f377e7","progress_status":"completed","dependent_files":"fms-api/start.cmd,fms-vue/package.json,fms-vue/vite.config.js,fms-api/pom.xml","gmt_create":"2026-08-23T10:07:22.5207716+08:00","gmt_modified":"2026-08-23T10:14:01.9137105+08:00","raw_data":"WikiEncrypted:0IKfLNOWe9mZfG1jVts3w9HcXWcaq729rNCek+7xAmym6acsYfckQmPlc1QomGDMQTI34tROvpogCWHOqjuhfDFPOYohfcOO1UNnusP8l6ihZEKSC2vXrMCd6QVsh/O2cP2SPwr6K+3nLBhhZYAuvokr4C1HpdoYafF0dpTBtFPxcg6uyM3JuGNVc2rYsjZWQ5BDNqprVQ6pNj2mUGNr1CKtBMcBKKzgRKtvaf4gtjtSNuGmzY+/tmQDbUz3lwAy6tTI+fdX63iSpEa8JNKu3ivLogTFxQsnQIeJlV6CBRdR9rIykWItvQD+q/e/5aOFmsBKtSqIWV/FWrbrS5NZcGC0xNdQd2C3qLITifmMc6hLhGH5AV29lpS6rpuI2L/62yQKfCtad7m+oSkuw2oB4AUjPGVGUIzRagWTVvmKrvwEDV+z6N5JM4dzTOOPbDNDapUhq9uvvX1BlATvIewj6jW8b963C2la485iNhl+UsCO3LcOWm0IRrdNnmgWzuHILBD/WiWUmZ/gaHD502BWwGRR3+9Pnr4C8m31/TBXajekaBjOXIEEmjqpOTj22rPfNDj+b+h95D3I0/0rS7qRis+3UaX8cvWCLpT4BrirY/CVYJx+AsU7ap4o97sEp9zsJZn9P06dI/f7paA4ZUayBa0jiD2VIDk7Di9oxU4oOz3ViNKHrFlrKDbrWrggsaCYtbUmxhQRxsUqq77N9ZXCARsJmhiOoOSFwfOKxJIU4ZMXDuze75Rf+JSFEgquEdTomZZ7xVbDx6HgKMGrMsbHPQDI/s4LWA2G43CN6lt3ocytF6dq6rvEP9z/Z+5pIbrT+uX5TBSvEKX3CfLmBEXVsuS79RiNAN3jthyClMD8VEAyAI//Nhvc3SCjC9uUkkD2MRJbDOsSeuni1SYo7Q38XoX5H3yAR//F8OXt2hsXhzmEyFKUoWU746f8IUqz88uR7JrMvQjB/0t8tyGaylOSVSU4h9q8sjMiEhSb9MZplr1Vz1Zu8IyNBJkbyipzxffWUKDKyHyAnJKk9nKk54iQGG3Xt4IfuSjOJ6EZGfFmafbTPzy7EKJT/FJskW5oXNxovrZKzgIiOx1uLWxFXpWDoGWv+6jW0GuYCLsHbAR8C8jF098LhojQRHHCWMSVF9E/XoFzA4JwBl69BPSEMWTJQzSs4vZil9JVdDkRGmJ/r24YD9MDOxgyFz3rRjSB/MWXrTOaoiv2mPk0gvcfD7/4prVyEAk1k02iD75Iae0TjV4KoH5RddefCQuDaciutLtrk1Wl83zPRv6TzeH7ZaDX9U01tZkta2IfujPhP405iCI=","layer_level":1},{"id":"19c38053-7b19-45b1-9719-201f8883ac9d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"表单容器与验证","description":"form-container-validation","prompt":"创建FMS表单容器和验证系统的详细文档。深入解释Form组件的架构设计,包括表单数据绑定、布局配置(横向/纵向)、网格布局系统。详细说明表单验证机制的实现原理,包括字段注册表、校验规则管理、异步验证处理。解释表单提交和重置流程,错误状态管理和用户反馈机制。提供表单性能优化策略,包括批量验证、懒加载验证等最佳实践。包含完整的代码示例展示复杂表单场景的使用方法。","parent_id":"6ebfa59a-db99-4c64-beb2-7b8ef20dc652","progress_status":"completed","dependent_files":"fms-vue/src/components/ui/form/form.vue,fms-vue/src/components/ui/form/form-item.vue,fms-vue/src/components/ui/form/validate.js","gmt_create":"2026-08-23T10:07:31.2198182+08:00","gmt_modified":"2026-08-23T10:22:48.1930678+08:00","raw_data":"WikiEncrypted:JMq2xgPQDMbLJ+LAP4f11izi0JzCgQAXVZfbCp/M0nAA76L/LgN50PNNgxlAJWTpEHcuCeYwm/Hzkwju1/yaarYdG4bA1b10UO2KYKi14OSiQuBEvfS0ufvfVy0Nj6q+0CHjBvV+xW2qg7MuVydax09FV5ohUwLZcHopAia9nelnnIzaGhOUQcr97ba5U/9kd/9PB9wbRhfsnDPpW0xiiE6cJKcgNXJP+0Q1A63ReT0aZhDpFk7ZJwMvQdRBzBWhtBGLzNIGXkZqNbymH1YJMDRaoFFUAzEb0zwXuzWgm6bke5Vtg8KLS4cPL61jlJ4GS1H4jp5j6n+B0Ja+r37aOU4MCtvLk1qVtyvQ8/EwsNieK+6CyECRlDuljr0+Z9mml5hQdPkBPHRYMUvxWiaNOkfFOMmutyxmQzCzgCyMX9O5+XGRfgalpiYLbno5/Os/mkEyTUrZK+eg/wVtE8osb4MD8I6WOSK8R5R47tmnX9MIvGyv9/qdh1ZS5XtPIP8c72keSLw23bPojE0bk3yClovbSPjGYtCk4x0qVXX7IIvXZwlsVQEXrgkwob329Ky6Q/suw7dstOg8nYfnF97fPzqViaTz48Ux+hoyjrlBALJmR0HHQeLNiP0HFddO/E6CwgYa+1ohmVRm7SzJSi1fq9outNUbkCAeNvoFIYl49D44XwREiug6oKSk339lJF2Ymby0zzA72DhnHxsB0qAIMnudsUv40U/5T0R4vGvKU/b0BGw+evreZicyXpDVFP6Cn6dvUDNdM6nfUNtrWibbcMWL5AIc5FZ2/MqxicOK4HgJp0TOdpfLs5V/ptrnXGDys++FmUrRK/E+wl/LY+ar3zBeZLtC+0pIKK9V6nv4ZzfjDqq+bXR+Y01b12hx/nuKErpcQddVubHpxcQbA/1Y/450t/RFMKSBE5q4adES0rLBZtrGwr72QcYkcL6F5pWV942NV2oi16zcP+HY/734Aa9h33dff1zA64qJQ+nEN5aMkt/kC1Zg2F2KAQ4XiHn5W3CdbffJ6QNHrPvJWouZfV+3AYo7feNXTEZfkxoAAlXI2j/I9ybv40H7QgkWdgQ8EvdhojKphUl7oiFi3EwFlgl1e7ce6MXSPZs9n1Hfsv2dmdBIEZWTAugLTPWQgjW4s8R+ybDyJ7dnapiTCWOBDy3YMIJU1fJuuLq6o7vp3cXgErNT2Du5PKioc0XOUQHdOJQq+zkKVQ4Bz27HBVF2D3K6fLS1LjkDPVD1ukrNmtDeN+yrAH+872kurUnKtIj0whoqzMGrK6GVHjrnaUljigTveQi1bxjOhcY2EtYjM8LCt+LEMmAoIzV7nYm6ViN8","layer_level":2},{"id":"d93ca977-cd32-4551-af96-450a3e1faab2","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"权限数据模型","description":"permission-data-model","prompt":"为FMS系统的RBAC权限数据模型创建详细的技术文档。深入解释用户、角色、权限之间的层次关系和数据表结构设计,包括b_user_module、b_user_power、s_module、s_module_power等核心表的字段定义、外键约束和索引策略。描述权限数据的存储模式,包括模块权限和用户权限的关联关系、权限代码的命名规范、模块类型的分类体系。说明管理员提权机制的数据实现,包括g3soft特殊账号的处理逻辑、权限继承的数据查询优化。提供数据模型的ER图和示例数据,包含权限配置的最佳实践和性能优化建议。","parent_id":"ee1b378f-0b54-474f-a1c2-4a3ec3cd2098","progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql,fms-api/config/migrations/verify_business_schema.sql","gmt_create":"2026-08-23T10:07:31.3779008+08:00","gmt_modified":"2026-08-23T10:23:42.6522888+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoLxOi6NmolmkS33RiP66EepIup9T9EkEp0j+MiaCkTUeDaKgMgnLscgf8X6BJFTCRA3FR3rI3bxFeR9ta+xCi4EeRMHWDHWHxWtAuKZ8bNJhRzCQB9/vEnA5htTfjQOtcIvniRJG89Wbajxb70P2/7zu+kL7Kzsio96aw6hQAOsMFRcfoKG31HM2vuJXWY32cSOKFRkgWCfAY6PH/JnmR8j3BMZx8kkbIpAcVa4djPv/WNJekW0L+OasGVQRXsbkG+xYHlpIgBuSMixKjNf1kkK/AUVwz8FE3IJ0ouk1Hs6TPEEl/rLzhQ4YLehsiwwr3mcsBSmYQGtn9fjflhe+WwR4Y8i2xMsOkpqQfSi/xkUCLtrvOyprHE7p5V931QhYyuRbeNqKDPUo4jACso04CRy/TOOI+Ca+Qc9kmrYRYJj0Ef8jAIyIruMcWeDg2L6kHlo0qFDbG/ULyekHWLb+KSFp6B4w8L36K0aomKeUtPJ0sTU9TiEwNePpON1zJ8rJYABXTgsptD+O74TstdnGC+dkDOn872raA21pcpaxMWG6s/jt8jv8nNZFPmcfBwBUzou+bWhMHSx32SKusLn/10+7fWvAPES2WYR9b0hDTPr+/n0i2p9Q6IrxyUYzCbfQeYqgnxWgBvc4frqqHK6ZzD426jtkl+Al4GLZdExkfH/EvclbKtJO63ujV+zAO9Nj1LcOr1e9TigIIblzyEDnDVNY3rLO8u1L+cmYJsDD5VMeHySmn39360yZzi/StJEUjZxlBDUgmVSbdpL7tluAsHBC7cwB8/xOGodeysaZiY2s5fvzQ6ylHlN6wqF0p1bODZUE72CDhhrwU8NoHeo2rr3z5iwXgxwiKDIcFNVzEvBGDWnFFOLH+9zX+YBSOpiEq1RN5zaOWejStPsgV5JAOIP2EHwbr5F6ckhRUFCV5I2TVC4Cm3eAdWjPBo9AL7h1fXrUZ2B63fv9vWFRtF3bfx9nDRsSmuWfmopG1x9jRbqN2xrL8IZtLVnPVowJmpLqe0yJg75N6SzEVxaDlhkKpSSzg5FYJkcE2ytRT4dv6F03WGMS35T0Fy+d3Z6f7b5YYu4At/KoOei4taE0ixOlmDvAt9DQVChjdUwMdwNiRy3aIaUIXytAqWPoAm++bnlB3RNZVnLtD0Qc4G+klvTnttFKS2TG3hz7aoTRNk4+i2ljkkkOK+/6iMqLWkJ99FYr49zi1pd6wLa7UUEDL7pln6tUFYjv6kuitDVXrBEsE80p2Vvquv0pRu6JU/2ExJtJ3ssuodeiLjcnnWROtw/iEnIjVaPUBtmPLBSB4PS86+bFKQWGyTSJMCnsf3u2UjZpPA==","layer_level":2},{"id":"fde03f6e-ad33-4dbd-9e7d-61e479bf3be9","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"标签页组件","description":"tabs-component","prompt":"创建FMS标签页组件的详细文档。全面介绍Tabs和TabPane组件的设计理念、API接口和使用方法。详细说明双向绑定机制、受控和非受控模式的使用场景。解释标签页的懒渲染优化策略,包括首次激活渲染和切换不销毁的实现原理。提供键盘导航支持、无障碍访问特性和响应式布局配置。包含多种使用示例:基础标签页、动态标签页、禁用状态处理、自定义标签内容等。说明事件处理机制和性能优化最佳实践。","parent_id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","progress_status":"completed","dependent_files":"fms-vue/src/components/ui/tabs/tabs.vue,fms-vue/src/components/ui/tabs/tab-pane.vue,fms-vue/src/components/ui/tabs/index.scss","gmt_create":"2026-08-23T10:07:32.4807842+08:00","gmt_modified":"2026-08-23T10:23:33.3885012+08:00","raw_data":"WikiEncrypted:Yn4/gY3p1FokhBavAAngHFpJLMXivNszNMYb2Kv3hdeCuRxphspZ42OkgfMRNZ1ECkDhjs1CdyYvWlAJXiVGe3IjaeC6iNFwb0wZwTU6lel7Zym0X5hzOe5UQnfA3hMFh5S9Rv1vmLNOgF7QqMRk5xYKxEgjNxiEDBi5Qetwnq7OWWPseXN+q066823FBTCwjy6Zwt/3rbPAFOrL8KsQhJrkApjOHOOLHYbgZ8yZ0cFcrv3+nJLR8fCtMXKvhToRVcvQOaWlCVe7dKjPKLhYGOYOCqM0qMY9/52OeJmCIVwRZeiSzYkmqZ5aW6aAKSbSovvHNScGT7vicv1wlmNKAJu0Q1GJYpHQHj0sK5mCRMWIxxbQ89GikR5DQBcTBqUM/dRnoXtd9eg2LkkKpC3TZ+VlZ352Amr6ZDagOak6AvSYlCiMOFxTKJLKl8acJ9XFl2DuHA4utFoTRZU/s7Wwt0WtK3ACoVByp86koLJiiYLb9+Kv4kGCBwowzBLWemyKRi9oxSeh9KCvVV167bDYh0ky0QOjjq8wNz6Uuyad9eFzLd4F4f9VLGnJMAkOSkVdBLvQ3tdifyj4GKK6RIL7o5mvZioh12jWZLhSDwJNK8tQRDx+3LVx9D3dyDD8GRyI9KJ27Fl7RRvFhjRD9FHKBp22nr6TJ/6oZIfxXCd7DWd8kZLD5oyLTjvkbZ1Rw1X/axUeIzdfB3we/dnnsjG0eDqAdzKSPCzUnxHoIeZFRYpDGZkp8A1JHBWhZLfytfS9cOnqYrS5fsEGDdWPt/2HttC7UwWVQmMCmaIvyX8MDXhJmyd8V7BTyKq91YZQFAM3CPx5LwgDU6WGAvhTfHJq1kDXFnjyAIuqdjblaIZeLdsVWwWG42kL9X+7pghn/H11q4H6v6HMP8X1SafmaAvBc31O0qjTwQtTIiATHvpHmgU09Iz+9N4O6lmOivtfD/en1dr51fiov3ro0lFUEYMk3KjIhdMXcN1pm9oYUjwaSdrC95a1ir790Mugf+dzujrKlfmFRB3WH9zfJsByh7K+KCheb159afB/P4Ce1hl7S4kaMgBMeQZ06RK9/fbJ0UcuoIV4/pCGVouHtl0hL8fyvv37jK79nPYGcMT+itZg4mKJLeqbrBAI4HKm2xo/AreY9CGud1tsimh2DaWb//jGIKjP4iZFCSJRflPnI6gZdnF6pkmYyUk0xhHJjzhlG7XVxIoZyfa/8Nnc8NsEa77wrTOeyvUvhy/e42i65miuJwnvh+3ueCIpwWkeGnkn/gky","layer_level":2},{"id":"ad230af2-6fef-452d-a8c2-20002e091087","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"路由级权限控制","description":"route-permission-control","prompt":"为FMS系统的路由级权限控制创建详细的技术文档。深入解释动态路由生成机制,包括如何根据用户权限动态加载菜单和路由配置。详细说明路由守卫的实现原理,包括登录状态检查、权限验证、重定向逻辑。描述菜单权限过滤算法,包括树形结构处理、父子节点权限继承、隐藏菜单项的处理。解释路由元数据的定义和使用,包括meta字段的作用和权限标识的传递机制。提供路由权限控制的完整实现示例,包括前端路由配置、后端权限接口对接、权限变更后的路由刷新机制。包含常见问题的解决方案和性能优化建议。","parent_id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","progress_status":"completed","dependent_files":"fms-vue/src/router/index.js,fms-vue/src/stores/permissions.js","gmt_create":"2026-08-23T10:07:41.2744178+08:00","gmt_modified":"2026-08-23T10:23:40.9512138+08:00","raw_data":"WikiEncrypted:75g6Du0XCM7n9SUt8CymRyV0aAIVK+wAZt7bdD+PcDS18h+7LOuAdh8VJ+RvpE4XgxH9MrwIFjS2m2kMLp5bkgXqbGUdyZ/7Plbb63mGSucKFjzgeibKa1oeElsPLZoVhp4nhDmpCsvybcVU41froWrV/Kv2PHNqyM6DFJptXqrz8qkg137RqL1Fe7jS07y+JRGQsxnjbxkIK5yxPyXt0jATAKveBzbvVm9RzPh1EfARzh4uHSQR3ktjQpRpBjtXjlxKNoq3HU2vUYw9BlpNiA7eDN14ohUDn5sIYSM0AuDRf907sNyspZZ9lG+YU0BB6s3Selux0iZ+uD6GbY7RkQliINgGUTc9SHOMoUBWiR4eDOvsU6v658j9wm2T1RQy04gPeSjg4CreRbkqcX4vnKS80MqeKmb5lAbpibTIREF3ki9UMUOuLgNTohDRskyYC0qGoJlQxk4siPlgg2tQcY6gJVw/6unji2GmFlLHK9PfKapEUTPpbDHW6QrDVLC7TzDRJL6rY22JoYglwWoSdoRhWCFNwLOff2AMzyWaKHB4vKdgnbQyAz0QVKqmAxnloz3VwUYoAKVLMhSAIeYyC6pB+CaHzhqwZIKc5xETI1na4upnAzkRiZzVEUFH+hTkhpKavmSGoVqIiZXAYTmUvotyyqh5y/9Tcxm/9I4DcO4p9vWAgzFR36HOQTdr9oUITfiSoBizwORi7tAnj1wHlWm9Jo+c+hPX+Mea9ZF9Fqpi6Vvxzh1+wCRA3chct5JLkVpOSnmjEt6UWcdcPh+gUYFqowtCwCzqz6jhIRLlXk2uC7i9hdKvHQqpZQ3udetwbdzTF4TUwLrg4ZdpEqE4WBeyvD3qBbr9dydJ/A4PT863QhZ3TXR4zFFX1Ow4BzKTvBbIo0G+clJEA7B1++H4Qc/tXFtol/wyPx/OVQRjK+4Ddk/yTJ619Lwv1EOCjzZdDLh5cqO7xX890wue+0sQ2WYiqETDr52+qgSeC1wrT6QZRhUWPHOmB83mZuvG9VqFS37t5dlTYi4U1wEY3VQb4/tMiDmOD1eDwEL+YJWlP0dnooq/3C+iLBJst387hnGc37I+/T4WA2Xq1tWSEqj3hs9m/iH7Ke9zXWyABOxnbvccL+u8a8ZdIFwPIOnGh+dtNU/xcsfX5D+ZgRLOUBmEgBA2ntnEiN6leOs+AUyNvf4tNj5AwTb1s7U/D7ovstjjQ9K9GQRNP/jWf/OC7sXUo52oTyfBmIQUJsxl527jli6AjzIH9+fM+hrFRiPOCkKEfQa3udXNMODwDqY8wmOK+I6iaDigzBzxScO8Zvn1EHSNhzGDO9E+fp6y/2YvKPuwRpufVSZNUUVxwPbhT9aHhnJR7wd3I+FAKskl3pq5yK2ffQ1WAqkYJ/mUGZvj+WKy","layer_level":2},{"id":"3566896b-b3ea-40ab-9825-b15d31b82552","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"认证服务","description":"auth-service","prompt":"创建认证服务的详细文档。深入解释AuthService的核心功能,包括用户登录验证、JWT令牌生成和管理、会话状态管理。详细说明密码验证机制、多租户支持(orgId处理)、用户信息获取流程。描述与JwtUtils和ActiveSessionRegistry的集成方式,包括令牌生命周期管理和活跃会话监控。提供完整的登录流程示例,包括错误处理和日志记录。说明安全最佳实践和性能优化策略。","parent_id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/JwtUtils.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/ActiveSessionRegistry.java","gmt_create":"2026-08-23T10:07:41.4915223+08:00","gmt_modified":"2026-08-23T10:24:19.9515515+08:00","raw_data":"WikiEncrypted:BenkIlLPgjbiADCpekIm2EVwPUhkZv1UDZrM+ivgPjmqjjCngX19I+dyhc+fcrP75gdExsv6I+8pMcGv/504Pz+zLNbt0x4qjFHIo5rKVbJhO5Apvdq8QJTt5Cyk/+NB31HOgj7oHGpZ4NNe9irG8hd4b8uk0ODeStJC4VpiHsIdsreQ7HB67vO97WY6bu85wRdx3iWdKRu/uq1zvGflwS2p37foSY59MIVbiKEiRlTnCkq69KfXn2aK8NLm/5NHWBY4lK6ZrR6DCk83QU5UaGEN18elfwsmm+ivWMXr5HqzhFa1nvtPHpOQoFUe82j/iqEL75XCgcgZVHBAf3zN9wVhm/FScWn5w5Zh9VrFmiW6KFLOzqbLrjtMiLaBKBwNdtooZFuOnQ0xAYOrYkNf3r4MnWxMewxH6Eb0J20yNXk6fwVl0nf411VqKmd/gCZuj1FzUUNNMKDU/yDnYM9xOPw9e14wBpmlbxvdlkt4L9L/XeqVzZ7Ks8RZ6ZTY/8UwK/TmVO4lgYxuSGBsoi78nEnb0JUvosc5+gOTBO2nDA+JtbJ+2zo6Ajvpy9rU62snwBrb4rKsh7JIzZQzlQWi9EYqTtkPjuIgyQLbBw309EVm6LYIIdaEh2nHG84KCFBLaO6aNdk92jRhzrKSNccGob2PHWNJc5QJSjx2eLkBuW51zHXi+Jrj4vy5TCC0odnQzcWWT1tobho5dgEKkAlj5Am4bZklFgODuJwpszwDDHp00O9cjmE8A4TCQerf9tSQEbNMw7bZvG4Czz8vWJbd0bQtgMZV2HbDqnJL/3RlxVUDk4x/CjWaITSfXBHOmAq/QL8U8pNiEBjilWtSCOu0JW0GLZhDzWY5355fBWcthc6jy3wuwRwKGQlWfaJp81+W0P9JlUcVw7vP7xoXFUVasl0TDheha01aiLS22ucnId8HBW9ig750duz+Ge/4Qz5Lbl2xaOeaF5Zq5ygupS91BA5g7pkjQ2OuSdklwrcLqymhhlfVFqclBOH8AX+Wcs5q+yQ3eI4p+N7m6QKwQBwK+WNI/w97oW0w/Nb6GVBFP6Cql+ukIm5G+Ssopb4bA6S1XbVACvj3HFXR1FxSXOXz8iZaASub3hsVfr6FAGZqK09uZzrRvPrvc76uBahz/WjDRZskfWX0TW4+eXoODfMTK8z+Hmzs0Wq9cR1ZHueYHYqUYQavHmbm9vci8U1TzdwlkBWnFxoa92xYgkFrf9nSeehJeJ/BTDOfnLlhUztl2mw=","layer_level":2},{"id":"c605d0ca-a637-4ab1-88d9-343a08dbab83","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"元数据驱动的数据访问","description":"metadata-driven-access","prompt":"创建元数据驱动数据访问的详细技术文档。深入解释FMS系统如何通过s_module和s_field表定义业务模块和字段,实现动态表单和表格的自动生成。详细描述元数据解析机制,包括模块配置读取、字段类型映射、验证规则应用和CRUD操作自动化。说明DataSaveService如何实现基于元数据的动态SQL生成,包括INSERT、UPDATE、DELETE操作的智能构建。解释字段编辑器的扩展机制,支持自定义输入组件和数据转换。提供元数据驱动的查询优化策略和性能考虑。包含具体的代码示例展示如何扩展新的字段类型和业务逻辑。","parent_id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java,fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:41.652187+08:00","gmt_modified":"2026-08-23T10:24:39.4775546+08:00","raw_data":"WikiEncrypted:pjGuIDHO+JzqEKf2Vs2HOtWVb37WD6HkykrjE8PoGzFWwaBqaOCJHc22zrpOOKR7p9fLcotopz39RQ7Stmpx3vG5h6H4g7+LCgpK53VEoJcoXpYXpGIVZX4z4r9rFHCTd/sXe1oXxxVDQv/X9/Lr4uwVwtKiBWw77bDRRgj9nO4IQ/dZ/FPdXQZfz1HKTEnwf2vmf8O4XbWf4q5bWAwYOV49mlnM2GfZNWGIVMMD3NM7U+xma2mDbZRiRT0xd2ncf5tsL4DydvtZmiuC5D2kNipYyAvkjdivzD0tdaxXdamh0al5uZzbPDB3U3KcN6I42XXmGu+UaOEQb7VE/0ho1DyUMDG3nBMctbLH5RWs52yGultX1FSkD7vYzXcfz6NFpBTartflmwb6fR7LsUznJxWNmjnoZReN1iQifi2iS40cze/ZYAHpWw69ZL1IRWD3ng4YTEu8noT2kmviB2dWvst1xlMa5xDRXycl54NuIPzSa6iVEUHT+OVs85P3h2n8UEMvkSqHlYvxH40B7o3VuQzxPKTWI4G2k4DAsQqXbNmb7QdY74UkVudh0G38Og1yKUs8jVAb9YoHFh7yFCS6qHF9l4hK8TvhFTegKwaFLnwG8MOwKpfgMrsFiiCOIQFqDy5MQjPSind31L5SBNPWN1g30e0JxVXHmX8jCNYmMFivjUEDeFusbL0Z0/e608wr8m5blXw157IyRWN9SxYfCiHM0CmslH/Dceu4LpBLS8OvL2JI9V4odLrJ+lxB7fxesxoplsNLKev6LjrWGLY3ZTe5eDBMQxx80Zb1WhyVSn0v0K4kMKMqtjHWDKXNwQOBfVcsfqiFVE8ZlSavkXsUkzWmbepjY066p4030N4W7FGMBSxzp1+w8hewrRC0WmSC81Q9+BoP/zVCWiS5ihbycR8gFTa33TWNwnOGYzT2jWgkSEZIyBF9xkkNIQ+dNqFUUxTZ1FHtGAYrVvLM2kU0ka7pMWEPf1atV+wQHFKn8nznei2XEzdlKXnsMVGUNWUgl6G5PjuHaeRRj16LBZG80zJJeYwConZaphB3YNWBFuZfRoNlO94emS9JVmFB3cqtBPXge4Zw1OeaGX2zBUuaUCGiMS5ukBLwIrO90LILfoaOMv48erH6NkMQ5I2/bdIrT2EUPebMwCIOh7FSjVl5yNNUepm7UCg6POSpTuuIJhqtM5OIOt6JMb5PhRtrrVNDAOlKPuLFUMozxQGeX4TWm0HfMt50+obVHhz7yaHWy8e9kYcIv4ZbbUc9OiZeex5RmYRjqimXuLPEGrbwsMZVZ5NsS5qDtVOB/soaYRR0VTPySEFNmtOJ4x+92GjyOA7RGD30I4YRDOCNrwvmmX3QKLfvhmDDlunA25k3KDI2gJLRdf+PvKSyU9fFD4KdqSEW5u0LH0AFZh+Oxs8qyZlOFVF7xS171FrzxjmmIrDhOTBPP65dgXZu2/z2UbHbVvsn0fsHOc94JkFTdhj8NLXK4OllpVkgib889qBaqrWFRRdgCXE5lqx5vU8F8B9exPyjy0BQT+gO3l4lew/6vYkIqSDLdRfvJxJ9m5HAxpsreptoBlnubfo9YuQ4WcFIeq3r","layer_level":2},{"id":"7a20ada4-a22e-4de8-8ccb-898fc5587449","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据查询接口","description":"data-query-api","prompt":"创建FMS系统数据查询接口的详细API文档。重点说明/loaddata、/loaddatabysql和/page三个核心查询接口的使用方法。详细记录参数格式,包括moduleCode模块代码、fieldDefinitions字段定义、queryConditions查询条件等。提供完整的请求响应示例,展示如何根据元数据配置进行动态查询。说明分页参数的使用方式,包括pageNo页码、pageSize每页数量、orderBy排序等。包含复杂查询场景的示例,如多表关联、条件组合、聚合查询等。","parent_id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataService.java","gmt_create":"2026-08-23T10:07:51.3910294+08:00","gmt_modified":"2026-08-23T10:24:33.655756+08:00","raw_data":"WikiEncrypted:HyDaxYRlPrto0Wzk6B5XZW11TenR6BLyh94MQpPAjYD0gy4h2QBDDH6pCNfHE80fJApyKswGf6Hl9uJ7vAhBjxDMcgWgPaedE31xXssD2AY44iup9KJaHaZhpMkHZlzi1VPtmaw6LpQQapchiNa7wQlmLlwPryHCRg4qwTpusRuxVHBL1nygXgbfFt6/pGgoDP4IeQYC5A+ENdkFsn4IXhdiLyUYUHQdKmZGio5GVpEG2fWUBqF/IM5uWrFsESBgHQIuRbqGyifghik7EVRng7u4Q3a2fVMJM/IrTy4gb/dk1Ru3Gg7PpG0VBpba2wXiw9BV2Lx/LTcenDSseOI5StRbHIILKLq0BT7gu2If00JHGUDsS+xckbrSMPDh3oAeiFJP28PXyxVEukhSi34iGKlhuWYHZRUsDLiDNBs9k680eLa4cOxq2iQgadnjcm0V3rUmzBosxEbDz82aQuIjNj6ZA1/HRWiJtpHHRO07Bsj8W/xZDMqcFi8hHUmnJAwxVp1zKCkpoN1CK1JfBZxKGy5+6108LfgW0kY0Zd69NgMZo0Q14v7k85zR/m13kirndwb+H+tPEcNAT/CN0Brs/MNUtehkZw5AQRa9mxowWzzgwMxLdys6lumS1GPjLwWn18rNg2de7/KhhbCaKJzgpUVKirlqHRIvbmVDl/+kXMu699622iDs1d/iMdsbmRsHbd5aM0hPd1wR/masxoh6IPzLqXRuel5Pre2MfahqodMtteMskmZ9NwRnskpjtWtnwwBIuluTfrdwNe76e554xTEs90+N+xgDBx8SpFdUgrfyZ8x+yOMD1eMd5joXcOBygBJw3SadyQX4wqGFQDrC7zUEkMybcCBu0L2fbLP9Tkus5iu2kuQoIktLsHuYxcCh3lCi9W4HA32+H4zbU49iZHDw3Aathvv7rTXHNC9ImGI6oBQyRMh7VkVVFU19nqMvXEH60m5uuYKjCvIpLzH2A8MGUD/ob7WjZErtoNcAV86pwHxUsxiRKzZwVfgaVEmVIPgydOB0Onf+j0D5wxCJzgKI7ikJ7NAoSqD9nBjQMAK5oq3Ku9sEkt/Qb5IIVgVNW8upApLMw+KCuJSrp9udNv/wyi8Fuphz8cXcAka79D2yUKN0H0cixpxD4J7CRfzutx7637Jyqv+iUz/Eos+Du3yBGjBoerqF4zHMmH/p2K3ue38aughxvRfiCqHE4ZhmdYLLp14XB+g8k9DSGvqBDkUkxHv/8bHDRv0faZhnqhJEbXR+xSojXmsy3Zxi7onHlmkyhLoqp8bDmsZygM/2RWnO/RoUJP6nLV8hrvdBRb4=","layer_level":2},{"id":"f721b533-9cae-44b2-bf33-cded00adff00","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"用户权限表","description":"user-permission-tables","prompt":"为FMS用户权限相关表创建详细文档。详细说明b_user(用户表)的字段设计,包括用户基本信息、权限控制字段和业务角色标识。解释s_role(角色表)、s_power(权限表)、s_user_role(用户角色关联表)、s_role_power(角色权限关联表)和s_role_scope(角色范围表)的设计理念和数据关系。说明RBAC权限模型在系统中的实现方式,包括菜单权限、模块权限、操作权限和字段权限的控制机制。提供用户授权、角色分配、权限验证的典型SQL示例和数据操作流程。包含表间关系图和索引优化建议。","parent_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:52.7826889+08:00","gmt_modified":"2026-08-23T10:25:17.1721374+08:00","raw_data":"WikiEncrypted:A2q6dsB1G5KaNgPAwP2ZpIHMv38OiFx6S1cB163O7/0KrkYV0Ji2TLObOOF5Iz+sQC6nXiU1vPbIFVfCxJjSa6NgkDcecpmA/139bqrSP2B5BLzzYrL0c4O0IEywNSDJGOOe3qmmJKJacufMnPl69qGPCZzXxXf4OxBiaHX4t+S0TVV1qtANK362pNpZTRtkEtR6gbW19Sp58VqGnd+5rnKZ7zqQAewxcYKlLK5qW9BZLpiQuXHpWsgcuJsaEmQrQKap3n7RJwQS6N8d/OF+r1khGY6b2QivGCoPhuFPlT0ftdYXgzDppSn1a5EPWuvmTPEygZomAN2EbP+hpKJcfAmrueeims9+ZWjm2RddIf+jbYTq7pJYvd+SKT8Uers3BUh4zjstuapKDr1rvEQAP+ePWtTbhd4P4K7qrefIfl351AOnmwb96BtXby82cLpwkQ0hCrCH40Yy66/j0v0cM43bWe0xgN+7MvkuvGRkUn5ok2YegM0fHTAqcTqvu6ZE42ZTP3yuUsWvwMJD3SRUORBDbkMIEEmHQl4VhWGqF78CkUrhZJbJiqpfLXt+V5rmawpE0wB/YSFXBF899AcrqoPV96ux9aI8z5XiOVY0uR9+jafS7GAq/WkrPPAykIB/BZznzKYZXjeX2XJqw3RY//ZyzCWJNMssYjbMkAdxPOvNh4fO4G/+L3OS4405PpopiZ7Jrqz3pUnzmE3JWLFcapebIanGvCBjUAG+T1WOG/AmAijTpbdyWR4vGE7kEOlIIbMtAtb9hqpcHQb85FPXEiJzy5RnjAnow6A0RUVYw38sJJvNIkMIYfR3mF3A53ws9TfqE2MCIVc0Tn9HGneREfX205UQa/pMOITy1Ig4deqnynYCwHNtIpqQfPyvTY2bS3byXQMGpNLFH8uc6LtHVdrRPbZ/pZTpAZK+fPNeaoDvlawtrHzuKUuNBrH4P4AXMznTajUgcihRVFShQU1MGGf+wsOIsrJfuHRLGiziKDKwIWMGSHR9XdwnQ51REjD2n+l/2IUZC5/hFR5KWUc72TH60mksXcIJBgpyedWDK80oXgAdgMzyLGvA0oqR940gLFZyBIAurExQPHI2Fgv7a7WVHG08I2IzO7MgA83jJb/g1SES3Ig/QBpf2hk5rafNcoO69DF6IceAP60zVRJTZfyeI2U9jtM2V7O9NaNb8kyqzCDb+DBYezeFwJSRkzSC5tv7P3nQ3w1uZGQdODDYofK0DtTJ2sW/re5/CW/DuGsGaR9xR4c1X92XgPzomgumzsXh39hOFe5nMFE2DTJsQcCMT5hHCb6vzgUOt57Tb5rzC/6IwqdEv7oakBamtEK9/twkNuBzTWkNI7RKqMB9+NclTMIbnJY4AO/jf0OdK49eP/j0o4CBM82dQaGuL9fvXHzdiklnfNDnSu7qoN0qmg==","layer_level":2},{"id":"7395b0cf-91f6-45d3-806a-e9fb7e15f96d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"快速开始","description":"getting-started","prompt":"创建FMS财务管理系统的快速开始指南。详细说明环境要求(Node.js版本、Java版本、数据库要求),提供完整的环境搭建步骤。包含前端开发环境的启动方法(npm install、npm run dev)和后端服务的启动流程。解释配置文件的基本设置,包括数据库连接、文件存储路径等关键配置。提供第一个用户登录和基础操作的示例,确保新用户能够快速体验系统功能。包含常见环境问题的解决方案和故障排查指南。","order":1,"progress_status":"completed","dependent_files":"fms-api/start.cmd,fms-vue/package.json,fms-api/src/main/resources/application.yaml,fms-vue/vite.config.js","gmt_create":"2026-08-23T10:06:35.9069717+08:00","gmt_modified":"2026-08-23T10:08:28.9896344+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWju83LC7H/jAM8CEAvWT8huE5OClmQiIfNYNxHQ9s7RRS6Z13TyQ6wXlkVP44X4+H/5xT4dRfP6yNWjqZ59oSAcxTV4jcqUR2JOv04PVBDW8FWA/o2QFd/AJokGx7t4p1hodeThG83Wmb5Stm9eqfUVhtnv8xgz5B4GrGIaFp33lr7U2hPoAQrfGlU7vRNUiKWFWFf+piSyhDiXk9GTnQ1N/DaLzCPmLFfLU0N/u9HAonXPV/dirOTRzriOurEOOFeb1W6t5GZ+lFYli6tgTJR3+k8PSUb79HF61PZuciANWiMMwLqea2u2yLWQYr8B5FeXE4UtwWZ4kHHrHnn/dB2m0VCh9cnIYgyEQTG2rJaYNTVhz1Xni5uF78wCDzHTTEKVmQ2DI0Py0HdddluIJPKnJnhjgMGOjA8egVFJh19RW/E+k3MBl7w5yngdXGh55FUMdvT6h0EVTP8JfXAFrg/6FEuCxw8ZTpCZA32HHIencU70H6kjmYeUMVduNuhZE71mvKG+1lU+dl2SsPBxc8yacBsWHK4PCQhdDAUQXxcbjlAXIdV3nzay1Yu9MmYLDsQRbPN52d5bVbrSxe30M05oU137CBp/epdstzwkuODHiTWJQIn5XvWkc2mKb61kO81Os4Q6PlmWIyw7Erh6h1Own2672p1UToUSZvxhhrK452JPvG3LrUu0V5MU+xehfgvHu3z+jjqm8hHaEPJMOM/F3ybyTOF57iTCzNM4isPi26VbQ7IwpzCmlUpH+7kz0RgrkT7osL7XxcZIWj+wVxNyM30mr+d5PTJOsCQ3YMAOCQBuomigwCv7DVGfiY1g262afLmNIIkbRxgZfK5mDqyvvdMtxSX2WohSqsMhbMYcHtd7pKbwjwSZeVxPC27Ik/h4UU5BTTauEXztR9+hUW4Zl2wt7HhWTZH1tb5vGORDAmltf3rhqqBK1ExfptIqYT08LpNv1eryDSoHpbErcnbCPBTINBBRMYwLnFIYFLT/GKfbRFKOsy+9RrcNDzgLAGK1eSyq7zyyHJvc/BiDmPVJ/uhrdML0+hcNp1mZqWg15/riPjmMHz2y73bUrZHksc/TwYeBv2mDXr1iKN6nZUBc7QAjTRMbqZo6HwTpnOJHSaZqoFe9q5JUVwLeBj8EdkHX5dmZDiqyixsWd3wyZPFpbdhT+LxHY7MjiMAqHgN9z9A=="},{"id":"a4b27f53-a123-47ed-bc9e-c770506745a4","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"状态管理","description":"state-management","prompt":"为FMS前端状态管理系统创建详细文档。深入解释基于Pinia的状态管理模式,包括store的创建、模块化和数据持久化策略。详细描述auth.js中的用户认证状态管理,包括登录状态、用户信息和JWT令牌处理。说明app.js中的应用全局状态,如主题设置、语言偏好和UI状态。解释permissions.js中的权限状态管理,包括菜单权限、按钮权限和功能权限的控制逻辑。提供状态更新的最佳实践和性能优化策略。包含状态调试和测试方法。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/stores/auth.js,fms-vue/src/stores/app.js,fms-vue/src/stores/permissions.js,fms-vue/src/stores/index.js","gmt_create":"2026-08-23T10:06:52.0473214+08:00","gmt_modified":"2026-08-23T10:14:08.8464207+08:00","raw_data":"WikiEncrypted:29DQGcj0Xkj5ar8OataJBBxhchc25ft/oSjDSUQ9oFMuTtSh8oXnlbImzVMruuEkrfNOa4VI6r5QPuUjp3qOow8xkkE3Q6Up3MeOOk1gncD0hwuzSskcLvxaiUOIWowQua40sJZfx2O1CJ5mtFiLp7d4exM4Hq5y3G+Y8micQRIsH7gUqBfLJCyNIzJm+UqEXfFK4Z7mPgzpKhmiAgLnKM67bj8eKFi9bP4Yzsg1c8d37KRHaciKaQ5hne7b/jUGWJGHsHGByFxEdxFl7crP4aOTXwEtKQhplQtHFhHSUWbi/VMJpHZd8BvCl5LJBAUDRn8c0yTfMg6VZkXghucoyh5lJxPbSCS//vZ20INaIZCBTeVk3OSfe8Qw/NCtvJZoGFEzIZsLPjVuyJejBlzAc30AJB+HgBfE1bCg8RQgnaAaprwAro3XctrUSs7S5CWmW5S227iIEOdo+XK3WlDb67WqTnPZSqg/LNb5gLJMo4UM5UFzHnRxPR+3sLQYcctKqcaOB8Kub0jQlLEczrUFdBKdVr+9rSs1/XAbu6zhqJWbhjxmo/t5WJI65VDDhAJRXJv45zWFgL0bxhssUjtC4lz6U0MqKoNnRO2YOBcQ5zK6p6zTNRPZuhYz5XEbPCH+qXm7bxgSIOy2ry2Bb2g0fL03wGjSBz76sQV5qYiEnzs9F8ZfdRYZc4mClORZ3ka1aGvwzPeA4i1/5FQr1DCorSRGncsqgVtGSZeBlmdB/Quq81f942xEFkeS/DlLmjJlF5spvoX/bwIUAkCuA/rQwPjsa8JxkvQ41gruOBLzaisO/nyfoVBMIKw0B9dD4L1I129WjJnrIAGWPJlRSi/CzOPwKj9QKlSCaAP0Mm4cyMp3h6GcMF6SccZV/qe3eC1vWRKMyb/mi1pYHqvRvFP1LFOytPq0oG6/8ZDBXaGq5l7GxFKCKzXY3ycyLMTi/xodJ6fHwPQmNG69zCHwZp+X65UIaT2Y/9xiIjskv5ZlUrXYAaJV3WUN7O5M3jrYbX55s6Lji/jfi5208JT5bhC1p2XeVU7bO3Bmnb3v6PvlOTlrJPQAJqiC2HM8jCt0/VRcF2uabJbvX3EkfvEiQoUe/XDlNjnqTw9aavb1/R71yFYsLphLPbYwSSFAime0XHK3sLHJA4qOjd6V2hFIV8ohXlzmt/SSxcpPjfsBE9OOR/d3uVpnZKFEBC3n+XGL/Jc3j/77sjm5nIIFKD1ZrZB9tGu17c2e4YvNfX5UgP1iftfamHvLxsDa4BG4Ye7J10na","layer_level":1},{"id":"0a378399-4b1e-4113-b16a-a4a6f557e0b5","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"行内编辑功能","description":"cell-editing","prompt":"为FMS表格的行内编辑功能创建全面的技术文档。详细解释编辑状态管理机制,包括activeEditingRow、editingActive状态和rowEditingStates的WeakMap存储。说明编辑器激活流程,包括activateEditing函数、键盘导航处理和焦点管理。描述编辑器的生命周期管理,包括deactivateRowEditing、clearActiveEditing等状态清理机制。解释编辑值的变化检测逻辑,包括editorValuesEqual比较函数和onChange事件处理。提供不同编辑器类型(input、select、checkbox等)的配置示例和使用模式,以及编辑验证和错误处理的实现方案。","parent_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createEditableCellRenderer.js,fms-vue/src/components/ui/form/form-item.vue","gmt_create":"2026-08-23T10:06:52.4239597+08:00","gmt_modified":"2026-08-23T10:14:21.6281193+08:00","raw_data":"WikiEncrypted:33EMp5dagqgIcnBwoGQivBqBTJ3pMbaShpn/4eCvD8Neb7HK1xy9Z3iG4qxCWwRqvgjG+NLdeXpZskI3W5H0YQSv7cSxbqIFwtcmTayrq0Tx0vQsifWdct8+nUkv4JImSf3S3aKFejLdc5e6u7AeddoVM9S/tKmDFsCFVfS2vtiWfN5RS6xMhd7ChShXL8XLMsZl0Vz1weyj+b8W7OBT7cptRwiVWnuLGBZriOHYiLL4GnOx6APYlsbuVyWUbECWnCEz2bDeAZBDr8VlfHkfrnUD7K6Mmxj0t5Y9u/CXZt6weDYgiiOalgZqPaEntdfR6SbGyvivLiBqNXXNX0Iu6aQbn8enIdz11o9q53ILqWt9mIb7LyvVV9NncoReU2jrXDl5/Rxd3NMoQwUBL9CK/iozkrD5OeSLjf6Q0hkuuLfEBhbvVAW00QGC3nUiY4i6WmndzXE+/UERrr+3TC5ZjL2vBEB7rLb/y8kDej+4a4scvI1IE6SUDhTJB5SWh/MtIIbWtmBy/JzKhQNxtYlaoRzosahjUw+lyi+Zv38ok+posvSVjjO/1CkujNW1UBEy9UvHvEHbgzcGOKwurMdteC1m1nd9WKDWuSUnBbKJ2GD5kVUgF55aWwauq3RJaX7dm7irOA4UFOVScgstEjXvB4peSciIretRATwWLgdb/iezY6vzkHrm2K/Zt5+Ug5qH5/O0XQLCv/ULVbRmxVt8nPmYazQd1hiYOn5xpXzxO0lTFUAJ3Zfn6yaclL2HHhhoDQqDYHYN2NK55V5VaTwyAVNONdpoaVDi+q1vhoWuwAZMk5CtkMF7n9LW+l0DsTNwGon/hFCyq9dlJQZJxm2MeofZrXXKekcDcdY40KcsIZBMn9oou22I3bWo+yPdBF9D8BjS8WNei7chP6Hnp70nbnt8D892IESSpZRUMBA2D6qbw/G+iHAYhsu+TuIXDv2dGvcqmVjCCi6OEMMeKu69C7o82zPdhZlQxuuYsNzWWMepuYfetrS2VcX+a/4/F1jM00T9VEbfTTVj+joRtKcexFimH0TFX/05JyGemQEPUAGNidBGrQpIfAyH+WDZRX3ed88uxPH5W91qMWUE1QKIOqOEyHYw91TKJD24ARFYipe4OxCDGLf8DgrcCTMDQ0Gs+Y8IYsa7dZwOAIxmzNIjWRWdPFXOAbBrBMHcBL6eDVKl/Cj9t3NrdrdMA/ak2dSsLR9Z38qoTeSwm31gfNlslzvBaMEUjztd6vMqZ0I3eEQJDLSP1MsxrpIEVg5CcJJdZvWzfFd7KgSfWcfyMSiba8+XuTbzHTN2WFvezhFnCvqHho6oQXbRoa54g2WtVrUx2kBwOezMDZGczDJYZD7SVV3hsR/lhMdpuaEX0rrGAiie70O4lZaQrMYRZn+B1RQaopOVxvQowM+R51BjLGkwPz+PCvYp/tA2k7BhGgKDsbrPbKeRXCAaRyeIPvBDPiECSHeR65oHookuKeTIbP8j5YJijTla4tYQhuvs4wY+zdkN+77rxDzkdBHNZMiRol8O","layer_level":1},{"id":"6ebfa59a-db99-4c64-beb2-7b8ef20dc652","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"表单组件","description":"form-components","prompt":"创建FMS表单组件的详细文档。全面介绍表单容器、表单项、复选框、单选框、选择器、日期选择器、开关等表单相关组件的设计理念和实现方式。详细说明表单验证机制、数据绑定、错误处理和用户交互体验。解释复杂表单场景下的组件组合使用模式,包括动态表单生成和批量操作。提供表单性能优化技巧和用户体验设计指南。说明表单组件的国际化支持和主题定制能力。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/form/form.vue,fms-vue/src/components/ui/form/form-item.vue,fms-vue/src/components/ui/checkbox/checkbox.vue,fms-vue/src/components/ui/radio/radio.vue,fms-vue/src/components/ui/select/select.vue,fms-vue/src/components/ui/date/date-picker.vue,fms-vue/src/components/ui/switch/switch.vue","gmt_create":"2026-08-23T10:06:52.7661656+08:00","gmt_modified":"2026-08-23T10:14:42.0954925+08:00","raw_data":"WikiEncrypted:JMq2xgPQDMbLJ+LAP4f11gZM5lyXj22MjY8A6EPA4s+I9kqlbOWEEq38UichI9+bG+UPegD8Rqx6esvPMCwAw9qSeiLMiYDctwFyiap5r/ApUIjASjCDBRMpc0olKRBopgi47lBbPoKbToPY0vKxDEb3w3eqYMEI9CSB3hJ91dmjZgVWswV2sT1qtEc2x7ZIRpSSrFIJSgPAQYwzrhV0kwLomuuuar4aLcyeSWG/JdldEAFnqvqjbJZAMpI0vVAr/O5Eqqlegkt8PEDZn4/8SEyMpkCwWGk8O0/3KvbqXhs9Vm+Rvem0FXGlXW8+o9dnYkR5cTxYrbVOvBPiPRpYh2+MIN9+eYocUM1F+MzFEi/6/HPb22KQNYZaWeI7NVWhHiNxKmsMJjSv+6G3+sNUAe4w1eYFX/0NXgKxkAK7lGEjBYLxUigVrqge3vYH0q6G12fxZvz6YmS3DAsMUewkGcRnaLZORiJEMClvfpixANJyqyttzIC4i0e6qov4LXZDupXAwx8IWvZwAyDw8oMKzN8YjyuiYFXkW/emvB0I1g0ARezvtS7LLVNZOZu+kTkhlH8JtBEZs+Vyet7UIBFxTfLfF7rv+G0p4W2eLrcdInXexuxVhQsx5UmS7BEQZsNf69LbpwtC4fQMKvcDHslAG5IYUd3XVlwryRwjBwvLF9JJdbJBexImmcygrl89OsAuf60KeMPPXd/K1xS/xFfoQeHU1KjcZbV22oUH6uIPT513sws6XD9vknNi6yG6KXZBwMU7J9/7v9rCm/FbWcLqARYpJlBlJ0XyucPcuwJV2LiM9tmPqbPc4PrH0qNDikRoAKWy8mAg43D43PeuNgygoD4as24D17HSkV5+mLWpAlNriG66qf/D7Fndpl0Um6Xm6qJukjUImlUdtsgOzc2FJmNirB29J8rsFEtuGB4c3ApyGqGfURZU0lGaO2cLrxoyap0jRJiluElPtXVW+sdVjoDoWJS/EN+eD+vwwkt2AP+6CRNLw8dy0y+DEAxEc28LWiNnzBFhTX7geevBaUez+jOA2g9RvkBePMy1zlOIA+lpHd6xyy0lEb3csWLdBiEqQisUTB6gSOViogNr7UGsU7A7wcYORFYUchLiXKsQ6qNxtFmKWyuAaRTxYdHGLFgWzCYDD3jMGzXVUKYITzvy/gqu7XtfL6O9WzxRhvPDYvyT6AqzhJwMRT8OUzbHJ9eXs8gZ+bks/FlNR67mdAKEKAaAasek7BHkTB5/U5yWlHbeWCYhnvEHJkGpniNHZD9ldILJAJmjihq0KwgbjEm+7qbp6OhI5Jx0h795uhnBBltigVfEDfIjthOVGK54aJ/3Pu/z9mIzkjW4wTvTBANGybFiRaDerAQ1qhBWAvV1oYATfnKba5zGlPyi0Nz+OgWuEjxY90X54gpoQT0fnMbJA/adc1Bvx0x2yteu+EW6HSj6wDSU6ssUf3O5q47QkKgA+FglR3q/50P2cLbWMRG5rUfihG5TvoXa97GFWWzrrFo=","layer_level":1},{"id":"ee1b378f-0b54-474f-a1c2-4a3ec3cd2098","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"RBAC权限模型","description":"rbac-permission-model","prompt":"为FMS系统的RBAC权限模型创建全面的技术文档。详细解释用户、角色、权限之间的层次关系和数据模型设计,包括表结构定义、外键约束和业务规则。描述权限继承机制,包括角色权限继承、用户权限聚合、模块级权限控制。说明权限数据的存储结构和查询优化策略。解释权限检查算法,包括资源访问控制、操作权限验证、数据范围限制。提供权限配置的管理界面设计和API接口规范。包含权限缓存策略和性能优化方案。","parent_id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/stores/permissions.js,fms-api/src/main/java/cn/g3soft/fmsapi/controller/AuthController.java,fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:03.4709773+08:00","gmt_modified":"2026-08-23T10:14:59.0353584+08:00","raw_data":"WikiEncrypted:F5FDJZZj/3i5wOR0qGN9fH8JL21Fv0eKP7zRPdnkNTcfTSqmGrsHyLRDFwaEbdvdgoU+wRhjaDBz7/f0XwoyJnrZ9PoW/sComqW73kpeKAxtawoeF4SY8vQCpOzlcd0YEOB61gpOinJrVPiS+ouw1BhAeGNQtvh4nFoawCwppP23NKVgYt5glN8Boq0LGKO5+HdqRkw7ZrH9kFGTHG3fS/En2Q7k0TkylbM01VtAXnk7zECRGFJnyOp2xV+CYahGW2f6bfLuc8/WgjKAQSLTbfmofPugliy2gqYifq0nLpffBoWE6hwGqn7HCZuHhP7oHXIrQXvhIO5Kyy3ElTc2luU7XBBdPDIH5v8lF6rS5P+qTWrynuYIrM7xYn++bMsRanrJ9fX22LQXCbGWpnLTmUyCqslnPRKmoRvGHDMkOZr/qe6bMM08quaS3/qNBYxWXzf6e7BB2WNwrAnu0ozk1dqystvr9f3OLAEkLYWVfeO0776cDmd3O542w/xtEFOpZvfqFSKWMsOKVHRWll5D+nvzSnZbyaE+U4lpb2WrvMgyNF1iY0rbHKRZNrEVZ2YofyIRdY5qY2xNNwSx2hsjPzjvA0pKH1Q27Or1HhVj/94UkilRwtevsB15BUVyARjcYSFnJ4PNtzqFt9Ytd2JaKGcXY1nOuiaIYHw+eM6p48j2HjgteDhtlkhRa2NeyCsTPUoqhQ1Jpw4m35gOB4l6U0IZGBKjRNWgBogW8jUqc0DKG/gcLE3MiIDfCfmEqUKaNf0hkd43kCqTVEzZycnq+6zyYDBo8oYcqtspqDfKhRaavmeU8zBE1RSdjHbY5Feyw/LedtnvEMX0PE0NAIGdgQGLgm+z0t3N3FSN60dhq/hFSgjm8L3sBZ+jlm4Zg6HK7h8Zw9AZQ22bi98jlINOx3a+QrESWDCmMcuCoGfQTRCN7IQxLfbqErfBovGyHuCs/49FVA5arwUQKKb9RKOPnxQFfTTbcnhXwjFfnqeZ1GGtrvYC0zt/eHOhXIA0FJcdAObRoG/vYAfbhYCiRy6uhRxT7Pcs6wZ3/Hj2HGhVGZMYiuwwPT9MAe6i7iyIMyEHTvYzf0s1VT35ffk4tA/paKanv36IaCcY2wEOd46TNRgvMJqk67FlL6RNo13ogT0iAO/V3GrI5+R0+Up/gHsdi5N1xwMfoMYqesz5JMi5/J+MuUFEcTRpWkeuvS2//Mcvd2tsv+3gNwoTiYnfvh1KF83AEzSkoGfI9NhQjHXehkORNcOvydi+TPtNw80q7C511R04Ddf535E0VlJWRJ8kDtbJkIhD7SpICVlo7ncUCA9PQMi1j/SLrQkw/HALfLAJEyrxHwz3+Zgx3+Dk8vGUS/lWeiML6wc8A96+LvcfqPBBHapw/Kw493QxCOgqFtkokoZ8G+veLlIxXOg6Yye34Q==","layer_level":1},{"id":"51685fcd-b2f0-4495-b832-222c65e2ad2c","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"后端文件服务","description":"file-service","prompt":"创建FMS后端文件服务的综合文档。详细介绍FileService核心服务类的实现,包括文件上传、下载、删除、预览等核心业务逻辑。说明FileController控制器的RESTful API接口设计,涵盖文件操作的HTTP端点规范。解释FileStorageProperties配置类支持的存储策略,包括本地文件系统存储和云存储服务(如OSS、S3)的配置切换。描述文件安全机制,包括访问权限验证、文件类型过滤、大小限制等安全措施。提供API调用示例和错误处理策略,包含文件操作的事务管理和异常处理机制。","parent_id":"32372749-256d-4739-86ac-7f74eaef22b9","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java,fms-api/src/main/java/cn/g3soft/fmsapi/controller/FileController.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/FileStorageProperties.java","gmt_create":"2026-08-23T10:07:04.0848482+08:00","gmt_modified":"2026-08-23T10:15:01.0331759+08:00","raw_data":"WikiEncrypted:l1O7XWjgWHyLZEgkeZtuwXvYp2TlDw0RF6jqO3EAYPBne4TDAxOAR+kAzHzKKb9GVgUo7PZqEEsfp8f5RFsoOqUf73jmYiYicXhm4Is0Z11Z3IPK9PQVzg+1GBRDavBl/yLPD3q3Zg1Q5/P/8ceIUeexrEOrzlxdN9aRZlKgoF7b7OYrYhOAy3e0WXOLw4z27aJZ4jZfQ/BtPyNJ1Bqc5ry03IHyO4S5MgWVC9wrY0bcyNAJJ6WdDJpdcBOipLrFVZRR6S3bX2At3qs0rg6ik0BDee3ZHZk6Bbr7O99rAcvhZL+UtCflQBK+HBT8Ah6/B0T+GO8G0cm3UvpcBeBvX0sfxmQHiH3qsALC3adfVPrfQ/HnQND31Nb/1o73gC9MZcYb6RLQ9DBlyAgP4UyJwU0lAZMqooNBfuGLKNjr9u8UXIbmglTNT8ZYrp899dwt7MBJr778yK8j097K94RbhnuI3hWp1d2SvtBHuCpWiW1JnE9qcWGdtRwVbP8k2dXclm+KB/C29qxUJepSSnVOzex3wPvjaYyp8KiFkeVndJHcW/l31ajftoNpo4KVNbr2qxJHtX5HcR1UEv5aU4WtuMChn0tO2+aatFnc0l5QAQKMvM5h8RJqmmHnSg5kmK7ZmwQoFHjXUiGR+2cn3RpPTlACizEEm2uJYnU4AtZzLzNLuNMCv6wYbqq7T62EyqzKkfXwoe6WNn04lt8uyB4mF4vCgPdSIvx8iajhq0kK3zg3YpKQfZNshay08VMcvLGcs3zrdozvbjhmXLIqUW5NFr7zYesWQmBJ/3REf1wDdhgksoHHqqwZEqF+zpz5paUGvJoWusjbHkuZMe8hcrAPKesPnBcMRM89bVvNSCi9SMdBuMtQjxAjpHsL8X3vxD7fjZ1RP4lsY8kDaKJF+4qtAhbfZC1LJ/S+FcLfg3vt779He01f8mpxQA3J5KD+h7lJ2fs89+G50xaI6dTMl52tmN2ohGzPFoeHcQF3PXB6bmvCjKJFS6jsLYhnPxQMcp069NZtNVTPMz+Y7pU5JKbIxLtIur2B4xV8NYBcROYtpvUdj1iQN2EK0ZhhGy/p6OnoGxbhFRNu1ezQdYfgDz93LeJRDI6RcgOMK8UQKM6qgtc2Iot2BCvDIEr6P3F6VLu8kz5DuCCD06WSWXWPpvGNCeOohLMk3pk98lsvFO56Al8vRX5rC0mxrApW1b2hRiJyGPoK08Bw4YK0YmJZ3/0va7LprqLZoUCl+gysMpF+jTkSkK3kXBAtJNL5wPGhleNNNZx3k44G9CtIaSa0TS8h2d7JEqKPVikYKepGxxMebCOETaYjeQsQkMis7loiDiKHztvi91ye21k/KTjGfqYhM196CMbGlHBwpZojFvPG+Wo7/cIXZyu1b8bFLseFkuLyQ/jHffsKWuX0vsgiD/C3MKd3mEHDoS1Xsu9bcoi08JBrf4L2EfNz1PIQwvKCH7r3mg/qaL4dAFRLLHHhp6sCdMeKfrmy/gnfBPA2XaiAxOssP/IVBfnI79YycRqqrvqo","layer_level":1},{"id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据访问层","description":"data-access-layer","prompt":"创建FMS数据访问层的综合技术文档。深入解释元数据驱动的数据访问架构,包括动态SQL生成、表结构映射和CRUD操作自动化机制。详细描述多租户数据隔离的实现方案,包括OrgRoutingDataSource的工作原理、数据库连接池管理和租户上下文切换。说明DbUtils工具类的核心功能,包括SQL执行、结果集处理和事务管理。解释DataSaveService的业务逻辑封装,包括数据验证、批量操作和错误处理。提供数据访问的性能优化策略和最佳实践。","parent_id":"803cf389-2e38-40a5-bd14-57d653cea595","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/database/DbUtils.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java,fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgRoutingDataSource.java","gmt_create":"2026-08-23T10:07:04.4232145+08:00","gmt_modified":"2026-08-23T10:15:37.1500176+08:00","raw_data":"WikiEncrypted:M8uljGDGJ//mcfRJly0hh2/mWMVZAXEARazEIIgMSV+7zh4rlxI5/PWj1ISX6NLHyPgijvBuT/wC8NCYThAUwGcFxQWW7qpLLt2Iti+S29v2mmSQtceg8IQWk4j4WX8LdkAjbytnXnabse68Zb7hv+wogkCbOHhSR1wgUl61wZutaM4lCRaCsmiAV159lBw43iXhLeAiR76rAQD0EznuTAdzgNOMwloWwBNUkiiBq1FxcOnhDYAcyg6LPBxsRa5cVAGkgMIDEJPujadZ8Zg4Ux5Ylz4WO8rHyYW+xY7/cR0yeBldmYxDF7mH5bUttZxIB4eL91eoLr05ZSQRHU20uzzttQe5c+5bVbhAXhkOXpLuPCAxMBEz/4BFNtX+EXMe0v6xfWWLjYztO4/10V5AKIg4kt3A0Wf7lSvKlQGwTr4PUWkF8CAJaJ8FqdQxqWTC5QiZpSl27W4ByLaQLBLcOfNICd0ErhKuzRcQ0Da9x7vc0OdBrour6DK7VwQbcUrBLNRa6UkVnZccu/cX2aB/bqWAYZlhLzXnfUVDSlk2/jc5w9vwe8RMZ7/b/V8vQgPrkXP5JvRe64W5kZRbs+eZGLNId0y87vyY2JKjHqXP4s1N5DfoHj1lEvVUW/yRkQFhw54OXTbwxVoBu/YYs8HUnnQQfUDxrE2aOg5Uj70bMbyYVLPgaSAEZQ/Td93R2xEIO0h+4yZdT5giOIhKcv8UCuz530Jb6BuND4vvO/kbGgIEpvL98J9+DYNgE6xqnWHpwvjzZVdyV+BfFOT3+dHjW25TuWYD6grgDnNWSxr0bjlzNJU/VA0LQnA8Y8bvaU469Ta51wPP72Icz0vgVCf6DfAIvLn6xE+M7uhlLuAUZ32z8Sjc5aOl5umGcDFX9vXPMKe6St3P76TYz4ZU/Zttb+SExZ3VVZyRcrk7oeJzZBIMj4IvME0qcdfuuSb08djKby2boRa8xO0ySO7BgepE2yeOP6nbHKpZUBZkr+WR9HY0w8XyohELdsCgjrYttaOBFxglIbUJp3onmLrHQHbUvcdq8Cn47HKF5ySEeERVgZp8ZS+44RNYuJV4QMw2bbBNFqccBO6RHtNRUE1wvISklL/z+eA9zHmxEKUappF+f5ARdz56EnlVfqt5Z3TGKsg19wJ/WAgtXvO9HDXs9Oi9hTGKFMNuAIGH8gOEgM1OeC21sRo/TbMlqEFwarfjWIFrk68tMcFSz60zZyOf8Hdtzgu0K+ZkoSV9OD6W96UCVyBINBG8jvblhAPP4etfVc9CEoWhnON7Q7L5R6SBfPkjDkHe0GEQYhnGKBNfi9zYwvEbhNqFl5XjUiaG0E63YGvFWuIP1Pqme21NOQB2uoMwdtci8dSAQUXvBkOd0YXCbHLbkJz5HsfPVfu+i1YFJKKO4XkyKHmbNamR7V+C7ULB3VCclqThPmFeFoYm54Zf29o=","layer_level":1},{"id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据接口","description":"data-api","prompt":"创建FMS系统数据接口的详细API文档。记录元数据驱动的数据操作接口,包括动态查询、CRUD操作、批量处理等功能。详细说明数据接口的通用调用模式,包括模块代码、字段定义、查询条件等参数的使用。提供完整的请求响应示例,展示如何根据s_module和s_field表结构进行数据操作。说明事务处理机制和数据一致性保证。包含性能优化建议和最佳实践。","parent_id":"91f0e42a-fd87-4731-82e7-941d2a568389","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataService.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java","gmt_create":"2026-08-23T10:07:13.604059+08:00","gmt_modified":"2026-08-23T10:15:56.2765866+08:00","raw_data":"WikiEncrypted:M8uljGDGJ//mcfRJly0hh9Zj+IIIQjAYr38fOIX0XF1bfvO/zxxZlJEL0cMe5vbChznk3LyGem7sWcEpXawVp4htaL/KH5fu2Adj9jW0/vMdbRWSSO4kKg3n2azKoaU6E6xkpEU9hGi11cV0b+PZ9E3f5ewZbSqXECipe5tyZiJ5yTDdFg+EjRKpR8Ft0iINPWDQVF5LnXDi+GgGzRZ+AN2tFqOaZRdgXsI/81EH+EijqIZRM4NHk749lY0YDtB0URojxU2WnpW972X/yQhBhGEp9WhG1RUU4vTjcYtbiOX9GfFtUJpUDvulb7xhc8mVLuNZ02RhwqM4MLIasY4lyiy7ueizvJq2xfH8q18fL9rB+udMGjnK10cnTgyojCd710PRd/yAnzpvGrDJoZA4hoCfLYGINuPoQPtVX8Y2HiQGq6YYIly98LBfQr76jZ+VEM8P4bCvJqmr7MbymezgpW70oMHXzFcoDnUhJPDvjc/SA8xiB2LNmNwtIWjBL9uTYhzm4Xx5UYotmS0PJ4jF3W/GGHeGCH7ZFzIGN3QdQeyCQY4dDIHGpi/6q97V+xGbmQj54WrJlH20kBcFtY9fE/gfcLDFesEuzk1kFuWNCHw/rHN67p/dwEDhUiEKexMj+mEUl1xbiBIHOUFZzlwlotF88xMcIlyMdkRpFpCFzU/yu33BzOaBj1QmC20ILcpKeztKAWmeNZG+FHCoinwvMnk2yEIJmmU+rfQGMIo8BjVrAT0RxseZBHkggjoXPtv0X+61j5Mjgz8Re5mjzTpNlofEYho80rvxh10ZZslaQObfr4FDzwZYJBA4e8ns5j9Hfd7uJ7NbURkfDdhM2UdYGAhxbvmYQNIVSyKFCN0aGmI3UYl0VAVNaCu9ENcBo5+IYpozz/cY3U5Fnm/xF+f+AHND4gKAt6jeDi0I79NtmZKuSuv0H9JhaxZZ8j/dwxe1f2UOc3H/GfMz17tpV6+PiTLBaxPoAao8umfIvUmcd2pNxKyHrpMFZZIK7yZzMtacoATCBLVpwFjgsmFrmzqkUxdyPeLV2iRFcci8bgAb+HcQyPPAH/ZQ3bLQ+C7tgb3/bWgkQ0bqyxGADhBtT1/0cCXb7WfjBod393IkhUt8fCUBMpuV8xqlYZv0qWyTM0eZbCSabw6kjC4EiKu0nR2g+1AKuCnl7lXVwqR709suNTqHfqJZCamSkXN2KGCPgohG","layer_level":1},{"id":"dfe3091b-0051-48ba-ad65-955c494a1db8","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"后端配置","description":"backend-configuration","prompt":"为FMS后端配置系统创建详细文档。全面说明Spring Boot应用配置文件application.yaml的结构和各项参数,包括服务器配置、数据库连接、文件存储、安全设置等。详细解释多数据源配置,包括不同机构的数据源切换机制。描述数据库连接池配置、连接管理和性能调优选项。说明文件存储服务配置,包括本地存储和云存储的切换配置。提供第三方服务集成配置,如邮件服务、消息队列等。包含配置验证、默认值管理和配置热更新机制。","parent_id":"931bb9e7-f8d2-49cc-bbee-7a861d12c4c0","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/resources/application.yaml,fms-api/config/dbconfigs/G3HD.properties,fms-api/config/dbconfigs/README.md","gmt_create":"2026-08-23T10:07:13.9679333+08:00","gmt_modified":"2026-08-23T10:15:37.76554+08:00","raw_data":"WikiEncrypted:N3UbzwGjCC3xD6BrTM0cq3EoykSV6MZr1pTvktmRjRvGo7Q+xUlvLERI7YHiUBfi3cblnerEOpAziVIwZgQ647QLAcZ67X20BaBp5YBPrgpT09eIrpcZYmdelrQFjOgxmW4hk+eeX3/ljczqinOjB4pkLvCGeM7URjsKsnSsKfb348Eu9VEuCj9Lq6gfu+IkWWKxdhDj3QyVn2CzGCo8jKAban/UqnjzmyuLj2CzgIAi7/lyt1KpbiDUsG+AS8An4bU8A/y+8H1yqqc/J9WinjxtpYmOzixwzzbRnwkzY8ChSCryzL2M/vrRoQ/xfpIgzSsk649PJPn5hnX67mept1wA9xhP1CenwVWPt96Ghw9/2LMEYKyg2s568AvX91+390a+6Uu11Tgw5vwUA4T4/5mGETPP05TNU38+E0btg8YbeLl3+6unoC9k8okOSZX1pkKLt9+hWsks8WNWYRiM+YpL1KXkiGP6WS+VZicCAfxIFvlm/QboIG+LDUYU6XHCuZfs5CtTsEU9qYrMDvrjTFreMsi8SCNysXlVM9HcPCuGnF27/L+58qAVjJ70kdrnLx7EB4yh5O++26yshJviMgEKyK0z3aVZZxpS99/x3KCt5fMNCyWo7RLZ07t6R7PiWHKmk97U4mhFOqSNSixgsfGVdVqOtucvoYNMPeQ+l9KfH8/dx2gB2YKJIlWuxZDaSVyaaatkYPiv75QdZd+mze5Baflhartpn6IftAgBLje/ryvLBrDErqlp0tWyIv9sC0Ws3cRVCShw6ceW281zIOiX4jnjv4WOZM0vyuE+leXmyL8XRdfEbut6wtUNKaiQCu1+UYaAxLo31K9jxSYGPAsrigqyE3OXfSnaxhdtrmMClQ+UDUwKqKXxVLB3mgS7xQHOrXCnZVEmcVHrca38FSC6MEBsHMHabXfxknweazoANsZUwW+iN6OnV854pXgGJUGSrs2AMz9YldhyxCGmVlTTluHVmJucUv5GeNsNqnvQyzdx5GTBWcSGGNNh7k4+2PyHCQnih+xhUhDzp4utynYZ/6QMyDuEo0BD1L/hYSv8Texzmko+TclZIknulM3rLrZPljxwCZy5/OUFBBwyaq+nMOQjbYXlmkgi33eOGjWXSFsoU0QZRacP3j8aXyP40sd3LL+61EJMbtKRwBjFd8dAKtEzoQSJ0rvDMJJ+GgL5SHsFgR6h0Byqny2SIfChgXqjlOS9efsoTL9t/6a/ad3lTI5pBFXsVKtOQIB5MV7yRkmRV1mPou3RXs+kVwaUjF5zFoaHHbE4R2bH+zicMRzp3PuFPiwNcTBZLPtUEHSJ9fG5jjQxNt7O8JhWe78VpQhuLCtk+opNX7v7iyEwFOHlwjuOcZcR/27j2+Qyrf9eVPn6tL6UkJSVeSyQJUJ0t7T3bkzl6WOYki7Cl/K+nA==","layer_level":1},{"id":"fa2475f4-6311-4744-916d-3e4ef2eaadc9","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"元数据设计","description":"metadata-model","prompt":"为FMS元数据驱动架构创建全面文档。详细解释元数据设计的核心理念,如何通过s_module、s_field等配置表实现动态表单和表格生成。说明字段类型映射机制,包括input、textarea、number、date、select等不同类型的数据库映射和前端渲染。描述字段编辑配置(s_field_edit)、视图配置(s_field_view)、查询配置(s_field_query)的作用和配置方式。解释字段分组(s_field_group)的布局设计。包含元数据验证规则、数据完整性约束和性能优化策略。提供自定义字段类型扩展指南。","parent_id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","order":1,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java","gmt_create":"2026-08-23T10:07:15.6787476+08:00","gmt_modified":"2026-08-23T10:16:29.337566+08:00","raw_data":"WikiEncrypted:pjGuIDHO+JzqEKf2Vs2HOsKjauKFuahPBf9bVX/rziyXTUPGwY3kBYHeNyrgxdxbzWiZ7ZbrOJQw5/eklSJZlllwjEUjVf0IQq2klLQhxaYmBWIcNoZJjISaGWlBGQt3sPu2xZPql3AwhL8vJV5qjB+I2y6+TWVzzCM8VyglABzIF913njdWsKxpEtYz/mCpnKJBD5Z6l8dYQMGJ736k7uEoFo+p/Ge8JLe+0Kun+e3FCzR9Ymtm72QSEqynlUmx2WJq97vam20O/xWxNfqDrE/XN9QUFt0/SXNvMMvYY5iV7+4fSNr5EHuC91qJbtaXntAvBsEbADvow99IkXp/X5eRkjt+rdYJ6XsnVF7unCqtCo4gwV0h+L4yBhgVT5ZdcZOoGdFmK1BV41FUwdgc0dtgN2uuQS01v0+iakmUCfyQ2s+oLeta2v3mJ/LdKDl2eE/yTWXLfCTVbPeNvduMjHaomzNtDadNALRbNvHn6eIOqcpke6hzoNkN/x6QjxQx9IEWrehNPH5/APZ3RqkR/IHiUWVFMiNg/mF8Y1MHAXJ5+X7AvMPE61l0Ct3HVGbIHjgsM+ovNZs+COe3rIxSbD127yYVcbt5MWizsKTCsn7plXwdTnow+ViaiIiiUYfdO12kPlOhFVjlkkYXr5g7t11LyD5vAujztmq610iF6Dll31cUkfsLgoYP/ER1SlbLzTJVSeBPA8t5v7uAQfirUQuLOzJWs2p/aJFu0KY1addeao9NsRqzq8v1mdu4D/FVlQCqLOYh7lEBt4pbiVpHjxbXCZG5jqonJ0Xdwt6cgLbSNj4GcHwBogZyzFskplX4QP5IPnHSxT4pzJJkQBzhBv9FyYYy2p8XOV6sX1Xov38eoF/4KTN+C001i1fCXxAlEXGsdcaHzWUtD/DVSN2qn9QLF19M4nyBwX+0/0cMgeHzCsEjRSF7qsP81k4IFvLjXVVPX8KvHjBw6PduTPqIUtWukcii/v/CA2HQD7qf+Evrb09JJop58UNH6al74U6Qm+MSFW4ogRZg2QiTmX6MQ+rV0xfpCWqdp918y2MJNu0Ifj3MXrboG03VOkyOav2vOyEOZ6kVST6as133VEftFnydgogvwAXn4qVO1lXKxfHhum0UNXmiJFXm5K8Eozr866z/tkBlzsSycmJKdbtGKhWxOnNC2g/nJOKq40WMa4YyptRlGyGfeFV5wZB03mzAPoThoj35nFR1BUxbWcYdNjWfEMzMLpplYHikXt+YCjFmLn0Xib8DJtDYolaa5FBDMhWsq1AqLaHO5A2XTVPO3ZGexuW5jndrnnI7fhq5s97QyBMVmQKBsdQZy2s4aoSgfWp5saGH18qpzr1JXXrxyKl+HG1FGYB1Df5gtSc/oe8GwW1FJbAw6/rThSssFJve","layer_level":1},{"id":"1cd5c14e-d821-4138-905f-85e05d0b2420","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"测试指南","description":"testing-guide","prompt":"创建FMS项目的测试指南文档。详细说明测试策略和测试框架选择,包括Vitest用于前端单元测试、Spring Boot Test用于后端测试。解释测试用例编写规范,包括测试文件组织、测试数据准备、Mock策略等。说明不同类型的测试实现,包括单元测试、集成测试、E2E测试的编写方法和最佳实践。描述测试覆盖率要求和报告生成。提供常见测试场景的示例代码,包括组件测试、API接口测试、数据库操作测试等。解释测试环境配置和测试数据管理。","parent_id":"ae7dfd7d-aa4d-4443-914a-39635c408145","order":1,"progress_status":"completed","dependent_files":"fms-vue/tests/,fms-api/src/test/java/cn/g3soft/fmsapi/,fms-vue/vitest.config.js,fms-vue/tests/helpers/app.js","gmt_create":"2026-08-23T10:07:21.9529307+08:00","gmt_modified":"2026-08-23T10:16:14.9200363+08:00","raw_data":"WikiEncrypted:a51tw9+B5Xez88YuZqi4cOD+MHYUTbXMSmj+zXZmsP1n7CZsGOJJIYMQNXIftILHzF6WAfc4ncbISv/+6TeaNhqLx/h9VK1bhX1Injpj32dXiTkTFDLRD7CTGRt1TMkbv6A7+41AGzpxgXaL7dzyitwOxa+8dY+s5v2CZoPEVtXrXSCQYAaw07LYsnwUDcy6De0VonGO4HU6A2Ef73q3/8bTbFjuRiOUCTEt5qjKX7Udd/KTEv+KLDGexkdNh29ZXXOp+29K7OW4KMWFGEyt/nOOBda87XTOMFuJVswD35kFYq6mBVmiVwqw60mPvlGQGRhMIDTpkytyA03oLfeeTkXX2FoELz4whjkTPY8ssC2ZPWwITbz8lvv2DIez28VvSupvTzG99WLyo8iX1Tg7l8GLsUhtcMjU0UdDqsCk86uNrFavYtfGUYgJU/nJ8/4cjKjZe+T1Oc+VBNNL5tmuaYhcoPKXoWyzW+10v890+y+1ye0xF4SY5b0lpcpx9a62l2CANezDoJC7FSoVtSAeLwr1z7uekECekEmqhIEMmcj5udl0zhGoCYXQwIoqDDTjFwgsMx1bYiIDbB8KL405ip7FN5M42vul08if9x5geZUu34dmCJpefKlEVYUsDh/Dxq6PaBhOeblfJ4YSf+IEd3PXfP4GnPg7Jgi63xoeU62S5g6aSc40TZ0riOMRt5l97qdYRWsyUmuddIcK7+GT8/suSnTvlz7dlPM9LOiUkmZ4AiEPAoudFr9D56HUxtlKnVniKoUtMtBiXzpDyy2wC1BlupYSwPMb/tMx4ilIh8RCdTEXJk0v1e4gM79Axn++CM4oit5KukNRM2U44Q3ELLAMCXCyeBSPNpQUa0C14TYpU7Fh74whDOiBEMtY9+8zdkvseECGE3F1jvbY1wAu4I5WLOohZEd/dSwrLMEM6Ug4C9E1CgNP0WBqlPuo/CwUyXGz9VJVOt4BzjhCRIJpyxbql6sIM6HWzxi8B4BPqB7dnr2tUeW5owu2gfdbysvHIrO6CTeCJz6yJu/8syXtFX3CJAkjcxo1Ma/QrSC/uxgRn6FPLlf+VWt12za7ky4p35fvsSuoBIgm2lpc5ayTlLO36qKRw0v1LAEAlcx4+9FfpA1s0jTHoZwfpG5O+h0d9zW6lwD+Ipvr+l1B1EAXhrj1dS3fTlyGWHh6MX1CAO8GWvNUH8/HgIsUaZ4hzfHkmbxZ4rneocDrj8GhQQZF2rkFfKW1cynkSnKcHgPCBZH+MbV4UFbDzuV2xUqK+6H0lsBP4q8FLOCHQj/X31gzoU3u61uqD2wcSvIDusuijRo=","layer_level":1},{"id":"b1b8134d-f4fa-43a8-92b0-b470b159bb8f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"业务组件","description":"business-components","prompt":"为FMS业务组件创建详细文档。深入解释FmsTable高性能表格组件的架构设计,包括虚拟滚动、行内编辑、列配置和数据绑定机制。详细说明FmsFile文件管理组件的功能特性,包括文件上传、预览、分类管理和批量操作。解释业务组件与UI基础组件的集成模式,以及与其他系统模块的交互方式。提供复杂业务场景下的组件使用示例和配置方案。包含性能优化策略和错误处理机制。","parent_id":"e336a373-66e5-4790-b912-d807ca6ea88d","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-file/FmsFile.vue,fms-vue/src/components/fms-file/FileListPanel.vue,fms-vue/src/components/fms-file/FileCategoryPanel.vue,fms-vue/src/components/fms-file/FilePreviewPanel.vue","gmt_create":"2026-08-23T10:07:22.1245235+08:00","gmt_modified":"2026-08-23T10:25:26.9422752+08:00","raw_data":"WikiEncrypted:mHLzoBKW/ak+KVdbda4A2f7qh44idx3e5sYOKq4y/WJWBVlKxvfsgrfR5kwEoK+5YZtxFpGvHzwX4IOH+DawEgOSYAZBcFMlMPFlsc1lQuO9YDVbyiNnVRrvVBsLKkPLBmpLmw77UMMI9JwC0UEH6IO6q0v8ekPt7yU3iTbS0ItQRTflZZoOoJ9vlhkIR7Rxr5dNNdF2RBvwBAsDpaunqYOwovw7MxSEhOxO2blckzFdBokizA5Lyd/E2XJD3HkDCrBTAEwsLdiwz899oBpgTeKc4Qxw9Qtjtquwa57Bd+GkIkgaAVmZYzJQuJDDZMgDJm477cSyWx0ogQLdxrcunJdxkhmygctAyEkSs5gwo2xb6Q+Z8bol2IEKafDY529p2H9irWa/K4w6JNLWeQfcdLcf/6fY30s4WXfowL0P8djUslm6mty7E1LljzU2x6+pyxNT6ii3UaOfr0cpqMlwfpgDY9w4RIy6rXEwSd5IFEMdXpjqp8OGqcTdpHoupQO7EBMskY4tmT7NdMGe3WD6ca9pRTedkzG+8Fj2hQBjXphzRNdekc6tIridLCg4wuYOebUKL97HrJj+oNjVNr0nGv1/in93mmzrLGXPrxv/rdEBlauqfl7b0hWYqNSalYVXazLGELIk4ZJK9oMQk9HA6YP0GujyuUsjFEZmqt2CkVYdDtICW87poOHldwk1FnWwFct5JpGDta4TcqN6UX8pDy1u36rQFU/CCksR1U355+71NJHG5iB+w3LsWc8dnvgyTYKR2pTcMd5ekoN+VZeVWemHaOOpRnfb/qBw9QlBPgEoz2VAy4sB+ymLwvvyLr7hhXqADtzD2iwRjcpDm+XOrdydW24JxZz25MQC19itGnpu4rmn9Zd0Vu00qK0jrnJZ0iDsq/vsHv29dbqnxY56tRrFH0cfEHB0074ZAL+78MDfILeeUhRFatFY3kkp0SIzcRaVnP64qZiiRTHm2fR2fvmEXbxvev36xXgrB93uF2VOudu/RA8vLqJJzKnOJaIdb+dO2Ob0ybgflVPf6qIpPDAakGlrKEznD20EJ0uMKLrvnWN7e1T1UkcFLiwr5tMsmMd/iElHCWjw2lbA22JWPAYiuqMGhvtPD31g2SsXdwduWmsQ76V2DIJUxNuqwl3PuqvlAZa7Qxt8iHVNgWmQHnR4uH0RISsgrtj3IBUIH4klLg4iewol09GDm1VRdz+qM7GPE0CAuZJgKmpRJ7KUof79G2FX/Kbk2Pv5jDvqNyilVsp9Z54gUhv9mOqo/W4TQFgAaQ2Kuzyib/g7tsEAd3iVMHNf6r/ZSZhbD7DnPDL1+YhbEnGFeSUKHzdAguxo98EhRXu9Qu1i0B2EOxxu6ajpQmeXWs71H1pbGUjUKDUILWHUyqsiaP7JxppN2Jw8","layer_level":2},{"id":"ce899237-d402-4940-80d6-f3428af67267","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"监控运维","description":"monitoring-operations","prompt":"为FMS系统创建全面的监控运维文档。详细说明应用性能监控方案,包括前端性能指标收集、后端接口响应时间监控和数据库查询性能分析。描述日志收集和管理策略,包括应用日志格式规范、日志级别配置和日志轮转策略。解释系统健康检查机制,包括服务状态监控、依赖服务可用性检查和告警规则配置。说明数据库监控方案,包括连接池监控、慢查询分析和备份恢复验证。提供运维管理工具使用指南,包括服务启停脚本、配置热更新和故障自愈机制。包含容量规划和扩容策略。","parent_id":"e72ca331-7aed-4794-a645-f7fc94f377e7","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java,fms-vue/src/stores/auth.js,fms-api/src/main/resources/application.yaml","gmt_create":"2026-08-23T10:07:22.5207716+08:00","gmt_modified":"2026-08-23T10:16:32.9517273+08:00","raw_data":"WikiEncrypted:HL3VqGjXq8A3aGeLxAjVPqmSWC8Q8z+JISjcpFTl3Rl0A9XVAWpupiaS7EM/Upd2tazZmC4eQGSkervuf1jbMKc7F7ts17Ae1VvX2zZI/PgfDK8gDMgluEFu6tJFJXQiY7xN8qtUaeI6ZmKLzW7bDO7ahz3wtoY3gPeTn0lubx9z6umJBVNAsJy0/OOfOIa2oFJ6vUbRQalo48bXJGMtAY8fVSExqCMy5X0hy9h5fNK2o9YCGt4GIjOtffiC32qh8/+qKZpEQ6tysKkGSAH2TCDs6/8b0LBgSjOM9/SEIhGL56mM0oC6NwmAQmMu3waE5l+8t2oui6xZx5dgoL8YsUZXqpQA+Q+rvP/O0kEBj08PT5sKKHfZH+a2urCXEnK6thk5zLJwYt3pcOAzgDA4W4nyp6/A+zhj1rzzdE85Lw5EMQ7+s3l4AOCwhNZGLdmADY7vK2wzHC6RttNDkD/dMsTHImWr3BnxnNnvqycnyKwzUqfpL1UJGpduA5I8o1U1r+c92Hc89IoC/YrD0WPuOsUy0JEy7D4x8UBzuXbx1JOSf0NKK+BbzXLpc8ew0pQitqDD+Ezpbgw9w0vZVPkds42jWJ409hVkvbHJmOKvg0X4jSZ/KBGAyROgVjF7AKx4R5P5LPs1+uq8AggL2VkSOnbjbJdTSJCrrd+6lZJOyG9M0XPT4eGzIrhFVXTFPCpc7T96+3gt2XJ6YlD20VkYZ29hy7GeLR8LUBawASUC9TK8vdc/sILl8l62pIPgZ37xZuyBXD23pUtlucDZtsgsEXynhMkfibNWCEc9wgxFEX7lUMSZkdKe9jEXrJE4Gimv0+fxr8wQ/cG/NdoNt9CiM9GyRvBNRkfsv4dlBgzUL9zsFHYakMrqvj42p7xWI1c0/jS7jzFsRGAlRxzyl1CshsdnCE194C666P08R3e52N7ojr+9nxeQSP3mXJFtkhmUbkb6s3iDpPpW0CUWCrx7Pic9cRrHplceFfaL/x8AoAAu1xNqXZQVhLgcKdjFhTd2IfYdF1G/2lpk3XhMWpi8Hig7ij0sZ4ePOKivLZNHDG0YHcPboWPSOSThRfDr3ZmxetVzVV6AiplIpxjkhSh6QPVY0GPa1C37n7+UjWRRJU+sY4kvV6r2GqfFWrfRy3kUCcWzabmKSFu6Cf60LPqZcvuE12+f/PtKI3saNu2VJGpgE2hKCrmKDUNfm+hLr5ugFcEHCYYAsZtu6qipxw3iEnUMjSjzz3Y/Jw5njDhY4MTTkA95/gkDfIGLSQqN+gEShnvzIZ0MJkDRptesGFT4ycYEe2SARJnCiYlZJer/j2X6Mhv0jRPcxpQnyEA5JvThaCseEE9dvYSX3z00iDqv5KSoZxIswQtgzTBPltH3K3uIfW+7yqiIDUg2KF5sjeEGEI0TZ/h/fsu5OlGVD+cvQxfl7Fprgi0NmgNg9mwsMVhlGvqiWQh4QWEyYY2zXlML","layer_level":1},{"id":"4587c9bc-ccea-4b4b-9bfa-9cce63271896","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"输入控件","description":"input-controls","prompt":"创建FMS基础输入控件的详细文档。全面介绍Input输入框、Checkbox复选框、Radio单选框、Switch开关等基础输入组件的设计理念和实现方式。详细说明各组件的属性配置、事件处理、状态管理。解释输入验证、格式化、国际化支持。提供不同使用场景下的组件组合模式和最佳实践。包含响应式设计、无障碍访问支持和主题定制能力。展示实际代码示例演示各种输入控件的使用方法和高级特性。","parent_id":"6ebfa59a-db99-4c64-beb2-7b8ef20dc652","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/input/input.vue,fms-vue/src/components/ui/checkbox/checkbox.vue,fms-vue/src/components/ui/radio/radio.vue,fms-vue/src/components/ui/switch/switch.vue","gmt_create":"2026-08-23T10:07:31.2198182+08:00","gmt_modified":"2026-08-23T10:25:24.8909663+08:00","raw_data":"WikiEncrypted:yvmiCbNZO/j/crebb6wVo4KedDBZKS7zmGwN9J9AuKGcmkBWOLrL73Kj4Yv61Q88YolwGkVyDybiN3rNBJlGejBXhcVzCSCASwMJW3wC6xVr+VO/8DsoN0yj5MFroMUJ12Oenz3HeIkcGHghsFVyYKW6uVV6PfeOFkS0dHUpbIpk6J2dp3+QcV8JIAkxCU1/+JtktFGzrj7gzZWWM61qRSrUWpHUNe5+MbfP4P2qV/PnBLeKyHyd3xqL8+gcgQs5jlCxWuuOX5lCWA2uwkZXDH8E5xFqM9UdZBeLXzcMT/hTKKQ05er663tltIixX4an66x/oCywE9Luwl+Ku9yHH69+VrN//Rq/Q/CTD+SllWMTXeBqhV+wr5/ypvHv7uN4HQw7IvdywD/yQ5+FQkmILQRQd1ygm10aVqiJCcNU0ld6yLLNEjdFcRMwIbU6+E9O6mt6vlmusjjHBQqdRGf9YDZZx0wHe1HsojY7yGind4RN8EHexaWu9ZsjLMXw542jSeIVjHYbpxDu1gwH+fvlybwp7N8G7jc1azMMsv1MdiHULQL3P9wKEg99WQYDneSnDgm+k/7q4k07zx9jQWJmbBvYYGvUpe+1VCAT6vJTwj/cE2RoKgo3V0DJxbZ2Eh8a9nay8wvhDVxlfpuCQxBuJRuVaEp6UQuQ+MBtyI1rr5NtabjTtcA1Op0veKo+Ri1YK3jEwllL22qpxEh5h0Xk0/P3Qo7nTUJZHjvLWxYN+iyZMfrCOi0HD5JUpK5aKln9xyrrW9uhJ6QjpxoLoJPFajys6eYgwDeu9vm0ysHqA0TMWGgzNKzDaFthxfT0//wMpjOjOSZhPR4JGfh1Xc2WGeZdspmd9cae/csAIJ2iL2dGV9iqQUnK+eHmfQljCAcGI7yo6d3sOXxq1e4B/DZhbz1DpX6UZaCqgq/qTikOxtOZPsIKoWSMhsZCVTVQAtsizJib/S1JxbPpZ9pTP3M4K477ySKUoferLOjoT6AJgpJ4yHTbunIWGS85JnJWfi8sDFpZJDnWWnT4bHdopnSePLBChR1Or0g8oyWy3GcL96IWCC2EDMQ0jAyTRCCUM7Kumu6cufbSAs8iTVWbIiJHrNikOYCx2yhU0Xsf1ntSub1pwoXQvEbQ4p99lovdYzJO4xsun4CqjsQA+y7FQ4SENSzJGgJPLLHP/QSUULRbrO9JKwa0O6db4YTBNgWTJvP6xyvClOat3uvBNBJlhcbhRCKxSyvvMsLIacfcY+DvP5LEZfj7TTtFtzIqTRmiQ4IfJ0jjEiuJPfXzwHZxrW1nuF5+Vn+hPokpVY5S9eCAHCs8akZ0OFCFBKQHa8INFzRwWa6x85ztVyIiDkJ6mlXrW8EvHouPWwmRhyTnCA+VsH8=","layer_level":2},{"id":"4b10e48a-355a-4c9f-b4e3-80fb08157fa8","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"权限计算引擎","description":"permission-calculation-engine","prompt":"为FMS系统的权限计算引擎创建全面的技术文档。详细说明权限检查算法的实现原理,包括canAccess和canPower方法的核心逻辑、模块层级解析算法、权限继承机制。解释前端权限判断流程,包括模块访问权限验证、功能点权限检查、管理员提权处理。描述后端权限验证机制,包括JWT令牌中的权限信息、请求级别的权限拦截、数据范围控制。说明权限缓存策略,包括用户权限数据的缓存机制、并发请求的去重处理、权限变更的同步更新。提供权限计算的流程图和性能优化方案,包含常见权限问题的排查方法和调试技巧。","parent_id":"ee1b378f-0b54-474f-a1c2-4a3ec3cd2098","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/stores/permissions.js,fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java","gmt_create":"2026-08-23T10:07:31.3779008+08:00","gmt_modified":"2026-08-23T10:26:01.5968057+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoAC4jzmh9jsPxPf9BjS0PZI+9IxaU5ohb/j9/SA64spQqDeW+gKD1bphzZ8Mcm96k+B9Zl5x9jN16HvkhCyAQ2wl0hhfuZjWXsuJ1evRSur0+jgHkfoiNWyr+7nKYJbg9zKsTJO8GBH1EENHOZIczBaN7MeNruZsRIySt7GbO3du5MFryh9c690Zqf6zXaPp/X/8jgGECL41rS2hM0dYP06DyR0koeW7MgIghU4Ekvvj+0eEbd44aZmJfA6yt/Ngb6/ErVA/CubVbku+xJbtXYj2+IKnDrgqZLym2Y8AMDLkEvX7OCzlRm434RtdKEekBRMx3MtndjtjI0oje5FRky+AFELAb+nRj4DsaYJdLWoafT18Dp1d1DApnXofVInpZGDC0OF5hUvfz3pE/cdk5idcPo2nC//jQww0pyU3yc+ouJLb9Y6YDK9Mms5DH/WI+9uhOLTrbxdFRYZb2Zk+bMlQBzTMPLo6n3wl/eWhJyPQume8HD/2MyIl/2wIuprhda+MDduaihYC3oK9ho7JBaCKqgcLgqoJ7gbJpO3vcC48qe0YcNdRqziYqMOXYmX+v03j8BUkoAX9AO98YvSys0XHgvuWbwtzRjGnDCu8QbXdN4AKrdE44/H+1n7RmqrMVQSj24qZw50z7h6vliF1dNVmkwQVyNeabPFoAOWrrRxsZacn+fEJfRggBli/gvthcD42yN5XE6knUIKsWesrDyt0Z/XySqHVrW7Yfhd2mlz15UrjkPSG3cvuGmVvlCiKDNLs1Dnc6WRH6GVW3vjPQyRgK6KZ0HJP/KqqbF1LfU/bETWMG62exCEtVS1upODmx/LAhqac6CGv4YA623o6iot1hmOBg1/BCRyiKi79zWK4j70QMNAs2lseYhltgdi2qG3oxi/palQuIw4u/bsTTlurNk5c3uhgU8yFhWaXM2JgZu+rrgnmJgOjYGvcRzAJ+10bK/K3g+siRciRK8IlU/d6Tb2o69ig6uLdTS5V/4Tl0N8Ztqc/8re6qxllL0SV5/lnVhe0XnAxJerTMw0p0V7uBKljd9keE/AGUf+xfsIYPEkJEWi+fbVXDbn70kufDNSKIn2rxesiTHmTlfUIy7ZVwT59PGdtb6VnnoR2+GhpXcyPcGhk6Vp+ryBG5n6eB69jPaLgsjOaq1nN1DaiEEohYtn8BFS5bv33peDUEv6gV60bhfxwi3Rr0TeINWmfAczcFR/vch4ZUjKxUJqQk+O/yX6bT5DsP0fxDDvYm2f2hye9sTxi1b1Lv0rjzbDolqj8Il8WqIEHuo+GmFGF2X99V2wWY1ZWFfp2FECTCukKQbBZ13orPViiEZeQTTZ9OsfBidLTy+zKTKfxSok+mpK+v1fKUjpRE4OCxZ5o2KMQRYb/+APwrL8wOI/vCwK8UqnEYtoH6G45HL6mPyYOSQE5adYmc23/CdHwGHcUjrGT","layer_level":2},{"id":"db43c502-3815-4dfa-8930-47d936cfd148","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"树形组件","description":"tree-component","prompt":"创建FMS树形组件的详细文档。全面介绍Tree和TreeNode组件的数据结构设计、节点操作和交互行为。详细说明树形数据的递归渲染机制、节点展开收起逻辑和异步数据加载实现。解释节点选择、拖拽排序、搜索过滤等核心功能的实现原理。提供树形菜单、文件目录、组织架构等多种使用场景的示例代码。说明大数据量树形结构的虚拟滚动优化和性能调优方案。包含节点自定义渲染、图标配置、样式定制等高级特性。","parent_id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/tree/tree.vue,fms-vue/src/components/ui/tree/tree-node.vue,fms-vue/src/components/ui/tree/utils.js,fms-vue/src/components/ui/tree/index.scss","gmt_create":"2026-08-23T10:07:32.4807842+08:00","gmt_modified":"2026-08-23T10:26:11.4049621+08:00","raw_data":"WikiEncrypted:+ok/pXG2ucWpuB4VB50065H6bfvPQ+yQFhn2LSJIT0cXNCn3dXSwjsc5x8QmqteN/CTI0A119SMzweO0YvA0DE3BbHWfIQgOMcpesTXQkFXDMLpJSD5L/tte1Z+1WS7t4Xp/1+JV3Gpz955Q4rrt9VVJTpLi5sZpCOVFIOXgcRJH1uoRSP0/sJap3Kk1d1fsAa3SHjfIlmtWy52ljYepGIMtjIEN889e+t6vuu1Bv/GuszgpZFnIFNAq/8v9j87smyPTYaZpF0d2X/vRs25nMKL3S64/Kr5Zk+Xi+MuEGTafefmTLQHRwshfaly2t3uVfGUKef1qVOMpBalsLeif/mj+21PAgnDNoBgh2IyO1ygLk3hxSsZ4pEp0MVJuwF3E9V/eg5syQOYhgkWR/cUwIlcRLI3+fUy2Y9INyf1wPqnRMdExUkjoD+gS6/+iHpiK101ZMkOVdf7Wp9BMSYM/aXSBmhrTZ6o9Bx667IUMb4ePAQvxmA7n4f9KOsiLBO/VrNz/YEtpD+noPv9nQoZ6TrfvPHETebKCYWrpZA3be1FYQP6frBbOmdrV/WwYDfqYrXti0pHPPr6A++vEfBEtF5SPjXYwRGlLazq1sQmWzZJgK0CnoqITGKm1FhlsyvXa/2wHdd+IdoiGGVj5kLmQVGMKcg+/CEqnu6Re29L0Y2djAXL5KEBhv3EWhYKEBC8vUemrJllfNbOVaizS+FHBxu6UfesMeYoFMjOZgSxLta59y1qPX1APwfVTh/TrpYh9kax7URdO8pRf8Izmb9KEP8ooqZsGURdU5G39H46VJsDUq9Uj2r7YCdcbdfVQCpTWdGOnhaDJ/HYbKNVslyc47xl6VLcf9YCnK389kb4ZFA/XXSi/T3Kp3d7lk1Y7EOvB27gmzZ+bffM01msUaZSNQYzeY6OixrplGclJdF99qvV8tzcquElWY/+oAwOQP39WxBGqZejNAVGwG4E/FDpRV7Nq88N4UhFuKQcaj9NXs6XQlL2mDNK0fRRHIfZ54P2H43oPHph9rjgRm01ho6iPp9Fh3+pMbFq5D9ky4RSpmVpdsJCTDTm+EDoqX4+JCJS0QyAtT2WW9d1TFnQ2JJ6XiT5UcaWWmFJBSjosOEvG96kTdKinM0kdeEbnWlsRDYbeCCEn1fgT1D10aiy8Y9ZLpeJkmIARcY9Dzu7DpAGOmZgKEh/eOqCyxMZhipVxmdugs5Mfp6XyK+XNPGTarOmfoZFDRbn7cN4yjOhAkB64ATXGlcC2Lkt2yRIbdwUBPshHWRkn2q73oxxjOoAP31pAcqUZXpUq4HDDQDKN7bPZKZU5yfc0spOSuQIBrb0X40aUozLiiQa7Nu1HRxcFUXhYq7C8u9ML01bz1iBaR4IpTk4=","layer_level":2},{"id":"d9dc9711-5a86-47d2-ba3e-3d7c928912cb","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"按钮级权限控制","description":"button-permission-control","prompt":"为FMS系统的按钮级权限控制创建详细的技术文档。深入解释自定义指令v-permission的实现原理,包括指令注册、权限值解析、DOM元素操作。详细说明组件级权限判断机制,包括props传递、computed属性计算、条件渲染优化。描述按钮权限的动态控制策略,包括权限变更时的实时更新、批量更新优化、内存泄漏防护。解释权限指令的高级用法,包括组合权限、嵌套权限、异步权限加载。提供完整的按钮权限控制示例,包括基础使用、复杂场景、自定义权限组件开发。包含权限指令的性能优化方案和调试技巧。","parent_id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","order":1,"progress_status":"completed","dependent_files":"fms-vue/src/stores/permissions.js,fms-vue/src/components/ui/button/button.vue","gmt_create":"2026-08-23T10:07:41.2744178+08:00","gmt_modified":"2026-08-23T10:26:18.5012639+08:00","raw_data":"WikiEncrypted:C795cZKhj5RhhKUHOwHa1kk8IzJctRUoiVDCKT9eoJhLGAAzf03lzT9X8h/oE8w/9M77J9Kf/E5jwJFIHwT2rkQJ5oVFRG67zyDV9x1dBMfqpBA6AqtAed3dV/AQTwqNCivBnbGIzwTRLFyWSUWkMPSFCI/pIgHQayyZY9URKV5lh2tDyf7EafmLS6q937G6mAlPAWpBriV3iPBq8OfR8oNsj9K9L+5uIl3eHAgylTn6DqC6TV0AeI25DhqXjgQibAlPRpBjeVZOe3cn6uyzAZEKkyOj7CM94FQQm8AVmyoYvw828Hp7fe356ioZ57s9kgvuoTH96peeXWIYD/V+Am7kjTOA/AFRRMWrLdRXMn7zO9PfrM+t0Q96mYZ+njffmLnUlziH3bHmYlTqM+UjKKBDLCuIIRzS3pw8E7j1qbBxiyJdIjZGGbtg6l7zEusZDAqouDuxnITFQ7IkuXRodYFjaoEDOmHW5LPK3JBw0Lkw0bjwFfBLiDSD+7nUuikJQjGmTjkJZnCdUWBDPXNE4DoYght9KvSX8kuOSWnh9zuxDrl02/N6+V8lvrbXmoAF3ttuZ2q/WxwaLK790+V9O6vfMNBCKCklbj1uGyiXEzGeisAWH/maO9Id02FkEzYprNDnveNDalLoYT2IVjEwKcOm3FZakV6P8rIsyeWE6bHGpwajjIcz0CPe1XxLnyUMtHObpKR2CSJ3hHbvAtw+R18Y+n169Hoh5mGiQi7oIojQMx6IKWLM5SE6jK0ZbM6w8h/CF72LrC6kZPR0bNPm4+5PNm5xY4oMEnrpJrJxeiE4GDUtNUed2Lt9YV88JA7saB+Dj+f0xbBBBB/77UNZEycxciXE39fbx4qxspn9HUtU7WW7EYJ3UP/arl1D6OtK3aD4W/V8AHQciFa35l6JU46CijrtJybu/kmz5UOCAK4HOYnWBChTvisAG/yszl76vhIylskWh7gCsXvGixlLQdE0xSzlh59vb//yfbbVZYyfrdibaA/z96X3IpUfHHRF2MgJ+iV8SWOFT0pnYQoA8loa+xULcwGn/QFl9t3ZLBwAz5UBYHEBusHZg+cBh6LpF5OCuTMPvIML2BpIKP2ZzGMngnYbXzHQIzC0lZnfLzqD0KxdI4RrhuakicPp2r3XV16FBEdGTbyQNUBny70jIio4f2svTRLhYcWX1jnaa7bafwOkX5SWiRzl5lmGYphWyGzO9xWyX2itdzdVZpVkAjPqNaTzKbwCY9HWkKRGKRCs51+0Vi95qMNqxLkwAzGkpSLEZjawqvYDbynnjN0dsA4ldFxTT7GO/spsejlRhXgsX8foC24TolxPnAd/5dPrEGfhAQexuv/IvE8JKVXZbc42tMNE7FeNTd28xCE4+bkgrEwXJvXaHpWf5HPSjQSq","layer_level":2},{"id":"42863f5d-9615-4be8-b0da-3c3763029507","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"文件服务","description":"file-service","prompt":"创建文件服务的详细文档。全面说明FileService的文件上传、下载、预览和管理功能。详细描述文件存储配置、多格式文件处理、文件分类和元数据管理。解释文件访问控制、权限验证和安全检查机制。说明大文件处理策略、断点续传支持和并发访问控制。提供文件操作API的使用示例,包括错误处理和性能优化建议。描述与前端文件组件的集成方式和数据流转过程。","parent_id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/FileStorageProperties.java","gmt_create":"2026-08-23T10:07:41.4915223+08:00","gmt_modified":"2026-08-23T10:26:43.1001976+08:00","raw_data":"WikiEncrypted:l1O7XWjgWHyLZEgkeZtuwXvYp2TlDw0RF6jqO3EAYPBHaHXLKSgUaTdobJ/2kMXSlFVFJCuB3CpvejXJiXEhzVnkUp/WZRepFfIXcfnV/CHAd+GWMx9u8BTeW5hwWwLL0BsnsFLHEj+rYCpXHQ4tDdYpP1p/YAwfutGToGtHO3Z0ZKukNyQ0CiVRc2PJqhApPNMPHkZ5n0QUt9d7JmR4/t0yaZ/I4fsU9XopZw0y61aF3Xbr5OuwiAK45p3e+/IKcIXrpSalSSaqmTdsLOcVyHQEoM4NzXCpE4XC/x8KU36a8uPPvRqebB/Ygbw4VkNL1tkbatg3AXAyHUXGJUxKim4jhukAEx3a3Gi5D01HWxaz3S/WQhpis01mpZXzIO3Vcj7yHdsCSGvEsKUXNmM8C1dFUJe/z0kNIuDAjBWN7uuJ+GHN1uQdPnlZ484iBKvxY8h1dGafJIBPHHf9KVW3ADzlPH9ryK3zQCfch+Mplc1NH6PTXTy7ZEfz37Slc3lhCm0emCwzAhgQFCsy75T1A8oI9O4vEqSKyCqCAqU4LzZUQxnnVe/JcxvbnUjdNaChW54OQ2+KK/ByJnM9dEfoYgneVct6XDdvmWQDjf7GNxfn2M+TjlTfjErlTvQckTp3JzRX04a1C6/sI+S6gUX8YcF7fpbd3Dig1DbERU9RXY3OyRFyK+1J6fy3FuibLj0t93FB+wbv7bYcFDzP3T6OMmN4dXNunQqfQNF8gBhwiR9oDzKaAByyWDBxE4MBOz9BMu7JUW1JXzMWvJSULWymoxRvDTFUkZ56Z0Kj6hIojY1ADWFRr96Cw8Qkhh91O+G0VPE/IckgLTWhUqB1IAC0FBBOs17DLu5tY7HGdw+emvNP94c+5wSlSqT6XXlnSrVv5N+mYm9lexDiBlyF8MVlQrZc5/Py7focL2wO5qO6wVJ0PxJqRpNYheEZzsnT37fk+5RbzEQxTOp+G/0HF8eToPWQTTDtNm3yc8TTPtrD1SzLAqyoGb7QK2IvdwHmxJEfAbn8smK9hkl8yNgWpmkXGqCv+cvpz4c1Bei17udrNVFfOSQYfNtSInpqBLG+LJhlnWf+KwJp2UqTFwGlWO75FQh6pfiM+eCgKB6CAQln3piPYYd3cQyVqCi8bsunRgxeBStGebzlQ9GmQj9afzKIYUIA18Auf3lOxm+NkfOX5kA=","layer_level":2},{"id":"84ec77dc-c63d-4b53-a68e-47d9d7d46ec9","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"多租户数据隔离","description":"multi-tenant-isolation","prompt":"创建多租户数据隔离系统的综合技术文档。详细解释OrgRoutingDataSource的工作原理,包括基于orgId的动态数据源路由、租户上下文管理和连接池隔离机制。描述OrgContext如何维护当前请求的租户信息,确保数据访问的安全性。说明OrgDataSourceManager如何管理多个租户的数据库连接,包括连接池配置、健康检查和故障转移。解释多租户架构下的权限控制和数据过滤机制。提供租户切换的性能优化策略和最佳实践。包含具体的配置示例和故障排查指南。","parent_id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgRoutingDataSource.java,fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgContext.java,fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgDataSourceManager.java","gmt_create":"2026-08-23T10:07:41.652187+08:00","gmt_modified":"2026-08-23T10:26:56.2144658+08:00","raw_data":"WikiEncrypted:Zt230nV3k3ww0eU+N8tTkoUp2SKiL44uruXE5yqeTVFRdvmA/tNAaEL5FoIioUoR8t8mErnlEUGsCfBse0C21PVNjej/6bMaHOYIFGPJIQj4Zb5IG0FIxEtXvYm+dWEY35q/8+zefZpu5El85I8P7YfZumOi1SdONup6BoFpH4v1n54z6w5a20kiBdA8ORVuXfmqYmpqj6gxL212C4O3zMDIKf89NuPgl3K4UOYM1eXtfz2csKcBekMXkMkfgpiwh2DZuCmAs+IGbavo2kPrilXci/hNq7gl1xj9DsfgO6zYlM+rgebebksporct6HcFnWamM+cmybqXW8e/CTxjm3KOrAJ9diPrKB7JvE4UUTPladk1u8tLqwEbXKNOu94/btOSGpdH23/vCkG2HBWg9XoKLWsh9IGp/mn+uG2mhxZQFbDxjxhlqgrW9IhQjbYpkqjlmsLOPxYXaQvFtD4wF6NYhTdZ6aLnlteYznCO7jz3bzjOYvoWRiGoFvTYjPCG5HfpEKbH8OGeoc92UN7NMYDqEWLPiP4N9FlS/RvRBNpsHM3OrG7K4dW9/oBhL8iETHm1L2QqikXFO4d/TzL+yCbRHi8VqZEvrpJmFcUSmSHSeVPlSM8Pn36xKEr4ta97vaTHN1ZBOk8LAnrejVdRf0UpcIl8foWnGSF8oQoz4imX4lSLsAnqDgZ+jXJN0+cxx3rD8Bl+3eRledakSirTGfUhA5iaHQbbAseABxy+DW9fsXlIK/VvGn+ehnGvIvWtJD+xLrKKXPV2vGpvwfWE/DXz85D4kS79kPdixjH600L3hCMMMVIMv1zku5YmrxjaM9YdrNRsgeZKMRqU+VZtBXlWfTpqbLQJoMqt+4OMMsmifvJkcF6nlknWTnjh4NLmT6+oJ+wJLA1QV4cteQmCXdzQTNVoKflrSRRc+THxAchE96m/8hLU0NSub63ZpPVtPVx/tcT+1Xl1MWbFUKl1ItqwOOjrT3rW1PxF0Q22RFnPbXT11dJNNWgl23JCrPisFm79mbFe6xzWBc638i7IBHdGte4AM/NvnrpRExI5/EPCjxC3Syy+bXqJ/mC1vdbtW9tfp5HQJBuRuEpb0JdRSM5TF7RgR5U4NlphU+pWB4pAb0RKB1K0hlhF8daJCNtc5Us8EJYJkG+CA5Q79m4yb/NBBfMQO528XyrEYq30edyCVhGcxIv/NXYsGkAzA7PkXphInqcAsgcsUUR3ag2R7z/ZdMzsooV8qycIN8MIXWG+wVVg0QXKxr9V30CGH9KIgN47sW1WMoM0l6JDYER1UQsIbT+kntptF0HzvHwLJWElco5YjUCa4TQVIMHdsFK7ej+zdB0vRfCyT0s708gmVTTyFHbyygSQ1c+HL4oKY9Vn+mTEE6LUnXcZF9gEuGBYP/Bm2r0IxcddSdrqYfRtNAlKe4zCPEuOVUx1zOXH2q4Pdbs814HepuLkgLsz+/nr8esoTfUzZjQhfrpZH3vyo1rE0/xSjYqQiK1I8O346Qw=","layer_level":2},{"id":"ae31806d-11ac-40a3-827b-d25965793a99","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据保存接口","description":"data-save-api","prompt":"创建FMS系统数据保存接口的详细API文档。详细说明/saveobjt接口的批量数据保存功能,包括新增、修改、删除操作的统一处理机制。记录请求体格式,包括id标识符、操作类型、数据对象结构等。说明事务处理机制和数据一致性保证。提供完整的CRUD操作示例,展示如何处理单条记录和批量数据的保存。包含错误处理和异常情况的处理方式。说明与s_field表字段定义的关联关系。","parent_id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","order":1,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java","gmt_create":"2026-08-23T10:07:51.3910294+08:00","gmt_modified":"2026-08-23T10:27:10.9513502+08:00","raw_data":"WikiEncrypted:yP6vl3GzzNMVOI7+ToNUFXr2LxEaV7rctfCfqi0hl8aQNzZDjIbMVp2fJ2lxJbGwE/vmphia2s0g6zWKBBHOeMbMpd/Y8zk9c+P+nA98nUj0086fubZ5Lo464xIbfFLFRNIuRgCVZm9bWCb8uNvFV7nm6auQu03CwsUprlVgrAZ12InwoHm0ipV+OTGeMoqw6Eh1uA2F4BN98mwRmWVwwM/EFMELM/6BnDirDrX0uLtYKUFp2hmLo8p3H0qhCGWnnR1lYecHizE23u+UcTNGXT7OZzerM58igcQ0FunFVcRz4o1rDTh9Gax99WucHT20DgoW3s2zJhEo0cKmAUG6W4ihhP+sEa1q/wqnwMQGx6OEYEpWwIjrrMhkB68zAIji6zBkEoipWWOuGg1498MvDET5BTE+pbesmgeHH6cro37yx5xxdLN6pyaQnZgX2/Jdd8j8zK19taq1v+mhIsCbPNjfcwOuXUv+hLYSElzyPPpl2wdT20Nm2Schcf8ma+uFEDUt7pEwlu6y2V361P/ibt6fwm/6ZnBjmwTRBxOaT5O81s2jzirI/U0ul34JFPYe1fDhjg3gt8czG7zlsgl9Mj0RiGrAiC9LJRGhWLmHJjfqNZuLgKZJMJXWwsNsRQ85Qo9/wueudLaem82qtcp0RdAFpg7oI/da2RuXvIgTtfwO5A/w+vvPHzDGa4EInVH6VbSIqMJcgY+UBFLN9aFlYrhfFW9by8hXn6CCECgRFKewQs3PO5b55/YEhT4wymzikSMh9SMd5qyfVBAfElO1xfxgVbKns78y9Ox9k4zpPlnZCoKmvYGj9KuneBvF5lRnEBXpkZcPf9VmKVs5SiKp5ZTE3/BFilfRvLw3ijMCzcdONQGdfUgR2PbJ2g03jL9QI7fh8M7XDF9/DJtCcphITInBJ7Np4C69HY2D3l7+RtOHUmjw6weRAE90CJMGEM08MbEjQ/bvwiCwmC3uv3crnRwe8DxPzkl7aqkcACY5M/ZKRnz/BMuUw4IEUR/b+HEEhe171QquxPDhuwigVLT6ZCTXgvw9W4Ilwa2PqVE7j3/M/7OiKlsh0pcgpxbUpo2xwsXmbRsiVsKpY14S9uEus0PoBZpsjCo2G4CyfQahj+NX6Gsb7/ANlwW50OTD2ooJkPDYkc1+NIQbU/4Z2luQBQpApKgg/o2h3DJfcl+8bsXhh5eWYeCcJOHgnXIN1lDfzVWu6kGKWxYhe4bPrLy6nRCxZl7AvyWMMkKcHWQiIss=","layer_level":2},{"id":"3a0ffd08-e641-40d7-adcb-84c9b3aca174","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"模块配置表","description":"module-configuration-tables","prompt":"为FMS元数据驱动的模块配置表创建详细文档。详细说明s_module(模块定义表)的结构设计,包括模块类型(category、data、query)、视图表映射、保存表映射和删除策略配置。解释s_field(字段定义表)、s_field_group(字段分组表)、s_field_view(视图字段配置表)、s_field_edit(编辑字段配置表)和s_field_query(查询字段配置表)的元数据驱动设计理念。说明如何通过配置表动态生成表单界面、表格列和查询条件。描述字段类型系统、编辑器组件映射和验证规则的配置方式。提供典型业务模块的配置示例和最佳实践。","parent_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","order":1,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:52.7831924+08:00","gmt_modified":"2026-08-23T10:27:32.1346956+08:00","raw_data":"WikiEncrypted:MaEDad3+dpW6rLlXdYaTGaAI20UdM1wPhomdt+wG/siKBTQ31zkHyBpPLaFJcJiNBbNoqzMtxU7um2EwMWDmBzpTXu2eH4qlZq+Bz6nDL36/RVPU/ybl2+KtLuGeZ85zfKstK4TMDccg2dXL9aDo2KEEz06t47mAFaZHACv8hKNDV/AJjuVhfAEmUn3hEV8oTnHkAinrkcsELXryx4i8DFUapMBmOxY0p6pUQsYsDFkKbACb5Rx9Ps+a/9o+07+k95CZayFfVJkxF9PbAZaxNq2vGpqUZHvvaqmMaayeE1JD1gDYRXV7+JAXq4pfLxhfEnT56b1+1/bY67T5iFrZb3EJK2IwBbv26T1LCdBjqxJokAsRfoDInD9/F8FxllJRwxQn/fDosala09PS28A6Xn4UXETAa8p77nRt2SrF4Uc1iE6jjkxN46OvgLtLF6SigVkrRnDJ+ypIPpuQFQugC5vq5ug3Bk3fje0B+pfXDLsrerB94mLnRjEcpf1uTclD1et4ajogf9jx5zveJJ/TPX1CY0DrowKxaqlIF/l2/If7A00n1c087PgQB8FVWvAerYKexAiyjpdshkZwbGmYwU0e6PUk9iFH1qzr1Y7SfCOWLkjYa7/ODARKXasIO9XVyuHTF6LckoUOFM2gd3bFkxSMaJxbYpm0kOiv2Q18crPWcvsYvGWUkLhhraQyOAaZI7N0jTlKUMIrjIA9abiBITPrx6akySz4UrkX9IbYmsb09+ggH505tKQKpPMBO/AdjMouCFKxxuWyPCMU17aYa3pSFLHIm6VYIPOkQOAoDCatE7dHyyCbQD1SUEgwJA47HhF1M6Is9GRmK+JGGcvoT+K6Xg3b/kSqRGYJSh79V2qDtmWBuRl1gwa6/y+DyFsMWYwtdmCM3XDETih5WIV25Od8pAUE/Q5SOzaQloiZSPd7bcdhAtr++YUXsPLKlv1nii9C8gw466c4xlMlh0RKmYarY/IJ76SnMId0MvIgeT9Ju+Y8S/+Z/j7MoeePMbwyxjHsZ344G9aMYBsh+wPSw1ZXoy3ZyxGK/z/CCCa2yLML0DwsqGMwSimKzCPg8G9yr3POUR9jjVufO4n/ltJBhalfej3V3PnrvSjltd+TGdxZxWZjHu6ozUFKd+Z1v72K5cALH76fKh7ezisom+iQYH4Fp783JJB492PCCPXdgeocypnSt5nECC+7+kBt0QqcCZKLSRnLvmFH2TyL+USWRNJ/IpaYJQf8YRy0lcRPy2DO5QLo1Eyvbt0FSQgJE/Z4+scz68juJHsJDIPEzGr1utP3NGzFb7cMHUKaXLpQUoJtTrDGW3ZRnWKOVVu6pYxXOuXMMOS9kOp/QoVpVjBKwyOy7yJPlsYOp05ji7H7meKujYjD5eg333mRmG2cqu3qz11AgL2eLnnaAEXoF2GxrID1Z9loDw25J97J7bT95MACUL1GuIAgwKmOE7z9GizQ","layer_level":2},{"id":"4e175e46-960a-448a-ad0a-905229dfae2c","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"前端架构","description":"frontend-architecture","prompt":"为FMS前端架构创建详细的架构文档。深入解释基于Vue 3 + Vite的前端应用结构设计,包括组件化架构、状态管理模式(Pinia)、路由配置和服务层设计。详细描述应用的初始化流程、模块加载机制和插件系统。解释前后端通信架构,包括HTTP请求封装、错误处理策略和响应拦截器。说明主题系统和国际化实现的架构设计。提供组件间通信模式和事件处理机制的最佳实践。包含性能优化策略和代码组织规范。","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/main.js,fms-vue/src/App.vue,fms-vue/src/router/index.js,fms-vue/src/stores/auth.js,fms-vue/src/services/http.js","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:08:43.1260444+08:00","raw_data":"WikiEncrypted:rJ/rIw0gVau8jPGqKFBAsMR2XDSFypkKHZQ6YBOgiEB18etPNKW/AKXxDO5P260N8cfR8zM/FPLMKEziA2ENAPyPLCD0rmURCnfRqw0Ps+0DLUrRzA2QoFL3DnqXmTnCN1kBD+zXf3INPgb5iTCEWRTTA3D6g1jhTfwJBhtC32ATbOzwOebHGPrG9Pu0bJTlVFtB+/ulqlUEHR8v0m/I4ShG1T5zPxlTPgibjO5k/sKJwc0QkHZvHVdRRFdff6DCTHtoXqJ+fL/64aEllTLE/T57Zd8E3Mx4awz5mLuKfHHLzbG67xj+EinFrIzzTGo8usctHxMK9IEE3p3eyjhuUmnjhrWKGuh9ple8q6jeFTHSIOMwdhFtu0l10f5Y23L7r24SyW2k1/7e+QWkL217yKBk2SeawyNeuLd9ix+KSlEDWamEHTgmF1tGaCFF9ppEy4+yVFsnYHY4wdSo/DzZ8+0yiT1gaT38T/kUF7mZImdHTEjknAALHOWAKrm97iJHO96lGdpM2zSdtpgyV3f31u9mzLpmCvxvu6grlO74quWGf3m3F7pHcNXrr1hmTsfAJj13Q59ggCEF4GLou+eKvPtKfszlyCyBcFwoGEN8ZBT7O0uWgOTDSIKIRnM0VAsycd+PF3hCjFPMFWiMaro1/vmIr0MZPaupv4F3inb5dVc11ELoHMLztTx9cqHd84lhTGIRJJ5pjyxW1ZEe6zLFDcn/4zqoRNKUPjSJPdz3iNMur5qTjt+tuokfV/HU6SKDgoLriloD6PXifdR+C2LIIYQ9pQmMeKzxZuFaZyqdz/97q9bqqf6YyXAvTQpRjK5K+VSlQCEgmSMOXYK5ZzVx/qtCwYhfs1TT+gbm7f1Ip14egUeZDv5DgXODmkbPHb6SGxXbCUAilCcWs4UIhqMiJ42ZEVf5AYPG/GGECqws9kH/rNPlzBSeO40JouKnX3M/9HoMjNJVpywJhEnOymPJIbs55IW+2vkmrBigvAMUfdFr9CKS2+J36fOz3JgDcu6i9SEY0qelcHGNURaoFIpDGYvJV2FJcFMOlHOJyJWC3nETCQMQJTQzzIqrArKZk9hL/gkjgg0FzVvopy4+dJYuTIP/zg505f8cBvi2btIX2EU2nWDZSYN9hd642vBoeh/F4bcpMUIFBvl3LNbMbHwGlXhucmCtODB7hYw4XvgMajrpbscqYNxrc4yC5bYKwUCyzjrJJhvYOuBZE2kP9K+eNglm8lqUH1ktyubaWLs5V2bbW/xR00ZlOu1xBdLvjniuzysSK3JIhmzeb9343X3XXg=="},{"id":"1197fda9-1bfc-44d8-89d9-8b099568a839","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"路由系统","description":"routing-system","prompt":"为FMS前端路由系统创建详细文档。深入解释基于Vue Router的路由配置,包括静态路由和动态路由的定义。详细描述路由守卫的实现,特别是beforeEach钩子中的权限验证和菜单加载逻辑。说明路由与权限系统的集成,包括动态菜单生成和页面访问控制。解释布局组件的使用,包括DefaultLayout的结构和嵌套路由的实现。提供路由懒加载和代码分割的配置。包含路由参数传递和查询字符串处理的最佳实践。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/router/index.js,fms-vue/src/views/dashboard/index.vue,fms-vue/src/views/login/index.vue,fms-vue/src/layouts/DefaultLayout.vue","gmt_create":"2026-08-23T10:06:52.0473214+08:00","gmt_modified":"2026-08-23T10:17:04.1118942+08:00","raw_data":"WikiEncrypted:SO0rhsjN3o9FBa91nwv0dk3VK0BayJJDenMPYPQ2W6nsAe4EsEoXai/KYnlADa535L7x3WaIsKFkMYttaagsehaGmiWDJG5f1Y/PsDMk7rW38sPNcTJ8dkzeHyCkytnjRhilksCsaLflOxNGiqxCBQkhZNnZxJE2SSUXG0EZuGSPxAeIO7Y2//cHscwSHG8c1zq4vfMLDiEsm/l4ucSvMEHzfi86GEo9SoL6EB/gCxw4kwcubmMaJk9X85eRrKtk3G0sjnfmLjyqGBVr4GmJ6YUt6qRNA6OjohGtz32mxB2F9bdH3ROj+JBsXfe2GkWX8Qz48lklls73nwh8EpxzPPzg7GeQd5T1kx6+G84/il8zdgvEPdemnLweaNPvmtSrxnQvCCxfX9HU/HpYVcmmfBvtT3GsKjtJAoK0wZ48AM4D/Hken1GEMbtroai0+gAuct35d2rLwsSs6IUhn060AKxanGgZHHlxuMI9CG6MRjzEoskod/ijbkJMspaH+I4xVnPvju216yqZteM9/cf2Qsp+rTc62ODi2XNVbm+Fz+Rajxi120ZhCEXndPnVNASmzLiyr8esQZKOcJ8u13ZtW+3nmynPC6lXk7FFCwhntjHSDEPbFIc24VOrHgf3RFtNtmMLXMaQKxtrowZWM+lcFQS4uwlDzRNTa8KTB0Nfq2JazvQO1gXo5UpKXfnjpETQubE38135C2QihnPhZArAzBnIByW9gVywymj20po6MenJvuD3QcHwWsUYI0FjdToXymNNHT+0W7bYwUQiIqWB3f4lHOyKlhjK7PGiVG/AFqi/tmugkP8X8LbRm7RtZ1dZdSP0uWEpoGBCTO5xRF5btjDycYCcAtasMgHw+HW+TYD1/SCPTZRDxYKxEpODIR6HLugzFzKcv9aDSNaBvrCD4BulW0dqis6tfKGDdzjBiAH6F7b+tW8TVftUQlEicCj43dLF+XebQE3G7iPT4BCAf0DHvHqsZzG4hUjdiawWs2aBogRVoLonsC3m06iJOxJiLlMHZwdHUreqMXJbomRC76SLVT24twu3dlLKxKkrxKJkmnpMBwbIweBYJ/v4axr6cP98Q9tDsPuV+6sje3K6PrHzNFoqndC3H7Z1xlXfw7AqFfvmKGYuIrt1ycHOY+2wk66JujYtPiLLyLYjIOYUhVS3PQMwnXS5HkVC5qGj00NH9zEThVGg6bwcsRjyB31eQ7zBS7n7hIqkIL1YMzD72w==","layer_level":1},{"id":"b8c4463c-798d-4e16-9720-c36524fd1117","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"列配置系统","description":"column-configuration","prompt":"为FMS表格的列配置系统创建详细的技术文档。深入解释displayColumns的计算逻辑,包括resolveCustomCell函数的自定义单元格解析、seqConfig序号列配置和columnDraggable列拖拽配置。详细说明各种列类型的定义方式,包括普通列、选择列、操作列、序号列等的配置选项。解释列的显示控制机制,包括headerAlign对齐方式、resizable可调整宽度、showOverflow文本溢出处理等功能。提供复杂列配置的实战示例,包括嵌套组件、动态列生成、条件渲染等高级用法。说明列与数据的绑定关系,包括dataIndex字段映射和customCell自定义渲染的实现方式。","parent_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createCellRenderer.js,fms-vue/src/components/fms-table/utils/createSelectionCellRenderers.js","gmt_create":"2026-08-23T10:06:52.4239597+08:00","gmt_modified":"2026-08-23T10:17:32.0165704+08:00","raw_data":"WikiEncrypted:aqnnWDsqb4i+i+puM7AFjvqktKBc0wYhEZBC1PPj7GH3YCWKXNBua+EsAUWm9m1qI6uWK3JQqfzN/ll64nh8yYYotWEFQjtFgOolokoI5L/w9At2a59IuEM+hlp5Vo+cbhMEnagyxa4FmQrW71gcIofhq7vz16tzcMaxRqdzhM479P6cQ72rkymqBaUZverNE41PCGvuwkfkx39HeQdLk9CpXzVAcutHaeSIXwrQeQcIMdaz55xU4xZhVwttIHpgKmTy2ST6uqJONx8QGHBvziR9NVR63M96N6UUAdcMShN29VsOEiZFp2XWCwIJbHaj7kZbfgxjwvUy0GZzmmupRjvPgFGTrHKgTnOKVczC/VxWHJFi3ld4BBUsvNI09osqXm6GNguMy7kZcTm1bMimxnqyD4yIOOHCD1yOiAAv/lEdeJuLtgvSFic8dnjyYTED8/qqJDNCr9SCZ8/b+YRafB+8oxD3v5FTRyOyAR0fB4t2d74qdkXCS49pqOvcSKZkksPHUkpjauHGCWvUo/3/A92msjVDpDmbkuu0BQLde5m0X6jT6qCDEfq0RBaTBi5Q24kU3XIQsA5qO5QmAVcBDtwNP/DSbwyNjrnDxYBWcELgYp2BkA/K8Kxp2L8ZIUJvHg8ckpGPK+WTDt/BR2H9rgTdPrWMCPEGR/DiOTzlVMg4MB9k+7jGS+Kj0Ubhc+t85DjF6KMQ8CzWiCM7VZ9VXX8F2CnCP+kE2cYJTm+MVw3Cao2igfU50HP9vLzaaKyHvgly09b3d6tbxPdaoAxi6DrzV6tsoNyM1bbMcPf3wvw9krChYLDojJcEa60lxyRC2COS8BJ0GEqb0kTsEq3vdaQ/3+f1Wxhe+bgKmXomjxjEVMgnpTsI9H1i4iPxgf1fimE9jx1p9Aav7YbxG/cDp5WaJxxy0hTFBNraJoKXVA32xsjmhqEjlxk/0zZNkrNTiDX0891xoxH5cHZK7ZsFs3e8H7Hb/oSjVNBREJ9AiXogl8k0n7veg4BNmGrD1iKgn8d224PmetwmRS9uJt52qN5ctglldl3mA8kv0VNIdcOQJGLutsl+DqHlRD7rP1TV9qc3VamYO/4zg2x6la1GD8UC5pejImLj/gkof6/GQraK3JlvZ9JpE8PFUWNXaZcVBhltmJ4zA1iS6AVmde0rSoNhOlBZWe+Fv87/+Wx+63VczHHHHbtMv8Z6HqrQzscxAV0DE1L/J++Y7ZRkV+Ds7Bvjr5rVDNsDL+9UR30DXzn7aB+lB9zZkQ2uSyt4m70hQH+k4eR1ME+O9qt0s58ovO506WEexE2OexkOOKDjjGs7+VylL6JfITbNGrpuKz79QT+r+p/3gnZm8wcURS6petvgiHGrZMzKP9H4I2RMokYgN5Vo+sYYzGrHGkHWtRl1KykMlRan6uXx5PvYCglQgptJpjSGHEpqZ5qGNRzKqHDKtZaViIx8gmD9D+Tp++vfosAz2C703yryVshlMU1qkb96Ow13JYisxuNMk4PjgFPUTG3tgem6Iw58husWJcS4OHizpEkwHxS+zOIXL7iXkd6GHr63NN3MG8Un0bglVVLd1JeZNGJgC3l2YTWchQhNpqcjRIKpb/p1khSeGi1fbooJZqjOlybFynKaUJVOx+Q=","layer_level":1},{"id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据展示组件","description":"data-display-components","prompt":"创建FMS数据展示组件的详细文档。全面介绍标签页、树形结构、分页器、栅格布局等数据展示和导航组件的设计理念。详细说明各组件的数据绑定方式、状态管理和用户交互处理。解释复杂数据结构的展示方案,包括大数据量渲染优化和虚拟滚动技术。提供数据可视化最佳实践和性能调优指南。说明组件的响应式设计和移动端适配方案。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/tabs/tabs.vue,fms-vue/src/components/ui/tree/tree.vue,fms-vue/src/components/ui/pagination/pagination.vue,fms-vue/src/components/ui/grid/row.vue,fms-vue/src/components/ui/grid/col.vue","gmt_create":"2026-08-23T10:06:52.7661656+08:00","gmt_modified":"2026-08-23T10:17:15.8736936+08:00","raw_data":"WikiEncrypted:uVaN8PAv5vr1Aw7gjdyySw4VCwsO2xlFYacyLf7TU2Sp0Zt1K+Xvs6VDz1shXPYiX1AxFKAsI7TA6rd7iQqLwqe9w4GXKPGhiV9+E/wGQnf477n2wQLxtsXiImVivoKONXdxgMfYsGm1DFNFjKHugJB+EUrcYQgAVWIGUs/yz5DnLc6M6LnxE4ppgEy/e/WJa1wzMUZMNjLc0G8kH0NUyOIFxlkldeu/Z/mjdwYZYCH5SwKegudVB/iLGiZYBnflz5kj2lxZdG0vr6kfbmzdxNd6Do9OQH1/2E3LPo3ZVqHkiowhSJwvLQy00SFKbGvAilCFhFyGwTpFw1KkOBM6qeI/qKcBhV+HfRO1BfnYn9lB/mUy0x2OJVZQ+NsqboeoEzAL4xfQqPsumX5T2PB3GGwah90uq256ZJFc6HbH5fOKF+ydFqGvOnPxUPjijlHQNn0xDdorMTL5rJTOXSYVnh83zUUNg90n9FJ2jYM8vPY/r0VKzrS3RM0ZVUShLs7lsyg8hxwBk/2P2tsRTUJzmJFPU+Pd0SB1O2ghcZiSM6HXuWSsj15rcouTtg25p+AD50s69RkirmCQgozv6w2sWevaPY5xt5p4AZh8ZvRzzWUILH2rVncw/mDC8Q63sTgftzupUTT8aXrr9HSTOXueNp45gSx1RCbEn/vWVfHUxz2lzDcuKqoaH9UMOKHxq6DBMoFULxcsaTYIx6iWNcHfh+DoHaJ3Xbs+yMGZQAr0vhWQdGBJ5mzfzw+Ibd98xvdJIcV0FTw7OSIUcJZ7nQ/e1woAzyDH63sGH+nUyY2eGPdTst7nn7X9GHF832MwKpwvZERWX4/ZYINsSrLERmaIpzZcG6dMxt9Pq5FlXWVqopidJZkez4wnNZIri0sJqSjOoRwYEPBh9yYiBz78pBaxJ09utnq19Nsxzzhwvzc5vuha9sXdz353apGdoFh/McgyiUdXsiQXQ12KjS8q7q9nrveUTNdPJxt1yn8UbTiG+LcOsH2jai3HkMRK8iIw45fVA/0i9bJ8/3cDYumEewTZ3f/6mVnjon0uhY6OPPEALyMgc9BLhNndVE8S20Tugi+lBM6z5u6JZr9xlUotFc0vMEmsZOtvhdgXCnZSZyhOcItCP+/4lrrqCwvvi1b7ZqWltDMnUoxKfJ/pakW/ZdoxiZ2VTf4RjWCtVB8O8u6fW65PbrRz4aBcu7vDU8wcR3aHFvd81q6z+nOJncUMO7yOnZqbagEaIJmG2ogBzyrp6Ht570kvGvm+m0BQlFOAB+t32cdW8t6terxF57wxKKr3NsfZeOVvaN9Dh3x3TPUQKPNtJTwjfwl4wHY7Hr55ZqkM","layer_level":1},{"id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"前端权限控制","description":"frontend-permission-control","prompt":"为FMS系统的前端权限控制创建详细的技术文档。深入解释路由级权限控制的实现,包括动态路由生成、路由守卫、菜单权限过滤。详细说明按钮级权限控制机制,包括指令实现、组件级权限判断、动态渲染控制。描述数据级权限控制策略,包括数据过滤、字段级权限、行级权限控制。解释Pinia状态管理中的权限数据存储和更新机制。提供权限指令的使用示例和自定义权限组件的开发指南。包含权限变更的实时响应和用户体验优化方案。","parent_id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/stores/auth.js,fms-vue/src/stores/permissions.js,fms-vue/src/router/index.js","gmt_create":"2026-08-23T10:07:03.4709773+08:00","gmt_modified":"2026-08-23T10:18:00.1736285+08:00","raw_data":"WikiEncrypted:rJ/rIw0gVau8jPGqKFBAsIidYArhNgj/gNiHdpOoSleqHsFsQgCcnwSkpg0z6SiEtwXNoayNf4qpRlLclTLmoPGAdtitgK72z57fjd1pGoidwASjzk9rL2fu60/hrQf2fuWq5tVIL5+XvSD+mPCyB+OJ1zmKSNHvn1raseSm3gj0Avmls11jMMMdnLHfon54chhzBhzMN77fDrgHnLqjiwWo1V3fLzcbuSvFfGm6KjgqKCG+wWyk7h6l9VDuEVmHgpCeZmBk2Nfndv+JG64jZVBRomRVC7rlfV2jEf/s7w0KAa4M3nous100rAvxBFFJ7sxnGC1sPJTQlrmh6wJVk1h0ufieA0D+bxbbHUwSX82eSsAavPiaQpWludYbZN0MNwOMuhXNhLTUjYkYYa5Nmxpe5Lp3y4mwjnZ3MOHkPsmgXfOHYbXIHO5XoXytyCY/RpfAAeapDRYQZyLM0iats9w5+G5D0cyGp+4CIsVR8H+W7BIUhb91plyRmk+kzupwXpm6f2ytAy5YVESqyKMExmxIA3R0jrJiGTiSnYHphIc1S+vqNkxWJvS7FOQSUOCHks757XtZNAf9EXWALaJWzEgc95Nl1ZboNaD69Vw6/01k1cdgInuqC6836IfQhwJ8QsQTMiQ8jNS4nSUKM9JkjXanUNlKRvQE5kJU+d0PpTI+G/NUfW+XzEMNFPKXGFzkwdurhNlRhr912KtCfEUwQhsUn7DFiLefQ5iKxoeNyKHlv4Kv6aq+sV/IVywC4O8TbATvy+cVjb3C0cGaNufxSxHACEOXI0DTIzlHMo5/q086sWTQ9+WDWLbvlv3sorMoa6Bv5pCZOyZYLaPJzhQa3sxtghuYEnL8CW/paDCWyBAdfsJaXbYcELmjSmbKcFhCpbDuUv/yG3fENAA93pfXBxweeylTK7XzOYAYhbylNRlsQIlOuLrko0BsRyTvjAobNy1Z3HNrRaJwsjFoq9ZYM3MkBtiB7hbiwGiBDLfqhTRc8OAvtlV8s9x9IEQJJLYxewwwra0oviME4WW41rQbNrLokAAULgo7jjoYXnwUVHUfErL29NoE/Pc12GpP6BEl/UOrKU5tj0JAFs7PzBRgFWJrvQqYH0Dwl/hK+wao1j1he+7rhusiN0VulC/Gde9ZCur9TkBoU/YnnuCWsFxozU3wFyHv27T13yVjovSNXVe4FT2ZSGPJVMFCJz98pqtyVrL25T9m23JnhJAOAfPxP0F+3IiLBvowKjE26G2GK6ZciJQWJzf4SaO01UYKL6DT9SEZNQguDmqEebuSj0Jvthi4WSc8m4M6r/lgUuSGgedwyeYGYcc6gCxbN3+OgkBEH+G2huYCQCbYYnfZJ6PmUgRQxqju01WOZon4aePnxHC2C25oi2F0ac9Z4Q+aU51G","layer_level":1},{"id":"f9283603-ad59-450c-a667-f047f00e235f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"文件存储策略","description":"file-storage","prompt":"创建FMS文件存储策略的详细文档。深入说明系统支持的文件存储模式,包括本地文件系统存储和云存储服务(阿里云OSS、AWS S3等)的配置和使用。详细解释存储路径规则、文件命名策略和目录结构设计。描述文件元数据管理,包括文件信息表结构、关联关系和数据持久化策略。说明文件访问URL生成机制,包括临时链接、签名URL和安全访问控制。提供不同存储环境的配置示例,包含环境变量设置、连接参数配置和性能调优建议。解释文件备份、迁移和灾难恢复策略。","parent_id":"32372749-256d-4739-86ac-7f74eaef22b9","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/resources/application.yaml,fms-vue/src/services/fileService.js,fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:04.0853633+08:00","gmt_modified":"2026-08-23T10:17:52.2530134+08:00","raw_data":"WikiEncrypted:l1O7XWjgWHyLZEgkeZtuwYyouULZxQPJ61GBHxTlbI39dbGy2JQ2Be0pbYBs8HEmFWoG4+15PP9oEvUKzMOlz3ruam1HtmZ3XxFk1ReKA0ZKhCxb8Qyf8h1fAGaYlVeoep+Vrt/msrFNE2iCJomB4hE00TLVpax8LhDYYDxvvE2TlIOfAVHEfg1DpIRvjuomdIvSMF///yB072Ub6v87A1NvQB7UeVGk+4kGoF1emukTZ9NWZFlWhIZpI1QnIZPegEX9+Jw9DjPw1QXK5j0MIAuwjeigIuhbJ+ZizUQ68X/w18JLTIw+1HjM+Cfiy7VuWWiEGLP9idnF11blI2wtz9DBfNx275qCTMAQIjiRK2ACaAbyjHrA1ptT3VMMOYaOK9g84ookCAnGKnPJ7knZimihbmNktsaHIHf4YYYar3Le2OA+gk3/101VJLeaS2ODw3GkT3s3lWJCUzY8qeZ7OIUTTVUilMItxYVp6oesEbKIJ8NCCddaRWE07CKx2PDTZiv94eOi+hS7rncTfWL4h7N5pfntz395k/3LK+6JWPYK3BLHaUybswr3TFpBFD6xAPe4wLWpjVXl/HxTyJwxzsmneiuX96ZB5dEf1Mx93Nq36R3uYRYV7MUSWkMSwFTqB4FG9wjZsl7NgkmIRxOgOl/9p6wI2f3Ym9G+rLWZKreQdlGN80Re8kL9U3CtGGl+Y9kCQ1r6LsjTVLZpL2gWE27IyQqBRemy9kCUo2+uxhRL9WifTEz9U+cP7sPpM3G/eXEpSLDH0njuNGhNOpeLNc6wH4pELt/e05U25Hq38X4zuRzfmhrTkk5IdBmdQnkPQ7RaprEP7vKJDlD5DXx7GTgK8oTGIH86xNcScqNe7UR8KLKw6ENKvkeiExsesBUX8GdaAtuBLtHgEHbM0PZ4qbX7A0RtsnFZcv5+iM4qV1YD20Cqin0PZCzFiRHhjzOty5LXdgKAJghue3F1Bd9Mv66tVD+TgWPgfqWlMFPl7TqNFqQ4pAp6GPQxJziEJ1HCK7XbM5iJuTH4qVqK94xsoDScTvu7dsD8U7VKGtVLoTi0A2PdHWJWnC/Aj0VRqxS+XpjZb10GHxozhzhGEjB5aNqd1lxK33mWoKLAgqk+7TrAVd+O25Yf9/VgwSYFaem/q/PoPn22r0pn1KSb+7MWJaCtLVBr0mbot1gGXRRj4vf07hYi71CAHshTg7Iv9rZrw+C09NrC/+n71Ag/MbKnbRlpEG6n2+FUmoxLsdUu/WT1Xl7ZA4G9WG8+phCgONX+eVoDQHXwRiLxe1w7ZVfHp8pq5/QkwHedWHNDE1/YjJ1VsZVxRnI9nGiCqzz4JLMzve1vuRDN/HXbMxdkywgSjKu1u61pf+4+1uP7qbHs7LuXI66oEb90nM5Za7a4PfY6sblcK8z3hpYH4sKlwvYfbg==","layer_level":1},{"id":"1435e669-af94-429c-8a40-25644f49c9b9","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"API设计","description":"api-design","prompt":"创建FMS API设计的规范文档。详细说明RESTful API设计原则和统一响应格式,包括ApiResponse结构体的使用和数据封装规范。解释全局异常处理机制GlobalExceptionHandler的设计,包括业务异常、系统异常的捕获和处理策略。描述API版本管理策略和向后兼容性保证。说明请求参数验证、数据格式转换和响应序列化的实现方案。提供API设计规范的最佳实践和常见问题的解决方案。","parent_id":"803cf389-2e38-40a5-bd14-57d653cea595","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/ApiResponse.java,fms-api/src/main/java/cn/g3soft/fmsapi/exception/GlobalExceptionHandler.java","gmt_create":"2026-08-23T10:07:04.4237284+08:00","gmt_modified":"2026-08-23T10:18:12.8590452+08:00","raw_data":"WikiEncrypted:xKp6XrvgQ6yDy/qZb6DBAyzRhY9oY9wND++XWs8abaK7++ooUjfXuGWfUbTsdkq1MW+NnonmCjeYDiD6dG2fkeT4EsaT74qn4ulSwvV8E+/ja5EURG6tjud7Q+nhkXOZInxrqQ0PiIQtRGXG+d9y6pAO0q4LkMLFA+TIulsF2HCqr9B8YG+KpbUrSnq7jUxqxSwar4fdKYt0N/MtDYbvZk6tBN3N8S6suGH7N/vUVL0HKA/LOy6lRg0BRaCIf6ZJwb4FpZkgZKns8LKLriNj4UnQ9tGapYBEnnv8/Y5pwwFmDvDcFQLW+Qs7jCgtFRIr65EPTs4lu/qI001PrSp5OxvzwfG3sVKPoqmlhCRwRg4RCm8E9PfvGtXSYF3iA6lxgMDQjjUvubjWK9dwR/X/qtmexa2vkjX4QEvypx72b4C80Lq7DnXfgLL709scTX+NhST3L3tAuN7dFLs86pDIJRmPntvhiKpj8bENN45pgpveHMsHw/cIZtWqgL9CCfcM3tLhwpYya1+GnGy9f1nJCNCoe+KMZtJgDUntGKLGMd3RvKA+1xo/twuiYyuzKaK77qSH5CYfTbM8O3lUxgE0JEkb3PA+JsLA9avqeioFBMlBlIrkoZUU135gOOMq0U2zmvQHF28RblG3K4Z7TvCDCqP4gt7aMLZXl3wLKU2xSQhUeR5sXTFXuNDL0mWT478PKqy4boJyqqHtUddSeh1/dRLWJjojH5tV51KAH2qAZWukY1lg/YOhg3Jh6sOxF8HAvHBaE5dP7GIIPuie7qgNzyDmjwX2oispnwU27NQb9k9FXauJDRgmVrI+w0Sz3oU6BrDzxFb+WbD2NNNhMZQVSrZtSPIcpZ5VffKW/3Smo34xJiyCypwCX6w72ZtH0cAcNS2H5abotMYxHbFf5EqjQfAknFUvcHWe897bZt8zoKv8s5A6M9BrWO453ZguJ2Es6MXRP7bux7oUMFeVLnmWrzsai6xOU/QJo4Q/fZCtxAKyXeT+y4CXqknJxltbmEfeX9iTFgJRxFTp9YBdFtibQvMBDUZRm2PFNuFjrt7YVsrlJmsTFgrEIxIyZ5W8JfMHhSDwb1Mzsv1e1WTitASMoc0LNWhbNQ6ua8dBKt/+E0QNt8fcyyU7KfxvoPCTwiD/KnswyqTrjmlgW7mmmqi1I0gwF2PU6zvrVnh2wAeyiGW3F7gWAL/5NCZ3tl3NGxTQChTAt7ZtMPfvankst+F+l4RZPPlYASQzgNteDETBvCH7854Ds4yV8yKyawm1GWt57BDMJRrLeBxTLAdZ8MDO9w==","layer_level":1},{"id":"36b55ef2-3f5e-471c-b959-cd0094f6b467","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"文件接口","description":"file-api","prompt":"创建FMS系统文件接口的详细API文档。记录文件上传、下载、预览、删除等操作的RESTful API端点。详细说明文件存储配置、支持的文件类型、大小限制等参数。提供完整的文件操作调用示例,包括多文件上传、进度跟踪、预览链接生成等场景。说明文件分类管理和权限控制机制。包含文件存储后端的配置选项和扩展方式。","parent_id":"91f0e42a-fd87-4731-82e7-941d2a568389","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/FileController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/FileStorageProperties.java","gmt_create":"2026-08-23T10:07:13.604059+08:00","gmt_modified":"2026-08-23T10:18:31.4528881+08:00","raw_data":"WikiEncrypted:dcDyhCj+/7lwBBP7VwOj/ScYZCxiWnDX81G+NlHGvVKinuBgLF5DVdikefGhnq8rozDFf/XyH9yG/0jHkeW85jTFby3KAlyDHFSchp+NR4CkbplX3vQF3k5sIz4T1GngpPNlHFeYBgI3yNPSP6304q7OYm2SQkVKAv9Nz0Sr7SfvS3NgQRikmPS7jLrbCQsPf5cIDioAMuWr3xImoMluZkzN1vv1o+U3Y4cIR52si6efBilCmmqmDZmuW68cHRlfxZaVidanG2A5n4Hcot2XsdimOJ6/biebhFc2qNz7lSs/enzGrNjqVSg9+lTi8q+dVPRUheY5mqZQ9soybrSF4bxWFDNkOddEJnuoe9DW0Tfec84y0tNp7iNpEqUomW6Kl5RR17yo6KKd85Q1gv0DYHHmfmqLbcch8EA+qNedF15iiyyHMnOMrSuCeBld95F/dZp+nD65iopsjTggBIppPrahXZ3hYKm1hEWd0z97lJTKZzG5avxduLeNTfd+cdd7CdECJr1Q9WTBD/fw7aDb04iGzVo5elHs5AF8rFHK1fl4lZK553cLstV3sG0aFyyoOILRPXgirQEAvLwSlP/G1kXIVHnoIiObx3x/K1b7fIeUrowcrxbgP+6NFGMH9a5h3mQi/pi7MSax8tLHX9bhJpnL/DmzVS7Y7+Flbi3SY7kGnfl+OYfKxbvvCuBF88sw6I/ZTXJSNVjfQStJVaHtR5fI/9K2jpJ9BzvsGycjTa2Lww/Hm87WLCBP85t4mqNLFNcwh+nzBy+Tm5G2efYYHQ3QKwKuIw16KQZ42TTcxpJVoeIpt3yvWueWLciNvdv7/WjX0yJqQX7zMZUqXDIkKMviVwCV8PxDZ0F7MJv2JFZIG8OSNg8hmocwmJt1ddAmyBgvuugbam1z+F6u5y8bzaHm2Go3cgFcVnTbeWkLFW7cFaF4M69FuetXq4QBEhqUBQbgILikf1mfQ8KYt2wq+7x7usC2yuiptk7cL76yjVMpwYCdkJtA4PvCvlJIa7ep8n6XzsHdQ4Jb7yddj0Z9EG+G6fFprotssbn52atpwJFHk8aRHUOtUObsv/awiUreyTCNi3JLhyQCDo6neXJBZE646/tyO3tGO7d4kbPp0oA=","layer_level":1},{"id":"4216dd67-765a-4fbc-9379-26dfca51d7e4","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"环境管理","description":"environment-management","prompt":"为FMS环境管理系统创建详细文档。全面说明多环境配置管理策略,包括开发、测试、预发布、生产环境的配置差异和管理方式。详细解释环境变量在不同环境中的定义和使用方法。描述数据库配置的动态切换机制,包括不同机构的数据库连接配置。说明敏感信息的安全管理,包括密钥管理、密码加密和访问控制。提供环境切换的最佳实践,包括配置验证、回滚策略和部署自动化。包含环境特定的调试工具和监控配置。","parent_id":"931bb9e7-f8d2-49cc-bbee-7a861d12c4c0","order":2,"progress_status":"completed","dependent_files":"fms-vue/.env.development,fms-vue/.env.production,fms-api/config/dbconfigs/G3HD.properties,fms-api/config/dbconfigs/G3HY2025.properties","gmt_create":"2026-08-23T10:07:13.9679333+08:00","gmt_modified":"2026-08-23T10:18:40.6371164+08:00","raw_data":"WikiEncrypted:mJFb0eo+82adP8NAeq7d4FmDLE7QK2kX0IwA+pKAHPBAMX310WvSnGiilJPGcyGNd3jJctBfj4HY1X2j7L5bDTaI7PBI30C2sGqc79+oaJFnbDFmZhQITUdU+nyd/0AbhEwBtOAFLDIFC/87K6Q4CxH+s6YN1yTiaoU/2xBgdeUm5L3+HWTfQSWoKaoAoyURKLZ/f2TiK2kxhEClzxk6d+rcm/qi7wHFWmageEpQWZtYZACdlYTboc6Zzu5ZxHL1QBiXxvXXAwHjrQS33OvpluW/wn40D55sc2tCisGolILWwCNGOGpSAEaBWMdVcU0mt+DP2sHMxiSkkCOPB57WkwDDDBolaOascFBRc5MFYf6CWJfM3ncoTqrvgroXn4Q8SO9zaZiPwwe5VxCDfZHSsmbANMDuKQAvpq9K/vHI4jJaZ/si0Xc2uyAfOdNBCOeHHWQC4pxkNkYyeOGtOpP4wiQN+s4M8u3SHCCTEC8wseOe1auzc5lWlAd4CeMMbAx5sgujui7l2jLi1H7rYRw3gbCbJyEk4R07u9gvk/PHDwHpv0bRUz2W/wvjXLdo82wrAHLfBlYkeL9M2djGiDNvmwoIQxjy6YBqWak0txilKgwASrhFX69SKnUSD7TL8TEk0dyT2d4h0ho2cES6UZWRtisnF7FZpvBIyAzZ2wL4rAmyxXoacq+ABFLnDgo2p7GTz1WkVcY9z7GLoaZlLa20+/Lxr5nDfDV379hksSIeAppN7ZFvJefGLWJFAkLQXRq5bE8HnkkcDTVUpxZJcUPNs6erSdmZ6YZ+imZE652sQYtAucXXH/95WY6FxKrqGrnBgoWzjtdNgswtId3FbPXNx4IkfcLXh/+WuzU/UzNfG3mLyKk5AWX9YoovSTFSAQeB3Ob7wHp4NBjafIeiKMwH6Q7GQKW6bLWNzov13vLfpSI2fudqIcDTDjiOK1MxAZFLmMg8OAEDx+rXZHV4DwxK/NrmTtkMyxVYl8HT9kGDJ2o++Nr0AiLVWvneWB28jFnccOEFj7iRhCGqi4d9GkYp+LqMY1q6nqJQ7sP56Dy7uv0S3Dk2Ukawmz4W6E783w5UBVJE1qail/7ziRlKZgbmH3iqaOoBI0qeO/akvhU/WIWkYM1gi80UvCVXBg97k45fZtApg2Ub7JlHgDCza53Q7YQFMCWYpyeKJjFFJepDnTxFyailSoMcmpTEKcD7GQzi2PXs9KITkGEPrWVzv4OyQ3D39Jbbw55LavKWR3bjbX/sdaEKjy+pwVjFI+a7dsuAXtNQVSIuX1g4WCxVtpD8tAtxLRLyXbCtBM9fl3WreKSr2ERA2puJ/4oU6ZhOBGVjUHWGiYMTkAUrPCTY3CdTM1Fsr+2RrBmCNHg6CuuUfdU=","layer_level":1},{"id":"186e14e1-cc1c-4710-b4ec-949a053761d3","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"迁移管理","description":"migration-management","prompt":"为FMS数据库迁移管理系统创建详细文档。说明Flyway版本化迁移工具的使用方法和最佳实践,包括迁移脚本命名规范、版本控制和依赖管理。解释迁移脚本的执行顺序、回滚机制和数据一致性保证策略。描述业务迁移工具类的使用方法,如GenerateBusinessMigrations用于自动生成业务表迁移脚本,ApplySimpleModuleRestore用于模块恢复。包含迁移环境配置、多数据库支持和生产环境部署注意事项。提供常见迁移问题的排查和解决方案。","parent_id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","order":2,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql,fms-api/config/migrations/tools/ApplySimpleModuleRestore.java,fms-api/config/migrations/tools/GenerateBusinessMigrations.java","gmt_create":"2026-08-23T10:07:15.6787476+08:00","gmt_modified":"2026-08-23T10:19:14.3401262+08:00","raw_data":"WikiEncrypted:1AvRArO8YRdKP1K0L5B3MdAT/NN22qIc6l5/Av5W42AIcUTw7R9Zro1KuASvIjQG1TkjjSrxbPdpGiHEjLpCcaTTZfsmqNTlGGDABei8Nl3mr0J1YN2nzTNVa5M0Rjep6xU5GyoYjzuZ27fMCqw6CEYQw8D8tagIfK/qEA5ROG5ek6bQO05DMjSacQd/DLI1VrvPHaCe91ewa/9KxXvuyAT6mQ8XH3D2tgGGBpx/+gEqb9r8+AoW9R35sJt+kD7ddd32Y3spGMYcRifRjnISBPWq3Dppbq/oyR9OAvXiKOCEBJdjntEEm2zrcbM5kjaKL1lWp6q222kIJOpas4B6jUX9lhXp3OEIfhnDzvvCLz8Z8SsT2nX5Bfi+XRoiz/jAkykeiHwhPJeUUnITVv/fv9OfpW7RG/SKPzcoNTTsqjGtZOevHwzCYl21YpKI839akVAQgyW7DKdHlImb2gk0lTfhZiiPhEr4qpuOCJivnitvTJMyBCJGwVLBqlK4QZAck10nRb7FfcBkj9g2K+Zu5bDCC9otP8OhjrrbAHUO6LxEE4M1gsZKo3Tiy+ogRO60TbplH01C8HZxWcKnELgCa3w1ThctCg1+xl0CrokGHvSGYALwKFVBqvnmDUkBvLOl6pl5xbKNz/fCy6DoIYphrwGXJQNueE8K0UVpV++xPnJuCzdGiAQfQWll6WeX12DBGhDfF5lUtxMqqbwrn9Wd9Q9L68LNczoI4OfZbdMIOeXVtMtVU6q0L6WhjkFl4Q8JRKiZ04R8cdtRNFUWF20TgSESD5klBAruT9zEFeaNPMlv5W3dsfRbJ4xURQslLJDd4GLsGTuBYyYGzJlYqmE8YLDw4wVlQ8i4q5xtLxp3Ywu2hSkBUAJNARGjmDz8zqiFY+1stt71mS2WUEnc5W6DDha2pX5ZuASYqSmEA5j/WA2DBKFODTZ2ApTskket3YGpfbAz+4if1CK4t+orcF87xG3V421RGUAFz0aEoEPnmfhpTm2F16/rg6Id5TZ8VBGJjqkM1A2yaeMIE4sU3CFJSmZcxsG2SB5buQqHcI2yValaQptn1alrrcnU8y66WiFU1UoRWELxtdaGO8aSs/MBsp+fRfbfwSYcqrj6y+2I1Zo7zSwFtg7ZwBzlwlWIVI/GjVbL613yomVe3TZcOqGzEJgIOVKb/1pPTqu4UJiVZG2Q8pZAqNxnKfjnZA/L1MqCplH3WhgM72It4Ar4Hm85yNnwWgLTEUQRwXxfGs+dsmM7leXKoCn+QhAr8rXewRhcQ65z2oJMBS9Z3XK9m28CI1r/D2IDXjR908/D64jzZ86RqS20/7Im+jTEK0tIk5cnLErBjLLcB233/K57jtu6Q2Uw9G/+lv7YgKj58KnzRu1uq7zwfCh5q+4hnZLz5hqZ","layer_level":1},{"id":"98884cea-4625-4071-870e-3d121357fa34","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"调试排错","description":"debugging-troubleshooting","prompt":"创建FMS项目的调试和排错指南。详细说明前端调试技巧,包括浏览器开发者工具使用、Vue DevTools调试、性能分析工具等。解释后端调试方法,包括IDE调试配置、日志分析、性能监控等。说明常见问题排查方法,包括网络连接问题、数据库连接问题、权限验证问题等。描述性能优化和瓶颈定位,包括FPS监控、内存泄漏检测、响应时间分析等。提供调试工具和脚本的使用指南,包括Playwright测试脚本、性能探针工具等。解释错误日志分析和故障诊断流程。","parent_id":"ae7dfd7d-aa4d-4443-914a-39635c408145","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/components/FpsMonitor.vue,.playwright-cli/,.fps-probe/,fms-api/src/main/resources/application.yaml","gmt_create":"2026-08-23T10:07:21.9529307+08:00","gmt_modified":"2026-08-23T10:19:07.1568589+08:00","raw_data":"WikiEncrypted:IGJnZREY6KPscHFIFvSUZIsXIj/pjQNlJAdMDQk/yeU/0ZgNOXxKpRa75nB17G8dUuqfX02jX2T30N5dtTkH4lGNl0scn4DiCx+7/V8M/b+/kL6bjPx6xPtHvGCwJ2wqHi/y6Lx6nI7pDzM8nnpKtauug8Z7TJxFA3Qp7n+TYayQ5SKzCS8NlpGIkL2MO6FGD/eJppYVN1CHAHl3t7Z60LriIbmLnssNeCEVNNtkVo09WisH64ZBgSZo75/sz4apBNtVlp09OgPHBEIfRU9L3j0pGhy2UiOLnUfiQNiOmALYFSmkO2vmTGstVpVvaAqx6hSJL6yzqf7woz8HOVZBoe1sbPFJFUiRLPnagc+GPXTbdgyHPpYpyUBD7p9FeAMk5O8soGPQNzT3J32GMgS0I6eeHP/uUtfIVAly/1ky6Kms7UH54LS3gP0vWXI+eESaLyCePBMUjrsUndcqYA6ytq52KhZhd10Gjk+XVRhCmHfuaadmleF6xiKDcmfcp3saAoosgD3AfwL0jp3M85cEM0iQ31sd6APD/Mwh4jQe6cxr2sgug4Y5t0dyNBuczUuFY6u8nBiF2fx/MwIKwVPJVDZZztOHH6jxCIXM2VQctrtzxaNV5US/AO10nA5w1zVuUOLwNYSIFXvl+7WWT+9F8R/PqRmnYS29CL6sCxFsATjbf7MSQCjeqdPhWfJp8VPZ6W5G8as+jJUtkcf0gbISyeMo/IqBMGwIySFGdni6N46VBYtIP5k7ysrJqiLDOQG8vmScM3OXAm0PDAu3UMsNqYD2HU3kkxfYAMQGW+6m8UUu+wsFPl+b7q9gBTq1iJmN0J035Vno5j3tcuH02RjEFSFwaS8Y7Zbhs4veWfZuXHlH/0TwHfyEpM5qDraHyc7R9ANablXYdAzPnuFKAJt6DkuNPaNDW4EVXL83vQKikHkNw5GEozB9Gb3yF1iassCChLx74fVyoJ4sppDWEXD5s/ng7NosjpSz3vdWRpdezqvZi38m8n75bJpqLAsEoQffoJfBqRqSOHjXOpARpG6xCdTWFhOTvxi4S8C3ZJmXG49tqr/lvzpw2er0DITbiZxcDdA8QBZefmxzwto17wQk9tyFJn+Ci/dAcIqyXOow5yr+Xjl1h4yRKxZ+kVizkUMU935gOLS5dCej/ObFHWXepHk/gCR5ZGlPZsoCvRwrwKz5t2WmjXwSIjGQA9QWP3gEEsyn8KQAEE3ueCx8FGRvfffggV61/GiypGRsVk2GpLPBr/Ce2hNZl9LAJHHEZtmOGe9WpV6rfcaJxORriwlT3G6CGegfr1O4ol7bJRx/Joq4qW1YMFuzWXrRVdMyUmsIAf9HgPTvvuCYubIP7qg76R1BVhUn+Z19y1u/OfivhQM=","layer_level":1},{"id":"5959b9d9-af79-43fc-a986-2adb356a1eb1","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"故障处理","description":"troubleshooting","prompt":"为FMS系统创建完整的故障处理指南。详细说明常见故障类型和诊断方法,包括网络连接问题、数据库连接异常、内存溢出和CPU占用过高等问题的排查步骤。描述错误日志分析方法,包括前端JavaScript错误捕获、后端异常堆栈分析和业务逻辑错误定位。解释性能瓶颈识别和优化方案,包括前端渲染性能优化、后端接口响应优化和数据库查询优化。提供系统恢复流程,包括服务重启策略、数据回滚操作和紧急修复方案。说明故障预防机制,包括健康检查、自动重试和熔断降级策略。包含应急预案和灾难恢复计划。","parent_id":"e72ca331-7aed-4794-a645-f7fc94f377e7","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/exception/GlobalExceptionHandler.java,fms-vue/src/services/http.js,fms-api/src/main/resources/application.yaml","gmt_create":"2026-08-23T10:07:22.5207716+08:00","gmt_modified":"2026-08-23T10:19:22.4417209+08:00","raw_data":"WikiEncrypted:CaKOW8OSSWs4aEYk06Hu0hGGy7zXJE5t3XZJK+9x87WIgi9L6DyAJrc3RmCaJ+6SFlzyRI+1HXjej9YQEz09ePvz/kx0qw2FcCdW2TXlKzEDRvj/Y+qWeynjgbgFnAKbK2Pmj4XNxW/ZzDyoqEPrqi0S3JlY2lI22RQcaxm6TErDY2cIrRee6S+xUF5fZ1xg4fFzNKp8MwscO9XxSFaWJhI9Yje9m0dbx/ZVZIDu53KB8TC+PnRe/uLEgaZ8pvHcbtINg8c0/aXYkX2wtytaTYFXMxRXAusOBMDplhOn6yW5d3Xu3TETJO4c7NWEa2dMIZVuBaNtm7Z/AJgYK7R8FYQx5V6VsgZa+1okelFptCSiX/74OyAVaJWpokVNYsl9k0YDL+st4d3D87eyufKsOwHettcUI3WmAsd7nA1n4AmwlIKLwwuNHA6r7pqECSn4peIyP5Mp4yoAK51gxDWGQNdFAEawLjRHWzSg0jyGN0giABHIxcGWT/6c+OJQmRW2H+N/tSG0iBBIFbpY1iZMr25drTQzyfGLgPztZeGBgUUTS28ywPU/EKYGnunE75VliNI3lbpnclBhPKPD6HrbDkDXBHn25L71M8F6nsHvI/Vvm5nQgJq3/m6rmAbrI+g7aaheTWQp/Dj3+xdSt+onM8cVqp8bpXI0Nw745LdTTzR7XQ+NwXldptAkhMTSNLlbBnOIpf4rUfwUC//2HTZ+akssCdt2kkxrENomI0/Y5kJGifEuHM+JVa9XS6yG60jIcQ6CjsgA9/LRF4DFBk1veC75e2PCGc7H7kK74No5oriAIWHBXxccGkRjGFRw4+/3/uFgxVzNDBTxw6J5fFoEAz590qZqOHUcBg3nVqFGmtn/L4aJzTbcUYfofeVE3zkaNV485XVs/MMts9uLmHXHh3PfgKZZaOORuhJREEsIlcA3PIdxFm/cVzVmqUDHkxqfY6tW47eUSFnfAUNOu06mLIUZE6c5M6I+BTre0WhX8i1XJvLFgb0Hh2Bi0KqMVcK8fqnMO6/ZNaly9VFXkEXUSMI0Z4rohnZMwUdDtGDaSbeSzkNz7fbknifDPSF58Ocf2uFppFzvL7uH/fHzNL3FD10dAF569x/F5un49cNb+y5NM04KSlsiOg22gz4W/EZuufn2aWbfjzboqVSj57Q7xMOYwSXnTAsjyvyx/jZHmKRIwIqfMq/iXhenMmyOkx9myNbCrG0vnbuQ+jiLd6OfskQw9P0/CSmR/ADnNagVN+jYdXwueertPz81eVy+afRFIXOHDXltfOyEkChRm5ZhEWGuJZPr+XNQrvGaFsFgZTgic0pzv3gnMRGf7KHxwjYMd0dXO+5hNfyVTHdOnXFJHdKgzRQ6NPyhJHHooLLYAPNGuYTWp0DYE2BUANMFU7YkGr0KFRcISjDga4sWU9Zjs3KR9Pw1iZIGYZkLBIDRFeA4o9oIw1tM+cUUVlyTelkAGicq76/k7mvvytIp7MLw4KJwE/QgC5iAErNTmsycd7cePv3NIoU5dDGiWSGSd1Da","layer_level":1},{"id":"750de84c-60f5-4aff-817e-4e5187cae7d3","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"选择控件","description":"selection-controls","prompt":"创建FMS选择控件的详细文档。深入介绍Select选择器、DatePicker日期选择器、TimeSelect时间选择器等复杂选择组件的实现原理和使用方法。详细说明下拉选择、多选、搜索过滤、远程数据加载等功能特性。解释日期时间处理的本地化支持和格式转换。提供复杂选择场景下的性能优化策略,包括虚拟滚动、懒加载等技术。展示动态选项生成、级联选择、自定义渲染等高级用法。包含完整的API参考和实际项目中的使用案例。","parent_id":"6ebfa59a-db99-4c64-beb2-7b8ef20dc652","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/select/select.vue,fms-vue/src/components/ui/date/date-picker.vue,fms-vue/src/components/ui/date/calendar-panel.vue,fms-vue/src/components/ui/date/time-select.vue","gmt_create":"2026-08-23T10:07:31.2198182+08:00","gmt_modified":"2026-08-23T10:27:50.6112816+08:00","raw_data":"WikiEncrypted:t6raaFykGLeEk1YTPpS/hvA6XmV9gvusIJwn38UUHygDQpRQ8gw/XdXPuymYyTIxGAtL4W0SggXtdjdvI5XVO7dmg6FL27ztolO0hoccF6w5AePua24fzK5xoAJoydrh2bXIn5n5glTCSz2I8fxq3sEqzpf8xR3JLZRZFnkVPAgG7L9fhQHdCRem5RYQgr8kFVn2+iI7/w3KultY7LHZvxOgbihwIICNxLzGd6bcKacT5YALg+M7Ez1uyCLR6tuEad4U3Rkz1uriv8cFqNQjpbjM6JkeNnoOHZDWqo+KGuW3DLT8fRPn+FlrT+dvLWpRf9Xx0oQeO96AdeaQvLRXaBPm7lYtcufllXV59HoXxLP1AP8j2RvmCeaNIKFJO4ac+k8YgDzWlkTPlySg5G0VHAvD2GUC9nm6C+Ive/MxhneZzPE/dy5Jrc4X6CC09PKaODvkaRZ3Pf2cI4jCznHIKbVfBtlgHNQWNiJGI14dTTufn6snbxxCrReqihwtRQEddF86xLhOgTrhKSgbsBO9bx8O26RA81rcmsMbm7NIYEj4O0hAoLnOzokYkie61IbsbF9EcqL0ZfTxmcwI1ttv7xh3J8hlYpGUwfIQ4XoFjzId/5Lu475TCfSo9+nA6b/ubfVjw/uE3+g4l2xC/2YBLGtDHUUSDmJX+iXnXQ7wgoPlTmXa/PaH9/MFy35bMqokcsW504Jqc5QJH8XzngWZsyzXfb10biu4YsyG5gb9jwZLoEhcJFtMLtwEuNP5rdQg4XT/oGciEM3njJrvphzzt/85NKK87mbXhtg9AffChn1X9bZbq8YueCVpvvm1zWF1vMi1EhlxGlQiloHYShzZPOAMygpXAm8khOGmSAGJwaZWSVsg2zC6aUKFf1NrV7KfoOFSwb11hPeyq5opWYTFFKaULjeXT1eztS12How26WXPj1D+VhcHqyzK5bYEeQcMZPyC7sUjAKjYuZWww89zIujDZ8plbnCWSJfb/14NEjuCD3opy5f/ggBo1vWbDaIGf9DXP++UAcf/3tOpgi+c0nwB+HAhsDU/tlNjD7+SQeia+OKM6BaMV9adHqsqs2lUo4ZMnt/uKVEUnwEDzg+T34jD5gk/UIEEmXtSfAr+ply9MEWxaOGxaz7DpylWJfU/JObGxwo6LpBJ0heA9OyiJS58r7nmNVKPGyh4YILSs+XDLE1B42gtWZhBh376IfSKbLUU7+KRKVNWFvQBb1TEYX0Lqfl1++BbjAwPgcQ4SXR1AuM8L9VALiq0e5eEcFLUUCoHqtT9NYWqykL9EBN0PEAcvurAhJSuV8hu8U4JWL88cNL6dQPdJlqli0jwLJT5MGbdXJO4h79EFPoD2bgl21u9FzaJBCh3vpaRjknhFkUXcpSMpV5ADNGvgzawN2jGfKvdZb5C5zTwkkQN0TJpVjWLawi6WFH/W+fI2j/+UcSpZLnNXzv+DmQLZJsY2w7c","layer_level":2},{"id":"693b9803-8cf5-4ac2-9c46-08d68d97e4a4","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"权限配置管理","description":"permission-configuration-management","prompt":"为FMS系统的权限配置管理创建详细的技术文档。深入说明权限配置的界面设计和操作流程,包括模块权限分配、功能点权限设置、用户权限管理界面。描述权限配置的API接口规范,包括权限数据的CRUD操作、批量权限分配、权限继承配置。解释权限配置的验证规则,包括权限代码的唯一性检查、模块层级关系的验证、权限冲突的检测。说明权限配置的版本管理和审计功能,包括权限变更历史记录、配置回滚机制、权限生效时间控制。提供权限配置的最佳实践指南,包含权限设计的模式、常见配置场景的解决方案、权限优化的建议。","parent_id":"ee1b378f-0b54-474f-a1c2-4a3ec3cd2098","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/views/system/module-management/components/ModulePowersPanel.vue,fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java","gmt_create":"2026-08-23T10:07:31.3784172+08:00","gmt_modified":"2026-08-23T10:28:08.9232479+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoG4sCP1QtQQCxe6knzudLxLwXTTlfxDSlhWGBWN6wzKESTYLWkFITZc2DNRsYJOWp7N7piVLO5/SEMjRalx6FsHxjq58i6YRIjA2l7hpiNG4cxDw56QJ9P3NgE8HyCT8h8Fyz0sPnRpZXJNY9mMz/sT25pkcLTywMm0hL4mUbDG77bq0si9zzkztWDO9d0SfM8hNQ/P3PmT938juHG4/VM7mDuqcpQnH+d5QBjhcM+b5wwJMLkRg6OKMyKSxlqtx4Lcky1HuS1smzBbZuFPU/qV6x+6ivouPCUfHSh35TlBvbYfafWOVnAHa2js/PdycaD8jlctwwwJnRfXXW/m5A+ObtdRjLZfFyu2bokxiNVgts9zcaUDp9ESz0zCbz3P+ko9eIF2q1YahvJYf02pkx88n9s3deaxykzFA5bMSyNaPmuP8Jf612cFSaOWqqf+vByQsMrmp6O/6z1wnK8ZbbxKsjspoCiIJXy/HB1ISq5Uq746olDzYsT0BDSxYvIlOij8qjYeByVKDIwM0lUK9M0YYhjjRGqZz+fI6byiRahsQ+0vIHhpZNTBkGD0HfOR402jOkcs554nSsPJx29mPlS4EODgwabUE8rTYK4R8PD6vpv3oUdpPleFxImKCTLTsYJjTG3GOnI9RbMAK6sXW8hCdJgzv5KMZz2aIdduUMAAURoPUKTCNazDnyCtz+GuLyLB0iXXMXHn99aTIdzl9Mf57RkHXBlUlkwd7jSZIqLiW9XEoEZULNuQIpkq69HLLkVjdp72HhQ2ZVVamaWLHW5U9ObEZU/i+J2bGx8NRxfaY7dMmxFLjNkUSisLHZYBokqnn0jChktoSLnZsfjV2k8FyuSW062X05i0z2mGj0g5p5lLhNKM2eSzD3if1nC3erQWy3GM/j+CH1wBddQ2fRNLvhb9AmbB3f1t2GYtqrizrbbYe33LSCJ3n8Bd7twU7iRyqKTvKwz8p0qlGp2tUs7B7TUlkJxXF19bS8A6mp+osUx5+AtUDq0sf7LNv7WHsMbLul7N1I9Pp/u+NHPxgHmO4bvZoq5j50ALFdXPbPpnyCEE2yKZmfaBkkzcDj/foqgC6PeazfI+PvZURDbHRy+DM1k91FTOjAnKUfvUjhsXFOb9hJoM+m6ySR72ZoLkZeSUt4VfMUQf4M10aLdmnZJBYohlcpoaUJC/sFUzT7saxStOqnBBkt3L43ZVATcakQNyckfV6yeARGmcZkursOfYwuUoPeJze/KlGMs1q2zCXSz2JffFEVrCLYzlrQhWwYzWeSzuTucRUrXeCrQ5ZtYiAj5ImdBRxHk1Qe9Oa4Eypsarww5eoD+oLXbjL0Tmt0pRYG3Ji/+O2RqPyezjCXBdntmGo+FQGzBmgWJOZAgPTZFrQOU/VXJe4ONyZhtmmUTq/R+sYYsB8dTYVkq6aDbAb7zx9h0GrTJhfEPYF7lkQ3nG0ZFCN4zg5DrAGaPPVIrLBwohkvX+ldkkjaLkIZyZT0r2WZ7kPPqbQXCLDRQVPh1LVugyIDJFZk11AIf2DXA==","layer_level":2},{"id":"f7f5c5ce-b75d-445d-9123-27d2feb9b15e","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"分页器组件","description":"pagination-component","prompt":"创建FMS分页器组件的详细文档。全面介绍Pagination组件的分页算法、页面计算和用户交互设计。详细说明前后端分页模式的配置方式、页面大小设置和跳转功能实现。解释总页数计算、当前页高亮显示和禁用状态处理逻辑。提供服务端分页、客户端分页、混合分页等多种使用场景的示例。说明响应式设计和移动端适配方案,包括紧凑模式和简化的分页显示。包含自定义页面大小选项、国际化支持和键盘导航等增强功能。","parent_id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/pagination/pagination.vue,fms-vue/src/components/ui/pagination/index.scss","gmt_create":"2026-08-23T10:07:32.4807842+08:00","gmt_modified":"2026-08-23T10:28:16.6353323+08:00","raw_data":"WikiEncrypted:riaBYrgQFPEu0tJGRgDRn395mXbx2TmyHX5QWfkZYy7wXSr9NJ+aOx9vQOuUkuNA3H7/Kyl0lSclYrhYPR3qNN3Zy0KL85Z659oaNM+hTJrsR6Hu58dfHxic/vqlSHvE05SuIsEhlLM6d+h+K1vKQkBqsT3qnBK94/PQ/LZaYRZOdODaOUIkNKjFKoGcpBHyiXvBlpBqvXQh8pxUr2AU3Zih2iyo1O+n1W6r3HRInOFrCAl3zDhciPP4JtX/USRIne13ApWSer6MVaS8IjeB4PI1G2fUXVMNVz0yGppQREYEzWGWEmbVIDYZR6IvRGLWruVahRWaS73Jh+TfWgqJbdwkhiuKksq/77CfMimV1VymAA2LRxN/u7oTx4F2uSX02DnhXOz5nGA1CQfVTTXbG1UtPxo2rLsWLJoX/Ygdqlzmm7Fn3DURZQy2omSm00Uzz2gmvbQy3Jkp6sTV6zaEPbtLfGx+mVJaud7QvR8jR9zpiRp0Cb1E5tJjD9QIXv2i4t0YGVlDs7ttKA4767lXtcQ4yf/jStO1HUHQNmDbn1B/CwWK5NWhVNOJo6qgSHwJqCcZ8kokVyytrNk0SavCutPltkdSRWIshJU5OkA2RmhRme9bb4qEcAchtLc4LsORtbYdoCncYaqm6ZhVtAaV/TZC2VznQMcM+CoeokZRkR1fFA1w3JIPTKmlIDyCr7f15kxuKzRIIbhT2cbnx13gLgiZqOkZK8eekk4B6VFqG3+Z6psb0HZA0RrbaZCQXgbHbPH9LzGI1BNq0S20lRyOVxh8izh1zUkOHb0Q+J+JXlLAyHOunogQ6NqVHg5URFG0EVt8CWPbJbOVcQzdIpYrtRhYw0/T18wQP400THxcIG1TaH5eZI1UhI57MFMw+AiL2TKZOFtqw35P4hnyRBcJTUBa938gAXYfGeWwE0GpX96cEfgSy3Q9J+HLCZlQgjNFIxxGqBctPA6F2cOpjwfxLdMWiMwJbLmCwtxab91DJDl1GiwC8Xl0i1FjqcEmHD7vHhgUmZdoGX2BbfCvYcYWwOrWyFOL8kwHF93XZLMxPD1RyiRm6iYF5i5iKl5yV62ZuixrwH6lLgYgll0oh0QjbRpQ00VcAxJSXfHX3FSHLqEyKrNdVWfEwn7IBV1YfaaFQQGsd3/zF8GBLQJxp7cwge9JeKAClTlLty8BJk5ZP2cEJ6E/naN7/kkrWPJ5Pcf1a8q3ObR0IalJyX5I/V9XK00ggriS15M8STdMl88nT+WEeHSdwUOVxyQ1rDQfuWqqiq3BXV/Y459zZuDmJrtQ9w==","layer_level":2},{"id":"7bbd2e75-8dc5-478b-a6c3-c7558f44cf3f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据级权限控制","description":"data-permission-control","prompt":"为FMS系统的数据级权限控制创建详细的技术文档。深入解释数据过滤机制,包括查询参数注入、结果集过滤、分页数据处理。详细说明字段级权限控制,包括表单字段显示控制、表格列动态生成、输入框读写权限管理。描述行级权限控制策略,包括数据行可见性控制、操作按钮动态显示、批量操作权限验证。解释前后端权限协同机制,包括权限预加载、增量更新、缓存策略。提供数据权限控制的完整实现方案,包括API拦截器、响应数据处理器、权限状态同步。包含数据权限的安全考虑和性能优化建议。","parent_id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","order":2,"progress_status":"completed","dependent_files":"fms-vue/src/services/api.js,fms-vue/src/stores/permissions.js","gmt_create":"2026-08-23T10:07:41.2749388+08:00","gmt_modified":"2026-08-23T10:28:36.7520468+08:00","raw_data":"WikiEncrypted:YZI97ep9QXDPfRNDXs4+JL9ZLJN11PHM5d6xzABEzFl+rCzvW+1ZsJGLcgptmEKB0nEKFHMVvKyCBzha3af3SzyNLupJU9H04b94HZi656D1bkQWqQEwf/nnexTbNMnB2tpc2Ta8D+TYeSsCS8f1c9Qd2tXlvZny/iDVaEGg2MOPba/alvhmOdNq7RJl6HM6CkNjsu9uxgXdt/6qfWi6nGRdsNOZ1460qRr40tKeEDDVJmhsWz/JhvaR6GgPaQw859dyui4iT9uBDSRmTtDVr4Qw9pwhURSGMdzAzzea+Be6iOHxql8Nf4EisC4hwVS59UlrRD4u7vJ45XsVIMUTpKf4+g1/EoxzJDgcmqAdXzEiw8Q6LJ10f+A9NJtY+Fi40OyNbdrR8UeMgi49ikdDo1AvFGPaBuOSxY5AQBRmMqd4X0Pem7jZ5vR3zIrmN4j3g6pc4fosVxtwTvViN4yiACfb7fkXJnf68Ipj7i9IYhk9TDkUaM79frUGQErvhtfwVENokOvd1yMwVQT1PwkVvAKCbd1UtwMO4BmEh38EXX34wg1YWoQN7hETFhWmEdVLDp2UL2ydsvhgPJ5aClGDOeSn0l8tOc5XamwUoa9FGSm/vG7QjEX69GctUKmduWyW6/7KtYQksUsRARPjmhutN7AH8sOOg4RSYy3P+nCROhnG8W5MCKbV7kCSxRRLm/EYX1iwv0LvnveqHyLvDHLE4ivlGihOxk+IIgqRp3WK//dVn44VmU0pUsSfmwT9DFEDae5E76BuSbU5EeEVpOFmtkrQvfHcMDIPBXOyEVgU4F03Q82Rirw9bspp5zFXrnyPXY8yTWzPeIucN9CbU83I2OLMon/NHrwPTubxIjztO1cRK4KAqge7aM43HRzvqL/tf6a0kjXP//Ybp3XpghccGekpnZPNcK6RldV5Jfpt+AoJejRCmedSMIkVZ2BrrHXckieDN2JAlVWSATpEwxT4GSB1sIZrWQOro0ddMSrOYVb2br5FVx8/FzYDSy8VlTjdN/+sWYNY/vW1Jk4utvzwq9ez18PdiDgNIsj9npf8zFbRWjMHQDwHvCW9q+aCjPVq08qfDPB/XFDEqUqBJkD92X+ZUGWr6+whRetzsX49d3sWOGayKhZQM+bbtjkCUQBHJlA+FhpvpFuZEwq0Kyh3CQdqxKyMofQiaF6mP9+X26o33snHwFsdHdnWexAmCZNqy2bjFVsmWxkOtNSvJ4BRcbIawgPmolzMcAg0ZvlmglJpABbfb0/IOaPFgi/noAhATBV401Ydlu7tNxP8QFLa/dnwlFkrLaWXSC06Xr3qYkyKZjXiZUVkAI3BDoPaJSWnumzkU8MpzK8Dw/GQZbET5p9oW+QmzdXZ2U0vGJLPAriaj9XXUH9qmOS0eqp6xGoK","layer_level":2},{"id":"b110d149-467a-46e9-b347-6fcabaf328a5","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"登录日志服务","description":"login-log-service","prompt":"创建登录日志服务的详细文档。深入说明LoginLogService的登录审计功能,包括登录成功和失败记录的捕获、IP地址解析、地理位置识别。详细描述客户端信息提取、用户行为追踪和安全事件监控。解释日志数据的存储结构、查询接口和分析功能。说明日志清理策略、性能考虑和数据隐私保护措施。提供登录日志查询和使用示例,包括安全审计和故障排查场景。","parent_id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/LoginLogService.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/ClientInfoExtractor.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/IpRegionSearcher.java","gmt_create":"2026-08-23T10:07:41.4915223+08:00","gmt_modified":"2026-08-23T10:28:48.9734607+08:00","raw_data":"WikiEncrypted:gVtFIob7WtU/DhLIhhPauMFaQtXzgE/JsWGdzBTyggjBJIRSW0nzarY7t08B4j+hLdZHNw5TCyVtetOgRi7dFMGSKSQmeQqaw0dRVjwqbkKyJVpguzgrpXOPe77oItVPSj0QlSKhcMyYY+gIIiYJibqLvo0U7ALlvC60VinDRsUSE5pNl7MPqcUV1BK4bwivJQB2UQLYT6jWuDX9bRupVDUprPNax43MFUle2NNBZwbe6+WERK4n9B+HCnnSvlyV/XPkE14pv343Eia98RFoht4UR/eVI7+POWQE1QUaFg/rcGSmyE7wqX70iF6qqNErFzMKhU7hQRGai0Sh3ifgMHOCIgL5i7XhB15SAB+hkS2++3EYitiIOwSd+x/hL83IFJwvY/LaH/K8J2zAKRrlcutuqehDZycieTW/ayyh+ft1xkmsUGkC7xguwezMqCOZk3xK2VF0f93pp5zzwivpVTBCy/PdsgEDV0qZVE+uemBPh6zWwFtq4nHocBye9p+kF18Y6bc+xCHIfejK5ztY9Y+ytyIqH/MsrurFtLn6Mnxa2tJWnKJADvw+6FZhKM/Iwib3ckGZ5Y0sbiwGCj/C8Mq6JQewCZGPkDhfXhrmyDwyF8O0TIum0DF3kCKmvCziulZlqB1PHV7kNdawJnjJ8qULn1A6BDnuvBaN7F1Yj/EaoeOWbnO0npqray/QXCQSWkd6+CQaDwwd+MjOn40a8w8dnkUKjB5Sm1TQCcqtBD11+G4rasITkcVJAvSgKrGB0I/8PvIymU8+uGz5p5CokYXzT08DW4UvjPrgOTrjMGCmA3fnsbAh7cG6rlSsh9jI5tB3VLoO1IKY7rOGtqB1wUGwmj8Rurf97Q1TXz55kABGx5Jhof1eni/lkjBCp7IqyBEJ01gPwxZwEczrPirVJwpTunVL4B3qZx6lACiE5EcUpH7MJ6HXU/DuOIRj4Q4yUElqunfQ6X0TAIEz+i/i1yVvyj651rA5vgvmG+lWw2S6mCX4RZB8TRJbw+9yn7Q3ZPRuCcQmBUC4JrRNVPoorgDxYsLbYYL0KfMI7UzlrzuFqEc9If51yDlO9MXg/eDq51xCx3g/JHi9NCtykO1HCwlsAX/+/Hrdrk2Rg6gVRnUSCbgxp0a+0QIa3cBDOWWabdP8tdFlnJ8N4XRE+5XVnADy0DKIjQiVDQGD2hpBUyWMs6mIsIHNUFz6WiQ9XihYdVtOdAlYqJX5QRSmJnxaE4HWgCc5zozXM+rYdJ2AbI/aEH2oIxXVtOnr+eYMXvzg","layer_level":2},{"id":"c59d80f3-107f-470c-aad1-05783a3dfbfd","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据库工具类","description":"database-utilities","prompt":"创建数据库工具类的详细技术文档。深入解释DbUtils工具类的核心功能,包括SQL执行封装、结果集处理、事务管理和连接池操作。详细描述雪花算法ID生成器DefaultIdGenerator的实现原理,包括分布式ID生成策略、时间戳处理和节点分配机制。说明数据库操作的最佳实践,包括SQL注入防护、性能优化和错误处理。解释批量操作的处理机制和事务边界控制。提供数据库连接监控和性能调优的建议。包含具体的使用示例和常见问题解决方案。","parent_id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/utils/DbUtils.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/snowflake/DefaultIdGenerator.java","gmt_create":"2026-08-23T10:07:41.652187+08:00","gmt_modified":"2026-08-23T10:29:09.6000875+08:00","raw_data":"WikiEncrypted:veTYwq2y4io5qXerCTrkkKO6ESTsCPcI4xzd0ZoGp3uH+fkli8VHpvK3sj10SZCN1RBC3WN4wNCT4cfpNLCqNdyuJfA9qzbTDWppXSGab4Pd/V21AyLTyBQ3cBsJZRHbkt36GFksIcjcVY7JEfs/XXXR4ZTvyj8KohbeW+GgI38NQd9nP8BSTvfU3kJT+BNH4ffyRQkZG9019KYzHD8Yu/36J/UGn2wiU3rc1qGYW6GiqzX5A1vqaaPnTWuoxzAWNC4dVaJ5Ug6Sc7fAO7WjkIADTiULXyMJRav5x9mNa0M68gvcVoQtIyXOZdYp9PMaQpiTpWTvAWUTNvy1rH5R5ytKXI7EVTwT9I6jTZSs6Sd6cvxZ/lROG983YwLbM39Qp5d9G+eyu8WelddjWfoL3Ep18T5RUhEeWPYJaJfzZ2mEa6csWrGliIR56uSzJ0yCZopYjr1pWg63X1304g9+vjiFpsb+kwc8iPtPV/HA5IslJAWstAf0drcX2I11DzGsWgGNKMVqRiiz+5OQcNX+z+zIT8W4FzVjLeVeZmxPAv9SYaUAE+pOVRnDgIIf6T0D1/eTLF8VmFVMsVmuvkF7f98LhD27DtpwBfOJZHrhQos5wOOSM0+1g03UnoSxB/FK4TPu/UjbfJcQsA1tfrssNNgsRT2tl2iiNbjAznd2a6CobpoTDxGhR7rE0+F+EwzgYJIek0cpWYPNPmfJBikAXxdCTEFnqUsrjjWIeRg7g8jyANiSBIFjU8qxvqNkkosYuLlY4nM12cgb//F4a8zAMPargLeklW0z8MaU8J2FKNFqHpoy/AxVtKscjOnrxetS8i6i5ddlpix0brp1ETdzzcBfhs8HvD4eX5OmXaioDBLWm9+kQyoWt6FnCzFocDqGTcSuabfFvDueHPfusQBUO3biJX3BgwmNSJ9idONGd+ZC9gIESqjx4nK1MEa+hjX3Tg7Tr0tKLEJb4XazVzma7eU1r34+/2kao6jAXR8lz8aaV3lMcvrqQOmyWQuAHQW1R3FCgXuFvpxsGOLJG/BbnjMu56kUJY+XV1aiEN6L59qzbr6P0cYYX0TD/VT4RC3P9E4fjNh5H4c16tZqAC7EICMGHpahdWzSNblr/1hGWbNZNtmJ11EKlpI0o4KYBQ/ie37i2S8Ue7C1pb7lXatymxiaLOTsCy1bVQDfjglMazrnJ2f5GAlAbbzbQuV+qxIJJJElhwG0kzO7Z8YpEoPRLGVvvXS9q8YSSkOgouhqxRp8y7ssOenOSn9tKoDbKdPl6Veb4k5s+Wt6KQH7qEFgJ6qcFOJBC5MsDNnMeh2U9F1GPpRqaTMdCXdOjPfSxm9WmKnyacABc3XzY8anUXymZA==","layer_level":2},{"id":"0caa5971-3daa-41a4-9535-daa6de45e201","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据工具接口","description":"data-utility-api","prompt":"创建FMS系统数据工具接口的详细API文档。重点说明/nextid和/nextcode两个工具接口的使用方法。详细记录/nextid接口的雪花算法ID生成机制,包括单个ID和批量ID生成的参数配置。说明/nextcode接口的业务编码生成规则,包括moduleId模块ID、count数量等参数。提供完整的调用示例,展示如何在业务场景中获取唯一标识和业务编码。说明这些工具接口在数据操作中的应用场景和最佳实践。","parent_id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","order":2,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/snowflake/idgen/IdGenerator.java","gmt_create":"2026-08-23T10:07:51.3910294+08:00","gmt_modified":"2026-08-23T10:29:16.193725+08:00","raw_data":"WikiEncrypted:ifHItXPwxlQbAA/KzCGtvp4ySoTXKs3C+LRdHANgwLCv2y8txe0SzNjb8UFDhmrhMX5790DiNFzw7sa1pPCeg34HVvP337sqdd9jxd3srZ1feLclhwA7JFrT/XtHKspDqBJcKTbai75kOY/6jB6drZQVIvqUdFnpCrdRAmNTbeTnfIKR5cU8xeRiumTssJtNAXtG0K45Q2l08Ul4A4szm1EVwcSYW7SEeymmmSMBMnRsD9wgivvxd/1RydiespdTPcPKEYnquc2xcJfTy55PdvHMtviPE0jNu7i0K6F74oX+w5mKsWdWQQNFMW9Vve8KwN8NAoyXkkn2AeArqk5STg55C93JFZGRg7NT+ENh30O8II7+OK9xsmucaRhJNauPh48MpzSyPJicWcvN9yEwW83X6QxiQ5jtY55aXVjzzSeNhqzh6QV74cazDHzLzddzggHnf8yoncUWpOFRT4sKtJez1ORaQdvzNbNyL2Y08n926ZWXtkNV9rEKw4dOwrVWCdF4TchQfHHK8h+bb5TtZ6rrPAwNmpeGDySA+p2InvqHH0vBSU467343THPPYNtOGgVuCxOiIvrFot10+rQ6Tn50LWuqxl4pUjQ0kAy/cbNReG+vt8GlEaxlRbIqKtQ7T15Jaur/+endpILlfegMBCPIaYkL41SoLuaZxoIqlNDmR9Rz+K8Gv3cuNMpqKJ2VuF8CszrkXLomrMByn6pUJJ7CTN6F5XMWHk1zyd8izDJ8j/dcjlwyClefvyb4nsUzlrNBl3VzeYbHncH5792Wm9qRjf0Ho3HSPcXjm6GUsPO9W4wTk0gkZgIfpOfuQUF2+8VRfq38UdZydUo9heRVR1KTsfvneLRPQwe37W/NTcW5Lu4mO8GD+u5wpFBVsPXpuKjhQNAk8jcGzegRypwGA8qZKcUuqLuz+zjrYrCnWkglTBQNtMu+EV+Z/yZeGPkPw/44lVJbGjKN55Ww3CsfwxQ8r4hFAhcbssIDsWiArawCdNIcjFGra1Tj2uApgaOB3bCjd9fW/HuSFr7ufjmWedjcCrF7FvcpbXJ5VU2FL7ncrxNsDcaJxbQBsRVnJuuUA3HzCyNhadjrPFMm+rByOpeFcPSt7SUpxq/VGHGnofuj0XYXNM8+pOw7VgeK0LAs92NOmy9WOleRY6O48Q/Xg/cehqPIG/Ff5B1/skDj5u9voP+xj0vlCch+f+tY5b2kNAT0teoZGSj+ry6nCusJAn4o5mWjro6rr6N9f52CAKQ=","layer_level":2},{"id":"cde16bb0-c528-4784-b472-ddb9534bd952","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"菜单系统表","description":"menu-system-tables","prompt":"为FMS菜单系统表创建详细文档。详细说明s_menu(菜单表)的层级结构设计,包括目录、页面、数据和外部链接等菜单类型。解释菜单与模块、权限的关联关系,以及菜单路由配置和图标设置。说明菜单树形结构的存储方式和查询优化。描述菜单权限控制机制,包括基于角色的菜单可见性控制。提供菜单配置的SQL示例和前端菜单渲染的数据结构。包含菜单性能优化建议和常见配置场景的处理方案。","parent_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","order":2,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:52.7831924+08:00","gmt_modified":"2026-08-23T10:29:45.839613+08:00","raw_data":"WikiEncrypted:iYMmNnLPAQtj1ttN+zW8NH3p+5VMkE0JVnEdrOnToplLguKw3X3aLX9WDoNLcVpbBJrJWYJdnqu1HTmr/74OH2upYQ/LQCClRaXKSPtjRqRlNCDMVZYKjLBtojyqK8KVolTQEJ9nkx57l99+t7zpl/J2GyqIN2RfcDCnTkVfj9IgK3x+lAw3Iz+TvFC82fun1BrJ4GHKtxTE78rMsVyqRHPIIwo/sbwogqtRg8/vPnUed1qjAeOtgWpk/mN0vbD0+U5V84psF8j5QB8RdYlN2wNZEHq3fKgQdsn9x1GtSwu5g93CAE7o1D/OOTP03BKbYtpjSDSd+EG3aCY7xAgvxlI5c7gXS7qrQgMwW2Wc5K3GCnCYpop7/O4Inb6Sx/oNAN8gSNa7gdZwMQzhCQ4T6YA2YGf34mtb0tSJBsV//+PMxY2tNVBwn1riMl4lMXF22IuH9cbsyOFMcZwOfFYkLYhwaAj8onjrLuemWXy5IfZHQxUlS7cLE/4JyAiI+4ivRmmFXSXT4LKtz6QvBexUSWGv1n7FsfRHXmyxKjzLu0SEy6bsBNpqsZiEqokNAkf+SUuoWqkdXdlvry+dztaQyRvMsH0z3f7RzYEjPhioGlmMav2VMIbf38ge8mUEdRfYGsXT21IzL9DtME0Wx4L/BMtPmSGvF/fDiwpEiOM7hchJ2MoLu8O1S3+htBzeuT2A7CHJCZlZ3Cz+EO1RCGtVP8xCbd4JLXs7+OfGF64WLsqD7xIdyh2Lm3bJssPbFlvZeBNchqDwimHBYY6Y47rT2dgqBrlcXy0IqxQLK7Yj401FdEcOx5Ss+WhRUSdRmxIYqnWIci36WPvXFuf91cVx9lSAWrNsasbmQvJWdItauArVXG+yw8cLIDgcD5nu3Ql9VSEGIREnGYnf6FI3qOUWKiaP2DgMboy4ITd9PJc2ZMrp2DN/mflMEg4Y7NRzcMcB2K/1qu+3dLMKjZgdmF3e9bGExFX6bodPhFK0BbKIvPOWQXR8fYzwqxMWcgJibEekM7C3bxGjswV6ziwxLkz8eqc0VZpxpgKwkkxAj0OoV30z17LQ/flHoH6dw13NoqRmhoKVrXlmOwA05r638JL26h5fzhrrFW+A+rzjvRx2IwIcwfq1vEl2lnGMX+cCnaNGEN4Lpr0UY4gFtPZu99bsIQ==","layer_level":2},{"id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"UI组件库","description":"ui-components","prompt":"创建FMS自定义UI组件库的详细文档。全面介绍基于Vue 3开发的组件系统,包括基础组件(按钮、输入框、表单等)和业务组件(表格、文件管理等)的设计理念和实现方式。详细说明每个组件的API接口、属性配置、事件处理和插槽用法。解释组件的样式系统和主题定制能力,包括CSS变量使用和深色模式支持。提供组件的使用示例和最佳实践,包括响应式设计和无障碍访问支持。说明组件的测试策略和质量保证措施。","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/button/button.vue,fms-vue/src/components/ui/input/input.vue,fms-vue/src/components/ui/form/form.vue,fms-vue/src/components/ui/table/FmsTable.vue","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:09:07.8615012+08:00","raw_data":"WikiEncrypted:olAPfnTddGwpj/UgpBjR2+Msft6uTT20LZDm0DpzpfVjPbU4j/SIxIJaPwxVKUSs14Kz5ne+1eD9SHzYmn/9YUXVwLANxxL/BSOx5eW6xiHgsgzs2/zGguOirR9s2hJPDNrrCya949kOHoyLOZizAQRSzEPfHl01PSMj3lYiyUM5zrjQJSfc1B85UVTjP9gkbmhafjb/hcmEakh8XWr7M6Fnulegrz0gUVTw9xdMpDz5xlpTmIjvv1e3IprHKMTDS3EqZwwy7/qgCz8OiQx1Hl0T8e+fOTj/mMAayLVc6LEo1CuJHMgV6s1owIeFt5gaRd+XmmdR9YtCnrliPDBKMdaLsTOujMCTv2QlraHrpUTBchdHwP9m6wFh+HA69+0tbp4GG7PBKfgr+b8I2cybFazFikJkCmAH+/17tRoIUUKylv+wvDUE/q09em72BnxDw85RDKMC/UGOKEeSyfBk3jpbO/J8TprykfqigjtZ9VnXCcEV3BqIfZFnDShYR+2+GfVHNBnl9t2OE2jRZWDl2Wfqgh3Zy4ZLdsUybt5SWBGUAauAlsKHswdgPd9hf3WtzobR+dD8AG+L1VLuKnA7XxpteOiRbIOhW3gIbRJeQmpIiZx1L4b0zSMZwnX81huuX3O1qCiyFsRk92uzkTduxAm9A97DzHuwRFhq4Tk3UCiCXAE/3dXukJE+eR/Saldi7puuQAF4WRQL+96zkHPdIzz3lg924PyD8H5J+L97zd/uOMqCbeZnW65t55fLEZ6TGTHxx0QLI8LK15++229iSkDMokhJbLC1t7S1qRr4CMZ2l2lNuQObv/Ld5pTXspMa6nua2ntKxE0lsjLAW3C7GwokIH8TOfnsIU2WBn47JsyGyNIHSVLZAyeURbwkqHHt6ieGN+pIeqKaNDEqSaZ/tu+AWzDK+dlrHyeNhTUr9DA4nq2K7l1oL5SGsykzeFYxGto9n2pOeLpTiCf2FiMZaAGIis0YEvkonYarls1RC8MZfC/XQq8k3DfFyjeu4qN5qfD5J4Yvkn+QqMr5JYFKCKWs/bGNqfHk5m5fmG8D6d8sjiRnTwOlpUcrT3AiZkXeqm28GHls50/7eCwfxKxZojOjOLioKp9jE9QloX0b3XrikJRQllfbXB0mj3PCpPi8w6lyIX6i7u0OuFImuYxtOOfMd1PsiuHVivggxShMrMY+0NGesCwd9K3NuUATjQ3II+wh3cNC/TjKeoT4HxMbaU+HhEh31N6zncZeJ62PhOkZd4zYZDE6OZo5phNbT+dwfuhjpk+SzhLBie55dL6lMr4fGEYqXXrfxCcDmMIkrLDb4kELo+7syBcV77qhuC8AcerLLeqA2kUoe5nDoQxKUH6PHmgP36Jqq2j4f5p8MtE="},{"id":"f3b22881-3443-4533-ae47-f51572beb89d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"服务层","description":"service-layer","prompt":"为FMS前端服务层创建详细文档。深入解释HTTP请求封装的实现,包括axios实例配置、请求拦截器和响应拦截器。详细描述api.js中的API接口定义和组织方式,包括模块化设计和接口分组。说明fileService.js中的文件上传下载服务,包括进度跟踪、错误处理和重试机制。解释请求缓存策略和并发控制。提供错误处理统一机制和日志记录方案。包含API版本管理和向后兼容性处理。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/services/http.js,fms-vue/src/services/api.js,fms-vue/src/services/fileService.js","gmt_create":"2026-08-23T10:06:52.0473214+08:00","gmt_modified":"2026-08-23T10:19:45.8685591+08:00","raw_data":"WikiEncrypted:vMsgMax61wW2sTWhXd8DH5MWokJhmuibsTyKEKUwYd06gEjo3wHgcFvoN0ci1jYXg6WMr8dvO5+7jyNX5KnqZyIw7O7E/FuU3NUDR2thtBYR0lkg07viPYPWRRLtBXijhlYrW/7jcxtEu/cHw0CWcwJemIgPC4G82SRW1SjBaDkWDUp+2YzyCE8dW/9DhJYa3k7ieDj/8ezX+tLtZQ3HqJjfPS3GaUdpOKQv8auTi9oYzz+7NqnySKfEymqCIPRX0akRBm3yl7fDR/FlaMCQIAJfjzy2lqXsMoFNPKKo5oZlBVw1ABcHDv78+zrBFGrFUB7/dFyxK+o2wKhh0DYvyzAOVeVdUnR6ayXeY2IY9RMFt/bNs/ijqevUqFSOU1HJwpnXKWsQ9K9tiaTvJLec1YzC4hLz5IqrCUDRDPjm+1x/JYOL92Kzgs9vFbRr406d8vM1PlV4npDPgOEnSLDUZa219OkUymA72tRevvJY6T06k2IiS3GP0dzNFsFPzx1K33xlD3PfgwhI6GH/Zgnm2QpQn4EcFhC9Dm4ItAfENLcJkxcB6s307Loe15Y1/q5pkWmFc09ydR61C/R5hQmX27Dxq99xAffFueYdBusCq752Ljx06oguThB1cSsM/zRZnJQsO5DHwj65OIyRA6K3x9H7KCklIcaXGdKZDs1pr2ZLOattSV2BzdBdNDkliI4GhmQjTx5qsOLKTl2yVqKe71icYVPiycAtIFN+ge1SROAY2ZzNp0QEUdtUyUVNuza45Lm4GwY78lySYx08l2GwEX35YGFZgKXfVX+G8iEycu+xEveo6UCcqqGUGr+ihrEZ3okJKyDMNeMJFuFVR3RkgiP5sbLrkaBn2krlkcLBcWg+0KS9a5wuwzr7LDZ4NOYTwcyvZCdsnyjJ2ERCFxDKre7s/7Tcz5xBEM5l4wK6zR57TqbB/5mTHBoyQkJEZ70foEU1/wOOO48BtwJO1rlGIn3huyxwsX/3KWD7XXjH/+BYi3Udu3gF5grXHo+6GBcfPYuQYFui+fKqPK1UpSM1CJG47BREAa2/AFByA2Mif38Yri12XQyGgR9bvxFJKFdooQ+6DZwffce6kwRyyGtbWpK0KpMHXD/FQ6I29H0Lmvg=","layer_level":1},{"id":"6825aeab-d78b-4de5-b8c6-fcb90f2232af","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"性能优化策略","description":"performance-optimization","prompt":"为FMS表格系统的性能优化策略创建专业的技术文档。详细解释表格的多层性能优化机制,包括虚拟滚动、增量更新、缓存策略和渲染优化。说明ResizeObserver的防抖处理(RESIZE_DEBOUNCE_MS=150ms)和requestAnimationFrame的使用,避免频繁重排重绘。解释编辑状态的惰性加载机制,包括editingActive标志位和shallowRef的使用,减少不必要的组件重建。描述内存管理策略,包括WeakMap存储行编辑状态、及时清理事件监听器和定时器。提供性能监控和调试方法,包括浏览器性能分析工具的使用和常见性能问题的排查方案。","parent_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createCellRenderer.js","gmt_create":"2026-08-23T10:06:52.4239597+08:00","gmt_modified":"2026-08-23T10:19:54.8091739+08:00","raw_data":"WikiEncrypted:9uOBpMbLX4DyZqW4us3Wm3Q7klXxmeD+JMMoGiSO2oNryWBo1gw9kLkawvxQIW9CkTLZdNqC15fZOBqdEeqFCiPX9pR3Bv3b/6UdhYI8jleKy564n++qex79RUNdo5NK457dpHugoYbZ5M31dPq85JNi1Y/cp12FqChZKArTp0cTWdkXOHD3ny5gVIcHPGpofkhNcy3KaLdn6i7EueztH6W3QuDHGqlUMheeKeTOW7H4IYo87YcGhn/b13YG++WDYqFaSVrLTUBrjc4sccH3oXZuA3kY5vsisLD65rRsKF4vunLmwDALBpz++blKyYYWC6eZHtmBajvV1htqbdXYjfgV4gtAR/neHsx2CO41ejAjoaAKzd5SKD2ELelhQpz+zWtlbt50plFIWYa9p6mW86Z7dNJKetsj8TkxYOHuUZY6aZ5QAW5eO87PCc3/+iU+sixr2KkQuinEQnMVCRhKcGctX50wRtL93trGqsBrp2OQaeITKxe5ZeN0Lc8XUujxkxcCReZEUHaA8gy7iczMW3r3iVo13RJ72Ua/m1blisZNEa68uHHMLByJbQz9IdNinKDjjNaSypqYk6c0EQwBrvSrMowbvpAXG5/1RskZugZ7PdgScv37SBvpI+a010gax/GXKmOWc8OLV68l5TvKE59XGb9d5yqP/e/BIRCL7+5HE9NrhDU+A2yDzGt038J0MduSisFqN9+klnZsyIjmyYR0ao1wKpnDhx445bOYObGRNHNwK2YBMfrQ9j+uprqryRUARUx0aOYwU79ERMlQIuyiKQfKM6O/OOgd9B4Bp20DyqkQUHvQNUK7rZzM43RAfQpTeKOua/pmDA5ya/HVGhxjOW0Oa59mPgcAudcjMjVzc4Mrw2qIeiF4uitxaCeQf5wCRzrMyeAJ+A2c9KfQ23cribNYxXMflR2q0ckyFQ4iWd7Csx9v5ccKjJ5FKf9wKypp4uokI6lCFMZR5HkQc+dktJ/EMZq31NC4TdZwTIcq57HTDeg95It1zqWhnvCA1ctKh+0yAc2Upo48DxMBVVbkOPM04yKXsPsry08UIZgd0MM7OPWsFujjjkQELs8B6PnB6GpQaFKRq8t1rYTSykAanrel2rMREG1YBoTymXjWOx81q/q4QDd6b0dTEtAq6QtVZbjfl5VUqTQ1x2f6bR+HLghrvARJZMErEqCight1kJfHxLkSJa6VvEaxvg6Cmcg9VqRZEDY+BwYVYCh4aMcwEsQNioIB8DEXoeacDUcbkRqPQsDJIzzpOtnLbFb7Y/DOcOg8HSWskVh8GyeSqLaIQPTwjZ7ewL9mXcWIPnV1uKdpLWuEOL+X/rpV57jj8svl/jcE4fBq74gazTXX2g3UFmS8oC0OW/BmyBjDaNKDbGfAVvlQVm+FTppjve/oRhIlGWSrnCpUj1qxl7BRt5es+NzQpR95c2pnNIgZ/Srpr5Ultg/HW+EC02lFN2iL6HWA309lPOKVlhmSVATHWF9tlkHD0ZedxOU7SbhKJ6U=","layer_level":1},{"id":"c9a461fb-cfe0-467e-8bba-1d71a40fbf7d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"反馈组件","description":"feedback-components","prompt":"创建FMS反馈组件的详细文档。全面介绍模态框、抽屉、消息提示、通知、气泡卡片、工具提示等用户反馈组件的设计理念。详细说明各组件的触发机制、生命周期管理和状态控制。解释不同反馈场景下的组件选择策略和用户交互设计原则。提供异步操作反馈和错误处理的实现方案。说明组件的动画效果、定位算法和多语言支持。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/modal/modal.vue,fms-vue/src/components/ui/drawer/drawer.vue,fms-vue/src/components/ui/message/message.vue,fms-vue/src/components/ui/notification/notification.vue,fms-vue/src/components/ui/popover/popover.vue,fms-vue/src/components/ui/tooltip/tooltip.vue","gmt_create":"2026-08-23T10:06:52.7661656+08:00","gmt_modified":"2026-08-23T10:20:13.900952+08:00","raw_data":"WikiEncrypted:rXszuFxm7xzNkPsi9X1qnaAA6qCI5ALJ2H/rzSdD+gOfTt2/lKw8ew7e/dhTyrWf+cb5tu/OvWdiTC4l1KYlPEiC/jIz7nmPaNouxBSO7EkoKhrOc3Kw4LEukW0fpYCdTwdIuaZPvej4MEU6OL0R1uTHLBVXz387ZyS+HWuI5OrO7zvRlQcFqV+G5VXrSPZllWBXmueyRyJHxcSOYdGgWkihidRVhc6mpM1CZoNq0iSrz1lhdHEYaSKqxfaEhU4c94rlN2SPVL8D3evM7pQtYCGEEmXhSoYxygVViNTlSDr5ZHPkczRPQ9FSicQwP7U+QPwNXDGCeKd7yKf91LLUL6tIKW9sPJhbC8ATJxE/FPPxVF63n92Mm0e4px0WeFvcjO3DuIi7+asOYZm5vrfb8xsHhfO3rsboMJa6bxPOnVguFR1/kXf7LVwJlRfnNmYFyDIoHmO/JLBA9vml3Dw0hTN43STWXJ9jU8I//FSWkHEtNf16BbbvJrMs8hEEztwrilxlLDnQxeZIFq1UpQXtCiRkAcequZsFaMz/RtfRLUlObZkgk5/gsXymXOzIys2Oi8EjXwZ465Ib+Wr0ihZ5HdppAwkhvBKY+brqNAbZyHm3roN5+rG3d3M8bKtEObYIqj7UO2dahqroD9CCDAK0kK9J5in5eNYGveLvWC+D+6wvh8y3ltk8yuqPqJk0CGK0QgG+kv27isP6y8fwdK7kgJm+wdE0DXNNQp0cGKeDxXmgF8LUKJLmgArMwxnbybPBcQO63BNcio7YBxzX92Bq0pGQDsGzPNoxVH0BVM44NLw2joezYsZ/CDq8EjwIWjhOvV9cGI/n39ImVkkQNPlmSKaj5LoVWTvues2yYrJ8QU1mrGgpcj9K0Ya2PibLT0cr/t6wi7tOylyZbflGx4xsrwWpMSfEWqptoyPuOGoxvhT0fWDcD9rkVLo0u3xCsWo5/hiOhOABZ7BAFX2XO7KCMKQCXocI+RVdhqs5mWg+iOwnFJmjL+XSL5Ilw/I/pZXhjvmr8nUBAMsvolhQ52mmsRPwi/E1pU4bkEiGny71kMo3lzIELwjvSPWKAUWOFTv9oAAytLcAx2BZ5sfyPxVx3toCnStPf5mw3ne4ORtX0DyUjj1nzHPockEVS1EoBLKtbml5zj+S3sjDnoV05Za0qLWXwq4XE21AZCqfEqdHzNXQUWzwQkeBMPtI/HTOjw8n6rEVYEw06NJpbXkPvFzo1l+8a2Xb5ZadKp6ju0OrD77gqnmydth5hthZttTpFgVe1aKfyoG/22UzkohBKKVwrMXAGqHuLi04QT4RQUZy+K3nBIzthCQJ0n8WYiEH6VT9uKy1CJT8EvsE9dICT1hVyf0RvaDsjIcnaoyyqmHSBVkoUxUThb74A4sVhORg1rprfEfyqPH4O1Voyx9jNyiwJw==","layer_level":1},{"id":"d9a27580-938f-41b7-9fd9-3fd167e65910","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"会话管理","description":"session-management","prompt":"为FMS系统的会话管理创建详细的技术文档。深入解释ActiveSessionRegistry的设计模式和实现原理,包括会话注册、状态监控、过期清理机制。详细说明多设备登录控制策略,包括同账号多设备限制、会话冲突检测、强制下线处理。描述会话数据的存储结构和内存管理策略。解释会话与JWT令牌的关联机制,包括令牌绑定、同步更新、失效处理。提供会话监控和管理接口的使用说明。包含会话安全最佳实践和性能优化建议。","parent_id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","order":3,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/ActiveSessionRegistry.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java","gmt_create":"2026-08-23T10:07:03.4709773+08:00","gmt_modified":"2026-08-23T10:20:30.4396236+08:00","raw_data":"WikiEncrypted:0Uk4p/ZIoJw1paXZ+Fb51ur9+BiJ0NP0cT7pD4QVBe+7MMhlz5M7a/p3drxSwSHvY8dFGDqDL1NRl4IgWhD1zSrtKWoCSg/iESffFGB5eianh2yJQd6kKJT9Leqt7qXJIw4JJVU5iYBAAhuXLlweo/iEt0ke+5AsySDCCJaincZgrs6nxQcFmBWEACwoOcHGFdoimwOEUz3db0QKfJsebz4t9Fj1R/i7OQotRuQMxsxBsy4EcnIi/QDhLXttVyUPmGAooJzGQJWfdonpRm8pK3pnfC8KIRBV2Q/3S6bcilYksm5kem4DQxYguwQ5ecjCaQx0WgIep6FnFVG8ekntl3y6tgO2JayqI2qoNORzynkTCGfWcaqmjsN4dnPArFf95Ak32aVWPQtKAmottTJtHqAay7tx4r9GROUZ3427a6cEJ5/pf/leKELk/MgphlVojnwIoVpcAhzioaI1wY48EwZYGBqxHLMAGqlxWHYo3hBH9W7D6P/X9EmMiRVBTs++grvj23gOkPbZ3IacmU74qqi0hm5WVrCLKkH+RYMRLtchnSM/TNLJc2xtEWsEDU9qRbfhBjQeM/838KrI7N47T97WlC13+GTNvy9OYH9JqcEpmbcUeGL0Daw7V4k+eJNgNSgpskNwz9/BB5vdKBk6LwwJOl0oBNdpd+I/qlFkUIebyZ4RxFLMY88ArrjJIPLzIkXLaabZqTOk2E3X3nKB8AVz32Q8NDesFWDxeZK0UjjguIAXSFTKepS85Dpdpi9WE0cwcZ5Qa3SCkck44DkWLDKSrX5BQaE5ndZe+Jl83PBH2WNPwSG31RUmMor5QgSwWAyuUbdo1X+3XVsmFoS6lvaU+jXtXaXMNjP6SgL1wlnqfPi/8DHOtr5AdroeZ8iaNcfeP+00GWdNiKK0Xk3uBDbgLctkq2P6tCFEGINHYtvp1reui1pr/Lq1JP/XNTi5tgXqPAzXWdurXe7RxW1iOKuHl52EIxOOo5x4F/zZofikQhMMCLPxq0cpoWkuVYXBJSgsXeC5e85ZvhT/PV3VgtjYTDczvDK0WlmplHlaqa+tNP3T7yd5fo5UZYtvG3oexHCKiU3pZ1TFcKI4IYMKm/AcoB9aFi+hYQZKj7oW38bNPd0YzGbpboqEl0rEN9vZhHvUjjEOMPccnAuJcea9iAjOvex8hWMb4JzYkZ0aM+gKkpymjAEwe2AYaCuOZJWAZQWXp3OU9bOfKhY9gvE0D0KNqOWP7R/i3Q9Imv9Ia2h2MHXnvkticpF+2WcVGpv5aTVdGbnpTs04zI9fM8+NLelhtP8L0NsNDFZtXyGTEN0fvjMZebUUcqCatAHqlKZnZe9s7k32DGCQXlJBC8Fxx98AYmyKkGNc8HIOCl0MMDM=","layer_level":1},{"id":"1efc7abb-3ae2-4234-81ef-359d0b05589e","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"文件预览功能","description":"file-preview","prompt":"创建FMS文件预览功能的详细文档。深入介绍FilePreviewPanel组件的多格式文件预览实现,包括图片、PDF、Office文档(Word、Excel、PowerPoint)、文本文件等格式的在线预览方案。说明fileVisual.js工具函数在文件类型识别和预览渲染中的作用。解释不同文件类型的预览技术选型,包括Canvas渲染、iframe嵌入、第三方库集成等方式。描述预览性能优化策略,包括大文件分块加载、内存管理和缓存机制。提供自定义预览扩展的开发指南,包括新文件类型的支持方法和预览样式的定制方法。包含预览安全的考虑因素,如XSS防护和文件大小限制。","parent_id":"32372749-256d-4739-86ac-7f74eaef22b9","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-file/FilePreviewPanel.vue,fms-vue/src/components/fms-file/fileVisual.js,fms-api/src/main/java/cn/g3soft/fmsapi/controller/FileController.java","gmt_create":"2026-08-23T10:07:04.0853633+08:00","gmt_modified":"2026-08-23T10:20:38.385267+08:00","raw_data":"WikiEncrypted:dxMhctgo/8krDJJIGvp5je7pnWhEGjPpcmzQzTYORNoKP4INrGv21UhoVbMZvqFjr785jvAkji9lFDmh8UbO5dvuIycr10htLyHrpLxbdvBQN8ReULZ2dS80kXvlLXAmphO0s9Q6Ke5CxmpQFjLNv4dI3yi5WDe6l9CRt0UC/myq/96wrErYX1GZJqSx6mDfeZcn2ykb8/7L2NZTEqboEHCAkVVKyipjcA3IbCHTQMAcFkzlSrJ5NFpyg+Ym9l0a7Fkkx6t8N9sdrapyOHv8JOt+BSuwj/aaNfEjKjaoV15gP9NnExHVPBAIUJ2gGLpcHvh1aLxHx0fQur3a3v9nk/MdTN9YXl4qOkAWbIRj7KRHo+GX3saLhgNPK+Z0a98p5rtf9niOPFwbUwnzN+72CyfpMBIAK2IVP7w40Hh3V5GgnsfssBxAayG9cx41s4WsHmQ6NFYjUDlPDRvOKbKH4oPnUhs7eUrFlfy/dlOOjYF0pH4GjDeZ5RUkDfMr1DnP+Puil3kok0GkxRyfHLnYDUz8KG0ga97c+Wy73SPky9p979RhdXL3otXN/N9uF25oSHQsDcJzgcsbvvQMmUKYeoIyoX5kI843RRfkcRMwgxD0pyWBJhHBTehCnkLao67zIm/CAD5R+6jX4Jeu78EX2I8rpr6aoztlNA2B81J+R3SXXeivHF3aGFUJiHJyHBAurHfBK+cWcbMpBcUJYa+pltzqKC8U2YHz9xCHSkYWa2lT6Ax6lCIO63kGEmt1+QGoIqspcwXK5js66zXm6VZYwAF6pv8igBsCU2mRvoeBERWi50+8pKdN2wVs9USjGf1elWiU5J7hvpg/csa9RjAN+tpqueCFfYOc7qj2GG96w4A8Bo1ud7K+KY5jr7U+VjoIxiuXR5CeWKHGDG/Mbh//7IOj2AoESJ1vCBdncQsmrs2I/FYq0fQQJZKagUy8b47g2LGbKuXmSSV3OgOGfYs4yeXAlo/sFmSm1QoHYQDAO8DVw3v6Bxud7vWwFDSdaDna3NTdSKnBuT60Dlk4EkD+0EJpdwjSaivi1bDlCVRw4Z94fxub2ukFne3Dd6b3PwrGZkApaO4Zc3aNHlm+iTCJWXvG6rn95aRoHMQQRnLvCdp6T+g/B5RNsq1vbo9ncetjNXBLzXHZk6+ZKr7H/WHuZZwBPUpNaCGDu5Zq1L1JguQJDV8tTFkYfEkn/4UeRkzbXVWO+mAQoPg1xZh/xyfuNUzJ3zOGIP5lqpiysnQEZqx13HjSGUEKVxDU7gc1AU7IYlq3gS78FVtykkO3/eGhgaQlhxBRmrrxXQgxRLXIWf+HpAr/EwnbCfA8v8ExPVjDtwTZX+FfixmsRwgjelu1NNcDLuQYAQ00D26aPvbeP63nsmsWg+nEgkxzejJYwc0+/Rnm+awZ7phHeQqHI91g2KVT1ceZfVKSIxz8izCmft1FIe7ggQpOcnajYZS1dI5W2VmZGyA4Nz1lrLI5uaytmTnao1jHvTORdER44q3/ubomk0Sp9N1dp4B55Gj7qhg/FrO8Kelc5WvKK0V0jKv7rv/QBUr56zzFzMAnrmggBDbSmapMd5P4yFfbfeRQLgBa","layer_level":1},{"id":"602622c8-d8e2-4a38-b9b9-5c7b9404c180","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"安全认证","description":"security-authentication","prompt":"创建FMS安全认证系统的详细文档。深入解释JWT令牌认证机制的实现,包括JwtAuthFilter过滤器的工作流程、令牌生成验证和会话管理。详细说明AuthProperties配置类的作用和安全参数的配置方式。描述JwtUtils工具类的核心功能,包括令牌解析、用户信息提取和权限验证。解释认证流程的安全考虑,包括令牌过期处理、刷新机制和防重放攻击。提供安全配置的最佳实践和常见安全问题的防护方案。","parent_id":"803cf389-2e38-40a5-bd14-57d653cea595","order":3,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java,fms-api/src/main/java/cn/g3soft/fmsapi/config/AuthProperties.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/JwtUtils.java","gmt_create":"2026-08-23T10:07:04.4237284+08:00","gmt_modified":"2026-08-23T10:20:47.2190985+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9Mk/tgZa+YOp1TLj7nBGN8X3rXbT3R4NY3VLWHMIkw3kDh+t/3eaiU6IgsV1MmxOAitP0vBKwZAcSIQ6ZgQeHfmBIvGxdpNqsZN2iTC05A4eaOyOyT4hEI+S5XY7bvtLH/zsPbIYcrj3iSUD0gAPmnDHSGqZLg/VarLy1h4VI0HaSKQBU4SyQz/AQvQ9aMFMXQVlFydJFs1G027BIyKokXU3DQi1oE5KFBw1D+EUtIH/Emdvr9fb0PZmtRNVVB3KqrTFadIW4wAWcwC6Qg9Vc7PF8Jel7rRhnB5dhIszWySpUwA5lDPdXJl6r0ssXCNA8vAyUmq6iUI5QA4ojAkbStB3bvS16eFvFgQvfQMAaN+UQr2SwhoN4uXgBkODJ+qxxzVCoS53KQqCzTmenYdyJTnL1UUnsGPEZZxbPH1bh96ii3QzMSte4FTdDsdY8pWZ2wRI0QeUjNdeAnItlckz6gEAkB2x6wuvKLTD/MiZ9HOZfHKJn1yrqVIuMVXWlygAOOu6tT3sJiPr5SIJ1MgazwD9Oaoq7OqfFkID+y4O2WAd1diJRLF+IC3U5/KEt1HD+lksIloZIBsGUGy8vgqTXGxxQnDEfSFDBQMWmSuzFVhz24UkCDUQji97maE4+YSld86J60FMc6nJmnDwjXuqENz31vnXuWHU9roEQ9zPCV50eVhghcMUGhPHRbki13T2rjKZi2uuRCo8Ul5bkZHEyrbeem5BosDCcJb0dK0dRRgz1pJU3r4+fBXL9crWXLPPk/h91aO2kYevpZmAtcBJEL90qOnia22AenzPcTht5B1YTXfSB1+/hyrZaGJ0+HNlVvmrPPS+wSpG90Tm11C14RstFpHNZIQLZIkDLQd1RsPhO2GxjU33zWu8tpW3Aa8YawiGVsy99LQX1c+XCfSTfe571mFMQkQqPslPerGf+ihJQWS4/AoqPRhwNzBJHZXyI5hfDg7zDsU5cHp+VfvvqK8ERYHNA902c/nHJown/JR3/J7vj96x7Yk7KbpuawPfJWJGhZBJvn9VVTkc2NPw5gslByPUWroyCYl4Uj8noMlQgE/mkCfYQoFP88B9YOuu7YFX2muign+dgazan2c8bFwJq+nq2MbDjvJdoNLDSzG+un+8GUbvvrKQaFNqBlve9VFmRXwic52m4G+p5Ca7wgUFjYzvzW2xfc674EKZZI2KKUNralcWBy1iHGr8bKxoXdQCJKeISclEOGZIIW/WW2gWQw/QCuXraqNQ7y+qWZQrjrWZ6JiCx22oDOelE7JcQFG3MZSVQ8Z9s7mu8/aS7DEBGrV4uN40M+TaLuwzF9qknx","layer_level":1},{"id":"d283d56b-1592-4600-a55e-5a581b02ca52","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"多租户设计","description":"multi-tenant-design","prompt":"为FMS多租户数据隔离设计创建专业文档。详细解释基于orgId的多租户架构实现,包括数据源路由、上下文管理和查询过滤机制。说明OrgRoutingDataSource的动态数据源切换原理,如何根据当前租户上下文选择正确的数据库连接。描述OrgContext的线程安全实现和租户信息传递机制。解释多租户环境下的权限控制、数据访问安全和性能优化策略。包含租户配置管理、数据备份恢复和监控告警方案。提供多租户应用的开发指南和最佳实践。","parent_id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","order":3,"progress_status":"completed","dependent_files":"fms-api/config/dbconfigs/G3HD.properties,fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgRoutingDataSource.java,fms-api/src/main/java/cn/g3soft/fmsapi/database/OrgContext.java","gmt_create":"2026-08-23T10:07:15.6787476+08:00","gmt_modified":"2026-08-23T10:21:10.0273645+08:00","raw_data":"WikiEncrypted:Zt230nV3k3ww0eU+N8tTkteBtZK8utKglN3j6NUrljyxUChlAjCmiu0/0PbGNuYk1De99F0ZnVbHdcV0+S/qAIg58nyqaGLwGy+IJXynsIQR+KgRoWb+At0tDCSRH6YMiHSRKLMx1EnPU/b1mWODGLFQzSAQbAIJ3JEAxv2wPpxyCRrI6ICQjyrrMAcmXnskhSAM2EQzpJGel8AXI5m0q7zMWMXLnRoNDRwUTBDo373qdcRXZ009Eve0NsQHve5y90uqKs2HviWyrRFLDAiAIJrWGQvaERgrrDBcKCnfYFPPQ+piyV0efTYjYMxx59oDFuAI7lFuUImCDn+d/26fVZRjg7ANXZRtDr0IHo5cKS36AgnHoHeOTlFtABXFO8KeyBYgnq2A43tgW5VURgACVpk0cyuhmMVMIiHeHBRcbbT+psxE9b+kpXgs+pqFmqFcoaz+eAkKPV1769En9l5KeC8DSI9urnwCVz+HKLn2meAO64QrM+O0KK0RNPW6tE7hqZ0armezO1veROGzVpum2OOSrFKaD/esChdmQDkGBD0tjl5zqJRaOLgqxglY4PuM2lrZSSCcSt+EyYdN3m58xjunGJZnZ9lktSZirGgaFOE4MgHlNTLH+9Ubs5Nn45PjHRK/l1EYKj5Mev+No9cWjP1qiZwlFHU8npqTD54pWY4sGsJo9Y1B/kcLngtDSFFy69iULhwO+8DSoLW5cDVWBt8iE0Y662WpvTN/jpv29+h7lbLTykg2qcJ7fMZAGucgLiio8L3WnTlnfXv/W2eeGk1B6SZ8MaHmBC5jZDZ1ltjROsgNgM35BB5e3JsjB/Gzoz2QHiNSuwbk3TLatQ+CVFKXk+h4FVYPYQbYIBMnL37ZKZGzCmrpFFII0zivwE+KtZGOWh0umv3tiRADvNsJcbXewEKludNpBj6Gj+XUdt1U/wdpLIApCih4779cn8m+49a7NIb29UdF3FAR9wznP+BZH9G21oxyBHypjlIIYCz1hyFLhIhE+Nwt9JFyQHlCCJz27+H8C8QsgkEFRwTUGMwApr/JcC1a3qZ23jU9RLJHCba9jDF+4fCI9Tq0vxXWuz5WwBdgVAyyFDpRiT/3vLvHUqDmpBfrT9wurt4p5ndF8/f2C7ZohJ7/FgCtl+ybVVmDfFG+IkZNLb48h6sBWz3jRuzY0/ozolzCoPrklfTLx3BEev4BZ+3s+nnYbOWpgdBRlUMoS5cJU08ERyc39VoRcjJGCe3sC4XpQwD0zn1TKDfyQD/BaVgh7TuHUa7Pezi5Jlezn5UJqc+8CdUmq6G+AxT3auHw3moXuWCdB3ZM64ahIl7Wx54LpRawoeOXK9R7gfctCNxz5gL7iEP4/NLwxbIbu5H+TcxBLx0N9u0tPp8FwS+7pbclBLiTqW/G/v4f4lu3i3SB0PGMkxz2frZ57ZFegAUKT9oQ9TJzbm4qgZZo9PVpf7QLmZ6aUHeF","layer_level":1},{"id":"3eb26c24-b432-46fc-8486-5f9035e0e0a0","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"栅格布局系统","description":"grid-layout","prompt":"创建FMS栅格布局系统的详细文档。全面介绍Row和Col组件的网格系统设计、响应式断点和布局算法。详细说明12列网格系统的实现原理、间距控制和对齐方式配置。解释响应式设计在不同屏幕尺寸下的自适应行为和媒体查询应用。提供表单布局、卡片排列、仪表盘界面等多种布局场景的实战示例。说明嵌套栅格、偏移控制、顺序调整等高级布局技巧。包含Flexbox集成、垂直居中、等高列等现代CSS特性的应用方案。","parent_id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/grid/row.vue,fms-vue/src/components/ui/grid/col.vue,fms-vue/src/components/ui/grid/index.scss","gmt_create":"2026-08-23T10:07:32.4807842+08:00","gmt_modified":"2026-08-23T10:29:53.4286434+08:00","raw_data":"WikiEncrypted:B1AjRj+kKwC26yrPiMnwRy+FKYzVQ3xcIV8RK9jvF1zHePeqptFwJRauIJSFGQfxk0d7f8zfjR9UvVwIkXCpKKw7CZP97i991ICVWcZLEKg1XbhuTMrKQbVJXAjUn7Dw3iLINQ7hhOyuxYw8XpVeQNjArbKsqX1nEWxVRoL4rZL5O4CLnHLxHgWaKi63dJZCfF92pGAbAqns2jens1sRv2NQsYngUaMOKgosvStEL3mFW8YfSCHoWMAUdKHjmwdWQnNHPYLfbK5ll2hBL7fkguMV6FiaqlaNOsVbL310lWzWTMLFInrnjN9gx/lFbipYKfVBnYIr5267XgWzvyH/flUhI9SmxAYu0+UAx4BNAbFYbb4PBptJ4yaXeV7U+R8f+krMCKvj23U9qSmNrU7RDkhw8NIDNhGF3mRg4lW+rmwNr+lv9vD8dDAUhy+a3wlwDSxoMvbqM0I0IhPd55K7nzYRoRRKYKL5FQwPXVX3AYQLL5F8Hwa35YjhJe5fQe4xWW9QgAhDoYtGQM5be8b7bHQgTdqWJ5+WphuV3/MCmSIrHKh6H2IB92LBEz3e6UNFVGrJ9AMbTlR1zXHsXx4LZ2plbuHjfCEdlxUlc3H91zp+P+dgUYtC6gjsyiHpubRM+WCJJU7feFllYOsy2bK7fPLqIK1GIwYpHii+/Oi7QyM2mM4hSEIdyHslPcZ4eerdxHfYAIuLpo1aPj7xbE/+t3Nq1L4ySIQ4Ij+m+xFYArFd3gy5JPyOX8QADqLDkTiTkFz5CTx/HkueF9IlHW65FxBRKbmDF0a9/Ix6794qWZs2EFdS4xNfd4kLHetKv1lJhDRLv1FErWGVyB1Ghqs+kO8yAQPbAdVnYjCdlP97JEKhqsgeq6feZLIfYD26R2scIrx7nxwp5/w8w/44ME7wRcbhfCZAmOOYNa9WTCIUPYp+IdBW43vZTKQahqjuHBwqnedkMnEJfGiZmznDh9P2q/ZL2YIdHgaMR81CYRKHyNofd2sHcFHo45jJFxzMX4VCh4fWY2bz6rcTG7NHWQd2yk5ZiU4gN+fjr4UYSGnkXJy9ggi+1UXskS2zz8UH+FcqVX29ipMZ4E82S3SXEZc9GvG3nz+ozHnbEWRJjwSXfMzBa6V0WAJutKlQja3DbC+12m/sNUSg0G0nHfXDEgY8x0+DtzR92xpN7Xh+TQyB6PI6t77ZHfDsWVaw1fPuD5akz+b1W1kHwuZvUCQhyc+qVgQX79t8T/BzSdmHKymgIJYGkn9Wi/TeMe8LWmloHCxaOmnco6kME2N1tfCIacL4fjU8RvIbGPztr1nIvBdHjms=","layer_level":2},{"id":"636c2b0b-dab5-48e5-80fa-8b85a2c041f1","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"权限状态管理","description":"permission-state-management","prompt":"为FMS系统的权限状态管理创建详细的技术文档。深入解释Pinia store的设计模式,包括模块化组织、状态持久化、跨组件共享。详细说明权限数据的存储结构,包括用户信息、角色权限、功能权限的组织方式。描述权限状态的更新机制,包括登录成功后的权限加载、权限变更的实时同步、离线状态的处理。解释权限缓存策略,包括本地存储、内存缓存、失效机制。提供权限状态管理的最佳实践,包括状态初始化、错误处理、性能优化。包含权限相关的调试工具和测试方法。","parent_id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","order":3,"progress_status":"completed","dependent_files":"fms-vue/src/stores/auth.js,fms-vue/src/stores/permissions.js","gmt_create":"2026-08-23T10:07:41.2749388+08:00","gmt_modified":"2026-08-23T10:30:04.140035+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoFOLC36k/bmzcvsyzQ5lOKjGa//FSI1i2kzkOAxrzQuhgFq5TnwnbyCjNe/IvO8Yfb0zWWSd9TmG5gyoRC7rWOLLsQTUkJD4T3fNppsDQzOXeXzRkvmlFbNfNm0EooEX2mv8E3g/abnQA2hDVYc5K9gSXQlwYqRDWC+DJoTd6mwLM8QJ1lbUjfiHvgI2ZLZOUykNMj847tlQuF+7KO7hzldfOECzc3X+/pBn9BcfbZOUX1NQybrVLwqfUo0Tm3IaSKoApZjSkG8N0qyoww5NG14Vt7VLACqVgDjB+oRUwaDW7tA+4r9nyolOI+6xYF49h6qkp/4pXULtESic2j+rUl3BCn+JxZo4rmUFsLEI0tq5AeeLCJdIHukznhls3CnlLNUi7NBRtsC6VugmKAGJDlk/vebEf5EzqgO92gxPNq5M7+/ZKnN8B9fFccfeesc1/o7tGHVgeUbyGZ0LAYPXHd9rriB74jc/co/pOAbG6JB9Z6DcAP0KmdVVproE63gwpj8Z2rGwRuMLOIX2AsdixxBLmWhJQ2P/sTrRmyS/WBhYJnnY6nkis3z+EZdPeqOflwfRE1wz7jqBSYxFfwN/m9pC9tbLSTn/lxTCNQ4d7z4xd2R1G8FNegI3LhVSO1mqTxC1XNGJxxscn/nzzFP8Mb3UxbIFu0s6HLuU9lYuV0KcYZTeOExKsCCQgQ1KaxDOEUwdEM3SDHAHK03T6Z47SUwzUTqHytMRZMvyHtI08cfc9ktocd4bCc5yd/Er5ZBiUJ5xPakB2NHlJKCK6Sq8qvsLvRbJuTeOMHdScy6AS2RHrmO6OGYrbry10VbwSJk2gGzMm5RLaRxcqA4Jf9ApAl1/DNa6Pz8EM3pxN+gbCusNYXJHEJHRlwrspJN803W4jnKB5/GJaprleSVJ35fqqKEo94zCa+fIPWatbfH8hOTLJvbT2rSteSAu5u/ZX669fXZ/JEfBFZnVtVOJM45SnN7BWFUrr9k/Z4wjyFh3faRBWfrD1+v0sr45WwHAoib0dZzcwOTnflaf5MAN27OhqeFKojcHQSP8U0rmUStFVtQMR4XCvgNXZkwrnEhZYufoKBpnvwwbuI1g69zbglDMgVN2glu8/Qm0TWUs/WKxvYc1uWpfk0bjtfJUug2J5DBbcibopUZ4oNVDOtPA2onBQntg/c08w14MOzjC67GyRMmFFUnUh8hLLpnvV8b2Tu4qhI+YQarhhjw5FutmXykJj6fLUzV4sQ6pyThRKuE/LJQgNzJ8LMcn/HFudvYZbzRP0w==","layer_level":2},{"id":"82b26053-f107-4af2-92fd-91793f59cd32","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据服务","description":"data-service","prompt":"创建数据服务的详细文档。全面说明DataService和DataSaveService的数据操作功能,包括CRUD操作、批量数据处理、事务管理。详细描述元数据驱动的数据模型、动态SQL生成和查询优化。解释数据验证规则、业务逻辑封装和异常处理机制。说明多租户数据隔离、数据权限控制和缓存策略。提供数据操作的API使用示例,包括复杂查询、数据导入导出和性能调优建议。","parent_id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","order":3,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/DataService.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java,fms-api/src/main/java/cn/g3soft/fmsapi/utils/DbUtils.java","gmt_create":"2026-08-23T10:07:41.4920399+08:00","gmt_modified":"2026-08-23T10:30:45.0789999+08:00","raw_data":"WikiEncrypted:yP6vl3GzzNMVOI7+ToNUFdMV+dZs/x5Z3K6Ap5R+778izIxAmQGO5X2Dvcuu0JpbrDxnx2oxMZMsYgFmU1YB5NN6M6wTxEQPXoTnkwqOvDETiCm4+qJgO60KTRaxPWISrCOPQqzQ7i8ukhW+Vr3eXOfFaNFp7FUc2iqbuTDtUw9l+k6mwMIoR95x9bZS6xLni+etyKza3RLbkciz2YF8rGZKIM1BFDJRGfNjxO/VlH77Lo9zXcEenoY7zMKLJLPMPj0MdFTgilgqYlmILpsGkx5sGf8UtMhikui/XDXkgrOdySqqkifqe28Njm0i5/eE7NJ0/0ucWjclxEjO9PAc8CEjcfOC7VjEZwMujT3UG1h6jjIqqYzl7j565D0zTKZjsSZrGB5zxFpZwR6MCOI8xXNDlTeoURAZKzK7T8d7ppiUuFFo/+HdIq/kYkvAE/EVKE6ep0rKUmN17wTSeMuX2m4WpzY+tNu4bRz7Kc5LaE5PrlqbKy14GdEpVIoCxPlV1XmOZeBUGRYsa/X2bcJhOvfmPdLMevbfBsATulih+SDmxjzPUFjHzjsOpLTM14Kz173aQwheJga9leHk2CxB8tLzX9PKpH7XxhfyYppFuYnheZV5/NuSgPwJBJ4MidNtwdPanhvS1lRR2LL4YQySHB4DRyuTaPOvriWmYgzatdk0GdpqaPzO3XWVCKetP+JtL3rtgQ9+6MDbZ1139YutK/iZwx8sX63lyAk0S0GCJ/dpOiVlHIJDhv6roVlC2T2/SCQyP3rqIjcobSSpaU2XB6+/32G8H3Vq8SX+fBvE4HrhgRgl1OzZ/C8u9LhxrF1lD7j/d2IYmK9ayj+VfGg7G9/zuF7n3fGD3Nz0pJngs9HMFjCrxW+inPKbvnTdcEcRq8PUbeytTQnEapLwMsMs17SLs+getSbnaE7+p1dyYA0I5mroifFM21uEDDyc0iNViaOfRqtUc1fJtlLols1yEQ9btwc1o3Llelpg/igUitzD+J30BTQoDFmjxxUl7bDeCSDW+Ytuh+vtVl2su9GCqrtWziVx7Df3xh2SLalGJNeuAK7O8O/9iDQk6IdHSF+4cm1mKhChV2H8K9HBxzVTEwB9EqTLWupPFhud7U7R5d1jiV9OQBGkrcKZxlGsq8cMOrPNHfNvSDKTE2l5UcA45I+Kk7I0kOcQpcbXAS2XXR/muvSwsSDy06vbC/K2UWnraUUB8HyaO6s4nfwZUGgE1BcKileZy231pVlIhbQQ5L01wDPfiMTvtG9gRFAEclHT","layer_level":2},{"id":"2800e1ea-7e36-4470-89de-342bc041cd8c","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据持久化服务","description":"data-persistence","prompt":"创建数据持久化服务的综合技术文档。详细解释DataSaveService的业务逻辑封装,包括数据验证、批量操作、事务管理和错误处理机制。描述DataService提供的通用数据操作方法,包括查询、更新、删除和批量处理。说明数据一致性保证机制,包括乐观锁、悲观锁和并发控制策略。解释异常处理体系,包括BusinessException的使用和全局异常处理器。提供数据操作的性能优化策略,包括批量操作、分页查询和缓存机制。包含具体的API调用示例和最佳实践指南。","parent_id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","order":3,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataService.java,fms-api/src/main/java/cn/g3soft/fmsapi/exception/BusinessException.java","gmt_create":"2026-08-23T10:07:41.652187+08:00","gmt_modified":"2026-08-23T10:30:40.1724037+08:00","raw_data":"WikiEncrypted:YZI97ep9QXDPfRNDXs4+JDwEWdSY/dV0hMepF2cbAOzT2OXfSJtit95pbd06rK4O/Eo0Puy7NQiBM7pO7tq6tIfteFy8xq0AzQekLHuXWJTWqPsgIOXwFqXLfUWwrnJZXU+6AI1pqqyrGkcEZMqqea+DJk0NATPrdQplDcJWFNBUni82tEheAKskYOw/2TiuMsHQ9POTF8zbalv7Fa1PCqqPg64B+3VHMSJzK6FBq3MBtTNbWehiPJMAjbVtI4D/yITvs7gmrHqMU/8ZS/b5W+req+Rzm7gPhTzJGcw0D/NZBkVss05fCic2AmsmgZjHsAbVksGh1XdteJvNKws2cfSfUwOWcSTca96UE/ULUfvM/0WpvOj8VeoVrID9WAL6a44tlDPiOngfAnUYk6TkSKrwpL3hJMWmS5mIRu3O1O++BaBY97RQdLHzdrPsmRXpdCTIV2YQ1cdoDmBHbN6Ef4lQRuCLgb2+v7o1LuhynWbCTpVKsXUXkBVaG8XhQT+5LA5dvZH9BUgKk6JZnWZEfLMGS2xzVq2BDyDJDpnNCi+QpWD+8+BwucaHluz9ZzTq6VHZcZb0Dz8E7lVPhoku0K+2aXYpMQEYemQ8WIs5WDABmzC/N066MPNix9THQqjnOL1ik7igXyQIChJZiqkvBe/qAxWGMksCuncs5MYEkDWSOL4hujpt/y69FzrXx2+WG3VnX7OSzXwxsjuBcQOBbJS0TEdfeTPnlmItTv2KkWu7QuTqhwf0CeQQbhyhHHGQ62ojP1805d1IEw/zoCkGnSShvgFuBKzt2f8pOJ5gS0L3vUgsMXAZVFnE7VFtyqmnxBDBQHNSLiPIOsyLqy8lBZnBEasHfKd4cjs0LH96Qnkc1XZ4vBwtMUN0NLv5iY5PBaG7t2TXLMCYl/RIbYkXH+7t15okbb+ELDi2zCdgpIu8W87ySMvg5dEUqYqHnJKlg5vBjche5yvED6TSE3iVMUKvQE6N6/3uRQAno5uaop6Dcitp0XtVEKiRg90VcMn+Mz4JVsm958eO4512N/SRbw3LYIrfmEcBLo8OPgM+dtvxWDCSMKNWI3P7VjFZv70OOLfKb/j1DccoCfyP6YLNlpEPQa8ZjydSEI6aBANif1HlQuixYLzHmTRdtUixmAeLkSnyYNLs9eq3mgXE9K94lGcLTDbTBJE7BOkgLOY+7tiU0AVYG5yY51UcKxKh8wEX7lUD8hXXcm9Wi+oGWNl9py3MRrGbmCMDJ9XRr5N6YZV9wBvPZajQ9mn+TkXALm2YAsruf7HMsyfyFGjpeQX4mkpDwllT8u86KvRe17qktdFP7h2aou9LpL7kmI1wU2iqfZK5quGFTapjDssazhPzzJWocB7MVLXNJK3zX2dFEmscl355UBJzseX8UWdTqxZSopKQAL78kP6lGCmgV6q/oZWcLsZG3livt2mD6wycHqL7+0Q5ct5dWXzxcqfYn03D6wWsQ0D43jGQgRtyEhJaBhtqMLLoS4bfKOAPT79KqfA=","layer_level":2},{"id":"38857de6-f4da-467c-bee5-397379339e4f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"元数据接口","description":"data-metadata-api","prompt":"创建FMS系统元数据接口的详细API文档。重点说明/describe接口的表结构描述功能,包括字段信息、数据类型、约束条件等元数据的获取。记录table表名参数的使用方式和返回的数据结构。说明元数据在动态表单和表格生成中的作用。提供完整的调用示例,展示如何根据元数据动态构建前端界面。说明与s_module和s_field表的关联关系,以及如何扩展自定义字段类型。","parent_id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","order":3,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataService.java","gmt_create":"2026-08-23T10:07:51.3910294+08:00","gmt_modified":"2026-08-23T10:31:01.7310236+08:00","raw_data":"WikiEncrypted:klcgW2PbPxJambbKMzvFtzzLWxWVSWSsqU/SAucR0mqzdr5wh6tdEczmCbOXFzkpI8Af2prH9nsCzdMhqNJD2DAX68/TT289hNVzXMoSNXA08WyJwrUEdGYai+go8ATb0l1nYhXsVeNeuGuqHqjvbhvMZxwRpb6oVoOq8j/Jnim5k7fnvFdS835SxCaSd4SGLSBpxI7iGMvlWEYcrjQzzNzklgIM2FO9jwzjew8hzSfsUB9Xq2KzUkuM7N3XZl02crD8/rYMwwdST29lU+UBPBdaWpmOpESA9/I6U0Qs26+RxLRLU4rQnu05lzIHTPe+MVpRzaLdxm76XZM1vXNJrOWYx/OsyAOyj3/OLCGPtA56ZRRkUCUzTSum8vP+2p8WqpcZ3z2akc2FgXiugd0TMPyIfECwEHxcw4IgGctKljqWwABaH1L7fuP5f4wSf6L+KtdToEAhtDovMvRN8xJhNo+C4rJkzYwKhn7lRxngkfx152djM+RrV3gpM8oKHSzy+YY8XHWDqG5QXNS6rpwDaacHH27SZ8U9Lob5YD/GKqb4yR2YbhxbdhrNIbTgE2yD5RehaUMCklg2fY6QbAogmKCMRolWuYzvkrGT8Ruu2J6fyETVlChULekY/VbL0z1f4P2ak/Q6WNuXRyVx0pr4zFf7iLRKPplZRI7IUvWKqbM3Yk3V2FScUHBewMVweeu7HOdF4i18+Vh6ldP6Kvl6lGUWvrlDMgkEWUtZSTkgRcOVNSYuSk6amCg9MouK6wfff4KZY+L7a5m9rlx1Q32vvcjHZR7tQgy5SaoM+/QpRJOeCWKEwj5v8YqscAdNF+4cLp6F1vJd3hqfLUzSxXK2P0mUOu8TM4/TTXIZcgsTShCAJaKAEQaEyDaFHS1aHFswXIemLbS+pqPN2f9sAH/8J+H0Zu49xEwegw2xNMP2jlICquZd7HA1er78RWKPd9ChALoxjC+HnBWNy4M2CkZMpdkbkYiQ1IPB72CEXjAuKaj9t3sVgxoPb51OTb7VoD8EfmcWEjXPEv6dbE5yvuErqvH+CGaiKZscagdi85AoQd0KzwpdZxkyx2rB6erg5wRaxjs9Jd6xk9B2G/p4g/ZIc/y2Xiptv7M6gUwdA/oojGYMskCTWE8cO642V9KUFqwEiCZaYDX90xJmsmpmdu36cUuzyhr4SGHJU6sy89cqWN2z9SGAFok4BIqbauZ0gaO0","layer_level":2},{"id":"594d86fb-e4be-4b62-8752-42f84e11e9ad","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"关系映射表","description":"relation-mapping-tables","prompt":"为FMS实体关系映射表创建详细文档。详细说明s_relation(关系定义表)的设计,支持一对一、一对多、多对一、多对多等多种关系类型。解释关系的拥有者模式、外键侧配置和级联删除策略。说明多对多关系中连接表的配置方式,包括连接模块和字段的映射。描述关系排序、数据验证和业务规则的集成方式。提供复杂业务场景下的关系配置示例,如订单与订单项、产品与分类等典型关系建模。包含关系查询优化和性能调优建议。","parent_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","order":3,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:52.7831924+08:00","gmt_modified":"2026-08-23T10:31:26.1593452+08:00","raw_data":"WikiEncrypted:cNVFSWS+PYTEUvkCsFWSBPBls1Ga23oAAGLqyZkY0OpYrRA+tGRZglk+GA+2tU8YnqtVcrS7HXBKYROVG93nAO4pvavcknlUexDfUkCUv9KMtrbI03LNQpQEvdm/aDmBuwW4WEEgzB9SUj+uh3r7d1O++3MaJK0hK1MPlOk560JnKH4yPlx+zkQ3bmDYgjMMsiaahIYmrW4Bf4mReQbeFvDYqqlNdBtN2pfiTxgoADeRbU/WFg6BchX/jh7AsV9L2L/J+0YaBqherfljkBMd2s0E5hTJpt2Jwktx42mFuGAUTsFplZMGYhNTnzhEz5JHGcmKliAxdN5lZ3cQVB2anZVfrHMkPFrNl0Kuf79oSz0SNH9VP3Dk1QSXbbUxYiZTTHXWkeCe7fVtDg9ZrjM4GVj9/X9AWY0ypfdS5DOo4qKjfGXtxNHhJIsiHf6Cz4oc/GJ69BvO6GSXQFqPT6RbOE5W8bvoHofcTe36V8ZqgZyvLHU4BP1BrX11A6anLGojL1Vhnvybb8GpqZkxzLJ9to2yiocfeeR9EcNvH609dyjOLXlm158LCp2wqpp1IK8j1fZne+cz9tTm6+d09MaTl5OULzw+dYbhTQZTpDbqPh3U/n/ILPUvw1GQBqZ3No4m5T625FmPMCPDReBbWQHrjxXq5fnaR4wDoB7PqRqXKlPWyxdF2d4DIDphRTnTs2Qkb7cYhi9sUHtCf0iaUN+h6tOzf2lVeJzSj07XTnqzOzRW7Rk5c0SgCFJKymFx7lNqmdBykqM5srcMNLgU9rw0w8TJDPhak/z7981Df9r0vZFZUcVCqzcMawlRfLbYbgujhN+KnTLIIG3J77Ll/itvRRrv7SGVbmhNrQLL7lOnojdCa0mojpU4LdDpCRNRkbgVdsceM2cqqXyTDMCCaQVrdZhBPh2opKjgrAnVxX0s4MJkjc/nHwdtlJ2Pl5E5rFlXZp7b1cVjNi9lXnh5m2xvMFaRwAcjO1rwXCK5yeTznW+eGkPPbnVKCes/c8tQhCrA6NFGYK8IH6vUU6h8/L9YZiyUz1QK5Z/HNP5i/pAlOVXOPAO17QRGcC0KLPI4VHuE4+hHLGqg4R1iFX+LcNybdkvYE8+WXePe2m93c3xyL0doQ4Ye9ETH3k2rhKKbnybhxZiA+0hGEsL/MSa6kSn7lW0IVQLawPqcx6QCmescUgMB3GKAUN4YvaPLx9v2+JocpIp0JNsTUtVwlci+th4hPYVqZgHtU5x63Xu4xibZMYY3NxjBb/mNxVxVJsmoisSZsc+xTgendeopRRCMw03Tbw==","layer_level":2},{"id":"25ff4400-3c03-44a2-b46a-c6ae27915347","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"表格系统","description":"table-system","prompt":"为FMS高性能表格系统创建专门的技术文档。深入解释FmsTable组件的实现原理,包括虚拟滚动技术、大数据量渲染优化和内存管理机制。详细说明表格的配置选项,包括列定义、行内编辑、排序筛选、分页等功能。解释单元格渲染器的扩展机制,支持自定义组件和复杂数据类型的显示。描述表格的性能优化策略,包括增量更新、懒加载和缓存机制。提供表格在业务场景中的使用模式和最佳实践,包括与表单、弹窗等组件的集成方案。","order":4,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createCellRenderer.js,fms-vue/src/components/fms-table/utils/createEditableCellRenderer.js","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:09:26.5201434+08:00","raw_data":"WikiEncrypted:TWtD9cYU/QQHU+vD+ojNNtUyqLYli0h8V+U7am+wlC1YZz3e7TcBkYbG0njGOojBW4UKSkNpLcJWlqu6Zn1Sp92qTo1nUcABXL9S4CUTMRtu8WLwG4SPddwmTgJhq96+Np7TcF4UenQUb2y6vGJvBN2fRqzD52fhryAJRgK96qB69vsBwu8nq4jQS51gP9ZF2V9IlRqRyA7UCdnSIAijgihaUn/XFPemtjMwVBD9HtZ7g5XSBvoaheeUMIdsyss0gTrLWNy77h49ySELtcSV+BpRoYM0UwUnuwNB+98GGVOYXwhkvzvY0X+1v1xYFhgK2DwNRltcxMAh6So0n6pMgRicgESdhsWLQhdytHAmFVL2c8OtJyTKkYlL4f6t9XtyWgxrz0+BKvZTXsXYMnGzcJpNVv95c0QBtgsrEMOybTE/xxgCct4AbRUneTAmBD68eegPNLdQgO8yIzWlLS29TWSOxc+ejZpq6wSiy8ZsbAdczXxW5eTahbfRns9fscmJ8+hAMM0SrdtfwbjSuodqTFptQTza3hbe85mGXOhGICuiRNd/DGmm5DuiZ2n1kk6LSYvdBayBbUZtdhJizCPYCN1xK3rz1i2nkUd5h//PewO9gLGtEGMLrd/gwJC8cyUagDKTYtDxXSLdCi2dp3fEDhwKBUTGZx8A78tmEXdEAORr+eEoOjcLl2c1cVnHoIH8WJAtq3uYes/dEgFGzAqpcOoIozy77qlNfm9E+T8nNhvqd0n30KJ8/ZLvgUJVdqeX9oOkJabqFnrAo/G5p9DbmtfD1xIheEBvkjwwGJ8BYhGX4Hx3gNCEH1wCtbdY8MrXPY4UMGX9nYxmRfT3S5vgAqvyXVWPHTJRglEdaOfMaoOax3kYmeubrlcj5Z0ROrInYss8g+lsgveSjM51SzlNhuwkfaO/BHvOOw8DdOHHptEZjT+3m1jONdm9aJQewf0H3O6ecCFPYinHlUhaxae8u+34bqyREvGh0LCuFq8kL8lV+graLkQiwJ7o7JXiqllYsoZQoHX8ykLWAMAg8uAQI3Ito3ZBtdMZ9eMKdlXz6pirmoQLygUQDUVXQKVv3aekNMzNIre0KLsK4R+02X/1fSHgaGPusFozgokpYpkVYzKu7XcReeYuxBgKc2g7U+4awRAQS980Hcr/lZR5k/nVZKKKbZaLPnw12HlPVqn8wR0PxDQgiTehhTpavixMP0PfQt2W37LjvNuVvisAZKA+5269EpxW1L26ZrOeTQXpmZNq3B+aGzcpLL5edT001i+DJYj7zPhX0RHEidXi9nI6wNxWj5DkVi9tqVXsdYXBSh0DXExhYE3WOo2TaSsMqVIwzRAp/OlEuU5IGBixyxsv8UuGwlPRW8wd63kNNlYp5jWkoSOuke1np3w6FeEtJvmAUFlTwiwL/+LrkosrWPDWrrjcD2EmYNAaucTd5wjUobw="},{"id":"e336a373-66e5-4790-b912-d807ca6ea88d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"组件系统","description":"component-system","prompt":"为FMS前端组件系统创建详细文档。深入解释组件架构设计原则,包括组件分层、职责分离和复用策略。详细描述UI基础组件的设计模式,包括button、form等通用组件的实现规范。说明业务组件的开发模式,如FmsTable和FmsFile等复杂组件的架构设计。解释组件间通信机制,包括props传递、事件发射和状态共享。提供组件样式组织和主题定制方案。包含组件测试策略和文档生成方法。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","order":4,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/button/button.vue,fms-vue/src/components/ui/form/form.vue,fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-file/FmsFile.vue","gmt_create":"2026-08-23T10:06:52.0473214+08:00","gmt_modified":"2026-08-23T10:21:16.5046123+08:00","raw_data":"WikiEncrypted:4Zqjl5aZEo1Vv5NKBpebTqt3sxXxOtzcMOpXIMlVq/T91/gpaeILisRFdjnNoN/YXHKTdsffddSqe6SLWLJdkblakPwg8wgkr3AhYt14l6+NeBspVcTCya4efvj5+fuf4zgZ8ZxkM1KwHUPjkMFrntbizFgc6Ll6/XycalQ/oLyILrXbWnq2v/05tiQhgDttgvEpOV+g7Sssd1a2vTBEUXNFfwWp+dj/+toWJY+L21heKhVrq1MLD2Tp5wUBRZe3oW1hxad5uQWyC6Fx/OPWw7OE6jgATDkFkEexA/ykpYOxlU9lTDsvTXlXhN5EPuCyU1ZhSGzfgNwzlK0MPthg1Vz4OOOjwKuev3gM7gAKN4pJ0tCAD0tJ+D9P08vjumMuoS/l30h30OijNeYjojAy64Ak2U1hIzkXy4lVWKE7nbScbla2rNx/KBgMUYCAFQ0avM96jHi7LoQPb66sMWiZXPMMZX0+aDi/66LSJxJcaXvuYi+s7Hvha0edO0zSHmu8vTaE11K/hmAo08wl7Vl1SnBZHnf6mLGWGLKdSb1IXk6jPn/VkiJbBhtzwlJoPw5YLekC4WDh/i4Ls60OcNiANNNszBz9FaSKDtkCVuss22zkzva4T6RiAmEc58MMq9lhXQ+tx55QpZ1rvq/9KgSquDNc5P0dKtensa68/hj0gIQgRj9dfgQLoXlE3A2W8wFO75d9T+2cdAbLTjg/FaNw8rq9W6HTkj8yD+U+Ckx6cdvsro9sY0ZOSH+i87bnKl/yFKwHMSEOnuXc88mi76fYAKME/2jWFwDE64Jr9vRQ8CDmGBEeUp7J2YaFCdSE5xQtuiW9D3Bdmz8vqPER0skDUDxIoSxombn4WcUX9WnhToLhBtd5JOq1n9jylHjZziIjQLWm6/8kUE6QRufnoTQc1G+DXeDANwQvwpVwS6Uy4yrBH7O506VkEV9T3HZtjANmh0uea0oldqxNB9EwYde1JxfJ3CgbafCLB1H/4XLKAUNhh+PxxmUZ4xvX88C13BKOVF+LTUvO53QLhb9s3Qc3YjoFnwuIqc1CDnss3pf9mqcXoSm0Ewkjn5xTN0EL7JmHhAjYedT3lWPuv3TIvjWTFaDV61cR4Z+Y8AtPf/RwNQ/mJ1WHGv7hbotLoZnr4pEzzumjCf1AU0OVuchBV+pJ1K3Tk0clCnVRnsZn/Koee6sQENcun5/uZWh8MVJlQlJp/wLYLlfReHBSY19DiDzZyIYkJbU5pRFzL8JnXevw0m773BV3inJJpqgbwvHCdA4P","layer_level":1},{"id":"1a89ab71-68d7-4fec-a06a-6df210abd307","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"事件处理机制","description":"event-handling","prompt":"为FMS表格的事件处理机制创建详细的技术文档。深入解释表格的各种事件类型和处理逻辑,包括area-selection-change选区变化、row-order-change行排序、change数据变更等事件。详细说明键盘导航事件处理,包括NAVIGATION_KEYS集合、handleKeydownCapture捕获处理和handleKeyupCapture释放处理。解释事件冒泡和捕获机制,包括@keydown.capture的使用和事件优先级控制。描述编辑相关的事件流,包括编辑器激活、值变更确认和取消操作的完整流程。提供事件处理的最佳实践,包括事件委托、性能优化和错误处理方案。","parent_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","order":4,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-table/FmsTable.vue,fms-vue/src/components/fms-table/utils/createCellRenderer.js","gmt_create":"2026-08-23T10:06:52.4239597+08:00","gmt_modified":"2026-08-23T10:21:29.4015867+08:00","raw_data":"WikiEncrypted:W27BoG2tWSBKbrlfVNVQ+o5QeIlIvLAGEeynsbQ1/H3Ed+jLCITMCeKQguKZJIhqmsnbf9FOk5HHctTgEg8tXqBdDb3xoHu3CVsUS1TZA59oH4zcTm4XwZd2dDru/oFMY9mo4wu2TlRjYNJmLnVRVS1/C7yfR4COXKtEdiBz+k84xnPbOW2NJ7ic+DB9vSigKq3TSe5Qv1fVIQNj+JAnA9VMsBqFL+NgWBQO+LPW425WR2OqXbLUVc9GUI2KQDETHDRvssp9YGzcwO6vP2ozU/vkhq9H8gaov7yVwmGX7n/l5RrD0QlXF2xDTnmWNCGIqdjDnZos788YVju+SxEtGjRIYIem48PFyZc9O4tOh7/XfXIXWA2EAXudrMJ0YWJDsRIP3j+oBsonXpkva4YIZXab95lbwSTyivWy3rVYznYbuIurwUeuIVLTtvv5/Rv22w8o1iNtOb1zAETDOQ/679A72FByiBjOPpjV5x/i7WF2C9xQqVbljixbtoFAWVjwrkEchRZQ9IY8Z5xkyixbOvLruO7ncEhMfIUcV91z1LN25MgI9hGSVR3hX/8O1vvkoyzzsdqPh1uVb8VSewJWpSZIufFCtnzftVs/hBzmM2MgV2cIlFftOR49PRxMvMCyGjLSiZrxub+e//HT8FLsizvfhWDos3SGx0ruZARqXqB/o028ZsAkpWsznCtkB1CoLhszMw+TdFszfhvkQe4kKYh4ixB5fEuBarZytTpzb80FJ3EToHD5dONobroZC+y5bYcmbrEZxUVQPJVks64+9KDRF62RlwTdHVz7rzoQa2/sORTn9cwO9LtDGHSKd0P0GeZWXlI9ATzYDB92SHZBqELEK4CY4sQGaaQiKK1e6QrPdfs1xHVpkUDQODvTDdj39KkC6jHERcgwEFOXShfJuSxZ+Mb5O1m7hZYV4P4IlioIJXtulnxZX12f9t4rmaMrjkAjhvcdhQXCnTP9NSv5REH5rBDrEkgnDAIGMggZ/e4k/KpKKhD4cXacCmO64GrbtZP7I9OnkGD7jGuAYUHtKEhYOZareQd4SMgBOYMOgnsCO4MQ2PdHkfcdeGJIWFDGfCxAIKhheDML6sPx4A8KNFYh7XWBaPoC7Ve7VtUReVSrZl0W7Oy5m9mCOLprjmffqiDOQmmVzJFr/yqSxWe/8Pm7moCMnby9EGBQpRfpxsY9LGoavNE/ktcM8whRoSIT4q78oYMIQLkkPVmwwZASl57zNYu2ZC3n9oPzET/x9aK7jFIrZIniWPHJpRMsXvfft7xk5sPwasmiWtnTwXcnUOOeafVJkjPb8N0defqEhGmNFsMkYO458Zlj3eXflvHsIhyh8pghhb+0/ErZNj2ZUK1ICE1GdrPuMV0pywjo7Ekm0O0G3CZley1fbUtQAGQjbyFvZ7R9hzqbJbpIoEBcLYMpjtt7Nda09Qlr0Z8lXBE4G5/jZexlxkNWtQWia7xvl+evW80WD/daQXJCbu19AA==","layer_level":1},{"id":"e72440f3-4718-40d4-8ed4-980c41cdd9b6","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"布局组件","description":"layout-components","prompt":"创建FMS布局组件的详细文档。全面介绍分割面板、栅格系统等页面布局组件的设计理念。详细说明布局组件的响应式行为和自适应算法。解释复杂界面布局的实现方案,包括嵌套布局和动态调整。提供布局性能优化技巧和浏览器兼容性处理。说明布局组件与主题系统的集成方式和自定义扩展方法。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","order":4,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/splitter/splitter.vue,fms-vue/src/components/ui/splitter/panel.vue,fms-vue/src/components/ui/grid/row.vue,fms-vue/src/components/ui/grid/col.vue","gmt_create":"2026-08-23T10:06:52.7667002+08:00","gmt_modified":"2026-08-23T10:22:07.5708516+08:00","raw_data":"WikiEncrypted:x3LcpLCzT0KOPxd1xeYY3c7iq48qz+WPAPm3x7MWgVl9Ka0y39BYIpkYIXIwXtcEkjLNRqcKoI34Ay7VLfvIocFJ+kWhigIo6v+vk6zlo0cwpCz+6/wZRP2ip3AExff77m5t1QZ0R7lsVkU/PeKBejJBRx5HcDbv9NvT15X/4Q/4b7M5fQM70iaQfI2jWW3/D9SKbYRL0otYGkpsJle2NG7cuQXCEpjNR7fEU0ud6I6QQu3Bi6XGO8hVRD3hHbysILf1ayF8hob4Qn2R2KqDv0gs8m1LHIoqGgIEcUGEBvB1/ICinxOOn8lZgLlf+TxUPFAP3OX9xMhvHjxxoCJEaoIqVJ3abxgMA3jBCeLkSFmfa3WpvFhLIFFPYZCcNGAoGdkAABr0YkI2cjlmn4xc9uuBc6FOjmHU7sV9DIoJocCLEDktaBLD9lqoSFaiujS41YK9oJFGw1vPeVvvVbAmMMoYLeoD21gNxvEgfsf6weG5THL7r5QQeyLGhYilXRA0yQ9WujAS5U28CFNM6LoQklvtiGy7jDybofutQoNQTbjT6M3ePYYeHhGU+0QgMLM3ymrjd5bkhd0UmtWvNxzO7hCr9VEasjtkzdC0poxwJYCaGA2mT7UJglR5EpG6Rm2OC5ClPe9EUQJaxjLjrV3yV4GJ5PjNPybuIa14vpkfE1qQVzXci8GY2PUDbMa3Ab5Uq4B5cAOCCMIDC87qdNjgRIfZfFqMk8sPpTN9VTx47o9XJQOH+Je5rXC4d1eXxmz0ZEjcZw53kZ46wVw72f2gL4mlZariq/h0yrQNq4py+/hwrJXCFhh4m384t4aT/mC0ufxXvOaQdIP/jSTjckLCz0nNkoYAInx5zaFaeWiSnGh4nzXfr4pNqDxwzvahPa+TjdktjxTVxZ0bacZ81z5pEqSVkd9gu3X02+9MY9TdvppEYh7ZLPC8UB6t7VisKI/8NNfNQARFkEz/Z+5I6jndHe+pYuOUTJHmg5gY+l5+j1J1XEnp3pofJY126cekPzOfYHqih5epMl0G9hmysxSJhK09syaKkyak0HFeOSticFC4iEc46p7big1xC4lyuEW7qk2XH2mkqV9ZSLDiVHV9bW9C1F4eB2SYzIOIgAh9Hy6qxyB3xUmWR6gnZ9/FMACRjyd9sq1MA8MgQ6rjTQsrfwMY+NxQNWqSEUzyDS4Eu2o=","layer_level":1},{"id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"服务层","description":"service-layer","prompt":"创建FMS服务层的架构文档。详细说明各业务服务的职责划分和设计模式,包括AuthService认证服务、FileService文件服务和LoginLogService日志服务的核心功能。解释服务层的事务管理机制和错误处理策略。描述服务间的依赖关系和调用模式,包括服务组合和接口抽象。说明服务层的性能优化策略,包括缓存机制、异步处理和连接池管理。提供服务扩展的开发指南和最佳实践。","parent_id":"803cf389-2e38-40a5-bd14-57d653cea595","order":4,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/LoginLogService.java","gmt_create":"2026-08-23T10:07:04.4237284+08:00","gmt_modified":"2026-08-23T10:22:00.5616584+08:00","raw_data":"WikiEncrypted:vMsgMax61wW2sTWhXd8DH5MWokJhmuibsTyKEKUwYd06gEjo3wHgcFvoN0ci1jYXg6WMr8dvO5+7jyNX5KnqZ8onegI2Mszfit/vrW33B4OSxW5GD9LPzySBzX0oQ8SL1/p6ShF25ZNkjZCs6QfPXxxR6LoeILKUUAmw7Hhf5rIvy/uECTQF1xYD8NMCjVYJfq09D2FtVcHLBbtWVMyygI9N7UaRC/Ugdco0KfGBzH2gE+8Y+JIvFhvJ8dbzknkZf4REbhb0rktRHC8SPlmQ5HoY7S2s4sX4wTHJSY1z6AVe9aWqd6XK0Gq9bZxgii0QqiGA+M6wpQMxMJde6g2lbysJa60W9DSlyOQm2oiVMqWUcHMikSuTS1rdq9gnpfu3kWOtGpWszL6ZzQ05V0IxSnVA8eI2jE8/dOlCDqWR+9dYa/f+p6rGrAOmPW+OmL4qzdT3VNifadkNwft5/+Z0uiNu0SRY7HljGkoO0mI6kilnOFn7oUqoIc3TJrisMivYkumO6fyY35G0JFvjSmZs+8AOoKlmBtDhsst6JmevAOoCzgEo2VNRk+Q/1QSL2FLLFqunxb++Dpfvk08GKH6JxEfiPWSQ1fTpHCMG3A58pdy1VmvwxrO85RmEaAU7QaW9NOhOonMomsWfo+T0BJdkYwvv3iyhgEod7epbYX6/jd4Q5w9AP136yj4kXpuAHL9bWmZQ41nMHqNtGx92A0fw3gGZG3wYa3XZSZL/Mytlrz5LXPhVMuC6fs4izB1NgNUM7y7KU9N+zdEucFE9LNiZgNnVMmjB+ZN3JYH6q2JN/prsc8xbMnu3cvZNBEsqqGbJBAA1uu6f2I4f5m2GFKDif6qD3NqblRXSWn/onpo7i6GPaLNUSqh3hHqUqjj8IHBAU7L1by2OigkK+7PH7RE8lZNroKH0FaoydHQ01rvAVAvegUx98hJi681j0mCIvOU4WyBQREDGS4ZxT6KMw2uV23ANuIVJBaWzDggoYT7qZZxbEBQFI5ESVV0M2yIYn1Uq1eRthGNn7sH2fEbZLf5rqKp1oDcArsX/GxhIp391z0T5ZdUA5X85j1o6RXn+7RKbGoSmjx4a9RayJa8/XoNFpxoWnrIu3nj0xdEir1BEn/9qqzTTsIGHPVJVsstzOzK+VaLwLO7p/3TwcVxC49+yb1/zFjSPtzhZjuLg3lC+NxabraHm7xfp9lofNPfnroUf81KIOAujxnMoOafadzAO2UBJXemKfLc6jaVYKl4IYPtRxgT2ze68mFWWUDUb3S5YdPTXarr6Fh7R1nR6N39AmD0eR0zYWb+fqJntiqx1OK3FmWynVatyK4GcgF7CEkhi","layer_level":1},{"id":"c99dc2c8-cb94-4637-91dc-173be4c475d3","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"系统支撑表","description":"system-support-tables","prompt":"为FMS系统支撑表创建详细文档。详细说明s_i18n(国际化表)的多语言支持机制,包括键值管理和语言包配置。解释s_autocode(自动编号表)的编号生成规则,包括前缀、日期格式、分隔符和重置策略。说明日志表(s_log_technical、s_log_login、s_log_audit、s_log_audit_field)的设计,包括技术日志、登录日志和审计日志的记录规范。描述日志数据的查询分析和性能优化策略。提供系统配置管理的最佳实践和扩展开发指南。","parent_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","order":4,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql","gmt_create":"2026-08-23T10:07:52.7838271+08:00","gmt_modified":"2026-08-23T10:31:35.797155+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjGwGOWULcM9JtM8gGp9PmysSZXuw43NrhHvlc/2YfiUe6RJx8pYVxtkSwdMBA2B3nnyYCuKKTD4aJI6m9vk2bIkPYABRHEr/N9COjskJIN3lMFpWwA9bIj0EpuRZYePkI/hUxu+AeFay41pyoTmSW83UAHha13XslKrqSbKWzdFVPrgnZI4YaC1Y7GeNEAPlwn2zoBi5qVn/g4x0qYKXvQNRVyMtPMsAytPI4f2g9jp6ukJjaVc0K3tkhXd+m6hHGzbgde2HaIhtnW6/73Ookos3hoC+8PAIGtEAGMECTwG7Du2UxY2ZyWjQVLMi/q3wDkXG3tzaHkRkOOC6JSCXa1eU9JOT+0T/6h8moQrnvhBwKKQpB+7MzrjBgyhgQstAciUGZIA0OPUepZUNBZTZ4iSqmAO4NiDXRdILUSq9QT8FDy9BdlIwym3xX7AcPd+PBRQr5/JAuct7pU8IEai3JIZuedBnxm6RFtQd8YEHJuRXF9w46Xrk93uJOij/bxRv4eY2ZuHtYIAaoCp0rX8MgP2Ymrrnstkhlsei0S+fkJj9fDzp1N4Z/SgOGetjgw4sQXHKdmlZ/bDHi5d9NroGwjmfetLheR7lEFeD8I/fXawoShla3uzOcWVooP/ENdj7gs0crHAwI+kRWbOYAa8TIaxN+uSuzvkQJPzfW/sTLcgsMeTFiZxZoD/Drs3SJ2YkIscLy3Vz6AZd++ed+i7ho/oU7ekuZP9UM2PV93cAdaRcZdLMJ7NNpvGn6tzRPuL+Q3/kpqpWaS/KIPLiiuHE1Q5aX3iUjGKppZNDdjU14hS3X2nfOy+isrEKjUbehX9qeBtc29UBNNHco3BbhTK7gbhq+L/3kH9Gg78U6ovy/C/3yrv+OzR9DMcFIiD4rxuTKxxeC/vjjgvym8dMb2BGs0Obn7tSlpiobhr8rhWnWqqZh596MFGmkSnoqnd9M0IuuvHVbnrSo1sDpGaJxWwti+bpREGR0owN0lxKh/sNhvFbaHp6Bw8nsQYC4GkmwBy6iiMhAhxU9XLrQra3ZoTRaIYKvmDMgaiOBdcBxAqOt9oKXafTJYAqvI5o4TvKppt6gP5ZVdlIgCAGY7JqxGbP3Cwa7QRaZNgcsGuWF4H+23kAZinmhuJg+x/3QoITNBXpPybRgkHCP2T8H3LBSTvLbyRHfTzF8MBFNtpcRGcHh4/t008tt30VV2KJGO22nJiSU2jePL/VHTxBzagBNoHdZnjJFeosLjPqE4DZPIo3VgxN","layer_level":2},{"id":"32372749-256d-4739-86ac-7f74eaef22b9","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"文件管理系统","description":"file-management","prompt":"创建FMS文件管理系统的综合文档。详细介绍前后端文件管理的完整实现,包括文件上传、下载、预览、分类管理等核心功能。解释文件存储策略,支持本地存储和云存储的切换配置。说明文件预览功能的实现,包括图片、PDF、Office文档等多种格式的在线预览。描述文件权限控制和访问安全机制。提供文件操作的用户界面设计,包括拖拽上传、批量操作、进度显示等交互体验。包含文件管理的API接口文档和前端组件使用指南。","order":5,"progress_status":"completed","dependent_files":"fms-vue/src/components/fms-file/FmsFile.vue,fms-vue/src/components/fms-file/FileListPanel.vue,fms-vue/src/services/fileService.js,fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:09:30.0451995+08:00","raw_data":"WikiEncrypted:PS6QJlpgHxZyZMwNYt1TRIloRD5fhXuA3TjWW/zG+yGVcm0WnzdnJmyU7pF5Jw74TOKQIuGrKUBmMKElBnp0qe/kuRcjs+jOEUaMf2ULDZpBGAUsNo98GOMwe22OKJ1ws1ZeRE9NFHZ4ygFmrEkU4uLLuGeRbVEjN1lOP1GqZVAKbpmHthR3iDfp0rrQ94mZ9qc750E7Pd1ONCtmuAUlZRtA35LUBflHWbZ95pq9XCFd3O327iNZHd9ynqkpt4xGfjKnsivGgZ+QXu4rAB8UvjoNSCQyiABJCzQqqfQMxSsyWtNxNkzuh/XPLzz6ib14MNiXG0wEFxYrO9i1bwK8a31tHhuRjkJ56NS1ZfAOcWdPZlVLCR5seCW9TqTCG2GM1cPoSBcxhRRWxzX7F4Yv61sB1ucPFWAak+r2or8MH6o0gnGVRkGvwsJTlGS50OScUifC0hETsqVOEn41KBMvXizFmnjR2EmzwyF/iGl8VXWYaWaLmkIJGcbZUaoGfkPCjqYE/1vL6wGImYGEQjPD4l38bN2eKOjkvRjlrTUqmC/0oGqz0cOlImr3EgyjSzSpaEBhMzXsEwfkdJ93eOMVqn+hTNpZyZ42xU+E+jHS+8TfBGN6c3jd1PXIpE8y5M/DyzG9CjJut/8JGTvk4usKOWsLJrj8jaBrn4Zzy+3cfEnRceXBSNF7Nho5t/uRpFlc8PUUa27w47QUMMMeVRB3ntZU2isotMSqg6qxjBWl6J2c5MCy2F7TEsGBcqLo5R6nDzJLOjm1ohL1tsk1V/tQGpr44oRs38pN1S9ahfaOzfS0yjb21O6gmxGw5wo3EcaoWc5EwLisfnBAJ8QYu5p85ZM4AizhHYFk5cKrCCuZMIfWVvsxsOTJ9A7h5Jg6XARuZN/Umt+/Hv3I0f7Nk04JBgNrRPUo/dZpIA2gq5X8i/sweU3VQ8scOqxQlmCPVaFZC6V5jjwsNqJ6D/NxSWvZ4PwerC7gZVWApjC98wnDC6C9cWO+sPqPJs7fDCsPG1h8fzDRSqYlmPzglULGv7ItE+yDg2F05h6pmtAucDxRGIsGB3rwOlR76SDFXkNcJVoG4pjsjjhFH7PMjKypq+n0yWQu0Lwee4/YHCs60pM+5k1toKowqEEG4YpF2jv2xaoIiOM4j+mQKQ/8tELRYs8YLu2/tpqcWIOhxLpNduET88+bfZnd1XoN+4w8+vagd4dWZudcGP28x5OzmI7ZImGolZahGjCYNWxP3sGFQQvVTjuAiG4KssgqCNyfUKBmRxyN4YiY9XAXMvDO/34xX754OPrVCWRQQiGY0Xo0yyLAic1tMUiWhWpL02E4XHisgJrcD2HPIouw1OC6WkRpOvyhkAi1Bf/pOhoTFOf5K97afs6WuJ2mR80yDXqgy8GYBktvmMYl9aO03l0RMnWCgkoicA=="},{"id":"de616a2e-8182-4f48-807c-29300d5bac57","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"主题系统","description":"theme-system","prompt":"为FMS前端主题系统创建详细文档。深入解释主题架构设计,包括CSS变量系统、主题token管理和预设主题配置。详细描述深浅色模式的实现机制,包括主题切换逻辑和状态持久化。说明主题自定义扩展方式,包括颜色变量、字体配置和间距系统。解释主题与组件的集成方式,确保所有组件支持主题切换。提供主题性能优化策略,包括CSS变量预编译和运行时切换优化。包含主题测试和兼容性处理方法。","parent_id":"4e175e46-960a-448a-ad0a-905229dfae2c","order":5,"progress_status":"completed","dependent_files":"fms-vue/src/theme/index.js,fms-vue/src/theme/tokens.css,fms-vue/src/theme/presets.js,fms-vue/src/stores/app.js","gmt_create":"2026-08-23T10:06:52.0473214+08:00","gmt_modified":"2026-08-23T10:22:09.5206626+08:00","raw_data":"WikiEncrypted:MxodVyPG/Qm3b50NiN9IZl+3vLCFTDymhQl/ng1sHNp14laXNNlmN/3+hKqeXM1rW7Zv42KhsyYiIS0Ou/cf3HVwIhJaMLoUoQSPzVWB2wSbK1GSz0dT0ZyK2SGY4iG4jplkMLfvM6JafIS4Tlh/M501FmeyIpQqHnCjCU2z6pr1Z+OIu56dJyCxNHJJvApIZfeq4YO3RriPLIBSsVNyzcYHw8WNmrG9RKJarSsl1pDMO5VHq/NCqD/+3B4Tv3OX5VPY0FuEDIPeEefLk7vdR4gyh9yqN/NazU/GDvuMUzSHVyPMvpxvT6+gjQfnmSkpuU5/D5DSbOhR0gpalhlPLMynfGlItG4srMLWFL/f9e/4pFkD8HUonXD1aM8/JBpjeTBUKY0tP6xgSb8suaB9j2nNsH97tOhZxUeCN0fJ4KMElskuoBbu91nb1vCGjoOxqFMvgUV4dYAMnENovYc3C1fDazJB7qqQ7In1fAk0PKNRN5gmkv7rabIsP2yK65R9M4DqTwKmWDblQhI+9jg3eOKYh/jxkVw4tisCIdPv0zaJySrDSj2adZPH+3KjKgYCQpx9clRH3npSJM/pLaHD9h3kHEJyG9vjMDN6/717t34ir8JjOBVsQ3tJii/3ML4AKPbGuIP/rCkst7OFkI82Kb8lk4AlwU9iFYSVAfhtF3ypmJve2LHAGRpFh/5OZkCGr79BQPkEBxuRb8wLHtea07iNCB21DE24Mj5MuF5bNp7+mkLJWrY/mpPIYOG4GF0pBfNenDSbu6yNf7U0Pzha2jd0IAgsW1Qxzm3oWdO40D+Rz36+sHZOYjZtymh8WRmg7W4PwTqFXJMr5Z1TpFftX1gxL1nrsr1xv3LeUijYKu7iwtZF1COWyh7vKfCOMsdU0igPPGauB+xBv3uy0fLXNHz3poDF8146Z0+heF5nEaBPqiyUci2VExF5jj2y0d4mqJbaTY3gLfaxJcI+r4165h2WFTpdeXtaA7yCawP3Im0yHISJj6G/waBV9u36kekKYSjiM/lc8bSA8+092dWmyCmxpOqEKZtaKljOffVJWbS4EeJyP+qzz4iNcnKM0nGFqcXgeRgdXIa8bfWuxvI6ifLJWvDQ1AjzLtAQoGllRE7Ix+OBWSFWGP7cG/PoZ6RxBCouVaL31sbww0XskiG4G06u0p9hCT9ckV2NYN1dxB/3MezeW53SW+SK3mRgUU4A","layer_level":1},{"id":"094501b7-35ba-444b-a03d-15f87be0edfe","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"组件工具集","description":"component-utilities","prompt":"创建FMS组件工具集的详细文档。全面介绍拖拽、焦点管理、位置计算、滚动控制等通用工具函数的设计理念和使用方法。详细说明各工具函数的API接口、参数配置和返回值处理。解释工具函数在组件开发中的复用模式和最佳实践。提供工具函数的测试用例和性能基准。说明工具函数的扩展机制和自定义实现方案。","parent_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","order":5,"progress_status":"completed","dependent_files":"fms-vue/src/components/ui/utils/drag.js,fms-vue/src/components/ui/utils/focus.js,fms-vue/src/components/ui/utils/position.js,fms-vue/src/components/ui/utils/scroll.js","gmt_create":"2026-08-23T10:06:52.7667002+08:00","gmt_modified":"2026-08-23T10:22:47.7432968+08:00","raw_data":"WikiEncrypted:4Zqjl5aZEo1Vv5NKBpebTmiuLyainKxBztlrrtTq3m+BlaYcKHQCXxrgQh3vvhKIj/DVb+R6bQ/cCKhg+NM4k/+CcpRvX4zjxO+Bwu/SAY4BJrgStqzSv516SLHqwuttbXVc50633/4lt5VEpuyKP7rntDhB+rJypwyu2uD19rPqziwGlc4KgkXHz1/4uu2R0kuoehCjNp/fSfszRuKZhfmFfgljMnmSYhXnEFcn3wfZ302utSsBzZf+o8elfll4Y+yYspZCfCkWwLJDljZUXpjN2YMax642KCmkLjXcVwWhM8prWdChp6G1mPzBkdrUyzfyf0T/0KFYXfOOJmzZRE4R2OtYAMHuHUreGq0lQVZaYAx3lnCjjLywjVOMcECnag5e6chyxeAYzX0NEiS8rhKSozsD9WC2OfKC9wl1+4hDkWXt03C+e9AGc97Elm0CQRZGOOSAIksg5YbNaQwjDZeAcaLV0blKovkPsTYxUAReh8aTWv80xKc77nhMjL1mEKpbrAkVYaaGKLAQgDnlqnm2Ukct1Adc98PrYPgUqV1ORGoEeOeoaPX29B/Me29gqog6Q7pTPVTT/ZOC2J9yX01+Am4Le5X8iuXEH5jstHFNz+sbQThWiJ0Tr6Zle5pMiE0kalnnBhkQAf2/m7TnBfd3AoLKpuFgvcWW1sbXnAYqSb42L4xEpjR+W1EJEQCVhvDC18fovQx8PvrNfvek2PKZhDikfP28wwDd/BZZRB06zQegjc6g11J31xxWiw8HneXd1HofcPr+YrUmDBATBdEzBFYAT6vPdisIIPo0hIj/kZkwieLJF9e04cXvVqsNZG7o+q4/SopGSaqZwovdATMngg/Gi9EWXRnN1j5lwIpxs5Y/1/bBYhKX8GLMYGGHgac+GTdLrjWSR2qUOyU0f18kpDsrmKBRiP8ociCIiZpZ9A1Yh0JuYKOBqg/9oYpbq5Bz86Y/lzhv9FzlZ8qQMYcH1d0im3XFiQcFYfq2zYuGwvik18BpV/TL4GjoALmmcVO9Lesze7OrE583Mon74PvjRpmI85pdSQ2Hgy6NbNkQ/LQqMMp5CuQa6WpxXkKye4V169tHhTgV8mGth0Btj/QMq9ezCz5lTABsKTrz0eHNALIHzMIagcMypYvaZ5QQMwkKi8UEJcQ+cB87JM+XO/Qt7LlEtyCo9SobufkVBS2+dRbg5JDZugln8ArVSn3oTa87IFFKIzMWAmOwJTKMGw==","layer_level":1},{"id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"认证授权系统","description":"authentication-authorization","prompt":"为FMS认证授权系统创建详细的技术文档。深入解释JWT令牌认证机制的实现,包括令牌生成、验证、刷新和过期处理。详细说明RBAC权限模型的设计,包括用户、角色、权限之间的关系和继承机制。描述前后端权限控制的实现方案,包括路由级权限、按钮级权限和数据级权限。解释多租户环境下的权限隔离策略。提供权限配置的管理界面和API接口说明。包含安全最佳实践和常见安全问题的防护措施。","order":6,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/config/JwtAuthFilter.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/AuthService.java,fms-vue/src/stores/auth.js,fms-vue/src/stores/permissions.js","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:09:46.6611134+08:00","raw_data":"WikiEncrypted:uxAckj1IXK2TQH//kEdeBAqotEPuLti3AgpIyyadVPNLnOVq/Dx1xexsHnOm7CcDYtLalcrAmQWgZubDu8+NeBbzdNpgx7gWWL4YuaZqIRdYHvR+g3lBZt0jeBTO+DaSE1DIhunARXm8QvKOu2fSkK4XiTJBttLLgMlTIq7qCCkUchZUs+2phkUwLebhUOTuzh4imIjuSJMtwDvrDVk4r6/ZWNOOLWh+9OypxHvUW2ubBwO3/h9X8GgSnqiwIpOPnH8m8uAv4GMDwaQOgsAvb/2wTTMcf1aP1KUKY6F177mcUR/6EjmZoQjAVIkTbnhHgMu2lPHSC7BkZ4tHgQCmh7ijeMbmFeEn1nOFzIGZmcS+7s2a0HJ39Ks4k49KBbI9ycgDYJ5jA6XG0Ya1Y7aEX9ak7L13WrUC2idWh+KoByl0lsYIkCcZjabJtJJEbaA29nA03UCiFxXxdLteJWpIrpfBVUpUTtzYoll7p4cym3s7Cz8Ol2jDyRIGYkF0qVvKAx6jO7gSZzWpXvfTDVOKS9STcsc2WhED3CG+eiQjf/RcKcogussSTiel9ZCyCYElkxqwQ9F08R3ESoO0PXsauyhiDmqsy3TuV0ffSzcaa5ojhDdz172t2uqXSbdpYPXDoRW+6OaLLx+lPeIUavxqER1h1C44eYoo3KJitEm+09a1F1aKBrQqebgWScix/43BPrh7RRMhSYP/2R0g3Mi5bZVf48SXwfRiB1RYdsRjimk38D/lZKElrw2pJ129HWDgQ9Cim/DutVPptrZ8zvoYyL8ffETrdnqQ7dE4C33WXFifmDqGsBNdkc9a/fJyFYXwto/3YNuMh2Lkp2oWxrKoZEsL/R9XaEscVJdAA+cWHpwuDRTy5eLvx6XYHk2SDtrgJ1oYRIoPO7Oqxc7AWTVT6KXsFry5H/zEKFFL48aeaVyVy8HMYRNp4Ruip7RQ6zgzL3S8/QJfsK8/f0GvT/l0rJB/bydWgXjm7ptn2//nkvOGYoEDq0EW1/A1WAPxcJHBjvFXtwA0BN0SnlNq4X0LYouuNriMP40dJ3SUwQy1HGK1elbiB98Q6ZYS0i4BQ9QHSFxfhyGMMpTGZAb1hpZtnwDgh0c6VTwt2autku0BBBaSJ9L56OnCvqUKmSxHIKaM753CSGGTlkiOire472veIAYRD0SGA34pGN3Y+1AmwvEQlOg4Shg67JbprqiV7zs7DKLTxzxrWRiqYw5eZv2L40yfVk5mKJyOQod4NdpXBcHhoa7YJI0eLuPMbuGgKf0Gimna7qTcjQ+l6LA5deoDp0JAEK5nQ177gtNW3meb5VpQSscnH4loN3lIMmrKgkQ5riIv+6pvLMVVtitUY9LVimqp79jbG+MwPeKuOgA5XtTLxd0afQcxJ8oy5i1EqlvO"},{"id":"803cf389-2e38-40a5-bd14-57d653cea595","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"后端架构","description":"backend-architecture","prompt":"创建FMS后端架构的综合技术文档。详细解释基于Spring Boot的后端服务架构设计,包括分层架构、模块化组织和依赖注入机制。深入说明元数据驱动的数据访问层设计,包括动态SQL生成、表结构映射和CRUD操作自动化。描述多租户数据隔离的实现方案,包括数据库连接池管理和租户上下文切换。解释RESTful API设计规范,包括统一响应格式、错误处理机制和API版本管理。提供后端服务的部署配置和监控方案。","order":7,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/FmsApiApplication.java,fms-api/src/main/resources/application.yaml,fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/service/DataSaveService.java","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:10:02.8221857+08:00","raw_data":"WikiEncrypted:N3UbzwGjCC3xD6BrTM0cq8Y9ccVoDb9n1FwE8c3MNy31fwp7itn1eN/9SBNHQuzqn4Z/E95mV5akFaXhbd+x3Lf8zF6WZQ5M8dspILtvJGYzDMGTO8BjOljBZpVjQpfRYtjFZMAUEomQts+5yFplvzQDJqx2xo4ndjDYIZc01z+UB7eC6RWQNeeXGg228ApbA4wlvKCCbM3n/MjYay/eOJD0dk+6VXKT/P3gdoNNN2DpNbvpZ7Bk03zs9Ms8UDMivDsG338lCC9BkjnsOkjXrWg2s17j4/wj82WykslWBPnuDX7Lv20gkcKgl7oBag0xZZXV7FdPVGmPIiQJN682MaUXTV4fhATLvGXf9QEaCxalk4nzku2PjN+qbLsBWRhuudXKDLFmRhvFG/F7hx8mQSJb53Z8mUHXux2c4h2lykgnz5S105+8xl6SlwZBsXTkdY7JtNih8H5J33bK722ZMz4pEY1UO/KISo4tg6WTiYGXZq58ZyIXvVulwtnSjFAyC6DAJ8CLRcX1wWxc5OsyQTKsEcts0cs7JjIqxpXWvI8svWGkc5i5f7nVT8Blj+3O1W+jHFKTp1koIx71ArHCugLKTKLwha9wR4GgUJbPckk7jcp32cxnjaLozxz5mfyOVzHUvh9hOxQCWnAa4lcN8O2Jxw4mi0ov9+HDIPC/1DgxUFakkhUpMrOf3NPYVXSz88ikrZwirFBBUZC3JlyMVIuPy7RWoY6Dmblb2lnqyPXA2AbYra4AVVchHLYlfr5GYM6F6sFg5YeY/IWoFKG5UvvMhlQFqtXXEAlLV4KNXX8x4kMKcEZgslwDzuaQkTBGVEYySCYM5X/+0BOmMmgCgvCI7M1zYo9cmEB6bvIB8Z654IYWggQHsZaw6vFvCWkH16t2v2cNznuGq7ZXle6uW46ucUHMJzPpsMX/lARUxRk/6cX0TlxajtoYpX1VocJW6bRQK87UAxiZvGt0j+dynmZ7hPa7NaDlfgS2dBBW33dJasS8eNRTwO4sQALMoLRwPTQERCxCd3P5MizvgwrZrblTr9mrhpMCLVfW0myEux2Q51liuJYJxwoDymWr7/lgjglZLAnsz237kEHf08z3GcYF3VHRKi2eCMAB5/undtiDnrgGil+MUMHOhFbgHbuK134seTj6Eti+PrhHlDi3etOk5UDWz30fJtziSgaV8crbOnoMUeTSJpK/kWitE9HyQ1RxohASN7cevekfKly3w4za111LhuscmiHMiED8eIs87z7utLbx9HyFFmJXKsnHhq4wUBK5pUzkqwPk6D+QJaTqg6M72WfYf4G97DLtErFM4y+YxwpyU91nJRAahr2jHyb/GinmJo/sMGZPAg1K01EIVHoxqpwsH3rEgE7AoT8mZerw46vU1ZlDWjH6SOXyJq8gAGPnv6r2B9TBr/NPmwJU/mToG0O/Bab2HXa4y1nlh+lRkmTkRnTvPCAUqAs8"},{"id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"数据库设计","description":"database-design","prompt":"为FMS数据库设计创建全面的文档。详细说明核心表结构的设计理念和实体关系,包括用户权限表、模块定义表、字段配置表等业务表的设计。解释元数据驱动的数据模型,如何通过配置表动态定义业务表和字段。描述多租户数据隔离的数据库设计方案,包括orgId字段的使用和查询优化。说明Flyway数据库迁移管理策略,包括版本控制、回滚机制和数据一致性保证。提供数据库性能优化建议和索引设计原则。包含数据备份恢复和运维管理指南。","order":8,"progress_status":"completed","dependent_files":"fms-api/config/migrations/100_initialize_fms_new.sql,fms-api/config/migrations/verify_business_schema.sql,fms-api/config/dbconfigs/G3HD.properties","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:10:19.1871692+08:00","raw_data":"WikiEncrypted:veTYwq2y4io5qXerCTrkkBwdhOAmcMQTz+AJLOFORhNFeFTAN7xitXLxeRr3T1sKrh0z/6NFLuxfhi+XJSCnWt6MH43UzSqgSyOcUen86VOIYnwcYKHWaQWLOjOtyyArCt9BT68coQWlVpiPiFgnUj/+KFWJA3TkBu06agmqpjEeJ+vOx/N3PxzsOyoK+f1IwaGa6rXhc+sat1xcTJF4327EI7IU6JQAPYnRB+h7V/gYmx2CT5Or/eW17WeJ7LdipuYwlNGzcqIn+E4P8jDP2NEIU7RoKc25XTaIpdAUyTqvEHNPj7AEBlOzCvgSRG0MwP2+W46X117SPJqtw+hD29uP/YwR9qrvqHL2H/CiEVuPs9tgTasN6M2snbEcZvHVmsqYU2ylL1JXUs1xPHg5upg0sPR3pqUSsWH9hIJnpqTHRVG1wd6iFPCQ7jYZM39p8cDolHk/A4ZkT5eg7ReGJcI9gUslgH2orrmdtJMG6bd3E2sS6tdbVws8pZKb1OH/bfuEVv5rN3TYIqcOOkb+f6CWoy4ox99Kh+TzhVEPy2/HdC3WgB9UvBuOPvr6erVsGfuhzF6L4t+sFaGFrCAbHRImV2wA9oo1CgBZmh70c2wHmMOnL7yR0uRZAH0M53OgKmW/72P952v4Zc8joLN8f94ze6OOIvlmc8CrxhAR1yLR+uvkyXah7GduKZuYqWnBt3CEywtFGBj462/vIA0XaQ15nkEBiQNuyO0uUkhTRb8v/xXg42QA19ztoaalJLBaX5oR/6pdFY2/opBezwWza3Ez4uttyl8jDAMc4Vii2MMXuzbShyXHIB31HjcU8s2lC6mSZpHKg2rYmvju76FQmwp20ughHQ2gZ/ncwazve40iEypy/y4iu20mwppLSoxs1v7xT3F72oPZ4nARoB+DVJXDUgZuhwu/lcqFMl9BSnOAWoy3rv6v6T6OoI1+r2q2Jb6pqce6A9MpKzMSKUQXkol4jJGnjyYIIarcekVRipJb25IHd7Enydc8k3sJY4zxstzRqD25fpiZXK34rmjnmbW99CtJCqwjUkXHS+jxj963DjsF4Xrdas4+rf67mMXasTrwQEQd1fu6nEbh8LNihRmGknwoWWBr4f+OxFs37GBW04ag3VWlnIIksibVA8MHvCo5mdvC2QtjgRSo7GJjHWAwzmeFJO4PJQikmvdBdnBuSxDFuuciZDavyNjVQ2pWPJJtXiI3m3fNXaYgUMF4nqCky+74hiBdVUhHcb7Ad1SvOnZ1R3jsA36VLsPUoOVt3ST0+xU46QdPaRHESkHfbNdl5o+0mK3PlHsxEmI+3b2ixioBgis4adkBuLBj8Vscn5e7WCgnt27xeEgcgoDHQIihsIxQ9s4MOE7JzlDezdlvjcQN6nfMK1GoYhfzK+ts"},{"id":"91f0e42a-fd87-4731-82e7-941d2a568389","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"API接口文档","description":"api-reference","prompt":"创建FMS系统完整的API接口参考文档。详细记录所有RESTful API接口的规范,包括认证接口、数据接口、文件接口等。对每个接口提供完整的HTTP方法、URL路径、请求参数、响应格式和错误码说明。包含JWT认证流程的接口调用示例,包括登录、令牌刷新等操作。说明数据接口的元数据驱动调用方式,包括动态查询、批量操作和事务处理。提供文件接口的上传、下载、预览等操作的完整示例。包含API版本兼容性和向后兼容性说明。","order":9,"progress_status":"completed","dependent_files":"fms-api/src/main/java/cn/g3soft/fmsapi/controller/AuthController.java,fms-api/src/main/java/cn/g3soft/fmsapi/controller/DataController.java,fms-api/src/main/java/cn/g3soft/fmsapi/controller/FileController.java","gmt_create":"2026-08-23T10:06:35.9074871+08:00","gmt_modified":"2026-08-23T10:10:24.1531098+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg+WPNa2UHH7yP2PPjE4/OPkdN7oCyrvu7r/eMHp4WyxHmHP1KrcctBzjWAWB8rdRpEvSinRJsX0MuJ5iGr8lxSG20L2POt95PYsBnj5R5Hqj+cNNAREHoQkeqH66+QHU6QeKiWq+WPb05dOcc8ApOVFV5aUD/97R4i6xewTzumlqd/qOHJbpSQUern9LbCMllZxjU27M/RwXh2nDKJXgDOcgyFnmE7NJGkdGNAVwgueKcsXcElyvOz7X7vVPwOep3hVKnBmPhKfqzw1nys568bpfYkb23dFN4Pj7xvMoSjl3DStwGZoHi+gjAkfKESxc31CqLylaO1KkoMSVN9Ecjgl+PklbqFA5qCwhXCyfXWDHIOYrR7AlIcrSQ1PeiUaQfaQ3/iN7/o4GS/NylgztZYHP5s52R1PUptdh8lDG/HVfULgpm0oROqLgqZQu34Sl4SbRggnQMBJ3njBJziWXlJ5ylUOxAD3RxgLT/zybsjCN53bTbifYJMnN6GgBLVBASAhFGiT19/Xzmq1LdQmLFsAA4iivzaOlp88JxJsN4MT5yKIlSaYIkOd3w9p3QbRminGiBZ1cyrL53jIP5JXEDdb1s+kfKkqNL6HXa0J35/+WiI8ABLaDJKJNw0nCkV2iiiG4kW5JcGRqphBnbVip4EcIP3Bm//Tjm0OhYkRk71Mtkk8H6AvOlnPE6k3SE85iMrjIpup2k5ruz5i9sGI5VzJt4TTGQYCuVBM6BW33fBFG+SdjSPPCFoGpeRZRQBEjS+h+BFi6CWeCHY4JOSeHaNI4cXUmklEH/okc770SDHNNSURJozkYsrT87mG8nA3MPsNvBa0qRm2LFt/g8q11wKf0755O3ACJZLq8OXLl+PNmAZx6lbhs5IWmbbIJl/4Ubz58+RGKlqk7jfSGlLoIwRV6MKoEBFr5yau7EbO+SwmmK7M3xT0ArZWR/jJkassw+lnyKgZwn0QMN/z8ZCZzqMeaI/81K6DSxakHUtbKS11VDR8caUUTABjQSSyTe0A6s4Hn5TJVRbR1mI+nbYP3Cq20EZryDiouMvcLEmk/gIe7Pg6ojQmJkUH8SSSN9lcMF2Nv2uGsztOsxBWWigaZA2ZQcxr+nHxXLV1NXwTVVqh7tWxMGBNbVq4EHrsrnTL7DhS9moX+LJzg+p8pOiCoYlNcbRIv3/q+mpTl8F/WpZy4rBpyC8X+IMCsQEvAeraqjAyKxHq70LyClyReCxUKmMZxVCmqzC2bXKLtvPrwjlg7i/aUdVFzgeMVVdNbKuagLaXYKvttmbEgwWkUBtEf7wQzkBlwF/4fND1xKkkkxRfm6il5X+k8mcuedAMR5oydmh6KlVA7H7nm57kqipSBuJCLRE8NYbd7zA0lq3zhNDjti0WK5zVLEd5I5tfH8wf8Vw=="},{"id":"931bb9e7-f8d2-49cc-bbee-7a861d12c4c0","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"配置管理","description":"configuration-management","prompt":"为FMS配置管理系统创建详细文档。全面说明前端和后端的配置体系,包括Vite构建配置、环境变量管理、主题配置等。详细解释应用配置文件的结构和各项参数的作用,包括数据库连接、文件存储、第三方服务等配置项。说明多环境配置管理策略,包括开发、测试、生产环境的配置差异和管理方式。描述运行时配置的热更新机制和配置验证规则。提供配置最佳实践和安全建议,包括敏感信息的加密存储和配置审计。","order":10,"progress_status":"completed","dependent_files":"fms-vue/vite.config.js,fms-vue/src/theme/index.js,fms-api/src/main/resources/application.yaml,fms-api/config/dbconfigs/G3HD.properties","gmt_create":"2026-08-23T10:06:35.9080015+08:00","gmt_modified":"2026-08-23T10:10:41.1773226+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllPgfgMGT84WysP5aU7jVGgMDPSKvWZp7xsAQzGtWF2TB4Rm8ZVH4zR7QDXSHsvp7GbDwtD+oVtlXVSBrK2euwPKiw5K3IpjXnQf+z/2FaXKsGf35X2yM2BP47zzzBQEJI0COVbEg1FLLOhlwA13xMDy8zEdZbJwX/dreBVhwiwOKA9A+/ZH5cqQlXqftazJl6ix4BpFrnP60NoS6GEHAgJ/SpiNfwg7EerAkFCR/Se4X1AQK8bq3HIkvBlmi9V+PRkcAz+a6kW99PuNOCpN59Ntrsp4tYDlF7S/1E9O7YN4K2A1/GXr4xo9wNHJhj1EqsrB7y9jUvXwWCQXUhcxSQ1RRongP2FBXU+Q2eINMq0ZjRjcTUJMXpImyX6cGRRKG0sYtDoyU3rV5X4Pe6xvxOK8tS/cTwgB22PNluZwxnBy6lZQQsd//i+vkZ2ZiIMfeT2+O86D96koOFeUb0gGaFNwevdfte7FOnO+MvqwUcYuKTbAmQwgfPwbrBy1PmqaOgbN6Zkc1FOs0m85H/le5nGixSd7dSAqWn7tcCiRPlTcJx+wMXPPCov/wHdjCBeUstk6wULgLr4y9FM01mw+SoRkVWD0fI9GsbreOAFNP/ChRsuY0gHYIH6W1Ay+uJo/vsU3ZkxpRQNGHk9Hwgs9mC1L7l7yFhk9wZDzkq8480qS+B5hrHBUajW/kjO4hkNF+8WxnqgVa0reLIedGLIvbBQja+2G8I2BMLzS9MyTP6Rc8qYoZIarh7F+7aKdg8AIZqlFy5ZDMlY/G8x/NZXzbTWoPKewpgArhVCdX5PkQZjMXmHHudjGO47hwu6OS7RPyUNpd8E3dqCYYHCRS5csTrGJnqc7S2xfxm75yi9D4/habCqWuBeT5RQjoa+uGN9dWxdP5xS57tbSQ6fiN7zam2IexZnfBrIbgiCwbwg7C/laYHAcIqf+ftTzwkTOvKvX037C2zafqAss/opga38WU3i7ktNsXg+uOpXahBrJMD9Oionz5JP+V+IP7fr7wLfBUzIigIQn0TYjNaVzgrF+BJDkuQlwHAyTYWDIPSIvcBov/peTMcm4edV/LorXJ1kr/XM8PT7wvslFhZeHEzA41L6rpQqHO/bQl4j+9M237Mxnj89jk/mP0sf940iOZztuDeSaqZoKnJPUSkg1VZU0wz51SR4DYAt9NrhkkbNYqaOCGzf+mgwD5cMRoVDUhNHoaxa0PCOxMaL2lK/1PWWxet+5Yiu9/WTvWcuUyIlvSz/7CHoETp7+s3hHkJSHCc60z4ncGFtjtdmKnkVVHbOzTvyeod1/LIY6mfYi5QJPRqEVR"},{"id":"ae7dfd7d-aa4d-4443-914a-39635c408145","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"开发指南","description":"development-guide","prompt":"创建FMS项目的开发指南文档。详细说明项目的开发规范和编码标准,包括JavaScript/Java代码风格、命名约定、注释规范等。解释项目的目录结构和模块划分原则,帮助新开发者快速理解代码组织。提供组件开发指南,包括Vue组件的开发模式、Props设计、事件处理等最佳实践。说明测试策略和测试用例编写规范,包括单元测试、集成测试和E2E测试。描述调试技巧和常见问题排查方法,包括浏览器调试工具、日志分析和性能分析。","order":11,"progress_status":"completed","dependent_files":"fms-vue/.oxlintrc.json,fms-vue/.oxfmtrc.json,fms-vue/tests/,fms-api/src/test/java/cn/g3soft/fmsapi/","gmt_create":"2026-08-23T10:06:35.9080015+08:00","gmt_modified":"2026-08-23T10:10:56.4888348+08:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9C/ucQxiwh0okVA48AmODs5RKNS8ZgNngqmnHSFcG/1UaJxx+3dUn+EkMTpYUsOg40jppA4RSUVdgkX19gF3c8aPwpB5wEkBOw8MqjbtoFjvTk6bjfYQe+FiVWCDbtCbMea8OPSKMt9eQdULu++UDNWqN+bCTE0PXZwsFl21PAbbSV6XDRg/zJDgoLQsWkO2jol0Zub9P89Hhk5b0dXKKijdEeHnyITjo+hXNBjFCvnkQ67qI2V4sUg0iWW/bhUu9OqH/pad7GXk6DjK97KpVWC90lIOiOj1cwirXiYZCKugzH9lnJoVU4islA4Zfz9smMxiVgZa8R41KLeq161DIZCQG39JQ7mtJjI1WpU6jnQUV6nr5Aci1sSEhygQXLpKYWOfKjM25mpJWQy68ySVIWNxfjDpfTqIcTOt35t6r885o/4aiZ8SLvWVeEW8kAbXdIW1OGrTZU+3SlYcIRI/mxDDJc0gOCL3XCJy7xwrE3lPNnvotxfYkMdGKgv7cidusVGOfVvv7AVg4qf/yZivGPmIaanvzjMM0rxKEkMr8VqQej66ETwr5+Rb34rqfvd7/osKQmpc7CjB/7QM8Wnwt3uRWNL2REEkNRm/x3Kqhl35qKL4lCIAAOEeZVQBB3RWDKsz1IstMkzIoDBwUVR4QQAmEjeofG2qYpZiVjohHwaZwEx/4eV69zVBsghQ1FPSPRaYuV8QqgakqzXTQRmi9XZLwz6TwtY/yTnvh5jT51pLcYLb4EpSDX5N/XjUYk/N4xxU9nJagMEm78EGFACsr6naungzt4E2cRkMcCOk3hDUZbdZoFUqM0T+CxI6Mz8FeGcnsPmpOev+bWSB09dodyMmOWNlbGNknSWb6KwJU2xIYlPYr8cATBzPWeFqyaqR9fvS0jatXa9geEWRZetccqlUyIK40X1w/oHRtg6HevpBbGDwgsG+0KcnRT70eg6JwcKOo6KtbLOCKQng8mXBBeMqdRRIQOVHyYgTtPjZeL7DEQbr5mYIYV+dbWp4WM39azrv8JnOlIJ3L2iANwMSqPBpWKvjTV+PO3ByhLcGKWuPiF6FWsfZvQBFef4dImA7rOFYDbvq3C2CEI6/MZ11wcuNeUXVfnh5hqsbdw5URnlQkhMiE11qa1LP6hACIW2ORDwa43EXVYv81BwYQKbnqe29uNBe4HiK/2qwk5ZD8lBKV4mM+vkj63X4ypSu4GbuB1i0JmsZKKSJ9HyBmD4ko+QWENMMWq4JIBfSgAHI1hufRspv7VdgPPZK5p/BR/8/Ahw=="},{"id":"e72ca331-7aed-4794-a645-f7fc94f377e7","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"部署运维","description":"deployment-operations","prompt":"为FMS系统创建完整的部署运维文档。详细说明生产环境的部署方案,包括Docker容器化部署、服务器环境要求和网络配置。解释前后端应用的构建流程和发布策略,包括静态资源优化、CDN配置和缓存策略。描述系统监控和日志收集方案,包括应用性能监控、错误日志收集和告警机制。说明数据库备份恢复策略和数据迁移流程。提供运维管理指南,包括服务启停、配置更新、故障排查等日常运维操作。包含性能调优和安全加固的最佳实践。","order":12,"progress_status":"completed","dependent_files":"fms-api/start.cmd,fms-vue/dist/,fms-api/Dockerfile","gmt_create":"2026-08-23T10:06:35.9080015+08:00","gmt_modified":"2026-08-23T10:11:05.0748445+08:00","raw_data":"WikiEncrypted:0IKfLNOWe9mZfG1jVts3w2XbjO+yyEmY3ONOjrL5GjA3YcCk7HFAQ1etKc5i1P7UH3oVY8Um0qaAPkZpvBj4kfKMKJLMK/afioubdiThZmQ+Pbgw7FfbuPdxnITIcHx5q+j5Apf1xoI8HGunbiuycOAxppyD58X3MIn0IPWlILSlhXX2Z2RJ+uaQ41qZm/+wYLxzFBeZR0YMV0wpH3PeucKBN1DzZBrwMteDQb2opEZ1/3GvMWGzGw49W6snoqKZKmlUDryyAC4IxxWDrMit1D4XhgUegIl9OYl1CiovEeKbDwSDmtw2XAo+NmU+MIMlxtCHufisY7XxYK5z/W+t7HmHNBh76mTm/dztOSCfvGNl5uqY7JYwdM2mFs2vbf/8vYqIKyILfR5BpUGaZhW79jbIRb+BvD2FvfqNzEZqNKlSiy9G7RsA32aoapRIutI6NaavbRHH36Yx8YIUjmFOoG4/TlV08wxbmAB1sWIyTPKYV70UsVUuPI4op6jfA6RfWXOa/CXqGkGOYkP8PMC6eHMeQn4DtosNkrk14AI8oGC8TsJgtb9GgHQEXSAY4Hff/ntkw/6WSNZdYLj58uWmC2s7BHrxy7CPa7GLaSZFgcNX9ojSJpEJdnIOpo+JDoPHGZEQlFfFKZ0E73i4Z98T1NAj+Byfn+9I/D7/urWUvUVDBZ70cOd3dGLW8FVRL0LsVLazaP1boPVVnyVpOp8al5t4XtGqDWLYjWaxbQibTeuO9tgSHJ5+kqAEM5OfHC0tQi5HXmcCEoz7aECjCNOEPjqg2YI87zr7g8U+5ecsnE9kWnuC08NJBTP4uu0x9mt/TahNimgO/q7J8atzidFiZZ94Ptde3kOlW2QA41sTdKy1ZRUgDPW+EAX3paeuyO3YJ/ifH2YGt1pC1ztcBb5xRuPPgaSs8GeJLEDHcqe8oJFKDxBnFlLCgbwofJExHylqU/yTlF/1M3lsyz+PLiZHRV+ckoeq7G22egmULllLjH25jSDElTBzPoU8DsK7Z0eEWPtAXHpKQsUEjnHXsZpcnc5wgY9gI/jFl4S/188FJrLlU1h6r8FzRMS3ueBG1xkMdfAsHZPyrloOx9W0xxO906RomoBe9RP96ntnu9SG3KtLqLc9stjbkmHGH7x/jt9EgSFKwRt2NuESWOnfb0mx8VzA3HjwIxPRZaB4FkCjVBRT7FC6I10U+2ni3N05InlcolJ/bVWJP6yeY5rUpCHWOkxedH3XB4WHsmcFkTks/Vo="}],"wiki_items":[{"catalog_id":"7395b0cf-91f6-45d3-806a-e9fb7e15f96d","title":"快速开始","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"9cf08416-e3fa-4b8f-aac7-e75dad32bfb6","gmt_create":"2026-08-23T10:08:28.9880964+08:00","gmt_modified":"2026-08-23T10:08:28.9896344+08:00"},{"catalog_id":"601cf011-1cbf-40df-b383-3a3a673961c1","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d874d811-2d0d-4bcc-97d1-035352fc3af3","gmt_create":"2026-08-23T10:08:34.4034252+08:00","gmt_modified":"2026-08-23T10:08:34.4080514+08:00"},{"catalog_id":"4e175e46-960a-448a-ad0a-905229dfae2c","title":"前端架构","description":"frontend-architecture","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"14962eaf-8af7-446b-a2a6-edd3d63656ca","gmt_create":"2026-08-23T10:08:43.1245062+08:00","gmt_modified":"2026-08-23T10:08:43.1260444+08:00"},{"catalog_id":"28892a10-1fb9-4dd3-83d0-502a3c2f2a29","title":"UI组件库","description":"ui-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5c225fe5-6b5f-4893-be4d-80155a636f1d","gmt_create":"2026-08-23T10:09:07.8599557+08:00","gmt_modified":"2026-08-23T10:09:07.8615012+08:00"},{"catalog_id":"25ff4400-3c03-44a2-b46a-c6ae27915347","title":"表格系统","description":"table-system","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"39a628d4-ea2e-438d-b2c9-7adc968ea593","gmt_create":"2026-08-23T10:09:26.518601+08:00","gmt_modified":"2026-08-23T10:09:26.5201434+08:00"},{"catalog_id":"32372749-256d-4739-86ac-7f74eaef22b9","title":"文件管理系统","description":"file-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"212db95b-0595-4958-9e3a-4303fbb7eb8b","gmt_create":"2026-08-23T10:09:30.043663+08:00","gmt_modified":"2026-08-23T10:09:30.0451995+08:00"},{"catalog_id":"0e2b7bbe-5d77-47f9-b256-7b907d80398f","title":"认证授权系统","description":"authentication-authorization","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"664e51b4-a072-4f0c-946c-890d23ee6753","gmt_create":"2026-08-23T10:09:46.6594834+08:00","gmt_modified":"2026-08-23T10:09:46.6616202+08:00"},{"catalog_id":"803cf389-2e38-40a5-bd14-57d653cea595","title":"后端架构","description":"backend-architecture","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"9b1805f0-53f8-46c6-a6e9-d7b166952431","gmt_create":"2026-08-23T10:10:02.8206451+08:00","gmt_modified":"2026-08-23T10:10:02.8221857+08:00"},{"catalog_id":"1bf02ca3-291f-45ff-8cd8-64ee25d41838","title":"数据库设计","description":"database-design","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"10363b8d-cf5f-44d1-9980-18a3e4e24b0c","gmt_create":"2026-08-23T10:10:19.185632+08:00","gmt_modified":"2026-08-23T10:10:19.1871692+08:00"},{"catalog_id":"91f0e42a-fd87-4731-82e7-941d2a568389","title":"API接口文档","description":"api-reference","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"67131fa2-c0ad-435e-ab81-a7f51d3e425e","gmt_create":"2026-08-23T10:10:24.1515793+08:00","gmt_modified":"2026-08-23T10:10:24.1531098+08:00"},{"catalog_id":"931bb9e7-f8d2-49cc-bbee-7a861d12c4c0","title":"配置管理","description":"configuration-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d7a32bef-a985-45b5-aee1-9476afb0d8b0","gmt_create":"2026-08-23T10:10:41.1757852+08:00","gmt_modified":"2026-08-23T10:10:41.1773226+08:00"},{"catalog_id":"ae7dfd7d-aa4d-4443-914a-39635c408145","title":"开发指南","description":"development-guide","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"123cec10-dcd7-4880-baaa-681f910adbb5","gmt_create":"2026-08-23T10:10:56.4876808+08:00","gmt_modified":"2026-08-23T10:10:56.4888348+08:00"},{"catalog_id":"e72ca331-7aed-4794-a645-f7fc94f377e7","title":"部署运维","description":"deployment-operations","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"b0b9ddf6-3a4e-4361-87f3-d5e2b411388d","gmt_create":"2026-08-23T10:11:05.0733082+08:00","gmt_modified":"2026-08-23T10:11:05.0748445+08:00"},{"catalog_id":"9466df5c-da39-46f4-9b5b-d453c7a723c7","title":"应用结构","description":"application-structure","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"4da2335d-274f-498a-816e-733e985a71ce","gmt_create":"2026-08-23T10:11:24.8902428+08:00","gmt_modified":"2026-08-23T10:11:24.8917842+08:00"},{"catalog_id":"dbd5991d-203e-4745-823b-847017895d9b","title":"基础组件","description":"basic-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"43838607-98fb-47e6-8aa9-11e184a898c9","gmt_create":"2026-08-23T10:11:44.9861959+08:00","gmt_modified":"2026-08-23T10:11:44.9877392+08:00"},{"catalog_id":"c230ed41-4fed-49b6-abb8-e9cf18d8bed2","title":"虚拟滚动优化","description":"virtual-scrolling","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"c926a152-2358-4291-86aa-0e725cdcb0b6","gmt_create":"2026-08-23T10:11:59.4361747+08:00","gmt_modified":"2026-08-23T10:11:59.4382205+08:00"},{"catalog_id":"482c7107-6987-4cce-b7f9-94e4aa4834ed","title":"JWT认证机制","description":"jwt-authentication","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"1ad04d75-b5d5-4956-917f-130e4e99918f","gmt_create":"2026-08-23T10:12:13.6901217+08:00","gmt_modified":"2026-08-23T10:12:13.6916599+08:00"},{"catalog_id":"e0763a6a-ff08-46b3-a8d1-dd64e8594796","title":"前端文件组件","description":"file-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"571466b4-b577-4e6e-9bf7-7e6cc0aa6932","gmt_create":"2026-08-23T10:12:44.0326629+08:00","gmt_modified":"2026-08-23T10:12:44.0342075+08:00"},{"catalog_id":"29b2f075-eab7-49de-8831-516cb8f2dfd7","title":"应用结构","description":"application-structure","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"08ee4399-c25f-4544-a685-3b0d909b7333","gmt_create":"2026-08-23T10:12:45.7606395+08:00","gmt_modified":"2026-08-23T10:12:45.7621751+08:00"},{"catalog_id":"eab3395b-a436-4322-b967-bf64bb92c24d","title":"认证接口","description":"auth-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d1a9ddb5-5dbf-4e2f-acc3-e9e47ecaa66d","gmt_create":"2026-08-23T10:12:55.2676513+08:00","gmt_modified":"2026-08-23T10:12:55.2691929+08:00"},{"catalog_id":"c4fd1582-41e1-4e79-bbda-f60ed6ea5e11","title":"核心表结构","description":"core-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5cd28776-5ce2-447b-9d47-bdce2f77510a","gmt_create":"2026-08-23T10:13:28.8000515+08:00","gmt_modified":"2026-08-23T10:13:28.8015883+08:00"},{"catalog_id":"33d77277-69da-4fac-b1f1-965c9a4dd565","title":"开发规范","description":"development-standards","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"94d2806b-987e-4c40-a92a-8d3d4ea85c0f","gmt_create":"2026-08-23T10:13:29.9552997+08:00","gmt_modified":"2026-08-23T10:13:29.9568458+08:00"},{"catalog_id":"32bd2f27-0783-4f67-8141-bb72dab51a10","title":"前端配置","description":"frontend-configuration","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"51dc1365-c191-452c-a7e9-5dfb14eda544","gmt_create":"2026-08-23T10:13:36.3624681+08:00","gmt_modified":"2026-08-23T10:13:36.3640033+08:00"},{"catalog_id":"59d5789b-84b9-47ab-ba2a-4de446f854ed","title":"部署方案","description":"deployment-scheme","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"76dd0716-ec37-4dcb-a755-363b3a7e35b9","gmt_create":"2026-08-23T10:14:01.9121768+08:00","gmt_modified":"2026-08-23T10:14:01.9142202+08:00"},{"catalog_id":"a4b27f53-a123-47ed-bc9e-c770506745a4","title":"状态管理","description":"state-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"cf83bb5b-78a3-41ab-b784-4cae3c951c0b","gmt_create":"2026-08-23T10:14:08.8448823+08:00","gmt_modified":"2026-08-23T10:14:08.8464207+08:00"},{"catalog_id":"0a378399-4b1e-4113-b16a-a4a6f557e0b5","title":"行内编辑功能","description":"cell-editing","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5b3cd3c3-598e-4217-8e5e-7519c50fbd3b","gmt_create":"2026-08-23T10:14:21.6265673+08:00","gmt_modified":"2026-08-23T10:14:21.6281193+08:00"},{"catalog_id":"6ebfa59a-db99-4c64-beb2-7b8ef20dc652","title":"表单组件","description":"form-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"c9b5b5ca-543f-472f-b9e6-1ebf9b47c352","gmt_create":"2026-08-23T10:14:42.0934466+08:00","gmt_modified":"2026-08-23T10:14:42.0954925+08:00"},{"catalog_id":"ee1b378f-0b54-474f-a1c2-4a3ec3cd2098","title":"RBAC权限模型","description":"rbac-permission-model","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d659fc27-2722-40c5-a463-7e8448080c30","gmt_create":"2026-08-23T10:14:59.0332882+08:00","gmt_modified":"2026-08-23T10:14:59.0353584+08:00"},{"catalog_id":"51685fcd-b2f0-4495-b832-222c65e2ad2c","title":"后端文件服务","description":"file-service","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"2a2e1303-5793-4bcd-b2a6-b37c7ec01904","gmt_create":"2026-08-23T10:15:01.0316161+08:00","gmt_modified":"2026-08-23T10:15:01.0331759+08:00"},{"catalog_id":"8fc8f675-1057-40eb-b0aa-ee505d1dc024","title":"数据访问层","description":"data-access-layer","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"6469ddbc-e960-4858-8c53-0103a4c76055","gmt_create":"2026-08-23T10:15:37.1379425+08:00","gmt_modified":"2026-08-23T10:15:37.1500176+08:00"},{"catalog_id":"dfe3091b-0051-48ba-ad65-955c494a1db8","title":"后端配置","description":"backend-configuration","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"25a9119b-6187-4940-8ae6-e1f898afc898","gmt_create":"2026-08-23T10:15:37.762936+08:00","gmt_modified":"2026-08-23T10:15:37.76554+08:00"},{"catalog_id":"0c5acefc-c6c9-4e9a-a1a3-db7aa28c3707","title":"数据接口","description":"data-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"6e439df3-8cd6-4c10-811f-ff235a836ead","gmt_create":"2026-08-23T10:15:56.2749105+08:00","gmt_modified":"2026-08-23T10:15:56.2765866+08:00"},{"catalog_id":"1cd5c14e-d821-4138-905f-85e05d0b2420","title":"测试指南","description":"testing-guide","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"242f4c1a-4697-426a-bc5f-e10171cb2b55","gmt_create":"2026-08-23T10:16:14.9184416+08:00","gmt_modified":"2026-08-23T10:16:14.9205496+08:00"},{"catalog_id":"fa2475f4-6311-4744-916d-3e4ef2eaadc9","title":"元数据设计","description":"metadata-model","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"246861d7-0fb5-4298-b394-ccc8627eb601","gmt_create":"2026-08-23T10:16:29.3360102+08:00","gmt_modified":"2026-08-23T10:16:29.337566+08:00"},{"catalog_id":"ce899237-d402-4940-80d6-f3428af67267","title":"监控运维","description":"monitoring-operations","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"577bcda0-ae86-404e-ad20-4ddc508dee55","gmt_create":"2026-08-23T10:16:32.9501829+08:00","gmt_modified":"2026-08-23T10:16:32.9517273+08:00"},{"catalog_id":"1197fda9-1bfc-44d8-89d9-8b099568a839","title":"路由系统","description":"routing-system","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"2682cb78-98d3-4d80-8500-f4419c9b1124","gmt_create":"2026-08-23T10:17:04.1093895+08:00","gmt_modified":"2026-08-23T10:17:04.1118942+08:00"},{"catalog_id":"82cc1b44-fad9-4e9c-bc3e-c076a11f7b2f","title":"数据展示组件","description":"data-display-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"9495a343-d0fc-468a-87c7-115227ff3078","gmt_create":"2026-08-23T10:17:15.8716391+08:00","gmt_modified":"2026-08-23T10:17:15.8736936+08:00"},{"catalog_id":"b8c4463c-798d-4e16-9720-c36524fd1117","title":"列配置系统","description":"column-configuration","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"1585bec1-98e1-42b5-beea-d55ca741cc61","gmt_create":"2026-08-23T10:17:32.013977+08:00","gmt_modified":"2026-08-23T10:17:32.0165704+08:00"},{"catalog_id":"f9283603-ad59-450c-a667-f047f00e235f","title":"文件存储策略","description":"file-storage","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"43a3dbf4-4a96-4b2c-b226-b88f2204de6c","gmt_create":"2026-08-23T10:17:52.2509391+08:00","gmt_modified":"2026-08-23T10:17:52.253609+08:00"},{"catalog_id":"2a7c4c78-c207-43d8-865a-a5bc151b86d8","title":"前端权限控制","description":"frontend-permission-control","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5e424195-102b-439e-a208-9df511602dfe","gmt_create":"2026-08-23T10:18:00.171576+08:00","gmt_modified":"2026-08-23T10:18:00.1736285+08:00"},{"catalog_id":"1435e669-af94-429c-8a40-25644f49c9b9","title":"API设计","description":"api-design","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"2df90fa4-2dda-4fcb-b369-ac902a2ceda0","gmt_create":"2026-08-23T10:18:12.8574816+08:00","gmt_modified":"2026-08-23T10:18:12.8590452+08:00"},{"catalog_id":"36b55ef2-3f5e-471c-b959-cd0094f6b467","title":"文件接口","description":"file-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d57e9d5e-a11c-4d65-b4f1-55b9ec235e26","gmt_create":"2026-08-23T10:18:31.4513361+08:00","gmt_modified":"2026-08-23T10:18:31.4528881+08:00"},{"catalog_id":"4216dd67-765a-4fbc-9379-26dfca51d7e4","title":"环境管理","description":"environment-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"f71f6b18-8161-4f94-bd5e-fd96c70d002d","gmt_create":"2026-08-23T10:18:40.6354852+08:00","gmt_modified":"2026-08-23T10:18:40.6371164+08:00"},{"catalog_id":"98884cea-4625-4071-870e-3d121357fa34","title":"调试排错","description":"debugging-troubleshooting","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5155b37b-3a1a-4462-ba73-37e50d6ed0b7","gmt_create":"2026-08-23T10:19:07.15376+08:00","gmt_modified":"2026-08-23T10:19:07.1574037+08:00"},{"catalog_id":"186e14e1-cc1c-4710-b4ec-949a053761d3","title":"迁移管理","description":"migration-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"177d5baf-2d4b-4ae5-a832-97a2f1d93cb4","gmt_create":"2026-08-23T10:19:14.3380652+08:00","gmt_modified":"2026-08-23T10:19:14.3401262+08:00"},{"catalog_id":"5959b9d9-af79-43fc-a986-2adb356a1eb1","title":"故障处理","description":"troubleshooting","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"0cb76317-7504-4f59-b3aa-b0638cd8116d","gmt_create":"2026-08-23T10:19:22.4401515+08:00","gmt_modified":"2026-08-23T10:19:22.4417209+08:00"},{"catalog_id":"f3b22881-3443-4533-ae47-f51572beb89d","title":"服务层","description":"service-layer","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"7cf61993-39cd-4405-b952-1a4492ee2b6a","gmt_create":"2026-08-23T10:19:45.866496+08:00","gmt_modified":"2026-08-23T10:19:45.8685591+08:00"},{"catalog_id":"6825aeab-d78b-4de5-b8c6-fcb90f2232af","title":"性能优化策略","description":"performance-optimization","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"63c74bce-7d47-4314-a8c7-9a9d94ea85d8","gmt_create":"2026-08-23T10:19:54.8065581+08:00","gmt_modified":"2026-08-23T10:19:54.8091739+08:00"},{"catalog_id":"c9a461fb-cfe0-467e-8bba-1d71a40fbf7d","title":"反馈组件","description":"feedback-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"db1e3b87-1d85-428a-8d7e-530c28b3dc74","gmt_create":"2026-08-23T10:20:13.8987306+08:00","gmt_modified":"2026-08-23T10:20:13.900952+08:00"},{"catalog_id":"d9a27580-938f-41b7-9fd9-3fd167e65910","title":"会话管理","description":"session-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"0c794315-43f6-4465-85be-3907575f3bdb","gmt_create":"2026-08-23T10:20:30.4375501+08:00","gmt_modified":"2026-08-23T10:20:30.440146+08:00"},{"catalog_id":"1efc7abb-3ae2-4234-81ef-359d0b05589e","title":"文件预览功能","description":"file-preview","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"b45d8549-cc18-414a-98cb-9af50a95db47","gmt_create":"2026-08-23T10:20:38.3832028+08:00","gmt_modified":"2026-08-23T10:20:38.385267+08:00"},{"catalog_id":"602622c8-d8e2-4a38-b9b9-5c7b9404c180","title":"安全认证","description":"security-authentication","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"a6604d7f-2351-40ba-ab86-117255d62b3b","gmt_create":"2026-08-23T10:20:47.2180266+08:00","gmt_modified":"2026-08-23T10:20:47.2190985+08:00"},{"catalog_id":"d283d56b-1592-4600-a55e-5a581b02ca52","title":"多租户设计","description":"multi-tenant-design","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d49fa2f6-6d5a-43bf-8afb-b614d9a45b0d","gmt_create":"2026-08-23T10:21:10.0247903+08:00","gmt_modified":"2026-08-23T10:21:10.0273645+08:00"},{"catalog_id":"e336a373-66e5-4790-b912-d807ca6ea88d","title":"组件系统","description":"component-system","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"c3c42189-bb9b-4be6-8713-10630657c8d1","gmt_create":"2026-08-23T10:21:16.5025864+08:00","gmt_modified":"2026-08-23T10:21:16.5046123+08:00"},{"catalog_id":"1a89ab71-68d7-4fec-a06a-6df210abd307","title":"事件处理机制","description":"event-handling","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"89a1510f-1d2a-404a-9078-ca469e784200","gmt_create":"2026-08-23T10:21:29.4000324+08:00","gmt_modified":"2026-08-23T10:21:29.4015867+08:00"},{"catalog_id":"07cf91ce-bbb2-427d-a267-9329b7389c8d","title":"服务层","description":"service-layer","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"168b851f-0ade-4bac-8cf8-e9a0b1dd66ba","gmt_create":"2026-08-23T10:22:00.5601097+08:00","gmt_modified":"2026-08-23T10:22:00.5622169+08:00"},{"catalog_id":"e72440f3-4718-40d4-8ed4-980c41cdd9b6","title":"布局组件","description":"layout-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"a77c5c1b-f5df-4ebd-807a-fafcb6c54c0e","gmt_create":"2026-08-23T10:22:07.5683067+08:00","gmt_modified":"2026-08-23T10:22:07.5708516+08:00"},{"catalog_id":"de616a2e-8182-4f48-807c-29300d5bac57","title":"主题系统","description":"theme-system","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"d7203e41-a8eb-4700-90f5-27cf610a98c8","gmt_create":"2026-08-23T10:22:09.5190916+08:00","gmt_modified":"2026-08-23T10:22:09.5206626+08:00"},{"catalog_id":"094501b7-35ba-444b-a03d-15f87be0edfe","title":"组件工具集","description":"component-utilities","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"8387757a-ebb9-472f-84fa-528901aaa844","gmt_create":"2026-08-23T10:22:47.7412484+08:00","gmt_modified":"2026-08-23T10:22:47.7432968+08:00"},{"catalog_id":"19c38053-7b19-45b1-9719-201f8883ac9d","title":"表单容器与验证","description":"form-container-validation","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"fceb0297-2ad4-4242-84c7-d2bdce01d9b1","gmt_create":"2026-08-23T10:22:48.1915135+08:00","gmt_modified":"2026-08-23T10:22:48.1930678+08:00"},{"catalog_id":"a9f3088d-ca48-4bd6-aff2-742a987df4f3","title":"UI基础组件","description":"ui-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"19fc0074-cfe5-49bc-89aa-05bf144c0d3e","gmt_create":"2026-08-23T10:23:02.2316813+08:00","gmt_modified":"2026-08-23T10:23:02.2347569+08:00"},{"catalog_id":"fde03f6e-ad33-4dbd-9e7d-61e479bf3be9","title":"标签页组件","description":"tabs-component","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"f425a10a-7798-4e3f-85b0-f883d343d625","gmt_create":"2026-08-23T10:23:33.3864545+08:00","gmt_modified":"2026-08-23T10:23:33.3885012+08:00"},{"catalog_id":"ad230af2-6fef-452d-a8c2-20002e091087","title":"路由级权限控制","description":"route-permission-control","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"5556be66-8401-44b9-a1ea-a1df560fd2a6","gmt_create":"2026-08-23T10:23:40.9491496+08:00","gmt_modified":"2026-08-23T10:23:40.9512138+08:00"},{"catalog_id":"d93ca977-cd32-4551-af96-450a3e1faab2","title":"权限数据模型","description":"permission-data-model","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"ad8cc938-6e22-4af1-9972-860aebab4082","gmt_create":"2026-08-23T10:23:42.6502061+08:00","gmt_modified":"2026-08-23T10:23:42.6522888+08:00"},{"catalog_id":"3566896b-b3ea-40ab-9825-b15d31b82552","title":"认证服务","description":"auth-service","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"3d75207d-94ee-45d0-a698-6096ae02b443","gmt_create":"2026-08-23T10:24:19.9500083+08:00","gmt_modified":"2026-08-23T10:24:19.9520678+08:00"},{"catalog_id":"7a20ada4-a22e-4de8-8ccb-898fc5587449","title":"数据查询接口","description":"data-query-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"36434342-6bb3-4f99-88e9-107551c977c1","gmt_create":"2026-08-23T10:24:33.6542023+08:00","gmt_modified":"2026-08-23T10:24:33.655756+08:00"},{"catalog_id":"c605d0ca-a637-4ab1-88d9-343a08dbab83","title":"元数据驱动的数据访问","description":"metadata-driven-access","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"55d8c0f4-616e-41c0-8b6f-a2f71830b048","gmt_create":"2026-08-23T10:24:39.4753723+08:00","gmt_modified":"2026-08-23T10:24:39.4775546+08:00"},{"catalog_id":"f721b533-9cae-44b2-bf33-cded00adff00","title":"用户权限表","description":"user-permission-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"f441c941-9cb5-41f1-a0cc-3026a6cdb2e7","gmt_create":"2026-08-23T10:25:17.1710946+08:00","gmt_modified":"2026-08-23T10:25:17.1721374+08:00"},{"catalog_id":"4587c9bc-ccea-4b4b-9bfa-9cce63271896","title":"输入控件","description":"input-controls","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"17319f00-0b03-4719-b63d-27411e3111a1","gmt_create":"2026-08-23T10:25:24.8889081+08:00","gmt_modified":"2026-08-23T10:25:24.8909663+08:00"},{"catalog_id":"b1b8134d-f4fa-43a8-92b0-b470b159bb8f","title":"业务组件","description":"business-components","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"8d7a0b2f-5dc4-4298-85c8-c24a1414949c","gmt_create":"2026-08-23T10:25:26.9407252+08:00","gmt_modified":"2026-08-23T10:25:26.9422752+08:00"},{"catalog_id":"4b10e48a-355a-4c9f-b4e3-80fb08157fa8","title":"权限计算引擎","description":"permission-calculation-engine","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"df589577-99f3-422f-aba7-b3bf59bab705","gmt_create":"2026-08-23T10:26:01.5947484+08:00","gmt_modified":"2026-08-23T10:26:01.5968057+08:00"},{"catalog_id":"db43c502-3815-4dfa-8930-47d936cfd148","title":"树形组件","description":"tree-component","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"ea559159-90fb-447e-83d1-76fa0ae6cdaf","gmt_create":"2026-08-23T10:26:11.4038831+08:00","gmt_modified":"2026-08-23T10:26:11.4049621+08:00"},{"catalog_id":"d9dc9711-5a86-47d2-ba3e-3d7c928912cb","title":"按钮级权限控制","description":"button-permission-control","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"8cca292a-a35f-4cb3-bce8-190ddeebc765","gmt_create":"2026-08-23T10:26:18.5000626+08:00","gmt_modified":"2026-08-23T10:26:18.501781+08:00"},{"catalog_id":"42863f5d-9615-4be8-b0da-3c3763029507","title":"文件服务","description":"file-service","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"259c78e8-21b1-43dd-8fa4-0e8a18760af6","gmt_create":"2026-08-23T10:26:43.0981371+08:00","gmt_modified":"2026-08-23T10:26:43.1001976+08:00"},{"catalog_id":"84ec77dc-c63d-4b53-a68e-47d9d7d46ec9","title":"多租户数据隔离","description":"multi-tenant-isolation","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"78b9b2e1-da91-4fa2-9ef0-82a33f390ea2","gmt_create":"2026-08-23T10:26:56.2123833+08:00","gmt_modified":"2026-08-23T10:26:56.2144658+08:00"},{"catalog_id":"ae31806d-11ac-40a3-827b-d25965793a99","title":"数据保存接口","description":"data-save-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"c69f75da-fb83-4b5d-94db-746b8223d68b","gmt_create":"2026-08-23T10:27:10.9496043+08:00","gmt_modified":"2026-08-23T10:27:10.9513502+08:00"},{"catalog_id":"3a0ffd08-e641-40d7-adcb-84c9b3aca174","title":"模块配置表","description":"module-configuration-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"ca158a11-c905-4b2e-81c6-f80e0d831a2f","gmt_create":"2026-08-23T10:27:32.1330499+08:00","gmt_modified":"2026-08-23T10:27:32.1346956+08:00"},{"catalog_id":"750de84c-60f5-4aff-817e-4e5187cae7d3","title":"选择控件","description":"selection-controls","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"581bbf3c-5c0a-42a3-86cc-318679976c64","gmt_create":"2026-08-23T10:27:50.6076522+08:00","gmt_modified":"2026-08-23T10:27:50.6112816+08:00"},{"catalog_id":"693b9803-8cf5-4ac2-9c46-08d68d97e4a4","title":"权限配置管理","description":"permission-configuration-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"dbd03d0c-9d68-44ba-b627-fe42d9882eaa","gmt_create":"2026-08-23T10:28:08.9199548+08:00","gmt_modified":"2026-08-23T10:28:08.9232479+08:00"},{"catalog_id":"f7f5c5ce-b75d-445d-9123-27d2feb9b15e","title":"分页器组件","description":"pagination-component","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"2bbb242a-088e-4651-b790-acf0c6d0112c","gmt_create":"2026-08-23T10:28:16.6337993+08:00","gmt_modified":"2026-08-23T10:28:16.6353323+08:00"},{"catalog_id":"7bbd2e75-8dc5-478b-a6c3-c7558f44cf3f","title":"数据级权限控制","description":"data-permission-control","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"2dc53ef7-90cd-4776-acb0-cfff15f269bb","gmt_create":"2026-08-23T10:28:36.7505119+08:00","gmt_modified":"2026-08-23T10:28:36.7520468+08:00"},{"catalog_id":"b110d149-467a-46e9-b347-6fcabaf328a5","title":"登录日志服务","description":"login-log-service","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"c9eb034b-304f-47b0-9ed8-eb29cee6432c","gmt_create":"2026-08-23T10:28:48.971925+08:00","gmt_modified":"2026-08-23T10:28:48.9734607+08:00"},{"catalog_id":"c59d80f3-107f-470c-aad1-05783a3dfbfd","title":"数据库工具类","description":"database-utilities","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"ad80f803-1713-4bda-a410-b00d62ec11c6","gmt_create":"2026-08-23T10:29:09.5990582+08:00","gmt_modified":"2026-08-23T10:29:09.6005983+08:00"},{"catalog_id":"0caa5971-3daa-41a4-9535-daa6de45e201","title":"数据工具接口","description":"data-utility-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"102b124b-ffa6-4999-b52b-1a6d5a11652b","gmt_create":"2026-08-23T10:29:16.1921433+08:00","gmt_modified":"2026-08-23T10:29:16.193725+08:00"},{"catalog_id":"cde16bb0-c528-4784-b472-ddb9534bd952","title":"菜单系统表","description":"menu-system-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"ae4b224d-9350-4fa8-b951-0ea51cf6b934","gmt_create":"2026-08-23T10:29:45.8375155+08:00","gmt_modified":"2026-08-23T10:29:45.839613+08:00"},{"catalog_id":"3eb26c24-b432-46fc-8486-5f9035e0e0a0","title":"栅格布局系统","description":"grid-layout","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"9ee8e3bb-c661-432b-b67d-e151cddf2054","gmt_create":"2026-08-23T10:29:53.4276165+08:00","gmt_modified":"2026-08-23T10:29:53.4286434+08:00"},{"catalog_id":"636c2b0b-dab5-48e5-80fa-8b85a2c041f1","title":"权限状态管理","description":"permission-state-management","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"07664610-128c-45fe-b292-9bb13ba1471b","gmt_create":"2026-08-23T10:30:04.1333017+08:00","gmt_modified":"2026-08-23T10:30:04.140035+08:00"},{"catalog_id":"2800e1ea-7e36-4470-89de-342bc041cd8c","title":"数据持久化服务","description":"data-persistence","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"aa025a49-3298-4a65-a1b3-7d6d9b2e3e0b","gmt_create":"2026-08-23T10:30:40.1708461+08:00","gmt_modified":"2026-08-23T10:30:40.1724037+08:00"},{"catalog_id":"82b26053-f107-4af2-92fd-91793f59cd32","title":"数据服务","description":"data-service","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"59a72896-54ba-4535-9999-da7c7fdc7ed3","gmt_create":"2026-08-23T10:30:45.0769278+08:00","gmt_modified":"2026-08-23T10:30:45.0789999+08:00"},{"catalog_id":"38857de6-f4da-467c-bee5-397379339e4f","title":"元数据接口","description":"data-metadata-api","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"20d20b62-308f-4801-a61f-bb0fbc47f005","gmt_create":"2026-08-23T10:31:01.7294634+08:00","gmt_modified":"2026-08-23T10:31:01.7310236+08:00"},{"catalog_id":"594d86fb-e4be-4b62-8752-42f84e11e9ad","title":"关系映射表","description":"relation-mapping-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"1fa86f0b-0a70-4de0-b6fe-5e9157a5edea","gmt_create":"2026-08-23T10:31:26.1583063+08:00","gmt_modified":"2026-08-23T10:31:26.1598572+08:00"},{"catalog_id":"c99dc2c8-cb94-4637-91dc-173be4c475d3","title":"系统支撑表","description":"system-support-tables","extend":"{}","progress_status":"completed","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603","reference_count":0,"id":"588708c6-45f8-4b23-81ef-74e4a8f41c4c","gmt_create":"2026-08-23T10:31:35.7950824+08:00","gmt_modified":"2026-08-23T10:31:35.797155+08:00"}],"wiki_overview":{"content":"\u003c/think\u003e\n\n\u003cblog\u003e\n# FMS 财务管理系统项目架构分析\n\n## 1. 项目介绍\n\nFMS(Financial Management System)是一个现代化的企业级财务管理系统,采用前后端分离的架构设计。该项目旨在为企业提供一个功能完整、可扩展性强的财务管理解决方案,涵盖用户认证、权限管理、模块配置、数据管理等核心业务功能。\n\n### 核心目标\n- 提供灵活的模块化架构支持\n- 实现元数据驱动的动态表单和表格\n- 支持多租户和多机构管理\n- 提供完整的文件管理和附件处理能力\n- 支持国际化和本地化\n\n### 目标用户\n- 企业财务人员\n- 系统管理员\n- 业务部门用户\n\n## 2. 技术架构\n\n### 整体架构图\n\n```mermaid\ngraph TD\n A[前端应用 Vue 3] --\u003e B[API 网关 /api]\n B --\u003e C[Spring Boot 后端]\n C --\u003e D[数据库层]\n C --\u003e E[文件存储]\n \n subgraph \"前端层\"\n A1[Vite + Vue 3]\n A2[Pinia 状态管理]\n A3[Vue Router 路由]\n A4[自定义组件库]\n end\n \n subgraph \"后端层\"\n C1[Spring Boot 4.1]\n C2[JWT 认证]\n C3[Druid 连接池]\n C4[雪花算法ID生成]\n end\n \n subgraph \"数据层\"\n D1[SQL Server]\n D2[Flyway 迁移]\n end\n \n A --\u003e A1\n A --\u003e A2\n A --\u003e A3\n A --\u003e A4\n C --\u003e C1\n C --\u003e C2\n C --\u003e C3\n C --\u003e C4\n D --\u003e D1\n D --\u003e D2\n```\n\n### 前端架构\n\n```mermaid\ngraph LR\n A[App.vue] --\u003e B[DefaultLayout]\n B --\u003e C[路由守卫]\n B --\u003e D[状态管理]\n B --\u003e E[组件库]\n \n C --\u003e F[AuthStore]\n C --\u003e G[PermissionStore]\n \n E --\u003e H[FmsTable]\n E --\u003e I[FmsFile]\n E --\u003e J[UI 组件]\n \n D --\u003e K[主题管理]\n D --\u003e L[国际化]\n```\n\n### 后端架构\n\n```mermaid\nsequenceDiagram\n Client as 客户端\n Auth as 认证服务\n Data as 数据服务\n DB as 数据库\n \n Client-\u003e\u003e+Auth: 登录请求\n Auth-\u003e\u003e+DB: 验证用户信息\n DB--\u003e\u003e-Auth: 返回用户数据\n Auth--\u003e\u003e-Client: JWT Token\n \n Client-\u003e\u003e+Data: 业务请求\n Data-\u003e\u003e+DB: 查询/操作数据\n DB--\u003e\u003e-Data: 返回结果\n Data--\u003e\u003e-Client: 业务响应\n```\n\n## 3. 核心实现\n\n### 主要入口点\n\n**后端入口**: `fms-api/src/main/java/cn/g3soft/fmsapi/FmsApiApplication.java`\n- Spring Boot 应用启动类\n- 初始化雪花算法ID生成器\n- 配置扫描和自动装配\n\n**前端入口**: `fms-vue/src/main.js`\n- Vue 3 应用初始化\n- Pinia 状态管理配置\n- 路由和主题同步初始化\n- 开发环境FPS监控集成\n\n### 核心模块\n\n**认证模块**: `fms-api/src/main/java/cn/g3soft/fmsapi/controller/AuthController.java`\n- JWT令牌管理\n- 用户身份验证\n- 会话状态管理\n\n**表格组件**: `fms-vue/src/components/fms-table/FmsTable.vue`\n- 基于stk-table-vue的高性能表格\n- 虚拟滚动优化\n- 行内编辑功能\n- 列拖拽排序\n- 响应式布局适配\n\n**状态管理**: `fms-vue/src/stores/auth.js`\n- 用户会话管理\n- 本地存储持久化\n- 跨标签页状态同步\n\n### 配置管理\n\n**后端配置**: `fms-api/src/main/resources/application.yaml`\n- 服务器端口和上下文路径\n- JWT密钥和过期时间\n- 数据库连接池配置\n- 文件存储策略\n\n**前端构建**: `fms-vue/vite.config.js`\n- Vite 开发服务器配置\n- API代理设置\n- 路径别名配置\n\n### 外部依赖\n\n**后端依赖**: `fms-api/pom.xml`\n- Spring Boot 4.1.0\n- Druid 1.2.18 连接池\n- JWT 0.12.6 认证\n- SQL Server JDBC驱动\n- IP地址解析库\n\n**前端依赖**: `fms-vue/package.json`\n- Vue 3.5.41 框架\n- Pinia 4.0.3 状态管理\n- Axios 1.19.0 HTTP客户端\n- Stk-table-vue 1.1.0 表格组件\n\n### 集成点\n\n**数据库迁移**: `fms-api/config/migrations/`\n- Flyway版本控制\n- 业务表结构定义\n- 数据初始化脚本\n\n**路由配置**: `fms-vue/src/router/index.js`\n- 动态路由加载\n- 权限守卫机制\n- 懒加载优化\n\n## 4. 核心特性\n\n### 功能概览\n\n**元数据驱动架构**\n- 通过`s_module`和`s_field`表定义业务模块和字段\n- 动态生成表单和表格界面\n- 支持多种字段类型和编辑器\n\n**多租户支持**\n- 基于机构码(orgId)的数据隔离\n- 独立的用户会话管理\n- 灵活的权限控制机制\n\n**高性能表格**\n- 虚拟滚动支持大数据集\n- 行内编辑和批量操作\n- 响应式布局和自适应\n\n### 实现亮点\n\n**智能缓存机制**: `fms-vue/src/utils/cacheKey.js`\n- 基于路由参数的页面缓存\n- 智能缓存失效策略\n- 内存泄漏防护\n\n**主题系统**: `fms-vue/src/theme/`\n- 深浅色模式切换\n- CSS变量主题定制\n- 运行时主题更新\n\n**文件管理**: `fms-vue/src/components/fms-file/`\n- 多格式文件预览\n- 分类管理和搜索\n- 拖拽上传和批量操作\n\n### 特性架构图\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e 未登录\n 未登录 --\u003e 登录中: 提交登录\n 登录中 --\u003e 已登录: 认证成功\n 登录中 --\u003e 未登录: 认证失败\n 已登录 --\u003e 操作中: 访问资源\n 操作中 --\u003e 已登录: 操作完成\n 已登录 --\u003e 未登录: 退出登录\n```\n\n## 5. 项目特色\n\n### 现代化技术栈\n- 前端采用Vue 3 + TypeScript + Vite\n- 后端使用Spring Boot 4.1 + Java 21\n- 数据库使用SQL Server + Flyway迁移\n\n### 企业级功能\n- 完整的RBAC权限控制系统\n- 多租户数据隔离\n- 审计日志和登录记录\n- 国际化支持\n\n### 开发体验优化\n- 热重载和快速编译\n- 完善的测试覆盖\n- 代码规范和自动格式化\n- 详细的API文档\n\n### 部署和运维\n- Docker容器化支持\n- 环境变量配置管理\n- 健康检查和监控指标\n- 日志收集和错误追踪\n\n这个FMS项目展现了现代企业级Web应用的完整实现,从前端到后端,从数据库到部署,提供了丰富的功能和良好的开发体验。项目采用了业界最佳实践,具有良好的可维护性和扩展性。\n\n\u003c/blog\u003e","gmt_create":"2026-08-23T10:04:20.201272+08:00","gmt_modified":"2026-08-23T10:04:20.201272+08:00","id":"96fa61b5-7076-4fb0-b4b7-c5e0a151066f","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603"},"wiki_readme":{"content":"No readme file","gmt_create":"2026-08-23T10:03:44.0407734+08:00","gmt_modified":"2026-08-23T10:03:44.0407734+08:00","id":"97b16011-624e-4629-a4e0-09804c3c907b","repo_id":"57d491cc-feb2-4c16-a509-51b5cc988603"},"wiki_repo":{"id":"57d491cc-feb2-4c16-a509-51b5cc988603","name":"fms","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── .codebuddy\\\\plans\\\\\\n│ ├── button-enhance_280ee511.md\\n│ ├── date-picker-component_04c90160.md\\n│ ├── dropdown-component_025932fb.md\\n│ ├── dropdown-enhance_866d28ec.md\\n│ ├── fms-vue-tabs_bc485ecf.md\\n│ ├── fms-vue业务架构搭建_78ce3d64.md\\n│ ├── form-component_85d80607.md\\n│ ├── grid-component_4ffa227b(未完成).md\\n│ ├── grid-component_7691bf3e.md\\n│ ├── grid-fix_e25ef138.md\\n│ ├── input-component_ddf8a08f.md\\n│ ├── layouts-dark-light-adaptation_aa221499.md\\n│ ├── message-notification-components_11d5494a.md\\n│ ├── migrate-default-layout_5046b992.md\\n│ ├── modal-drawer-components_ff3d0a3c.md\\n│ ├── pagination-component_b3c90f94(未完成).md\\n│ ├── select-tooltip-components_ad1fad70.md\\n│ ├── spin-component_97283c1c.md\\n│ ├── tree-component_c7b641f1.md\\n│ ├── 主题色切换与深浅色模式_9791a922.md\\n│ └── 新增_checkbox_radio_switch_组件_7a942788.md\\n├── .fps-probe\\\\\\n│ ├── debug-edit.mjs\\n│ ├── measure-wheel-js.mjs\\n│ ├── measure-wheel.mjs\\n│ ├── measure.mjs\\n│ ├── package.json\\n│ ├── swap-cellrenderer.ps1\\n│ └── trace.mjs\\n├── .playwright-cli\\\\\\n│ ├── analyze-dialog-lines.mjs\\n│ ├── check-demo.mjs\\n│ ├── check-filecard-css.mjs\\n│ ├── check-module.mjs\\n│ ├── check-module2.mjs\\n│ ├── check-module3.mjs\\n│ ├── check-module4.mjs\\n│ ├── check-module5.mjs\\n│ ├── debug-login.mjs\\n│ ├── inspect-dialog-bars.mjs\\n│ ├── inspect-ff-element.mjs\\n│ ├── inspect-ff-state2.mjs\\n│ ├── inspect-fmsfile.mjs\\n│ ├── inspect-fmsfile2.mjs\\n│ ├── inspect-fmsfile3.mjs\\n│ ├── inspect-footer.mjs\\n│ ├── inspect-grid.mjs\\n│ ├── inspect-panel-props.mjs\\n│ ├── inspect-panel-props2.mjs\\n│ ├── inspect-panel-props3.mjs\\n│ ├── inspect-splitter-state.mjs\\n│ ├── inspect-vue-root.mjs\\n│ ├── measure-dialog.mjs\\n│ ├── nav-debug.mjs\\n│ ├── page-2026-08-16T13-33-44-993Z.yml\\n│ ├── page-2026-08-16T13-34-48-693Z.yml\\n│ ├── page-2026-08-16T13-37-43-811Z.yml\\n│ ├── page-2026-08-16T13-47-50-177Z.yml\\n│ ├── page-2026-08-16T13-53-24-969Z.yml\\n│ ├── page-2026-08-16T14-00-59-110Z.yml\\n│ ├── pixel-scan-dialog.mjs\\n│ ├── pixel-scan2.mjs\\n│ ├── pixel-scan3.mjs\\n│ ├── verify-fixes.mjs\\n│ ├── verify-layout.mjs\\n│ └── walk-dialog-dom.mjs\\n├── .tmp-fkcheck\\\\\\n│ ├── BUserRebuild.java\\n│ ├── BUserStruct.java\\n│ ├── DbState.java\\n│ ├── DropFks.java\\n│ ├── DropOrgId.java\\n│ ├── DropOrgId2.java\\n│ ├── FkCheck.java\\n│ ├── FkCount.java\\n│ ├── FkPairs.java\\n│ ├── FkSummary.java\\n│ ├── G3SoftCheck.java\\n│ ├── G3SoftSetup.java\\n│ ├── IndexSurvey.java\\n│ ├── LogCols.java\\n│ ├── LogFilterTest.java\\n│ ├── LogPkShow.java\\n│ ├── LogRebuild.java\\n│ ├── LogStruct.java\\n│ ├── LoginLogWriteTest.java\\n│ ├── MigrateGen.java\\n│ ├── MigrateRun.java\\n│ ├── MigrateRun2.java\\n│ ├── OrgIdSurvey.java\\n│ ├── PkSurvey.java\\n│ ├── RefreshViews.java\\n│ ├── SimplifyG3Soft.java\\n│ ├── SimplifyG3Soft2.java\\n│ ├── SimplifyG3Soft3.java\\n│ ├── TableSurvey.java\\n│ ├── TblCheck.java\\n│ ├── UserCheck.java\\n│ ├── UserMigrate.java\\n│ ├── Verify.java\\n│ ├── backup_b_user.sql\\n│ ├── migrate_identity_to_snowflake.sql\\n│ └── restore_fks.sql\\n├── fms-api\\\\\\n│ ├── .mvn\\\\wrapper\\\\\\n│ │ └── maven-wrapper.properties\\n│ ├── config\\\\\\n│ │ ├── dbconfigs\\\\\\n│ │ │ ├── G3HD.properties\\n│ │ │ ├── G3HY2025.properties\\n│ │ │ └── README.md\\n│ │ ├── migrations\\\\\\n│ │ │ ├── tools\\\\\\n│ │ │ │ ├── ApplySimpleModuleRestore.java\\n│ │ │ │ ├── GenerateBusinessMigrations.java\\n│ │ │ │ ├── RunBusinessMigrations.java\\n│ │ │ │ └── VerifyBusinessMigration.java\\n│ │ │ ├── 000_reset_metadata.sql\\n│ │ │ ├── 001_add_i18n_type.sql\\n│ │ │ ├── 002_add_system_dir.sql\\n│ │ │ ├── 003_create_login_log.sql\\n│ │ │ ├── 004_rename_module_tables.sql\\n│ │ │ ├── 005_cascade_user_power.sql\\n│ │ │ ├── 006_add_i18n_module_id.sql\\n│ │ │ ├── 007_remove_check_constraints.sql\\n│ │ │ ├── 008_add_edit_visible.sql\\n│ │ │ ├── 009_add_module_auto_code.sql\\n│ │ │ ├── 010_normalize_auto_code_rule.sql\\n│ │ │ ├── 011_migrate_othercompany.sql\\n│ │ │ ├── 012_add_othercompany_module.sql\\n│ │ │ ├── 013_drop_bmfl_bcode.sql\\n│ │ │ ├── 014_migrate_contact.sql\\n│ │ │ ├── 015_normalize_existing_business_tables.sql\\n│ │ │ ├── 016_create_base_tables.sql\\n│ │ │ ├── 017_create_contract_file_tables.sql\\n│ │ │ ├── 018_create_business_tables.sql\\n│ │ │ ├── 019_create_finance_tables.sql\\n│ │ │ ├── 020_create_oa_tables.sql\\n│ │ │ ├── 021_create_business_views.sql\\n│ │ │ ├── 022_add_otherdata_module.sql\\n│ │ │ ├── 023_add_otherdata_bmfl_module_code.sql\\n│ │ │ ├── 024_drop_unused_b_other.sql\\n│ │ │ ├── 025_add_otherdata_category_i18n.sql\\n│ │ │ ├── 026_normalize_otherdata_tree_reference.sql\\n│ │ │ ├── 027_add_othercompany_category_i18n.sql\\n│ │ │ ├── 028_add_edit_width.sql\\n│ │ │ ├── 029_add_otherdata_sort_field.sql\\n│ │ │ ├── 030_drop_otherdata_category_i18n.sql\\n│ │ │ ├── 031_drop_othercompany_category_i18n.sql\\n│ │ │ ├── 032_rebuild_otherdata.sql\\n│ │ │ ├── 033_drop_unused_b_other_bmfl.sql\\n│ │ │ ├── 035_restore_simple_module_tree.sql\\n│ │ │ ├── 036_add_module_icon.sql\\n│ │ │ ├── 037_add_field_edit_colspan.sql\\n│ │ │ ├── 038_add_form_design_layout.sql\\n│ │ │ ├── 039_add_field_edit_placeholder.sql\\n│ │ │ ├── 100_initialize_fms_new.sql\\n│ │ │ ├── 101_drop_physical_foreign_keys.sql\\n│ │ │ └── verify_business_schema.sql\\n│ │ └── legacy-tls.security\\n│ ├── data\\\\files\\\\G3HD\\\\2026\\\\08\\\\02\\\\\\n│ ├── src\\\\\\n│ │ ├── main\\\\\\n│ │ │ ├── java\\\\cn\\\\g3soft\\\\fmsapi\\\\\\n│ │ │ │ ├── config\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── controller\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── database\\\\\\n│ │ │ │ │ └── ... 7 files, 0 dirs not shown\\n│ │ │ │ ├── exception\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── service\\\\\\n│ │ │ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 9 files, 1 dirs not shown\\n│ │ │ │ └── FmsApiApplication.java\\n│ │ │ └── resources\\\\\\n│ │ │ ├── db\\\\migration\\\\\\n│ │ │ ├── application.yaml\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── test\\\\java\\\\cn\\\\g3soft\\\\fmsapi\\\\\\n│ │ ├── database\\\\\\n│ │ │ ├── OrgDataSourceFactoryTests.java\\n│ │ │ └── OrgDatabaseConfigLoaderTests.java\\n│ │ ├── exception\\\\\\n│ │ │ └── GlobalExceptionHandlerTests.java\\n│ │ ├── mock\\\\\\n│ │ ├── service\\\\\\n│ │ │ ├── ActiveSessionRegistryTests.java\\n│ │ │ ├── AuthServiceTests.java\\n│ │ │ └── DataSaveServiceTests.java\\n│ │ ├── utils\\\\\\n│ │ │ ├── snowflake\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ └── JwtUtilsTests.java\\n│ │ └── FmsApiApplicationTests.java\\n│ ├── target\\\\\\n│ ├── tools\\\\migration\\\\\\n│ │ ├── FieldNameSync.java\\n│ │ ├── OtherDataMigration.java\\n│ │ └── README.md\\n│ ├── .gitattributes\\n│ ├── .gitignore\\n│ ├── HELP.md\\n│ ├── mvnw.cmd\\n│ ├── pom.xml\\n│ └── start.cmd\\n├── fms-demo\\\\\\n│ └── index.html\\n├── fms-vue\\\\\\n│ ├── .playwright-cli\\\\\\n│ │ └── page-2026-08-21T15-03-43-736Z.yml\\n│ ├── coverage\\\\\\n│ │ ├── src\\\\\\n│ │ │ ├── components\\\\\\n│ │ │ │ ├── fms-file\\\\\\n│ │ │ │ │ └── ... 9 files, 1 dirs not shown\\n│ │ │ │ ├── fms-table\\\\\\n│ │ │ │ │ └── ... 2 files, 1 dirs not shown\\n│ │ │ │ ├── ui\\\\\\n│ │ │ │ │ └── ... 0 files, 25 dirs not shown\\n│ │ │ │ ├── FpsMonitor.vue.html\\n│ │ │ │ └── index.html\\n│ │ │ ├── composables\\\\\\n│ │ │ │ ├── index.html\\n│ │ │ │ └── useHotkeys.js.html\\n│ │ │ ├── layouts\\\\\\n│ │ │ │ ├── components\\\\\\n│ │ │ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ │ │ ├── DefaultLayout.vue.html\\n│ │ │ │ └── index.html\\n│ │ │ ├── router\\\\\\n│ │ │ │ ├── index.html\\n│ │ │ │ └── index.js.html\\n│ │ │ ├── services\\\\\\n│ │ │ │ ├── api.js.html\\n│ │ │ │ ├── fileService.js.html\\n│ │ │ │ ├── http.js.html\\n│ │ │ │ └── index.html\\n│ │ │ ├── stores\\\\\\n│ │ │ │ ├── app.js.html\\n│ │ │ │ ├── auth.js.html\\n│ │ │ │ ├── index.html\\n│ │ │ │ └── permissions.js.html\\n│ │ │ ├── theme\\\\\\n│ │ │ │ ├── index.html\\n│ │ │ │ └── index.js.html\\n│ │ │ ├── utils\\\\\\n│ │ │ │ ├── cacheKey.js.html\\n│ │ │ │ ├── dataChanges.js.html\\n│ │ │ │ ├── i18n.js.html\\n│ │ │ │ ├── index.html\\n│ │ │ │ ├── lucideIcons.js.html\\n│ │ │ │ ├── tempId.js.html\\n│ │ │ │ └── tree.js.html\\n│ │ │ ├── views\\\\\\n│ │ │ │ ├── dashboard\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── demo\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── detail\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── file-demo\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── login\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── system\\\\module-management\\\\\\n│ │ │ │ │ └── ... 3 files, 1 dirs not shown\\n│ │ │ │ └── test\\\\\\n│ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ ├── App.vue.html\\n│ │ │ └── index.html\\n│ │ ├── base.css\\n│ │ ├── block-navigation.js\\n│ │ ├── index.html\\n│ │ ├── prettify.css\\n│ │ └── sorter.js\\n│ ├── dist\\\\\\n│ ├── dist-verify\\\\\\n│ │ ├── assets\\\\\\n│ │ │ ├── DetailPage-CPS2uQnT.css\\n│ │ │ ├── DetailPage-PAKENwsz.js\\n│ │ │ ├── TestPage-BzUOxgNd.js\\n│ │ │ ├── TestPage-D29xDZyY.css\\n│ │ │ ├── dashboard-CTHuUD5R.css\\n│ │ │ ├── ellipsis-L7OwxGNk.js\\n│ │ │ ├── key-round-Clu6pxkV.js\\n│ │ │ ├── layout-dashboard-w_HDw36h.js\\n│ │ │ ├── list-BgBGaF-7.js\\n│ │ │ ├── login-CTujicRd.css\\n│ │ │ ├── search-BjB3iIMF.js\\n│ │ │ ├── upload-Bto-rthq.js\\n│ │ │ ├── useApi-CROJJdhE-CTbvzpbW.js\\n│ │ │ └── user-BchT3xDG.js\\n│ │ ├── index.html\\n│ │ └── module-management-layout-demo.html\\n│ ├── dist-verify2\\\\\\n│ │ ├── assets\\\\\\n│ │ │ ├── DetailPage-CPS2uQnT.css\\n│ │ │ ├── DetailPage-PAKENwsz.js\\n│ │ │ ├── TestPage-BzUOxgNd.js\\n│ │ │ ├── TestPage-D29xDZyY.css\\n│ │ │ ├── dashboard-CTHuUD5R.css\\n│ │ │ ├── ellipsis-L7OwxGNk.js\\n│ │ │ ├── key-round-Clu6pxkV.js\\n│ │ │ ├── layout-dashboard-w_HDw36h.js\\n│ │ │ ├── list-BgBGaF-7.js\\n│ │ │ ├── login-CTujicRd.css\\n│ │ │ ├── search-BjB3iIMF.js\\n│ │ │ ├── upload-Bto-rthq.js\\n│ │ │ ├── useApi-CROJJdhE-CTbvzpbW.js\\n│ │ │ └── user-BchT3xDG.js\\n│ │ ├── index.html\\n│ │ └── module-management-layout-demo.html\\n│ ├── docs\\\\\\n│ ├── node_modules\\\\\\n│ ├── public\\\\\\n│ │ └── module-management-layout-demo.html\\n│ ├── src\\\\\\n│ │ ├── assets\\\\\\n│ │ ├── components\\\\\\n│ │ │ ├── fms-file\\\\\\n│ │ │ │ ├── composables\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ ├── FileCard.vue\\n│ │ │ │ ├── FileCategoryPanel.vue\\n│ │ │ │ ├── FileListPanel.vue\\n│ │ │ │ ├── FilePreviewPanel.vue\\n│ │ │ │ ├── FmsFile.vue\\n│ │ │ │ ├── FmsFileModal.vue\\n│ │ │ │ ├── fileVisual.js\\n│ │ │ │ └── useFileModal.js\\n│ │ │ ├── fms-table\\\\\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ └── FmsTable.vue\\n│ │ │ ├── ui\\\\\\n│ │ │ │ ├── button\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── button-group\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── checkbox\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── date\\\\\\n│ │ │ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ │ │ ├── demo\\\\\\n│ │ │ │ │ └── ... 23 files, 0 dirs not shown\\n│ │ │ │ ├── drawer\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── dropdown\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── form\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── grid\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── input\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── message\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── modal\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── notification\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── pagination\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── popover\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── radio\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── select\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── spin\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── splitter\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── switch\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── tabs\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── tag\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── tooltip\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── tree\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ └── utils\\\\\\n│ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ └── FpsMonitor.vue\\n│ │ ├── composables\\\\\\n│ │ │ └── useHotkeys.js\\n│ │ ├── layouts\\\\\\n│ │ │ ├── components\\\\\\n│ │ │ │ ├── AppSidebar.vue\\n│ │ │ │ ├── AppTabs.vue\\n│ │ │ │ ├── AppTopbar.vue\\n│ │ │ │ ├── NavMain.vue\\n│ │ │ │ └── NavMenuItem.vue\\n│ │ │ └── DefaultLayout.vue\\n│ │ ├── router\\\\\\n│ │ │ └── index.js\\n│ │ ├── services\\\\\\n│ │ │ ├── api.js\\n│ │ │ ├── fileService.js\\n│ │ │ └── http.js\\n│ │ ├── stores\\\\\\n│ │ │ ├── app.js\\n│ │ │ ├── auth.js\\n│ │ │ └── permissions.js\\n│ │ ├── styles\\\\\\n│ │ │ └── index.css\\n│ │ ├── theme\\\\\\n│ │ │ ├── index.js\\n│ │ │ ├── presets.js\\n│ │ │ └── tokens.css\\n│ │ ├── utils\\\\\\n│ │ │ ├── cacheKey.js\\n│ │ │ ├── dataChanges.js\\n│ │ │ ├── i18n.js\\n│ │ │ ├── lucideIcons.js\\n│ │ │ ├── tempId.js\\n│ │ │ └── tree.js\\n│ │ ├── views\\\\\\n│ │ │ ├── dashboard\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── demo\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── detail\\\\\\n│ │ │ │ └── DetailPage.vue\\n│ │ │ ├── file-demo\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── login\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── system\\\\module-management\\\\\\n│ │ │ │ ├── components\\\\\\n│ │ │ │ │ └── ... 12 files, 0 dirs not shown\\n│ │ │ │ ├── common.js\\n│ │ │ │ └── index.vue\\n│ │ │ └── test\\\\\\n│ │ │ └── TestPage.vue\\n│ │ ├── App.vue\\n│ │ └── main.js\\n│ ├── tests\\\\\\n│ │ ├── components\\\\\\n│ │ │ ├── basic.spec.js\\n│ │ │ ├── form.spec.js\\n│ │ │ ├── input.spec.js\\n│ │ │ └── tree.spec.js\\n│ │ ├── helpers\\\\\\n│ │ │ └── app.js\\n│ │ ├── services\\\\\\n│ │ │ ├── api.spec.js\\n│ │ │ └── http.spec.js\\n│ │ ├── stores\\\\\\n│ │ │ └── stores.spec.js\\n│ │ ├── unit\\\\\\n│ │ │ └── utils.spec.js\\n│ │ ├── views\\\\\\n│ │ │ ├── login.spec.js\\n│ │ │ └── module-management.spec.js\\n│ │ ├── README.md\\n│ │ ├── fms-table-virtual.spec.js\\n│ │ ├── permissions.spec.js\\n│ │ ├── router-auth.spec.js\\n│ │ └── setup.js\\n│ ├── .gitignore\\n│ ├── .oxfmtrc.json\\n│ ├── .oxlintrc.json\\n│ ├── form-demo.yaml\\n│ ├── index.html\\n│ ├── jsconfig.json\\n│ ├── package.json\\n│ ├── pnpm-lock.yaml\\n│ ├── pnpm-workspace.yaml\\n│ ├── vite.config.js\\n│ └── vitest.config.js\\n├── fms-vue-old1\\\\\\n│ ├── dist\\\\\\n│ ├── node_modules\\\\\\n│ ├── patches\\\\\\n│ │ └── stk-table-vue@1.0.0.patch\\n│ ├── public\\\\\\n│ ├── src\\\\\\n│ │ ├── assets\\\\\\n│ │ ├── components\\\\\\n│ │ │ ├── fms-file\\\\\\n│ │ │ │ ├── composables\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── FileCard.vue\\n│ │ │ │ ├── FileCategoryPanel.vue\\n│ │ │ │ ├── FileListPanel.vue\\n│ │ │ │ ├── FilePreviewPanel.vue\\n│ │ │ │ ├── FmsFile.vue\\n│ │ │ │ ├── FmsFileModal.vue\\n│ │ │ │ ├── fileVisual.js\\n│ │ │ │ └── useFileModal.js\\n│ │ │ ├── fms-module-list\\\\\\n│ │ │ │ ├── FmsModuleListPage.vue\\n│ │ │ │ ├── FmsModuleTable.vue\\n│ │ │ │ ├── FmsQueryControl.vue\\n│ │ │ │ ├── FmsQueryToolbar.vue\\n│ │ │ │ └── moduleListUtils.js\\n│ │ │ ├── fms-table\\\\\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ └── FmsTable.vue\\n│ │ │ ├── select\\\\\\n│ │ │ │ └── useLookupOptions.js\\n│ │ │ ├── ui\\\\\\n│ │ │ ├── FmsAutoComplete.vue\\n│ │ │ ├── FmsLoadingOverlay.vue\\n│ │ │ ├── FmsMemoInput.vue\\n│ │ │ ├── FmsSelect.vue\\n│ │ │ ├── FmsTree.vue\\n│ │ │ └── FpsMonitor.vue\\n│ │ ├── data\\\\\\n│ │ │ └── moduleDemo.js\\n│ │ ├── layouts\\\\\\n│ │ │ ├── components\\\\\\n│ │ │ │ ├── AppSidebar.vue\\n│ │ │ │ ├── AppTabs.vue\\n│ │ │ │ ├── AppToolbar.vue\\n│ │ │ │ └── SidebarMenuItem.vue\\n│ │ │ └── DefaultLayout.vue\\n│ │ ├── router\\\\\\n│ │ │ ├── index.js\\n│ │ │ └── routes.js\\n│ │ ├── services\\\\\\n│ │ │ ├── api.js\\n│ │ │ ├── fileService.js\\n│ │ │ └── http.js\\n│ │ ├── stores\\\\\\n│ │ │ ├── app.js\\n│ │ │ ├── auth.js\\n│ │ │ └── permissions.js\\n│ │ ├── styles\\\\\\n│ │ │ ├── main.scss\\n│ │ │ └── tailwind.css\\n│ │ ├── utils\\\\\\n│ │ │ ├── dataChanges.js\\n│ │ │ ├── i18n.js\\n│ │ │ ├── lucideIcons.js\\n│ │ │ ├── tempId.js\\n│ │ │ └── tree.js\\n│ │ ├── views\\\\\\n│ │ │ ├── base\\\\\\n│ │ │ │ ├── contact\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── othercompany\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ └── otherdata\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ ├── dashboard\\\\\\n│ │ │ │ ├── demo.vue\\n│ │ │ │ └── index.vue\\n│ │ │ ├── login\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── module-management\\\\\\n│ │ │ │ ├── components\\\\\\n│ │ │ │ │ └── ... 11 files, 0 dirs not shown\\n│ │ │ │ ├── common.js\\n│ │ │ │ └── index.vue\\n│ │ │ └── system\\\\\\n│ │ │ ├── components\\\\\\n│ │ │ ├── i18n-type\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ ├── login-log\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ └── user\\\\\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── App.vue\\n│ │ └── main.js\\n│ ├── .gitignore\\n│ ├── .oxfmtrc.json\\n│ ├── README.md\\n│ ├── index.html\\n│ ├── jsconfig.json\\n│ ├── package.json\\n│ ├── pnpm-lock.yaml\\n│ ├── pnpm-workspace.yaml\\n│ └── vite.config.js\\n├── fms-vue-old2\\\\\\n│ ├── dist\\\\\\n│ ├── node_modules\\\\\\n│ ├── public\\\\\\n│ ├── src\\\\\\n│ │ ├── assets\\\\\\n│ │ ├── components\\\\\\n│ │ │ ├── fms-table\\\\\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ └── FmsTable.vue\\n│ │ │ ├── ui\\\\\\n│ │ │ │ ├── accordion\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── alert\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── alert-dialog\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── aspect-ratio\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── avatar\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── badge\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── breadcrumb\\\\\\n│ │ │ │ │ └── ... 8 files, 0 dirs not shown\\n│ │ │ │ ├── button\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── calendar\\\\\\n│ │ │ │ │ └── ... 13 files, 0 dirs not shown\\n│ │ │ │ ├── card\\\\\\n│ │ │ │ │ └── ... 8 files, 0 dirs not shown\\n│ │ │ │ ├── carousel\\\\\\n│ │ │ │ │ └── ... 8 files, 0 dirs not shown\\n│ │ │ │ ├── checkbox\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── collapsible\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── combobox\\\\\\n│ │ │ │ │ └── ... 12 files, 0 dirs not shown\\n│ │ │ │ ├── command\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── context-menu\\\\\\n│ │ │ │ │ └── ... 16 files, 0 dirs not shown\\n│ │ │ │ ├── dialog\\\\\\n│ │ │ │ │ └── ... 11 files, 0 dirs not shown\\n│ │ │ │ ├── drawer\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── dropdown-menu\\\\\\n│ │ │ │ │ └── ... 15 files, 0 dirs not shown\\n│ │ │ │ ├── field\\\\\\n│ │ │ │ │ └── ... 11 files, 0 dirs not shown\\n│ │ │ │ ├── form\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── hover-card\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── input\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── input-otp\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── label\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── menubar\\\\\\n│ │ │ │ │ └── ... 16 files, 0 dirs not shown\\n│ │ │ │ ├── native-select\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── navigation-menu\\\\\\n│ │ │ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ │ │ ├── pagination\\\\\\n│ │ │ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ │ │ ├── popover\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── progress\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── radio-group\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── resizable\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── scroll-area\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ ├── select\\\\\\n│ │ │ │ │ └── ... 12 files, 0 dirs not shown\\n│ │ │ │ ├── separator\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── sheet\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── sidebar\\\\\\n│ │ │ │ │ └── ... 25 files, 0 dirs not shown\\n│ │ │ │ ├── skeleton\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── slider\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── sonner\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── switch\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── table\\\\\\n│ │ │ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ │ │ ├── tabs\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── textarea\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── toggle\\\\\\n│ │ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ │ ├── toggle-group\\\\\\n│ │ │ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ │ │ └── tooltip\\\\\\n│ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ ├── ConfirmDialog.vue\\n│ │ │ ├── FmsAutoComplete.vue\\n│ │ │ ├── FmsLoadingOverlay.vue\\n│ │ │ ├── FmsSelect.vue\\n│ │ │ ├── FmsTree.vue\\n│ │ │ ├── FmsTreeNode.vue\\n│ │ │ └── FpsMonitor.vue\\n│ │ ├── composables\\\\\\n│ │ │ ├── useConfirm.ts\\n│ │ │ └── useLookupOptions.ts\\n│ │ ├── data\\\\\\n│ │ ├── layouts\\\\\\n│ │ │ ├── components\\\\\\n│ │ │ │ ├── AppSidebar.vue\\n│ │ │ │ ├── AppTabs.vue\\n│ │ │ │ ├── AppTopbar.vue\\n│ │ │ │ ├── NavMain.vue\\n│ │ │ │ └── NavMenuItem.vue\\n│ │ │ └── DefaultLayout.vue\\n│ │ ├── lib\\\\\\n│ │ │ └── utils.ts\\n│ │ ├── router\\\\\\n│ │ │ └── index.ts\\n│ │ ├── services\\\\\\n│ │ │ ├── api.ts\\n│ │ │ ├── fileService.ts\\n│ │ │ └── http.ts\\n│ │ ├── stores\\\\\\n│ │ │ ├── app.ts\\n│ │ │ ├── auth.ts\\n│ │ │ └── permissions.ts\\n│ │ ├── styles\\\\\\n│ │ │ └── index.css\\n│ │ ├── types\\\\\\n│ │ │ └── module.ts\\n│ │ ├── utils\\\\\\n│ │ │ ├── dataChanges.ts\\n│ │ │ ├── i18n.ts\\n│ │ │ ├── lucideIcons.ts\\n│ │ │ ├── tempId.ts\\n│ │ │ └── tree.ts\\n│ │ ├── views\\\\\\n│ │ │ ├── base\\\\\\n│ │ │ │ ├── contact\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ ├── othercompany\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ ├── otherdata\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ └── PlaceholderPage.vue\\n│ │ │ ├── dashboard\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ ├── login\\\\\\n│ │ │ │ └── index.vue\\n│ │ │ └── system\\\\\\n│ │ │ ├── i18n-type\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ ├── login-log\\\\\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ ├── module-management\\\\\\n│ │ │ │ └── ... 2 files, 1 dirs not shown\\n│ │ │ └── user\\\\\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── App.vue\\n│ │ └── main.ts\\n│ ├── .gitignore\\n│ ├── .oxfmtrc.json\\n│ ├── components.json\\n│ ├── index.html\\n│ ├── package.json\\n│ ├── pnpm-lock.yaml\\n│ ├── pnpm-workspace.yaml\\n│ ├── tsconfig.app.json\\n│ ├── tsconfig.json\\n│ ├── tsconfig.node.json\\n│ └── vite.config.ts\\n├── node_modules\\\\\\n├── 参考组件库\\\\\\n│ ├── antdv-next\\\\\\n│ │ ├── .agents\\\\skills\\\\cross-repo-pr-sync\\\\\\n│ │ │ ├── assets\\\\\\n│ │ │ │ └── checklist-templates.md\\n│ │ │ ├── references\\\\\\n│ │ │ │ ├── branch-management.md\\n│ │ │ │ ├── github-api.md\\n│ │ │ │ ├── local-git.md\\n│ │ │ │ ├── sync-state.md\\n│ │ │ │ ├── tmp-clone.md\\n│ │ │ │ ├── worker.md\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ └── SKILL.md\\n│ │ ├── .changeset\\\\\\n│ │ │ ├── README.md\\n│ │ │ └── config.json\\n│ │ ├── .claude\\\\\\n│ │ ├── .github\\\\\\n│ │ │ ├── ISSUE_TEMPLATE\\\\\\n│ │ │ ├── workflows\\\\\\n│ │ │ ├── FUNDING.yml\\n│ │ │ ├── PULL_REQUEST_TEMPLATE.md\\n│ │ │ └── renovate.json5\\n│ │ ├── docs\\\\\\n│ │ │ ├── plugins\\\\\\n│ │ │ │ ├── markdown\\\\\\n│ │ │ │ │ └── ... 5 files, 2 dirs not shown\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ ├── css-plugin.ts\\n│ │ │ │ └── prefetch.ts\\n│ │ │ ├── public\\\\\\n│ │ │ │ ├── ads.txt\\n│ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ ├── scripts\\\\\\n│ │ │ │ └── gen-search.ts\\n│ │ │ ├── src\\\\\\n│ │ │ │ ├── assets\\\\\\n│ │ │ │ │ └── ... 2 files, 1 dirs not shown\\n│ │ │ │ ├── components\\\\\\n│ │ │ │ │ └── ... 0 files, 13 dirs not shown\\n│ │ │ │ ├── composables\\\\\\n│ │ │ │ │ └── ... 8 files, 0 dirs not shown\\n│ │ │ │ ├── config\\\\\\n│ │ │ │ │ └── ... 4 files, 1 dirs not shown\\n│ │ │ │ ├── layouts\\\\\\n│ │ │ │ │ └── ... 0 files, 3 dirs not shown\\n│ │ │ │ ├── locales\\\\\\n│ │ │ │ │ └── ... 1 files, 2 dirs not shown\\n│ │ │ │ ├── pages\\\\\\n│ │ │ │ │ └── ... 0 files, 5 dirs not shown\\n│ │ │ │ ├── routes\\\\\\n│ │ │ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ │ │ ├── stores\\\\\\n│ │ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ │ ├── utils\\\\\\n│ │ │ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ │ │ ├── App.vue\\n│ │ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ │ ├── types\\\\\\n│ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ ├── index.html\\n│ │ │ ├── package.json\\n│ │ │ ├── tsconfig.app.json\\n│ │ │ ├── tsconfig.json\\n│ │ │ ├── tsconfig.node.json\\n│ │ │ ├── uno.config.ts\\n│ │ │ ├── vercel.json\\n│ │ │ └── vite.config.ts\\n│ │ ├── packages\\\\\\n│ │ │ ├── antdv-next\\\\\\n│ │ │ └── cssinjs\\\\\\n│ │ ├── playground\\\\\\n│ │ │ ├── src\\\\\\n│ │ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ │ ├── README.md\\n│ │ │ ├── index.html\\n│ │ │ ├── package.json\\n│ │ │ ├── tsconfig.app.json\\n│ │ │ ├── tsconfig.json\\n│ │ │ ├── tsconfig.node.json\\n│ │ │ └── vite.config.ts\\n│ │ ├── scripts\\\\\\n│ │ │ └── verify-commit.js\\n│ │ ├── tests\\\\\\n│ │ │ ├── shared\\\\\\n│ │ │ │ └── ... 7 files, 0 dirs not shown\\n│ │ │ ├── setup.ts\\n│ │ │ ├── setupAfterEnv.ts\\n│ │ │ └── utils.ts\\n│ │ ├── .gitattributes\\n│ │ ├── .gitignore\\n│ │ ├── .sync-upstream.json\\n│ │ ├── AGENTS.md\\n│ │ ├── CLAUDE.md\\n│ │ ├── CODE_OF_CONDUCT.md\\n│ │ ├── DESIGN.md\\n│ │ ├── README.md\\n│ │ ├── README.zh-CN.md\\n│ │ ├── codecov.yml\\n│ │ ├── eslint.config.ts\\n│ │ ├── package.json\\n│ │ ├── pnpm-lock.yaml\\n│ │ ├── pnpm-workspace.yaml\\n│ │ ├── tsconfig.base.json\\n│ │ ├── tsconfig.json\\n│ │ ├── tsconfig.test.json\\n│ │ ├── turbo.json\\n│ │ ├── vitest-plugin.ts\\n│ │ └── vitest.config.ts\\n│ └── shadcn\\\\\\n│ ├── .changeset\\\\\\n│ │ ├── README.md\\n│ │ └── config.json\\n│ ├── .claude\\\\\\n│ │ ├── launch.json\\n│ │ └── settings.local.json\\n│ ├── .cursor-plugin\\\\\\n│ │ └── plugin.json\\n│ ├── .github\\\\\\n│ │ ├── DISCUSSION_TEMPLATE\\\\\\n│ │ ├── ISSUE_TEMPLATE\\\\\\n│ │ ├── workflows\\\\\\n│ │ ├── FUNDING.yml\\n│ │ ├── changeset-version.js\\n│ │ ├── collect-prerelease-info.js\\n│ │ ├── dependabot.yml\\n│ │ └── version-script-next.js\\n│ ├── apps\\\\v4\\\\\\n│ │ ├── app\\\\\\n│ │ │ └── ... 4 files, 7 dirs not shown\\n│ │ ├── components\\\\\\n│ │ │ └── ... 61 files, 1 dirs not shown\\n│ │ ├── content\\\\docs\\\\\\n│ │ │ └── ... 1 files, 11 dirs not shown\\n│ │ ├── examples\\\\\\n│ │ │ └── ... 2 files, 4 dirs not shown\\n│ │ ├── hooks\\\\\\n│ │ │ └── ... 11 files, 0 dirs not shown\\n│ │ ├── lib\\\\\\n│ │ │ └── ... 24 files, 0 dirs not shown\\n│ │ ├── public\\\\\\n│ │ │ └── ... 17 files, 5 dirs not shown\\n│ │ ├── registry\\\\\\n│ │ │ └── ... 16 files, 5 dirs not shown\\n│ │ ├── scripts\\\\\\n│ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ ├── styles\\\\\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── .gitignore\\n│ │ ├── .prettierignore\\n│ │ ├── README.md\\n│ │ ├── components.json\\n│ │ ├── eslint.config.mjs\\n│ │ ├── mdx-components.tsx\\n│ │ ├── next.config.mjs\\n│ │ ├── package.json\\n│ │ ├── postcss.config.mjs\\n│ │ ├── registry.json\\n│ │ ├── source.config.ts\\n│ │ ├── tsconfig.json\\n│ │ └── tsconfig.scripts.json\\n│ ├── packages\\\\\\n│ │ ├── helpers\\\\\\n│ │ ├── react\\\\\\n│ │ ├── shadcn\\\\\\n│ │ └── tests\\\\\\n│ ├── scripts\\\\\\n│ │ └── sync-templates.sh\\n│ ├── skills\\\\\\n│ │ ├── migrate-radix-to-base\\\\\\n│ │ │ └── ... 10 files, 0 dirs not shown\\n│ │ └── shadcn\\\\\\n│ │ └── ... 5 files, 4 dirs not shown\\n│ ├── templates\\\\\\n│ │ ├── astro-app\\\\\\n│ │ │ └── ... 10 files, 2 dirs not shown\\n│ │ ├── astro-monorepo\\\\\\n│ │ │ └── ... 10 files, 2 dirs not shown\\n│ │ ├── next-app\\\\\\n│ │ │ └── ... 11 files, 5 dirs not shown\\n│ │ ├── next-monorepo\\\\\\n│ │ │ └── ... 12 files, 2 dirs not shown\\n│ │ ├── react-router-app\\\\\\n│ │ │ └── ... 12 files, 2 dirs not shown\\n│ │ ├── react-router-monorepo\\\\\\n│ │ │ └── ... 10 files, 2 dirs not shown\\n│ │ ├── start-app\\\\\\n│ │ │ └── ... 10 files, 2 dirs not shown\\n│ │ ├── start-monorepo\\\\\\n│ │ │ └── ... 10 files, 2 dirs not shown\\n│ │ ├── vite-app\\\\\\n│ │ │ └── ... 12 files, 2 dirs not shown\\n│ │ └── vite-monorepo\\\\\\n│ │ └── ... 10 files, 2 dirs not shown\\n│ ├── .commitlintrc.json\\n│ ├── .editorconfig\\n│ ├── .eslintignore\\n│ ├── .eslintrc.json\\n│ ├── .gitignore\\n│ ├── .kodiak.toml\\n│ ├── .npmrc\\n│ ├── .prettierignore\\n│ ├── CONTRIBUTING.md\\n│ ├── README.md\\n│ ├── RELEASING.md\\n│ ├── SECURITY.md\\n│ ├── package.json\\n│ ├── pnpm-lock.yaml\\n│ ├── pnpm-workspace.yaml\\n│ ├── prettier.config.cjs\\n│ ├── tsconfig.json\\n│ ├── turbo.json\\n│ ├── vitest.config.ts\\n│ └── vitest.workspace.ts\\n├── Fms旧系统表结构.md\\n├── package-lock.json\\n├── package.json\\n└── pnpm-lock.yaml\\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":"0000000000000000000000000000000000000000","last_commit_update":"2026-08-23T10:31:35.8238885+08:00","gmt_create":"2026-08-23T09:56:57.8135054+08:00","gmt_modified":"2026-08-23T10:31:35.8238885+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"Q0DeR-MaG1C-BrAnCh-Fo2-NoN-GiT-Or-No-C0MmIt\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"1.25.1\"}"}}