@microi.net/cli 4.6.2 → 4.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mcp-server.js +9 -7
- package/dist/microi-cli.js +44 -44
- package/dist/microi-skills.meta.json +120 -120
- package/dist/microi.skills/.microi-skills-version.json +2 -2
- package/dist/microi.skills/app-store/SKILL.md +5 -0
- package/dist/microi.skills/message-notification/agents/openai.yaml +0 -1
- package/dist/microi.skills/microi-client-frontend/SKILL.md +9 -2
- package/dist/microi.skills/microi-db-schema/SKILL.md +1 -0
- package/dist/microi.skills/microi-form-engine/SKILL.md +6 -0
- package/dist/microi.skills/microi-system-delivery/SKILL.md +4 -2
- package/dist/microi.skills/microi-ui/SKILL.md +9 -0
- package/dist/microi.skills/ui-design/SKILL.md +21 -0
- package/dist/microi.skills/ui-design/assets/templates/MCI-DESIGN.md +163 -62
- package/dist/microi.skills/ui-design/references/design-pattern-library.md +13 -0
- package/dist/microi.skills/ui-design/references/mci-design-contract.md +150 -71
- package/dist/microi.skills/workspace-conventions/SKILL.md +7 -0
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"builtAt": "2026-08-
|
|
2
|
+
"builtAt": "2026-08-03T16:18:47.779Z",
|
|
3
3
|
"source": "../microi.skills",
|
|
4
4
|
"extension": {
|
|
5
5
|
"name": "v8-engine",
|
|
6
|
-
"version": "4.6.
|
|
6
|
+
"version": "4.6.4",
|
|
7
7
|
"publisher": "Microi"
|
|
8
8
|
},
|
|
9
9
|
"skills": {
|
|
10
|
-
"version": "4.6.
|
|
10
|
+
"version": "4.6.4",
|
|
11
11
|
"versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
|
|
12
12
|
"managedBy": "Microi.VSCode/bump-version.js"
|
|
13
13
|
},
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"dir": "dist/microi.skills",
|
|
16
16
|
"files": 103,
|
|
17
17
|
"skills": 57,
|
|
18
|
-
"bytes":
|
|
18
|
+
"bytes": 1557192
|
|
19
19
|
},
|
|
20
20
|
"fileHashes": {
|
|
21
|
-
".microi-skills-version.json": "
|
|
21
|
+
".microi-skills-version.json": "4c3525fbe36fdbb8af9aad8a4f821fc78aad9bb65c0e415d00b670e3a12d1ba2",
|
|
22
22
|
"README.md": "8ce5d0625122fcd0f125401e3d7a1a3a67e8ae75c0a1a5441231e238c7042786",
|
|
23
23
|
"ai-engine/SKILL.md": "ad435d66b246ae432d456608d4ba059a9d9b9cdcf7b3eae08d51e79285ab59c6",
|
|
24
24
|
"ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
|
|
25
|
-
"app-store/SKILL.md": "
|
|
25
|
+
"app-store/SKILL.md": "8ca6783e5c6069a0e46ee661f76c1e6fd349041482c38824927c04a1297b9786",
|
|
26
26
|
"app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
|
|
27
27
|
"business-blueprint/SKILL.md": "ea379a85476d262f4fc72a5846a06354893065052ef64370bbc7e3a2753a498d",
|
|
28
28
|
"datasource-engine/SKILL.md": "bfd0cab8318eef375ca49f27c0511fce7e939a1c795678e83cf2d3438e24915f",
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
"job-engine/SKILL.md": "12f175f8de9610a6994bf11931810f4dce2cd0cdcd1f5b575dee4fd2b636658c",
|
|
33
33
|
"job-engine/agents/openai.yaml": "65889ee39bc34caca9085539d8954a381aab93590c5635eea3bb6f4c001934af",
|
|
34
34
|
"message-notification/SKILL.md": "4b066401133ecf687755c5ea8d9dbb2166acc91bc2035dc9c2b96d8d33dd97de",
|
|
35
|
-
"message-notification/agents/openai.yaml": "
|
|
35
|
+
"message-notification/agents/openai.yaml": "d0e259921410e94caaf8b376d690a529842446e3f32c9523b7dfd1bda599f58c",
|
|
36
36
|
"message-notification/references/contracts.md": "a33e3dd4093430ed1dc5b79a978d8981479e975a7dd30fde6f68559360369f06",
|
|
37
37
|
"microi-ai-app-auth.js": "8023db6ae655bc33027f389a64ef7937ac09da35eb1b8a497aaefb986834242a",
|
|
38
38
|
"microi-ai-application/SKILL.md": "74b0e8c76352b46ab1e101410d5b3d9ec6d9e0701ca9c7a10a6ab44f3c55db7c",
|
|
39
39
|
"microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
|
|
40
40
|
"microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
|
|
41
|
-
"microi-client-frontend/SKILL.md": "
|
|
41
|
+
"microi-client-frontend/SKILL.md": "eb4cef84a1ad194e516b9343ceeeda16b89cfc448c60daa94d83cf1455978e5e",
|
|
42
42
|
"microi-datasource-mapping/SKILL.md": "1626bdf242038838028aa1235c5a6262e22680984583c47a8fc4e5fffb24b7df",
|
|
43
|
-
"microi-db-schema/SKILL.md": "
|
|
43
|
+
"microi-db-schema/SKILL.md": "ae13dd4bbd667da28dd81dff519d9a56b53509b54bf6a81f1e344f1c21f63d33",
|
|
44
44
|
"microi-db-schema/agents/openai.yaml": "c725a2be4c904472f9e46dc4b49aa642c9f3a4437c91a28ba7cc27167497ede7",
|
|
45
45
|
"microi-db-schema/references/core-tables.md": "b71164d9afe8cd6085745a27dddb31722014a85f8ab22f09ab447738612fea6a",
|
|
46
46
|
"microi-db-schema/references/form-component-options.md": "c4c5085d4b2e4fc79b09d255fa1655c2007e863e3c102ccf805ca57abdf79028",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"microi-docs-coverage/SKILL.md": "5fad3dd7b83cf01ef7a303506902c95da7ae85d60b0067d266f1e2fa2326db95",
|
|
53
53
|
"microi-docs-coverage/references/capability-map.md": "f1a4ba0ec68ffafd707e32d8f037e521fb8b534f9ce1e385b26dcae060996af2",
|
|
54
54
|
"microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "44b79f2eeb9076e3e9673d06daf3923065ed458ceea2f200604dfe474bded161",
|
|
55
|
-
"microi-form-engine/SKILL.md": "
|
|
55
|
+
"microi-form-engine/SKILL.md": "bc6e46370b0dee9dd16c83c46a4fb24c9fd13e6b4c33df4217feee38296f6d9d",
|
|
56
56
|
"microi-form-engine/references/component-catalog.md": "68963c2d5211a4610c09fab1fa127a349339abbb7427509b183d4be72e977c7b",
|
|
57
57
|
"microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
|
|
58
58
|
"microi-form-layout/SKILL.md": "48814c2c138e2c0fb6a11d39cf458df6a1cc28a3156c7540db1fa482a2ce6aec",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"microi-solution-quotation/SKILL.md": "1bd47bd019a62bdc904612a7d8e2501c76df66eed9ef247544dd7fe38eba02e4",
|
|
65
65
|
"microi-solution-quotation/agents/openai.yaml": "9e3f994cc842c927ca25e23216f6ce5e8f8313fc39b1c7142d9b652ca73e7dd1",
|
|
66
66
|
"microi-solution-quotation/scripts/build_solution_quote.py": "2a8a90ed95308b900da3db433402d857f838b594df624f5a83b62307471a31e7",
|
|
67
|
-
"microi-system-delivery/SKILL.md": "
|
|
68
|
-
"microi-ui/SKILL.md": "
|
|
67
|
+
"microi-system-delivery/SKILL.md": "19f88593004970eeddf0750314df823ae6db653e95cface3c33e6cc6bc1bbf52",
|
|
68
|
+
"microi-ui/SKILL.md": "8b6642c9fc2d5b7ff7cef64403ffa60a1db8b55ef37b44e149bf3670d132f342",
|
|
69
69
|
"microi-uniapp-frontend/SKILL.md": "d031dca0ed4182954e383e9828263d46414330f0a014487867b628f655b5bb26",
|
|
70
70
|
"microi.v8.js": "0e885a961bca626005387885d3b9e7deecb7dc7e3eb07d95582e2c3e3a11d4f6",
|
|
71
71
|
"module-engine/SKILL.md": "c5624f19be8abba47bc7194c75df938fc635d815eb3e5a6e225adc4e8ef83c0c",
|
|
@@ -82,13 +82,13 @@
|
|
|
82
82
|
"spider-engine/SKILL.md": "09e9e164dc09c35bb4bebfbe77e3ba18164c89503313b28a1b4f1061e0de5e30",
|
|
83
83
|
"translate-engine/SKILL.md": "979522ee0debc67a219f771b1d9ba082241743b15042ba54a213054aaf8af9bb",
|
|
84
84
|
"translate-engine/agents/openai.yaml": "8eb47e08a691219bbe22a797ddbdf73234ec77f86e5724bc735fb0738d899112",
|
|
85
|
-
"ui-design/SKILL.md": "
|
|
85
|
+
"ui-design/SKILL.md": "9d141533573e0cfdc32dcd563ae98c61660b635fd0371cb261fd7382fbcc3c91",
|
|
86
86
|
"ui-design/assets/pattern-showcase/app.js": "68a8d404c30096da853c6edbc7cb27f336982147ddfebccd66c03ba3d99427cd",
|
|
87
87
|
"ui-design/assets/pattern-showcase/index.html": "242f94772a5f14e38296f1e925f30a9a5fef2103975831cbd47861a3fc14d5bc",
|
|
88
88
|
"ui-design/assets/pattern-showcase/styles.css": "77c34ddae0dd9c665c8774dc6def4bd8f4f5ed02470d4343d116ed141c87eccb",
|
|
89
|
-
"ui-design/assets/templates/MCI-DESIGN.md": "
|
|
90
|
-
"ui-design/references/design-pattern-library.md": "
|
|
91
|
-
"ui-design/references/mci-design-contract.md": "
|
|
89
|
+
"ui-design/assets/templates/MCI-DESIGN.md": "a9e3168904ad7f60e7f01a8fd6a3ee4702fecfb7ef6c74f67837e444c1c1dead",
|
|
90
|
+
"ui-design/references/design-pattern-library.md": "3cbef63a69a1f547d64e7b15f7783a48b41f8110ff4ba8a58219a8f5745a5746",
|
|
91
|
+
"ui-design/references/mci-design-contract.md": "11c2bdf891b3ffe2462ae4bb7b72061340a24f3ffc103d68dd08b158592b7215",
|
|
92
92
|
"ui-design/references/motion-and-media.md": "3d73161a5ad19e3d1ebecf681febd592ea0e1bca42e6340ef6a08cd9a9fd25be",
|
|
93
93
|
"ui-design/references/product-flow-recipes.md": "b6a41c2d2b18f59594024f232e38497c140e5d8f25b54099a7e2a47609c52edc",
|
|
94
94
|
"uniapp-mall-assets/SKILL.md": "153b661fdbfdbb1200f676e8d35d213bbbf2cd8a1fcacfc75370004c3acffa21",
|
|
@@ -120,112 +120,112 @@
|
|
|
120
120
|
"v8-utilities/references/platform-http-routes.md": "87579eef4e89b4c80e1757ad34ec951e0ccadb6bd15aab4f3ab247f55d5f1cd5",
|
|
121
121
|
"v8-utilities/references/server-api-index.md": "9fd2871b522e39276bcf0cc7526bd6b44c017d051334ce466e2daf9a83b0185e",
|
|
122
122
|
"v8-workflow/SKILL.md": "cd6738edd79f628948adfac898b6d58a81feb28d1ec6d1f83fc12758fb570819",
|
|
123
|
-
"workspace-conventions/SKILL.md": "
|
|
123
|
+
"workspace-conventions/SKILL.md": "f8fee8657daf8b0a0645bad6fb82097e730422b5d186aff11721233cace97b27"
|
|
124
124
|
},
|
|
125
125
|
"fileVersions": {
|
|
126
|
-
".microi-skills-version.json": "4.6.
|
|
127
|
-
"README.md": "4.6.
|
|
128
|
-
"ai-engine/SKILL.md": "4.6.
|
|
129
|
-
"ai-engine/agents/openai.yaml": "4.6.
|
|
130
|
-
"app-store/SKILL.md": "4.6.
|
|
131
|
-
"app-store/agents/openai.yaml": "4.6.
|
|
132
|
-
"business-blueprint/SKILL.md": "4.6.
|
|
133
|
-
"datasource-engine/SKILL.md": "4.6.
|
|
134
|
-
"datasource-engine/agents/openai.yaml": "4.6.
|
|
135
|
-
"dos-orm/SKILL.md": "4.6.
|
|
136
|
-
"dos-orm/references/api-reference.md": "4.6.
|
|
137
|
-
"job-engine/SKILL.md": "4.6.
|
|
138
|
-
"job-engine/agents/openai.yaml": "4.6.
|
|
139
|
-
"message-notification/SKILL.md": "4.6.
|
|
140
|
-
"message-notification/agents/openai.yaml": "4.6.
|
|
141
|
-
"message-notification/references/contracts.md": "4.6.
|
|
142
|
-
"microi-ai-app-auth.js": "4.6.
|
|
143
|
-
"microi-ai-application/SKILL.md": "4.6.
|
|
144
|
-
"microi-ai-application/agents/openai.yaml": "4.6.
|
|
145
|
-
"microi-ai-application/references/frontend-baseline.md": "4.6.
|
|
146
|
-
"microi-client-frontend/SKILL.md": "4.6.
|
|
147
|
-
"microi-datasource-mapping/SKILL.md": "4.6.
|
|
148
|
-
"microi-db-schema/SKILL.md": "4.6.
|
|
149
|
-
"microi-db-schema/agents/openai.yaml": "4.6.
|
|
150
|
-
"microi-db-schema/references/core-tables.md": "4.6.
|
|
151
|
-
"microi-db-schema/references/form-component-options.md": "4.6.
|
|
152
|
-
"microi-db-schema/references/schema-overview.md": "4.6.
|
|
153
|
-
"microi-db-schema/references/schema.md": "4.6.
|
|
154
|
-
"microi-db-schema/references/table-catalog.md": "4.6.
|
|
155
|
-
"microi-deployment/SKILL.md": "4.6.
|
|
156
|
-
"microi-deployment/references/deployment-matrix.md": "4.6.
|
|
157
|
-
"microi-docs-coverage/SKILL.md": "4.6.
|
|
158
|
-
"microi-docs-coverage/references/capability-map.md": "4.6.
|
|
159
|
-
"microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.6.
|
|
160
|
-
"microi-form-engine/SKILL.md": "4.6.
|
|
161
|
-
"microi-form-engine/references/component-catalog.md": "4.6.
|
|
162
|
-
"microi-form-engine/references/data-source-events.md": "4.6.
|
|
163
|
-
"microi-form-layout/SKILL.md": "4.6.
|
|
164
|
-
"microi-frontend-sdk/SKILL.md": "4.6.
|
|
165
|
-
"microi-left-right-layout/SKILL.md": "4.6.
|
|
166
|
-
"microi-microservice/SKILL.md": "4.6.
|
|
167
|
-
"microi-microservice/references/runtime-delivery.md": "4.6.
|
|
168
|
-
"microi-mobile-app-quality/SKILL.md": "4.6.
|
|
169
|
-
"microi-solution-quotation/SKILL.md": "4.6.
|
|
170
|
-
"microi-solution-quotation/agents/openai.yaml": "4.6.
|
|
171
|
-
"microi-solution-quotation/scripts/build_solution_quote.py": "4.6.
|
|
172
|
-
"microi-system-delivery/SKILL.md": "4.6.
|
|
173
|
-
"microi-ui/SKILL.md": "4.6.
|
|
174
|
-
"microi-uniapp-frontend/SKILL.md": "4.6.
|
|
175
|
-
"microi.v8.js": "4.6.
|
|
176
|
-
"module-engine/SKILL.md": "4.6.
|
|
177
|
-
"module-engine/references/module-config.md": "4.6.
|
|
178
|
-
"page-engine/SKILL.md": "4.6.
|
|
179
|
-
"performance-testing/SKILL.md": "4.6.
|
|
180
|
-
"playwright-e2e/SKILL.md": "4.6.
|
|
181
|
-
"print-engine/SKILL.md": "4.6.
|
|
182
|
-
"production-readonly-audit/SKILL.md": "4.6.
|
|
183
|
-
"report-engine/SKILL.md": "4.6.
|
|
184
|
-
"report-engine/agents/openai.yaml": "4.6.
|
|
185
|
-
"search-engine/SKILL.md": "4.6.
|
|
186
|
-
"search-engine/agents/openai.yaml": "4.6.
|
|
187
|
-
"spider-engine/SKILL.md": "4.6.
|
|
188
|
-
"translate-engine/SKILL.md": "4.6.
|
|
189
|
-
"translate-engine/agents/openai.yaml": "4.6.
|
|
190
|
-
"ui-design/SKILL.md": "4.6.
|
|
191
|
-
"ui-design/assets/pattern-showcase/app.js": "4.6.
|
|
192
|
-
"ui-design/assets/pattern-showcase/index.html": "4.6.
|
|
193
|
-
"ui-design/assets/pattern-showcase/styles.css": "4.6.
|
|
194
|
-
"ui-design/assets/templates/MCI-DESIGN.md": "4.6.
|
|
195
|
-
"ui-design/references/design-pattern-library.md": "4.6.
|
|
196
|
-
"ui-design/references/mci-design-contract.md": "4.6.
|
|
197
|
-
"ui-design/references/motion-and-media.md": "4.6.
|
|
198
|
-
"ui-design/references/product-flow-recipes.md": "4.6.
|
|
199
|
-
"uniapp-mall-assets/SKILL.md": "4.6.
|
|
200
|
-
"v8-api-config/SKILL.md": "4.6.
|
|
201
|
-
"v8-cache-pattern/SKILL.md": "4.6.
|
|
202
|
-
"v8-crud-api/SKILL.md": "4.6.
|
|
203
|
-
"v8-debugging/SKILL.md": "4.6.
|
|
204
|
-
"v8-explorer-tree/SKILL.md": "4.6.
|
|
205
|
-
"v8-export-import/SKILL.md": "4.6.
|
|
206
|
-
"v8-file-upload/SKILL.md": "4.6.
|
|
207
|
-
"v8-formengine-http/SKILL.md": "4.6.
|
|
208
|
-
"v8-frontend-events/SKILL.md": "4.6.
|
|
209
|
-
"v8-frontend-events/references/bluetooth-print-api.md": "4.6.
|
|
210
|
-
"v8-frontend-events/references/bluetooth-print.md": "4.6.
|
|
211
|
-
"v8-http-integration/SKILL.md": "4.6.
|
|
212
|
-
"v8-image-processing/SKILL.md": "4.6.
|
|
213
|
-
"v8-image-processing/agents/openai.yaml": "4.6.
|
|
214
|
-
"v8-image-processing/references/api-reference.md": "4.6.
|
|
215
|
-
"v8-menu-buttons/SKILL.md": "4.6.
|
|
216
|
-
"v8-mongodb/SKILL.md": "4.6.
|
|
217
|
-
"v8-mq-mqtt/SKILL.md": "4.6.
|
|
218
|
-
"v8-saas-multi-tenant/SKILL.md": "4.6.
|
|
219
|
-
"v8-security/SKILL.md": "4.6.
|
|
220
|
-
"v8-sql-query/SKILL.md": "4.6.
|
|
221
|
-
"v8-table-event/SKILL.md": "4.6.
|
|
222
|
-
"v8-template-engine/SKILL.md": "4.6.
|
|
223
|
-
"v8-utilities/SKILL.md": "4.6.
|
|
224
|
-
"v8-utilities/references/client-api-index.md": "4.6.
|
|
225
|
-
"v8-utilities/references/platform-http-routes.md": "4.6.
|
|
226
|
-
"v8-utilities/references/server-api-index.md": "4.6.
|
|
227
|
-
"v8-workflow/SKILL.md": "4.6.
|
|
228
|
-
"workspace-conventions/SKILL.md": "4.6.
|
|
126
|
+
".microi-skills-version.json": "4.6.4",
|
|
127
|
+
"README.md": "4.6.4",
|
|
128
|
+
"ai-engine/SKILL.md": "4.6.4",
|
|
129
|
+
"ai-engine/agents/openai.yaml": "4.6.4",
|
|
130
|
+
"app-store/SKILL.md": "4.6.4",
|
|
131
|
+
"app-store/agents/openai.yaml": "4.6.4",
|
|
132
|
+
"business-blueprint/SKILL.md": "4.6.4",
|
|
133
|
+
"datasource-engine/SKILL.md": "4.6.4",
|
|
134
|
+
"datasource-engine/agents/openai.yaml": "4.6.4",
|
|
135
|
+
"dos-orm/SKILL.md": "4.6.4",
|
|
136
|
+
"dos-orm/references/api-reference.md": "4.6.4",
|
|
137
|
+
"job-engine/SKILL.md": "4.6.4",
|
|
138
|
+
"job-engine/agents/openai.yaml": "4.6.4",
|
|
139
|
+
"message-notification/SKILL.md": "4.6.4",
|
|
140
|
+
"message-notification/agents/openai.yaml": "4.6.4",
|
|
141
|
+
"message-notification/references/contracts.md": "4.6.4",
|
|
142
|
+
"microi-ai-app-auth.js": "4.6.4",
|
|
143
|
+
"microi-ai-application/SKILL.md": "4.6.4",
|
|
144
|
+
"microi-ai-application/agents/openai.yaml": "4.6.4",
|
|
145
|
+
"microi-ai-application/references/frontend-baseline.md": "4.6.4",
|
|
146
|
+
"microi-client-frontend/SKILL.md": "4.6.4",
|
|
147
|
+
"microi-datasource-mapping/SKILL.md": "4.6.4",
|
|
148
|
+
"microi-db-schema/SKILL.md": "4.6.4",
|
|
149
|
+
"microi-db-schema/agents/openai.yaml": "4.6.4",
|
|
150
|
+
"microi-db-schema/references/core-tables.md": "4.6.4",
|
|
151
|
+
"microi-db-schema/references/form-component-options.md": "4.6.4",
|
|
152
|
+
"microi-db-schema/references/schema-overview.md": "4.6.4",
|
|
153
|
+
"microi-db-schema/references/schema.md": "4.6.4",
|
|
154
|
+
"microi-db-schema/references/table-catalog.md": "4.6.4",
|
|
155
|
+
"microi-deployment/SKILL.md": "4.6.4",
|
|
156
|
+
"microi-deployment/references/deployment-matrix.md": "4.6.4",
|
|
157
|
+
"microi-docs-coverage/SKILL.md": "4.6.4",
|
|
158
|
+
"microi-docs-coverage/references/capability-map.md": "4.6.4",
|
|
159
|
+
"microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.6.4",
|
|
160
|
+
"microi-form-engine/SKILL.md": "4.6.4",
|
|
161
|
+
"microi-form-engine/references/component-catalog.md": "4.6.4",
|
|
162
|
+
"microi-form-engine/references/data-source-events.md": "4.6.4",
|
|
163
|
+
"microi-form-layout/SKILL.md": "4.6.4",
|
|
164
|
+
"microi-frontend-sdk/SKILL.md": "4.6.4",
|
|
165
|
+
"microi-left-right-layout/SKILL.md": "4.6.4",
|
|
166
|
+
"microi-microservice/SKILL.md": "4.6.4",
|
|
167
|
+
"microi-microservice/references/runtime-delivery.md": "4.6.4",
|
|
168
|
+
"microi-mobile-app-quality/SKILL.md": "4.6.4",
|
|
169
|
+
"microi-solution-quotation/SKILL.md": "4.6.4",
|
|
170
|
+
"microi-solution-quotation/agents/openai.yaml": "4.6.4",
|
|
171
|
+
"microi-solution-quotation/scripts/build_solution_quote.py": "4.6.4",
|
|
172
|
+
"microi-system-delivery/SKILL.md": "4.6.4",
|
|
173
|
+
"microi-ui/SKILL.md": "4.6.4",
|
|
174
|
+
"microi-uniapp-frontend/SKILL.md": "4.6.4",
|
|
175
|
+
"microi.v8.js": "4.6.4",
|
|
176
|
+
"module-engine/SKILL.md": "4.6.4",
|
|
177
|
+
"module-engine/references/module-config.md": "4.6.4",
|
|
178
|
+
"page-engine/SKILL.md": "4.6.4",
|
|
179
|
+
"performance-testing/SKILL.md": "4.6.4",
|
|
180
|
+
"playwright-e2e/SKILL.md": "4.6.4",
|
|
181
|
+
"print-engine/SKILL.md": "4.6.4",
|
|
182
|
+
"production-readonly-audit/SKILL.md": "4.6.4",
|
|
183
|
+
"report-engine/SKILL.md": "4.6.4",
|
|
184
|
+
"report-engine/agents/openai.yaml": "4.6.4",
|
|
185
|
+
"search-engine/SKILL.md": "4.6.4",
|
|
186
|
+
"search-engine/agents/openai.yaml": "4.6.4",
|
|
187
|
+
"spider-engine/SKILL.md": "4.6.4",
|
|
188
|
+
"translate-engine/SKILL.md": "4.6.4",
|
|
189
|
+
"translate-engine/agents/openai.yaml": "4.6.4",
|
|
190
|
+
"ui-design/SKILL.md": "4.6.4",
|
|
191
|
+
"ui-design/assets/pattern-showcase/app.js": "4.6.4",
|
|
192
|
+
"ui-design/assets/pattern-showcase/index.html": "4.6.4",
|
|
193
|
+
"ui-design/assets/pattern-showcase/styles.css": "4.6.4",
|
|
194
|
+
"ui-design/assets/templates/MCI-DESIGN.md": "4.6.4",
|
|
195
|
+
"ui-design/references/design-pattern-library.md": "4.6.4",
|
|
196
|
+
"ui-design/references/mci-design-contract.md": "4.6.4",
|
|
197
|
+
"ui-design/references/motion-and-media.md": "4.6.4",
|
|
198
|
+
"ui-design/references/product-flow-recipes.md": "4.6.4",
|
|
199
|
+
"uniapp-mall-assets/SKILL.md": "4.6.4",
|
|
200
|
+
"v8-api-config/SKILL.md": "4.6.4",
|
|
201
|
+
"v8-cache-pattern/SKILL.md": "4.6.4",
|
|
202
|
+
"v8-crud-api/SKILL.md": "4.6.4",
|
|
203
|
+
"v8-debugging/SKILL.md": "4.6.4",
|
|
204
|
+
"v8-explorer-tree/SKILL.md": "4.6.4",
|
|
205
|
+
"v8-export-import/SKILL.md": "4.6.4",
|
|
206
|
+
"v8-file-upload/SKILL.md": "4.6.4",
|
|
207
|
+
"v8-formengine-http/SKILL.md": "4.6.4",
|
|
208
|
+
"v8-frontend-events/SKILL.md": "4.6.4",
|
|
209
|
+
"v8-frontend-events/references/bluetooth-print-api.md": "4.6.4",
|
|
210
|
+
"v8-frontend-events/references/bluetooth-print.md": "4.6.4",
|
|
211
|
+
"v8-http-integration/SKILL.md": "4.6.4",
|
|
212
|
+
"v8-image-processing/SKILL.md": "4.6.4",
|
|
213
|
+
"v8-image-processing/agents/openai.yaml": "4.6.4",
|
|
214
|
+
"v8-image-processing/references/api-reference.md": "4.6.4",
|
|
215
|
+
"v8-menu-buttons/SKILL.md": "4.6.4",
|
|
216
|
+
"v8-mongodb/SKILL.md": "4.6.4",
|
|
217
|
+
"v8-mq-mqtt/SKILL.md": "4.6.4",
|
|
218
|
+
"v8-saas-multi-tenant/SKILL.md": "4.6.4",
|
|
219
|
+
"v8-security/SKILL.md": "4.6.4",
|
|
220
|
+
"v8-sql-query/SKILL.md": "4.6.4",
|
|
221
|
+
"v8-table-event/SKILL.md": "4.6.4",
|
|
222
|
+
"v8-template-engine/SKILL.md": "4.6.4",
|
|
223
|
+
"v8-utilities/SKILL.md": "4.6.4",
|
|
224
|
+
"v8-utilities/references/client-api-index.md": "4.6.4",
|
|
225
|
+
"v8-utilities/references/platform-http-routes.md": "4.6.4",
|
|
226
|
+
"v8-utilities/references/server-api-index.md": "4.6.4",
|
|
227
|
+
"v8-workflow/SKILL.md": "4.6.4",
|
|
228
|
+
"workspace-conventions/SKILL.md": "4.6.4"
|
|
229
229
|
},
|
|
230
230
|
"files": [
|
|
231
231
|
".microi-skills-version.json",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.6.
|
|
2
|
+
"version": "4.6.4",
|
|
3
3
|
"versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
|
|
4
4
|
"managedBy": "Microi.VSCode/bump-version.js",
|
|
5
|
-
"updatedAt": "2026-08-
|
|
5
|
+
"updatedAt": "2026-08-03T16:18:37.293Z"
|
|
6
6
|
}
|
|
@@ -36,8 +36,11 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
|
|
|
36
36
|
## 权限与租户
|
|
37
37
|
|
|
38
38
|
- 商城定义、安装、升级、卸载和应用源码只允许 `Level >= 9999`。
|
|
39
|
+
- “吾码官方平台”不能只按 `OsClient`、域名或前端变量判断:服务端必须同时校验官方 `OsClient` 与 `Microi.net/License/keys` 私钥匹配。官方平台前端隐藏安装、更新、重新安装、离线安装和批量安装入口,后端仍必须拒绝这些写操作。
|
|
39
40
|
- 所有资源按目标 `OsClient` 写入;包内不能携带源租户 `OsClient`、数据库、Redis、对象存储、MQ/MQTT、AI 或第三方密钥。
|
|
40
41
|
- 按钮调用后台安装接口时,前端只传应用/版本/安装 Id;目标租户和管理员身份由 Token 确定。
|
|
42
|
+
- 每次安装、更新、重新安装生成稳定 `OperationId`。官方计数服务用共享数据库事件表唯一约束去重,并在同一事务内登记事件和递增 `InstallCount`;重试、跨节点和响应丢失不得重复计数。
|
|
43
|
+
- “全部安装/更新”只处理未安装与存在新版本的应用,不重新安装已是最新版的应用。批量计划、子项状态、checkpoint 和进度必须持久化到共享数据库/后台任务,支持多节点抢占、失败重试和重启恢复,不能依赖进程内集合或浏览器状态。
|
|
41
44
|
- 卸载是破坏性操作,必须明确列出将删除/保留的资源、二次确认并优先软删除/归档业务数据。
|
|
42
45
|
|
|
43
46
|
## MCP 工作流
|
|
@@ -94,6 +97,8 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
|
|
|
94
97
|
- 本地输入和三方合并后的最终候选必须继续执行最低版本、功能标记、内嵌逻辑副本一致性等严格校验;发布成功并按内容哈希回读一致后才能推进 `.resource-sync-base`,不能把放宽读取门误做成放宽发布门。
|
|
95
98
|
- 应用包版本与平台发布版本分别单调递增。包正文需要写回而本地包版本、平台版本均未高于官网时,应基于官网包版本自动递增补丁号;内容无变化时不得递增,必须用连续两次同步验证第二次为零变更。
|
|
96
99
|
- MCP 配置中的官方 API、`OsClient` 与 Token 文件是鉴权事实源,但编辑器可执行文件、插件版本目录和 `cwd` 都是易漂移的启动信息。发布器应保留鉴权配置、固定校验 `https://api.itdos.com + itdos`,并从已配置入口、同级最新已安装插件或当前工作区依次发现可信 `mcp-server.js`,使用正在运行发布脚本的 Node 启动;插件升级或旧目录清理不能再次阻塞后端发布。
|
|
100
|
+
- Token 文件的新键固定为 `ApiBase|OsClient|OsClientType|OsClientNetwork` 四段身份;Type/Network 为空时仍保留空段。读取和回写必须先用四段精确键,再兼容旧版紧凑键;旧键在多环境配置下可能被有意保留且已经失效,禁止优先读取。自动化测试要覆盖“精确键已刷新、旧键仍过期”以及 type-only/network-only 不碰撞。
|
|
101
|
+
- VS Code 的 SecretStorage 恢复 broker 必须使用确定性激活事件启动;不得只依赖大型工作区可能超时的递归 `workspaceContains`。签名密钥变化时旧 Token 本身不能以旧换新,必须由已激活 broker 使用本机 SecretStorage 静默重登并回写精确身份键。
|
|
97
102
|
- 本地资源同步的官网读取、发布和发布后回读应使用同一个已校验的 `microi_itdos` MCP 链路;CI 无 MCP 时才允许凭显式 Token 使用 HTTP。V8 独立文件与应用包内嵌副本合并时,先把文件头说明和 `Version` 与可执行正文分离:两端独立升版不能算代码冲突,不同正文安全合成后应基于两端最高版本再升一版;只有同一段可执行逻辑出现不同实现才失败关闭。
|
|
98
103
|
- 发布验收至少包含:定向合并测试、真实 `PublishBatch`、六项资源逐项 SHA-256 回读,以及立即执行第二次幂等重跑。任何一步失败都不得宣称官网已同步,也不得推进共同基线。
|
|
99
104
|
|
|
@@ -186,8 +186,15 @@ V8.Result = V8.Form.Status == '待审核';
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
188
|
## 5. 路由与打开方式
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
|
|
190
|
+
登录首页支持“用户 > 系统 > 首个可访问菜单”的三级优先级:
|
|
191
|
+
|
|
192
|
+
- 用户级首页保存到 `sys_user.DefaultIndexUrl`,系统级首页继续使用 `SysConfig.DefaultIndexUrl`;账号密码、Token 直达和 SSO 登录必须共用同一套跳转逻辑。
|
|
193
|
+
- “个人设置”只能展示当前用户实际有权访问的动态路由,保存接口必须从 Token 绑定当前用户和 `OsClient`,不能接受前端传入任意用户 Id。
|
|
194
|
+
- 路由保存前统一规范为站内绝对路由;拒绝外部 URL、协议相对 URL、反斜杠、登录页和控制字符。用户失权或菜单被删除后自动回退,不能造成登录循环或空白页。
|
|
195
|
+
- `Id/CreateTime/UpdateTime/UserId/UserName/IsDeleted` 等审计列必须复用真实或合成的 `diy_field` 元数据,像普通列一样打开列头高级搜索;不要为审计列另写一套不可搜索的展示分支。
|
|
196
|
+
|
|
197
|
+
`diy-form-full.vue` 支持三类形态:
|
|
191
198
|
|
|
192
199
|
| 打开方式 | 特征 |
|
|
193
200
|
|----------|------|
|
|
@@ -17,6 +17,7 @@ description: Microi 吾码数据库结构与字典指南。用于检查或解释
|
|
|
17
17
|
|
|
18
18
|
- `diy_table` 存储表单/表元数据和表级 V8 事件。
|
|
19
19
|
- `diy_field` 存储每张 DIY 表的字段,包括组件类型、校验、可见性、数据源、字段事件和模板 V8。
|
|
20
|
+
- DIY 表固定物理字段 `Id/CreateTime/UpdateTime/UserId/UserName/IsDeleted` 也必须有正常的 `diy_field` 元数据;设计器通过 `DisplayDefaultField` 默认隐藏,而不是把它们当异常字段。自然语言“修复审计字段/默认字段异常”应调用 `microi_repair_audit_fields`,由平台幂等补元数据,禁止直接用 SQL 临时修租户数据。
|
|
20
21
|
- `sys_menu` 将 DIY 表转换为菜单/模块页面,并存储查询、按钮、导入导出、卡片/移动端、工作流和权限相关的模块配置。
|
|
21
22
|
- `sys_apiengine` 存储接口引擎定义;通过 `V8.ApiEngine.Run(ApiEngineKey, params)` 调用。
|
|
22
23
|
- `sys_datasource` 存储组件和页面可复用的数据源。
|
|
@@ -149,6 +149,12 @@ MCP 建模只使用:
|
|
|
149
149
|
- 不在组件内绕过 FormEngine 权限直接访问任意表。
|
|
150
150
|
- 复杂但租户独有的页面优先使用 MicroService + `V8.OpenAppDialog`,避免把客户逻辑打进主前端。
|
|
151
151
|
|
|
152
|
+
## 固定审计字段
|
|
153
|
+
|
|
154
|
+
- `Id`、`CreateTime`、`UpdateTime`、`UserId`、`UserName`、`IsDeleted` 是 DIY 表的正常固定字段。物理列存在时必须有对应 `diy_field` 元数据,不能长期出现在“异常字段修复”列表;`diy_table.DisplayDefaultField` 只控制设计器默认是否显示这些字段,不等于删除元数据。
|
|
155
|
+
- 统一通过平台修复接口或 MCP `microi_repair_audit_fields` 补齐/恢复元数据。修复必须按 `OsClient` 使用共享租约锁,可重复执行,只处理已存在的固定物理列,不借机执行 DDL,并在成功后清理字段缓存。
|
|
156
|
+
- 表格里的创建人、创建时间、修改时间等审计列应与普通字段共用列头高级搜索、权限和格式化逻辑。
|
|
157
|
+
|
|
152
158
|
## 验收
|
|
153
159
|
|
|
154
160
|
- 物理列与 `diy_field` 一致,字段缓存已刷新。
|
|
@@ -175,8 +175,10 @@ VS Code 插件必须让用户清楚知道本地和远端是否一致。
|
|
|
175
175
|
1. 已有 MCP 工具直接完成。
|
|
176
176
|
2. MCP 缺工具但后端有 API:补 MCP 封装。
|
|
177
177
|
3. 后端也缺通用 API:补 `V8EngineController` 或对应平台控制器的通用能力,再补 MCP。
|
|
178
|
-
4. 只有租户私有业务逻辑才新建接口引擎。
|
|
179
|
-
|
|
178
|
+
4. 只有租户私有业务逻辑才新建接口引擎。
|
|
179
|
+
|
|
180
|
+
交付包含 DIY 表时,验收固定审计物理列与 `diy_field` 元数据一致;发现 `Id/CreateTime/UpdateTime/UserId/UserName/IsDeleted` 被列为异常字段时,调用通用修复接口或 MCP `microi_repair_audit_fields` 幂等修复并回读。交付用户个性化首页时,同时验收 Token 绑定保存、站内路由规范化、权限失效回退,以及账号密码、Token 与 SSO 三种登录入口的一致性。
|
|
181
|
+
|
|
180
182
|
不要用租户接口引擎修平台设计器、全局上传限制、VS Code 插件同步、MCP 元数据写入等平台级问题。
|
|
181
183
|
|
|
182
184
|
## 平台安全与存量兼容验收(强制)
|
|
@@ -38,6 +38,8 @@ Microi.UI 不只是组件集合,它是 AI 构建软件的视觉交付标准:
|
|
|
38
38
|
- 先完成默认、加载、空、错误、禁用、权限、成功状态,再增加装饰和动效。
|
|
39
39
|
- 涉及完整产品设计时,读取 [设计模式库](../ui-design/references/design-pattern-library.md);涉及登录、订阅、支付、权限、搜索和设置时读取 [产品流程配方](../ui-design/references/product-flow-recipes.md);涉及动效、Canvas/WebGL、图片或视频时读取 [动效与媒体规范](../ui-design/references/motion-and-media.md)。
|
|
40
40
|
- 整站或长期维护项目必须在项目根目录维护 `MCI-DESIGN.md`,按 [设计契约规范](../ui-design/references/mci-design-contract.md) 描述 token、组件状态、动效、响应式和降级策略;可复制 [契约模板](../ui-design/assets/templates/MCI-DESIGN.md)。
|
|
41
|
+
- 设计契约必须同时包含“精确值”和“设计理由”:机器块保存语义 token、`{路径}` 引用与组件状态,说明章节保存用户任务、主情绪、具体视觉隐喻、选择理由和明确禁区。实现前先读理由,不能只读取色值。
|
|
42
|
+
- 契约固定核心章节顺序,检查重复/近似章节、错误类型、缺失/循环引用、主色与对比度、孤立 token、透明表面底色、状态覆盖和有意省略;契约差异与页面差异必须一起评审。
|
|
41
43
|
- [原创模式案例](../ui-design/assets/pattern-showcase/index.html) 只用于理解结构、状态和视觉差异,业务项目应替换为自己的信息架构和合法资产。
|
|
42
44
|
|
|
43
45
|
## 源码结构
|
|
@@ -89,6 +91,13 @@ Microi.UI 不只是组件集合,它是 AI 构建软件的视觉交付标准:
|
|
|
89
91
|
- `MciDataState`:空、错、成功状态。
|
|
90
92
|
- `MciRichText`:报告、文章、说明。
|
|
91
93
|
|
|
94
|
+
### 后台数据卡片
|
|
95
|
+
|
|
96
|
+
- 卡片模式按“身份 → 标题/状态 → 关键字段 → 时间/标签 → 操作”组织;无真实图片时使用 40—44px 紧凑标记,不使用大面积装饰字母占位。
|
|
97
|
+
- 无显式列数时桌面默认四列,显式业务列数优先;平板降为两至三列,移动单列。标题最多两行,数据卡不做营销海报式大图和多重炫光。
|
|
98
|
+
- 操作区只突出一个主动作,一至两个次动作,其余进入“更多”;危险动作降权,移动触控高度不小于 44px。
|
|
99
|
+
- 可点击整卡必须有 hover/focus/pressed、键盘 Enter/Space、可见焦点与内部控件事件隔离;骨架屏和最终卡片结构等高。
|
|
100
|
+
|
|
92
101
|
## 高品质移动端视觉标准
|
|
93
102
|
|
|
94
103
|
移动端应用必须像经过打磨的产品,而不是把后台表单硬塞进手机视口。
|
|
@@ -29,6 +29,15 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
|
|
|
29
29
|
- 设计前必须读取 [references/design-pattern-library.md](references/design-pattern-library.md);涉及登录、订阅、支付、权限、搜索、设置等流程时再读 [references/product-flow-recipes.md](references/product-flow-recipes.md);涉及滚动、3D、Canvas/WebGL 或动态 Hero 时再读 [references/motion-and-media.md](references/motion-and-media.md);生成整站或交给 AI 延续设计时使用 [references/mci-design-contract.md](references/mci-design-contract.md)。
|
|
30
30
|
- 可运行原创案例位于 [assets/pattern-showcase/index.html](assets/pattern-showcase/index.html),用于理解结构和状态,不作为需要逐像素复制的模板。
|
|
31
31
|
|
|
32
|
+
### 可执行设计契约(整站与长期项目强制)
|
|
33
|
+
|
|
34
|
+
- `MCI-DESIGN.md` 必须同时维护机器可读层和人类可读层:前者保存精确 token、引用和组件状态,后者保存目标用户、情绪、具体视觉隐喻、选择理由和禁区。只有 token 会失去取舍依据,只有形容词无法稳定实现。
|
|
35
|
+
- 设计意图按“用户任务 → 主情绪 → 具体视觉隐喻 → 应当/禁止 → token 与组件”收敛。具体隐喻必须能自然约束色彩、材质、密度、形状和动效;禁止只堆“高级、现代、极简、科技”等宽泛词。
|
|
36
|
+
- 核心章节固定为:产品与用户、视觉性格、颜色、字体、布局与间距、层级与形状、组件与状态、页面模式、动效与媒体、响应式、安全与降级、应当与禁止。扩展章节放在末尾,未知扩展要保留,核心章节不得重复或用近似拼写另起一套。
|
|
37
|
+
- token 使用语义命名并允许组件以 `{路径}` 复用;必须检查缺失/循环引用、错误类型、主色缺失、透明色叠加底、对比度、孤立 token、未覆盖状态和无理由省略。组件至少按适用场景定义 default/hover/focus/pressed/loading/empty/error/disabled/selected/success。
|
|
38
|
+
- 契约与实现必须一起评审差异;意外删除、重命名、大范围 token 漂移或只改契约不改页面都视为未完成。运行时变量或其它主题格式只能从已校验的机器块派生,禁止维护第二份手工 token。
|
|
39
|
+
- 契约格式必须锁定版本,升级时先检查语义差异再迁移;跨平台校验脚本提供稳定入口。完整结构、示例与验收见 [references/mci-design-contract.md](references/mci-design-contract.md),新项目复制 [assets/templates/MCI-DESIGN.md](assets/templates/MCI-DESIGN.md)。
|
|
40
|
+
|
|
32
41
|
---
|
|
33
42
|
|
|
34
43
|
## 样式隔离与抗覆盖
|
|
@@ -74,6 +83,18 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
|
|
|
74
83
|
- 标题最多两行并截断或自然换行,长词必须 `overflow-wrap:anywhere`,不允许撑破卡片。图标按钮、标题、统计文本都要垂直和水平对齐。
|
|
75
84
|
- 修改后必须截图验收 1366/1440/1920 桌面宽度和 390 左右移动宽度,检查每行数量、行列对齐、卡片内边距、标题与统计间距、文字溢出和横向滚动。
|
|
76
85
|
|
|
86
|
+
## PC 后台数据卡片模式规范
|
|
87
|
+
|
|
88
|
+
适用于 `diy-table` 卡片模式、任务/应用/客户/资产列表。它是高频数据操作容器,不是营销海报或入口宫格。
|
|
89
|
+
|
|
90
|
+
- 信息顺序固定为“真实图片或紧凑身份标记 → 标题与状态 → 2—4 个关键字段 → 时间/辅助标签 → 操作区”。标题与状态在首屏可扫读,次要字段不能抢占标题层级。
|
|
91
|
+
- 配置了图片但某行无图时,用 40—44px 首字或业务图标承接身份;禁止生成大面积渐变、发光字母、旋转方块等伪图片占据内容高度。真实图片按稳定比例使用 `cover/contain`。
|
|
92
|
+
- 无显式配置时桌面默认四列,以最小可读宽度优先;显式 `TableCardCol` 配置必须保留。中等宽度降为三列/两列,移动端单列,禁止为“同屏更多”把标题和四个操作挤进过窄卡片。
|
|
93
|
+
- 卡片依靠表面、细边框、轻阴影和 1—2px hover lift 建立层级;不要给每张卡加顶部霓虹线、径向光斑、彩虹渐变或重投影。选中态只改边框/焦点环,不能导致网格跳动。
|
|
94
|
+
- 操作区优先一个主动作、一至两个次动作,其余进入“更多”;危险动作不得与主动作同权。按钮使用 8—10px 软圆角而非满屏胶囊,移动端高度不小于 44px。
|
|
95
|
+
- 整卡可打开详情时提供可见 `focus-visible`、Enter/Space 触发;内部按钮和选择控件阻止冒泡。骨架屏要复刻图片(如有)、标题、字段和按钮的最终几何,不能先显示大图骨架再塌缩为空白。
|
|
96
|
+
- 视觉验收至少覆盖:无图/有图、长标题、多个按钮、选中态、加载/空态、亮/暗主题、1366/1440/1920 桌面与 390 移动。
|
|
97
|
+
|
|
77
98
|
---
|
|
78
99
|
|
|
79
100
|
## 形态模式(圆角 / 扁平)
|