vome-core 0.3.64 → 0.3.66

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.
Files changed (345) hide show
  1. package/dist/admin/api/client.js +7 -2
  2. package/dist/admin/components/ui/avatar/Avatar.vue +18 -18
  3. package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -21
  4. package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -16
  5. package/dist/admin/components/ui/avatar/index.js +1 -1
  6. package/dist/admin/components/ui/badge/Badge.vue +26 -26
  7. package/dist/admin/components/ui/button/Button.vue +31 -31
  8. package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -35
  9. package/dist/admin/components/ui/checkbox/index.js +1 -1
  10. package/dist/admin/components/ui/dialog/Dialog.vue +19 -19
  11. package/dist/admin/components/ui/dialog/DialogClose.vue +15 -15
  12. package/dist/admin/components/ui/dialog/DialogContent.vue +267 -267
  13. package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -23
  14. package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -27
  15. package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -17
  16. package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -21
  17. package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -60
  18. package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -23
  19. package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -15
  20. package/dist/admin/components/ui/dialog/index.js +1 -1
  21. package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -19
  22. package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -39
  23. package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -39
  24. package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -15
  25. package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -31
  26. package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -23
  27. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -21
  28. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -40
  29. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -23
  30. package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -17
  31. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -18
  32. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -27
  33. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -31
  34. package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -17
  35. package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
  36. package/dist/admin/components/ui/input/Input.vue +183 -183
  37. package/dist/admin/components/ui/input/index.js +1 -1
  38. package/dist/admin/components/ui/label/Label.vue +26 -26
  39. package/dist/admin/components/ui/label/index.js +1 -1
  40. package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -33
  41. package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -32
  42. package/dist/admin/components/ui/scroll-area/index.js +1 -1
  43. package/dist/admin/components/ui/select/Select.vue +19 -19
  44. package/dist/admin/components/ui/select/SelectContent.vue +51 -51
  45. package/dist/admin/components/ui/select/SelectGroup.vue +15 -15
  46. package/dist/admin/components/ui/select/SelectItem.vue +53 -53
  47. package/dist/admin/components/ui/select/SelectItemText.vue +15 -15
  48. package/dist/admin/components/ui/select/SelectLabel.vue +17 -17
  49. package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -26
  50. package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -26
  51. package/dist/admin/components/ui/select/SelectSeparator.vue +19 -19
  52. package/dist/admin/components/ui/select/SelectTrigger.vue +44 -44
  53. package/dist/admin/components/ui/select/SelectValue.vue +15 -15
  54. package/dist/admin/components/ui/select/index.js +1 -1
  55. package/dist/admin/components/ui/separator/Separator.vue +29 -29
  56. package/dist/admin/components/ui/separator/index.js +1 -1
  57. package/dist/admin/components/ui/sheet/Sheet.vue +19 -19
  58. package/dist/admin/components/ui/sheet/SheetClose.vue +15 -15
  59. package/dist/admin/components/ui/sheet/SheetContent.vue +63 -63
  60. package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -21
  61. package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -16
  62. package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -15
  63. package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -21
  64. package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -21
  65. package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -15
  66. package/dist/admin/components/ui/sheet/index.js +1 -1
  67. package/dist/admin/components/ui/sonner/Toaster.vue +117 -117
  68. package/dist/admin/components/ui/sonner/index.js +1 -1
  69. package/dist/admin/components/ui/table/Table.vue +16 -16
  70. package/dist/admin/components/ui/table/TableBody.vue +17 -17
  71. package/dist/admin/components/ui/table/TableCaption.vue +17 -17
  72. package/dist/admin/components/ui/table/TableCell.vue +22 -22
  73. package/dist/admin/components/ui/table/TableEmpty.vue +34 -34
  74. package/dist/admin/components/ui/table/TableFooter.vue +17 -17
  75. package/dist/admin/components/ui/table/TableHead.vue +17 -17
  76. package/dist/admin/components/ui/table/TableHeader.vue +17 -17
  77. package/dist/admin/components/ui/table/TableRow.vue +17 -17
  78. package/dist/admin/components/ui/table/index.js +1 -1
  79. package/dist/admin/components/ui/tabs/Tabs.vue +24 -24
  80. package/dist/admin/components/ui/tabs/TabsContent.vue +21 -21
  81. package/dist/admin/components/ui/tabs/TabsList.vue +24 -24
  82. package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -26
  83. package/dist/admin/components/ui/tabs/index.js +1 -1
  84. package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -19
  85. package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -34
  86. package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -14
  87. package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -15
  88. package/dist/admin/components/ui/tooltip/index.js +1 -1
  89. package/dist/admin/components/vm-action-btn.vue +136 -136
  90. package/dist/admin/components/vm-aside-list-item.vue +136 -136
  91. package/dist/admin/components/vm-aside.vue +229 -229
  92. package/dist/admin/components/vm-auto-perm-dialog.vue +371 -371
  93. package/dist/admin/components/vm-card-grid.vue +37 -37
  94. package/dist/admin/components/vm-card-head.vue +45 -45
  95. package/dist/admin/components/vm-card-meta.vue +22 -22
  96. package/dist/admin/components/vm-card-title.vue +56 -56
  97. package/dist/admin/components/vm-card.vue +176 -176
  98. package/dist/admin/components/vm-check-tree.vue +340 -340
  99. package/dist/admin/components/vm-clamp-text.vue +39 -39
  100. package/dist/admin/components/vm-dept-tree.vue +497 -497
  101. package/dist/admin/components/vm-empty.vue +68 -68
  102. package/dist/admin/components/vm-eps-perm-picker.vue +123 -123
  103. package/dist/admin/components/vm-form-dialog.vue +632 -632
  104. package/dist/admin/components/vm-group-cascader.vue +560 -560
  105. package/dist/admin/components/vm-icon-btn.vue +88 -88
  106. package/dist/admin/components/vm-icon-picker.vue +647 -647
  107. package/dist/admin/components/vm-inline-search.vue +61 -61
  108. package/dist/admin/components/vm-loading.vue +114 -114
  109. package/dist/admin/components/vm-markdown.vue +405 -405
  110. package/dist/admin/components/vm-marquee.vue +265 -265
  111. package/dist/admin/components/vm-page-tabs.vue +94 -94
  112. package/dist/admin/components/vm-perm-section.vue +57 -57
  113. package/dist/admin/components/vm-ri-icon.vue +23 -23
  114. package/dist/admin/components/vm-role-picker.vue +314 -314
  115. package/dist/admin/components/vm-split-layout.vue +106 -106
  116. package/dist/admin/components/vm-thumb.vue +49 -49
  117. package/dist/admin/components/vm-view-path-picker.vue +59 -59
  118. package/dist/admin/crud/auto-fields.js +1 -1
  119. package/dist/admin/crud/components/vm-avatar.vue +104 -104
  120. package/dist/admin/crud/components/vm-color-picker.vue +1626 -1626
  121. package/dist/admin/crud/components/vm-column-custom.vue +193 -193
  122. package/dist/admin/crud/components/vm-context-menu.vue +105 -105
  123. package/dist/admin/crud/components/vm-copy-btn.vue +102 -102
  124. package/dist/admin/crud/components/vm-date-calendar-panel.vue +537 -537
  125. package/dist/admin/crud/components/vm-date-picker.vue +75 -75
  126. package/dist/admin/crud/components/vm-date-range.vue +88 -88
  127. package/dist/admin/crud/components/vm-date-text.vue +42 -42
  128. package/dist/admin/crud/components/vm-datetime-field.vue +215 -215
  129. package/dist/admin/crud/components/vm-datetime-picker.vue +9 -9
  130. package/dist/admin/crud/components/vm-dict-tag.vue +112 -112
  131. package/dist/admin/crud/components/vm-ellipsis-text.vue +34 -34
  132. package/dist/admin/crud/components/vm-form-hint.vue +81 -81
  133. package/dist/admin/crud/components/vm-json-code.vue +41 -41
  134. package/dist/admin/crud/components/vm-json-editor.vue +161 -161
  135. package/dist/admin/crud/components/vm-json-kv-editor.vue +318 -318
  136. package/dist/admin/crud/components/vm-kv-row.vue +51 -51
  137. package/dist/admin/crud/components/vm-multi-select.vue +279 -279
  138. package/dist/admin/crud/components/vm-number-range.vue +204 -204
  139. package/dist/admin/crud/components/vm-preview-viewer.vue +894 -894
  140. package/dist/admin/crud/components/vm-radio.vue +87 -87
  141. package/dist/admin/crud/components/vm-richtext.vue +313 -313
  142. package/dist/admin/crud/components/vm-select.vue +570 -570
  143. package/dist/admin/crud/components/vm-status-tag.vue +158 -158
  144. package/dist/admin/crud/components/vm-switch.vue +158 -158
  145. package/dist/admin/crud/components/vm-tag-list.vue +108 -108
  146. package/dist/admin/crud/components/vm-text-link.vue +52 -52
  147. package/dist/admin/crud/components/vm-toggle-switch.vue +84 -84
  148. package/dist/admin/crud/components/vm-tree-select.vue +450 -450
  149. package/dist/admin/crud/components/vm-upload-item.vue +298 -298
  150. package/dist/admin/crud/components/vm-upload.vue +436 -436
  151. package/dist/admin/crud/config.js +1 -1
  152. package/dist/admin/crud/confirm.js +1 -1
  153. package/dist/admin/crud/crud-page-request.js +1 -1
  154. package/dist/admin/crud/data-i18n.js +1 -1
  155. package/dist/admin/crud/dict.js +1 -1
  156. package/dist/admin/crud/export-fetch.js +1 -1
  157. package/dist/admin/crud/index.js +1 -0
  158. package/dist/admin/crud/key.js +1 -1
  159. package/dist/admin/crud/plugins.js +1 -1
  160. package/dist/admin/crud/span.js +1 -1
  161. package/dist/admin/crud/style.js +1 -1
  162. package/dist/admin/crud/useCrud.js +3 -0
  163. package/dist/admin/crud/validate.js +1 -1
  164. package/dist/admin/crud/vm-add-btn.vue +70 -70
  165. package/dist/admin/crud/vm-adv-search.vue +83 -83
  166. package/dist/admin/crud/vm-crud.vue +711 -711
  167. package/dist/admin/crud/vm-data-i18n-btn.vue +456 -456
  168. package/dist/admin/crud/vm-data-i18n-lang.vue +183 -183
  169. package/dist/admin/crud/vm-export-btn.vue +183 -183
  170. package/dist/admin/crud/vm-flex.vue +14 -14
  171. package/dist/admin/crud/vm-form.vue +33 -15
  172. package/dist/admin/crud/vm-import-btn.vue +747 -747
  173. package/dist/admin/crud/vm-multi-delete-btn.vue +49 -49
  174. package/dist/admin/crud/vm-pagination.vue +212 -212
  175. package/dist/admin/crud/vm-refresh-btn.vue +35 -35
  176. package/dist/admin/crud/vm-row.vue +55 -55
  177. package/dist/admin/crud/vm-search-key.vue +78 -78
  178. package/dist/admin/crud/vm-search.vue +466 -466
  179. package/dist/admin/crud/vm-table.vue +1390 -1390
  180. package/dist/admin/crud/vm-tabs.vue +94 -94
  181. package/dist/admin/crud/vm-toolbar.vue +357 -357
  182. package/dist/admin/crud/vm-upsert.vue +765 -765
  183. package/dist/admin/directives/perm.js +1 -1
  184. package/dist/admin/env.d.ts +1 -1
  185. package/dist/admin/hooks/useUpload.js +1 -1
  186. package/dist/admin/index.d.ts +1 -31
  187. package/dist/admin/lib/browser.js +1 -1
  188. package/dist/admin/lib/cn.js +1 -1
  189. package/dist/admin/lib/dialog-float.js +1 -1
  190. package/dist/admin/lib/export-excel.js +1 -1
  191. package/dist/admin/lib/import-excel.js +1 -1
  192. package/dist/admin/lib/json.js +1 -1
  193. package/dist/admin/lib/menu.js +1 -1
  194. package/dist/admin/lib/micro-locale.js +1 -1
  195. package/dist/admin/lib/micro-theme.js +1 -1
  196. package/dist/admin/lib/shell.js +1 -1
  197. package/dist/admin/lib/theme-color-options.js +1 -1
  198. package/dist/admin/lib/tree.js +1 -1
  199. package/dist/admin/lib/upload.js +1 -1
  200. package/dist/admin/lib/video-frame.js +1 -1
  201. package/dist/admin/router/create.js +1 -1
  202. package/dist/admin/router/guards.js +1 -1
  203. package/dist/admin/router/index.d.ts +1 -5
  204. package/dist/admin/service/index.d.ts +1 -11
  205. package/dist/admin/styles/base.css +121 -121
  206. package/dist/admin/vendor/browser-image-compression.js +1144 -1144
  207. package/dist/admin/vendor/decimal-js.js +12 -12
  208. package/dist/admin/vendor/xlsx.js +263 -263
  209. package/dist/ai/index.js +1 -1
  210. package/dist/client/admin-vendor.d.ts +1 -13
  211. package/dist/client/ai-model-registry.js +1 -1
  212. package/dist/client/base.js +1 -1
  213. package/dist/client/configure.js +1 -1
  214. package/dist/client/dict.js +1 -1
  215. package/dist/client/eps-payload.js +1 -1
  216. package/dist/client/eps.js +1 -1
  217. package/dist/client/index.d.ts +1 -7
  218. package/dist/client/index.js +1 -1
  219. package/dist/client/locale-change.js +1 -1
  220. package/dist/client/locale-store.js +1 -1
  221. package/dist/client/service.js +1 -1
  222. package/dist/client/vite-admin.d.ts +1 -40
  223. package/dist/client/vite-admin.js +1 -1
  224. package/dist/client/vite-auto-import.d.ts +1 -2
  225. package/dist/client/vite-auto-import.js +1 -1
  226. package/dist/client/vite-micro-proxy.d.ts +1 -20
  227. package/dist/client/vite-micro-proxy.js +1 -1
  228. package/dist/client/vite-plugin-eps.d.ts +1 -20
  229. package/dist/client/vite-plugin-eps.js +1 -1
  230. package/dist/client/vite-resolve.d.ts +1 -16
  231. package/dist/client/vite-resolve.js +1 -1
  232. package/dist/config/index.js +1 -1
  233. package/dist/core/index.d.ts +1 -1
  234. package/dist/index.js +1 -1
  235. package/dist/ioc/index.d.ts +1 -1
  236. package/dist/server/index.d.ts +1 -1
  237. package/dist/server/index.js +1 -1
  238. package/dist/shared/datetime-picker.js +1 -1
  239. package/dist/shared/decimal.js +1 -1
  240. package/dist/shared/excel.js +1 -1
  241. package/dist/shared/index.js +1 -1
  242. package/dist/shared/locale-json.js +1 -1
  243. package/dist/shared/tree.js +1 -1
  244. package/package.json +1 -1
  245. package/typings/admin/base/auth.ts +24 -24
  246. package/typings/admin/base/permission.ts +19 -19
  247. package/typings/admin/comm/cascader.ts +7 -7
  248. package/typings/admin/comm/check-tree.ts +7 -7
  249. package/typings/admin/comm/crud.ts +427 -427
  250. package/typings/admin/comm/eps.ts +86 -86
  251. package/typings/admin/comm/request.ts +16 -16
  252. package/typings/admin/comm/service.ts +43 -43
  253. package/typings/admin/comm/upload.ts +39 -39
  254. package/typings/admin/theme.ts +10 -10
  255. package/typings/admin/vome/browser.ts +11 -11
  256. package/typings/admin/vome/module.ts +13 -13
  257. package/typings/admin/vome/tags.ts +9 -9
  258. package/typings/comm/crud.ts +83 -83
  259. package/typings/comm/page.ts +18 -18
  260. package/typings/comm/scan.ts +6 -6
  261. package/typings/common.ts +4 -4
  262. package/typings/context/data.ts +10 -10
  263. package/typings/ext/market-seat.ts +42 -42
  264. package/typings/ext/market.ts +55 -55
  265. package/typings/ext/module.ts +64 -64
  266. package/typings/ext/plugin.ts +38 -38
  267. package/typings/ioc/metadata.ts +34 -34
  268. package/typings/logger/config.ts +6 -6
  269. package/typings/routing/crud.ts +199 -199
  270. package/typings/routing/eps.ts +88 -88
  271. package/typings/routing/meta.ts +63 -63
  272. package/typings/routing/register.ts +21 -21
  273. package/typings/routing/scan-context.ts +7 -7
  274. package/dist/admin/api/client.d.ts +0 -50
  275. package/dist/admin/components/ui/avatar/index.d.ts +0 -3
  276. package/dist/admin/components/ui/badge/index.d.ts +0 -6
  277. package/dist/admin/components/ui/button/index.d.ts +0 -7
  278. package/dist/admin/components/ui/checkbox/index.d.ts +0 -1
  279. package/dist/admin/components/ui/dialog/index.d.ts +0 -10
  280. package/dist/admin/components/ui/dropdown-menu/index.d.ts +0 -15
  281. package/dist/admin/components/ui/input/index.d.ts +0 -1
  282. package/dist/admin/components/ui/label/index.d.ts +0 -1
  283. package/dist/admin/components/ui/scroll-area/index.d.ts +0 -2
  284. package/dist/admin/components/ui/select/index.d.ts +0 -11
  285. package/dist/admin/components/ui/separator/index.d.ts +0 -1
  286. package/dist/admin/components/ui/sheet/index.d.ts +0 -8
  287. package/dist/admin/components/ui/sonner/index.d.ts +0 -1
  288. package/dist/admin/components/ui/table/index.d.ts +0 -9
  289. package/dist/admin/components/ui/tabs/index.d.ts +0 -4
  290. package/dist/admin/components/ui/tooltip/index.d.ts +0 -4
  291. package/dist/admin/crud/auto-fields.d.ts +0 -68
  292. package/dist/admin/crud/config.d.ts +0 -5
  293. package/dist/admin/crud/confirm.d.ts +0 -19
  294. package/dist/admin/crud/crud-page-request.d.ts +0 -21
  295. package/dist/admin/crud/data-i18n.d.ts +0 -62
  296. package/dist/admin/crud/dict.d.ts +0 -4
  297. package/dist/admin/crud/export-fetch.d.ts +0 -22
  298. package/dist/admin/crud/index.d.ts +0 -60
  299. package/dist/admin/crud/json-kv.d.ts +0 -9
  300. package/dist/admin/crud/key.d.ts +0 -22
  301. package/dist/admin/crud/paging.d.ts +0 -2
  302. package/dist/admin/crud/plugins.d.ts +0 -63
  303. package/dist/admin/crud/registry.d.ts +0 -3
  304. package/dist/admin/crud/span.d.ts +0 -17
  305. package/dist/admin/crud/style.d.ts +0 -82
  306. package/dist/admin/crud/useCrud.d.ts +0 -21
  307. package/dist/admin/crud/validate.d.ts +0 -7
  308. package/dist/admin/directives/perm.d.ts +0 -3
  309. package/dist/admin/hooks/useBrowser.d.ts +0 -6
  310. package/dist/admin/hooks/useUpload.d.ts +0 -8
  311. package/dist/admin/hooks/useVome.d.ts +0 -10
  312. package/dist/admin/lib/browser.d.ts +0 -3
  313. package/dist/admin/lib/cn.d.ts +0 -2
  314. package/dist/admin/lib/compress-image.d.ts +0 -12
  315. package/dist/admin/lib/dialog-float.d.ts +0 -8
  316. package/dist/admin/lib/eps.d.ts +0 -2
  317. package/dist/admin/lib/export-excel.d.ts +0 -9
  318. package/dist/admin/lib/file-preview.d.ts +0 -9
  319. package/dist/admin/lib/import-excel.d.ts +0 -21
  320. package/dist/admin/lib/json.d.ts +0 -11
  321. package/dist/admin/lib/menu.d.ts +0 -3
  322. package/dist/admin/lib/micro-locale.d.ts +0 -5
  323. package/dist/admin/lib/micro-theme.d.ts +0 -14
  324. package/dist/admin/lib/module.d.ts +0 -21
  325. package/dist/admin/lib/scarce-assets.d.ts +0 -5
  326. package/dist/admin/lib/shell.d.ts +0 -8
  327. package/dist/admin/lib/theme-color-options.d.ts +0 -15
  328. package/dist/admin/lib/tree.d.ts +0 -2
  329. package/dist/admin/lib/upload.d.ts +0 -17
  330. package/dist/admin/lib/video-frame.d.ts +0 -6
  331. package/dist/admin/router/create.d.ts +0 -16
  332. package/dist/admin/router/guards.d.ts +0 -6
  333. package/dist/admin/router/menu-routes.d.ts +0 -13
  334. package/dist/admin/stores/app.d.ts +0 -13
  335. package/dist/admin/stores/tags.d.ts +0 -14
  336. package/dist/admin/stores/user.d.ts +0 -48
  337. package/dist/client/ai-model-registry.d.ts +0 -16
  338. package/dist/client/base.d.ts +0 -28
  339. package/dist/client/configure.d.ts +0 -33
  340. package/dist/client/dict.d.ts +0 -31
  341. package/dist/client/eps-payload.d.ts +0 -3
  342. package/dist/client/eps.d.ts +0 -17
  343. package/dist/client/locale-change.d.ts +0 -16
  344. package/dist/client/locale-store.d.ts +0 -105
  345. package/dist/client/service.d.ts +0 -29
@@ -1 +1 @@
1
- function _0x7e6b(){const _0x2ccc8f=['nty0CgX1t1HJ','ntG0ngHjuuf4uq','mJa5nJvVC0DOBKe','nJu1oe9Pv1bSsa','Bgf5B3v0','Ag9Tzq','mtjpAM5SC1y','lZPWyxrOtwf0y2GOlIOPkG','ntjpu1Lqsuu','ndC5mdCZCMDAwwjn','mtiWodDUt3rjBKC','Bg9NAw4','nta4mLPhzwLtrW','mJbYA1Htvvm','mta0ntC1ywXktw1s','CgfNzu5VDezVDw5K','BwLJCM8','nJu1odG3mLP1AhfAuW'];_0x7e6b=function(){return _0x2ccc8f;};return _0x7e6b();}(function(_0x2ac0cf,_0x5dd636){const _0x412638=_0x5147,_0x2ef27e=_0x2ac0cf();while(!![]){try{const _0x384697=parseInt(_0x412638(0x19a))/0x1*(parseInt(_0x412638(0x1a0))/0x2)+parseInt(_0x412638(0x19b))/0x3*(parseInt(_0x412638(0x198))/0x4)+parseInt(_0x412638(0x194))/0x5+-parseInt(_0x412638(0x19e))/0x6*(-parseInt(_0x412638(0x1a1))/0x7)+-parseInt(_0x412638(0x197))/0x8+-parseInt(_0x412638(0x1a2))/0x9*(parseInt(_0x412638(0x1a5))/0xa)+parseInt(_0x412638(0x1a4))/0xb*(parseInt(_0x412638(0x199))/0xc);if(_0x384697===_0x5dd636)break;else _0x2ef27e['push'](_0x2ef27e['shift']());}catch(_0x5a34e7){_0x2ef27e['push'](_0x2ef27e['shift']());}}}(_0x7e6b,0x64f76));import{createRouter,createWebHistory}from'vue-router';function _0x5147(_0x1b7ff9,_0x5ca1bd){_0x1b7ff9=_0x1b7ff9-0x194;const _0x7e6bf4=_0x7e6b();let _0x5147fd=_0x7e6bf4[_0x1b7ff9];if(_0x5147['nXxHUi']===undefined){var _0x226c1e=function(_0xea070b){const _0x26e6b3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xaa1e26='',_0x2a51e6='';for(let _0x10fd92=0x0,_0x213b67,_0x4f1c2f,_0x4174c2=0x0;_0x4f1c2f=_0xea070b['charAt'](_0x4174c2++);~_0x4f1c2f&&(_0x213b67=_0x10fd92%0x4?_0x213b67*0x40+_0x4f1c2f:_0x4f1c2f,_0x10fd92++%0x4)?_0xaa1e26+=String['fromCharCode'](0xff&_0x213b67>>(-0x2*_0x10fd92&0x6)):0x0){_0x4f1c2f=_0x26e6b3['indexOf'](_0x4f1c2f);}for(let _0x30e4e4=0x0,_0x37942b=_0xaa1e26['length'];_0x30e4e4<_0x37942b;_0x30e4e4++){_0x2a51e6+='%'+('00'+_0xaa1e26['charCodeAt'](_0x30e4e4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a51e6);};_0x5147['sgKNjl']=_0x226c1e,_0x5147['fnXudL']={},_0x5147['nXxHUi']=!![];}const _0x2a6394=_0x7e6bf4[0x0],_0x57434f=_0x1b7ff9+_0x2a6394,_0x31d94b=_0x5147['fnXudL'][_0x57434f];return!_0x31d94b?(_0x5147fd=_0x5147['sgKNjl'](_0x5147fd),_0x5147['fnXudL'][_0x57434f]=_0x5147fd):_0x5147fd=_0x31d94b,_0x5147fd;}import{crudLabel}from'../crud/style';import{setupAdminRouterGuards}from'./guards';export function createAdminRouter(_0xaa1e26){const _0x107ea3=_0x5147,_0x2a51e6={'missing':_0xaa1e26['missing'],'micro':_0xaa1e26[_0x107ea3(0x196)]},_0x10fd92=createRouter({'history':createWebHistory(),'routes':[{'path':'/login','name':_0x107ea3(0x1a3),'component':_0xaa1e26[_0x107ea3(0x1a3)],'meta':{'public':!![]}},{'path':'/','name':_0x107ea3(0x19c),'component':_0xaa1e26[_0x107ea3(0x19c)],'children':[{'path':'','name':_0x107ea3(0x19d),'component':_0xaa1e26['home'],'meta':{'title':crudLabel(_0x107ea3(0x19d))}}]},{'path':_0x107ea3(0x19f),'name':'not-found','component':_0xaa1e26['missing'],'meta':{'title':crudLabel(_0x107ea3(0x195))}}]});return setupAdminRouterGuards(_0x10fd92,_0x2a51e6),{'router':_0x10fd92,'menuRouteShell':_0x2a51e6};}
1
+ (function(_0x2b2ab6,_0x18b12c){const _0x159806=_0xa557,_0x2a5ed9=_0x2b2ab6();while(!![]){try{const _0x5b6d46=parseInt(_0x159806(0x11d))/0x1+parseInt(_0x159806(0x124))/0x2+parseInt(_0x159806(0x120))/0x3*(parseInt(_0x159806(0x12b))/0x4)+-parseInt(_0x159806(0x11e))/0x5+parseInt(_0x159806(0x129))/0x6+-parseInt(_0x159806(0x11f))/0x7*(-parseInt(_0x159806(0x123))/0x8)+parseInt(_0x159806(0x12c))/0x9*(-parseInt(_0x159806(0x122))/0xa);if(_0x5b6d46===_0x18b12c)break;else _0x2a5ed9['push'](_0x2a5ed9['shift']());}catch(_0x4f8250){_0x2a5ed9['push'](_0x2a5ed9['shift']());}}}(_0x43d1,0x21af8));function _0x43d1(){const _0x62cdf3=['ntu1mdm1t3PivuzP','mtGYAgLZC05z','ouP1ELHAzG','Ag9Tzq','mtbYEhHIAwS','nta2otzpwLjpCe8','mtq1nJyWuMfyq3DO','Bg9NAw4','BwLJCM8','Bgf5B3v0','BwLZC2LUzW','mZy5mtuWBKrtsw5X','lZPWyxrOtwf0y2GOlIOPkG','mJmXntu2AuvzvLvg','mZC5nZC3nuDJC2nyEa','mtK4mtC0qw5NswnJ'];_0x43d1=function(){return _0x62cdf3;};return _0x43d1();}import{createRouter,createWebHistory}from'vue-router';function _0xa557(_0x243693,_0x585caf){_0x243693=_0x243693-0x11d;const _0x43d1d8=_0x43d1();let _0xa557c3=_0x43d1d8[_0x243693];if(_0xa557['gZcPcM']===undefined){var _0x5e84db=function(_0x263498){const _0x51f026='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x243b85='',_0x622d74='';for(let _0x196d75=0x0,_0x408844,_0x51edcd,_0x3c459e=0x0;_0x51edcd=_0x263498['charAt'](_0x3c459e++);~_0x51edcd&&(_0x408844=_0x196d75%0x4?_0x408844*0x40+_0x51edcd:_0x51edcd,_0x196d75++%0x4)?_0x243b85+=String['fromCharCode'](0xff&_0x408844>>(-0x2*_0x196d75&0x6)):0x0){_0x51edcd=_0x51f026['indexOf'](_0x51edcd);}for(let _0x4db1d2=0x0,_0x1c8239=_0x243b85['length'];_0x4db1d2<_0x1c8239;_0x4db1d2++){_0x622d74+='%'+('00'+_0x243b85['charCodeAt'](_0x4db1d2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x622d74);};_0xa557['LFKHKQ']=_0x5e84db,_0xa557['cjpsRq']={},_0xa557['gZcPcM']=!![];}const _0x3d8f95=_0x43d1d8[0x0],_0x1b7cb3=_0x243693+_0x3d8f95,_0x3897bf=_0xa557['cjpsRq'][_0x1b7cb3];return!_0x3897bf?(_0xa557c3=_0xa557['LFKHKQ'](_0xa557c3),_0xa557['cjpsRq'][_0x1b7cb3]=_0xa557c3):_0xa557c3=_0x3897bf,_0xa557c3;}import{crudLabel}from'../crud/style';import{setupAdminRouterGuards}from'./guards';export function createAdminRouter(_0x243b85){const _0x38269f=_0xa557,_0x622d74={'missing':_0x243b85[_0x38269f(0x128)],'micro':_0x243b85[_0x38269f(0x126)]},_0x196d75=createRouter({'history':createWebHistory(),'routes':[{'path':'/login','name':_0x38269f(0x125),'component':_0x243b85[_0x38269f(0x125)],'meta':{'public':!![]}},{'path':'/','name':'layout','component':_0x243b85[_0x38269f(0x127)],'children':[{'path':'','name':_0x38269f(0x121),'component':_0x243b85['home'],'meta':{'title':crudLabel(_0x38269f(0x121))}}]},{'path':_0x38269f(0x12a),'name':'not-found','component':_0x243b85[_0x38269f(0x128)],'meta':{'title':crudLabel('pageNotFound')}}]});return setupAdminRouterGuards(_0x196d75,_0x622d74),{'router':_0x196d75,'menuRouteShell':_0x622d74};}
@@ -1 +1 @@
1
- (function(_0x4a0eba,_0x503024){const _0x198ee5=_0x4c19,_0x272427=_0x4a0eba();while(!![]){try{const _0x1c8017=parseInt(_0x198ee5(0x98))/0x1+parseInt(_0x198ee5(0x9f))/0x2+parseInt(_0x198ee5(0xa3))/0x3*(-parseInt(_0x198ee5(0xa4))/0x4)+parseInt(_0x198ee5(0x9c))/0x5+-parseInt(_0x198ee5(0x96))/0x6+-parseInt(_0x198ee5(0xa6))/0x7+-parseInt(_0x198ee5(0x9e))/0x8;if(_0x1c8017===_0x503024)break;else _0x272427['push'](_0x272427['shift']());}catch(_0x270d38){_0x272427['push'](_0x272427['shift']());}}}(_0x2cc1,0xa3eca));import{getAccessToken,getRefreshToken}from'../api/client';import{createEps,setServicePerms}from'../service';function _0x2cc1(){const _0x346c34=['z2v0','mtmXmZeXng9zAuXYDG','CgvYBxm','Cgf0Aa','zNvSBfbHDgG','ntG1nZGYnvz0BMPTwa','yMvMB3jLrwfJAa','ndC2ndu4ngDtC2f3uG','mJi3ode4mNnpt1n6BW','ChvIBgLJ','BwvUDxm','Bg9Hza','m3fgDNjqyq','mJG3nZe0mhrRrhLgCa','C2v0','nda5mZq2mejbrgLwqW','Bg9NAw4','nJmXnJe4ohfut3r5sW'];_0x2cc1=function(){return _0x346c34;};return _0x2cc1();}function _0x4c19(_0x5a0f5d,_0x3f4163){_0x5a0f5d=_0x5a0f5d-0x95;const _0x2cc1aa=_0x2cc1();let _0x4c19eb=_0x2cc1aa[_0x5a0f5d];if(_0x4c19['wpJCzp']===undefined){var _0x7357bc=function(_0x1c9a87){const _0x5b1bb6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45c757='',_0x5491bb='';for(let _0x3530e5=0x0,_0x180f0f,_0x3afeb1,_0x3c8e05=0x0;_0x3afeb1=_0x1c9a87['charAt'](_0x3c8e05++);~_0x3afeb1&&(_0x180f0f=_0x3530e5%0x4?_0x180f0f*0x40+_0x3afeb1:_0x3afeb1,_0x3530e5++%0x4)?_0x45c757+=String['fromCharCode'](0xff&_0x180f0f>>(-0x2*_0x3530e5&0x6)):0x0){_0x3afeb1=_0x5b1bb6['indexOf'](_0x3afeb1);}for(let _0x5e4f9c=0x0,_0x5821da=_0x45c757['length'];_0x5e4f9c<_0x5821da;_0x5e4f9c++){_0x5491bb+='%'+('00'+_0x45c757['charCodeAt'](_0x5e4f9c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5491bb);};_0x4c19['KlsDIf']=_0x7357bc,_0x4c19['sRzAPe']={},_0x4c19['wpJCzp']=!![];}const _0x3c981a=_0x2cc1aa[0x0],_0x1fe940=_0x5a0f5d+_0x3c981a,_0x500752=_0x4c19['sRzAPe'][_0x1fe940];return!_0x500752?(_0x4c19eb=_0x4c19['KlsDIf'](_0x4c19eb),_0x4c19['sRzAPe'][_0x1fe940]=_0x4c19eb):_0x4c19eb=_0x500752,_0x4c19eb;}import{useUserStore}from'../stores/user';import{clearMenuRoutesFlag,ensureMenuRoutes,removeAllMenuRoutes}from'./menu-routes';const menuReadyMap=new WeakMap();export function setupAdminRouterGuards(_0x45c757,_0x5491bb){const _0x187b02=_0x4c19;_0x45c757[_0x187b02(0x9d)](async _0x3530e5=>{const _0xe55d04=_0x187b02;if(_0x3530e5['meta'][_0xe55d04(0xa0)])return!![];if(!getAccessToken()&&!getRefreshToken())return{'name':_0xe55d04(0x95),'query':{'redirect':_0x3530e5[_0xe55d04(0x9b)]}};try{const _0x180f0f=useUserStore();if(!_0x180f0f['loaded'])await _0x180f0f[_0xe55d04(0xa2)]();await createEps(),setServicePerms(_0x180f0f[_0xe55d04(0x99)],_0x180f0f['isSuper']);if(!menuReadyMap[_0xe55d04(0x97)](_0x45c757))return await ensureMenuRoutes(_0x45c757,_0x180f0f[_0xe55d04(0xa1)],_0x5491bb),menuReadyMap[_0xe55d04(0xa5)](_0x45c757,!![]),{'path':_0x3530e5[_0xe55d04(0x9a)],'query':_0x3530e5['query'],'hash':_0x3530e5['hash'],'replace':!![]};}catch{menuReadyMap[_0xe55d04(0xa5)](_0x45c757,![]);if(!getAccessToken()&&!getRefreshToken())return{'name':_0xe55d04(0x95),'query':{'redirect':_0x3530e5[_0xe55d04(0x9b)]}};if(!getAccessToken()&&getRefreshToken())return!![];return!![];}return!![];});}export function resetMenuRoutesFlag(_0x3afeb1){const _0x3891db=_0x4c19;menuReadyMap[_0x3891db(0xa5)](_0x3afeb1,![]),removeAllMenuRoutes(_0x3afeb1),clearMenuRoutesFlag();}
1
+ (function(_0x536400,_0x2be7f5){const _0x104722=_0x3158,_0x3e07f4=_0x536400();while(!![]){try{const _0x3c043b=parseInt(_0x104722(0xc7))/0x1*(parseInt(_0x104722(0xc1))/0x2)+-parseInt(_0x104722(0xbe))/0x3+-parseInt(_0x104722(0xc9))/0x4+parseInt(_0x104722(0xb4))/0x5*(-parseInt(_0x104722(0xb3))/0x6)+parseInt(_0x104722(0xc5))/0x7+-parseInt(_0x104722(0xb6))/0x8+parseInt(_0x104722(0xc3))/0x9*(parseInt(_0x104722(0xc8))/0xa);if(_0x3c043b===_0x2be7f5)break;else _0x3e07f4['push'](_0x3e07f4['shift']());}catch(_0x5f2b61){_0x3e07f4['push'](_0x3e07f4['shift']());}}}(_0x1cf4,0x5f95d));import{getAccessToken,getRefreshToken}from'../api/client';import{createEps,setServicePerms}from'../service';function _0x1cf4(){const _0x348ce4=['z2v0','mw16DNvnrW','mZKZmtbOuLLKsxi','mZy5nda4ugf6zhrU','nda0mJHQrMDJCvy','mta1rvDNC21w','Bg9NAw4','mJe4oteYmhrczevZAq','Bg9HzgvK','zNvSBfbHDgG','BwvUDxm','yMvMB3jLrwfJAa','Bwv0yq','Bg9Hza','Cgf0Aa','mti2mte1nur4CfDgEa','CxvLCNK','C2v0','nde4mtq0z21Xu0z6','AxntDxbLCG','nZGZzMjTzNjL','AgfZAa','ntm3odi2muvkBxLfDG'];_0x1cf4=function(){return _0x348ce4;};return _0x1cf4();}import{useUserStore}from'../stores/user';import{clearMenuRoutesFlag,ensureMenuRoutes,removeAllMenuRoutes}from'./menu-routes';const menuReadyMap=new WeakMap();export function setupAdminRouterGuards(_0x5bcbff,_0x2cd4bc){const _0x123372=_0x3158;_0x5bcbff[_0x123372(0xba)](async _0x2a5f43=>{const _0x55bbbd=_0x123372;if(_0x2a5f43[_0x55bbbd(0xbb)]['public'])return!![];if(!getAccessToken()&&!getRefreshToken())return{'name':'login','query':{'redirect':_0x2a5f43[_0x55bbbd(0xb8)]}};try{const _0x5f488a=useUserStore();if(!_0x5f488a[_0x55bbbd(0xb7)])await _0x5f488a[_0x55bbbd(0xbc)]();await createEps(),setServicePerms(_0x5f488a['perms'],_0x5f488a[_0x55bbbd(0xc2)]);if(!menuReadyMap[_0x55bbbd(0xc6)](_0x5bcbff))return await ensureMenuRoutes(_0x5bcbff,_0x5f488a[_0x55bbbd(0xb9)],_0x2cd4bc),menuReadyMap[_0x55bbbd(0xc0)](_0x5bcbff,!![]),{'path':_0x2a5f43[_0x55bbbd(0xbd)],'query':_0x2a5f43[_0x55bbbd(0xbf)],'hash':_0x2a5f43[_0x55bbbd(0xc4)],'replace':!![]};}catch{menuReadyMap['set'](_0x5bcbff,![]);if(!getAccessToken()&&!getRefreshToken())return{'name':_0x55bbbd(0xb5),'query':{'redirect':_0x2a5f43[_0x55bbbd(0xb8)]}};if(!getAccessToken()&&getRefreshToken())return!![];return!![];}return!![];});}function _0x3158(_0x164e7e,_0x14c2b6){_0x164e7e=_0x164e7e-0xb3;const _0x1cf480=_0x1cf4();let _0x3158a5=_0x1cf480[_0x164e7e];if(_0x3158['vHiiVF']===undefined){var _0x58142d=function(_0x474427){const _0x52fbee='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bcbff='',_0x2cd4bc='';for(let _0x2a5f43=0x0,_0x5f488a,_0x3d8d8b,_0x1ee592=0x0;_0x3d8d8b=_0x474427['charAt'](_0x1ee592++);~_0x3d8d8b&&(_0x5f488a=_0x2a5f43%0x4?_0x5f488a*0x40+_0x3d8d8b:_0x3d8d8b,_0x2a5f43++%0x4)?_0x5bcbff+=String['fromCharCode'](0xff&_0x5f488a>>(-0x2*_0x2a5f43&0x6)):0x0){_0x3d8d8b=_0x52fbee['indexOf'](_0x3d8d8b);}for(let _0x3c6b3b=0x0,_0x16175d=_0x5bcbff['length'];_0x3c6b3b<_0x16175d;_0x3c6b3b++){_0x2cd4bc+='%'+('00'+_0x5bcbff['charCodeAt'](_0x3c6b3b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2cd4bc);};_0x3158['cLJrYT']=_0x58142d,_0x3158['CJcXli']={},_0x3158['vHiiVF']=!![];}const _0x7c0477=_0x1cf480[0x0],_0x17a957=_0x164e7e+_0x7c0477,_0x1c1bed=_0x3158['CJcXli'][_0x17a957];return!_0x1c1bed?(_0x3158a5=_0x3158['cLJrYT'](_0x3158a5),_0x3158['CJcXli'][_0x17a957]=_0x3158a5):_0x3158a5=_0x1c1bed,_0x3158a5;}export function resetMenuRoutesFlag(_0x3d8d8b){const _0x23abfe=_0x3158;menuReadyMap[_0x23abfe(0xc0)](_0x3d8d8b,![]),removeAllMenuRoutes(_0x3d8d8b),clearMenuRoutesFlag();}
@@ -1,5 +1 @@
1
- export { setupAdminRouterGuards, resetMenuRoutesFlag } from './guards';
2
- export { createAdminRouter } from './create';
3
- export type { AdminRouterPages, AdminRouterResult } from './create';
4
- export { ensureMenuRoutes, syncMenuRoutes, clearMenuRoutesFlag, removeAllMenuRoutes, } from './menu-routes';
5
- export type { MenuRouteShell } from './menu-routes';
1
+ export {}
@@ -1,11 +1 @@
1
- import { BaseService, resolveService, serviceOf, type CreateEpsOptions, type ServiceLeaf, type ServiceTree } from '../../client';
2
- /** 默认挂在 admin 侧 */
3
- export declare const service: ServiceTree & {
4
- request: BaseService["request"];
5
- };
6
- export declare function createEps(opts?: CreateEpsOptions): Promise<ServiceTree & {
7
- request: BaseService["request"];
8
- }>;
9
- export declare function setServicePerms(perms: string[], isSuper?: boolean): void;
10
- export { BaseService, resolveService, serviceOf, };
11
- export type { ServiceLeaf, ServiceTree, CreateEpsOptions };
1
+ export {}
@@ -1,121 +1,121 @@
1
- /**
2
- * 框架结构样式(锁定):全局 token、页面骨架、表单聚焦、滚动条、页面过渡、通用工具类。
3
- * 宿主只应提供主题色(admin/src/styles/theme.css);勿改此文件做换肤。
4
- * 业务自定义请用 scoped + :deep() 穿透覆盖。
5
- * CRUD 弹窗壳(.vm-crud-shell__*)在 DialogContent.vue;控件尺寸细节在 Input / Select 组件内。
6
- */
7
-
8
- :root {
9
- --radius: 20px;
10
- --shadow-soft: 0 10px 30px rgba(40, 50, 120, 0.06);
11
- --shadow-card: 0 8px 24px rgba(40, 50, 120, 0.05);
12
-
13
- --vm-control-height: 32px;
14
- --vm-control-radius: 10px;
15
- --vm-control-padding-x: 10px;
16
- --vm-control-font-size: 13px;
17
- }
18
-
19
- .dark {
20
- --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.35);
21
- --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.28);
22
- }
23
-
24
- /* 全局骨架(不依赖 @apply,避免 core CSS 绑死 Tailwind 构建) */
25
- * {
26
- border-color: var(--border);
27
- }
28
-
29
- html {
30
- font-size: 16px;
31
- }
32
-
33
- html,
34
- body,
35
- #app {
36
- height: 100%;
37
- }
38
-
39
- body {
40
- background: var(--background);
41
- color: var(--foreground);
42
- font-size: 14px;
43
- font-weight: 500;
44
- -webkit-font-smoothing: antialiased;
45
- -moz-osx-font-smoothing: grayscale;
46
- }
47
-
48
- /* 表单聚焦:细边框,无外圈粗 ring */
49
- :where(
50
- input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']),
51
- textarea,
52
- [data-slot='input'],
53
- [data-slot='select-trigger']
54
- ) {
55
- outline: none;
56
- }
57
-
58
- :where(
59
- input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']),
60
- textarea,
61
- [data-slot='input'],
62
- [data-slot='select-trigger']
63
- ):is(:focus, :focus-visible) {
64
- border-color: var(--focus-border) !important;
65
- box-shadow: none !important;
66
- --tw-ring-shadow: 0 0 #0000 !important;
67
- --tw-ring-offset-shadow: 0 0 #0000 !important;
68
- }
69
-
70
- .page-enter-active,
71
- .page-leave-active {
72
- transition:
73
- opacity 0.2s ease,
74
- transform 0.2s ease;
75
- }
76
- .page-enter-from {
77
- opacity: 0;
78
- transform: translateY(6px);
79
- }
80
- .page-leave-to {
81
- opacity: 0;
82
- transform: translateY(-3px);
83
- }
84
-
85
- /* 细圆角滚动条(无轨道背景);颜色由主题 --scrollbar-thumb* 提供 */
86
- * {
87
- scrollbar-width: thin;
88
- scrollbar-color: var(--scrollbar-thumb) transparent;
89
- }
90
-
91
- *::-webkit-scrollbar {
92
- width: 8px;
93
- height: 8px;
94
- }
95
-
96
- *::-webkit-scrollbar-track {
97
- background: transparent;
98
- }
99
-
100
- *::-webkit-scrollbar-thumb {
101
- background: var(--scrollbar-thumb);
102
- border: 2px solid transparent;
103
- background-clip: padding-box;
104
- border-radius: 999px;
105
- }
106
-
107
- *::-webkit-scrollbar-thumb:hover {
108
- background: var(--scrollbar-thumb-hover);
109
- border: 2px solid transparent;
110
- background-clip: padding-box;
111
- }
112
-
113
- .vm-scroll {
114
- scrollbar-width: thin;
115
- scrollbar-color: var(--scrollbar-thumb) transparent;
116
- }
117
-
118
- /* Dialog 内 Teleport 浮层:modal 时 body pointer-events:none,浮层需显式恢复 */
119
- .vm-dialog-float {
120
- pointer-events: auto;
121
- }
1
+ /**
2
+ * 框架结构样式(锁定):全局 token、页面骨架、表单聚焦、滚动条、页面过渡、通用工具类。
3
+ * 宿主只应提供主题色(admin/src/styles/theme.css);勿改此文件做换肤。
4
+ * 业务自定义请用 scoped + :deep() 穿透覆盖。
5
+ * CRUD 弹窗壳(.vm-crud-shell__*)在 DialogContent.vue;控件尺寸细节在 Input / Select 组件内。
6
+ */
7
+
8
+ :root {
9
+ --radius: 20px;
10
+ --shadow-soft: 0 10px 30px rgba(40, 50, 120, 0.06);
11
+ --shadow-card: 0 8px 24px rgba(40, 50, 120, 0.05);
12
+
13
+ --vm-control-height: 32px;
14
+ --vm-control-radius: 10px;
15
+ --vm-control-padding-x: 10px;
16
+ --vm-control-font-size: 13px;
17
+ }
18
+
19
+ .dark {
20
+ --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.35);
21
+ --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.28);
22
+ }
23
+
24
+ /* 全局骨架(不依赖 @apply,避免 core CSS 绑死 Tailwind 构建) */
25
+ * {
26
+ border-color: var(--border);
27
+ }
28
+
29
+ html {
30
+ font-size: 16px;
31
+ }
32
+
33
+ html,
34
+ body,
35
+ #app {
36
+ height: 100%;
37
+ }
38
+
39
+ body {
40
+ background: var(--background);
41
+ color: var(--foreground);
42
+ font-size: 14px;
43
+ font-weight: 500;
44
+ -webkit-font-smoothing: antialiased;
45
+ -moz-osx-font-smoothing: grayscale;
46
+ }
47
+
48
+ /* 表单聚焦:细边框,无外圈粗 ring */
49
+ :where(
50
+ input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']),
51
+ textarea,
52
+ [data-slot='input'],
53
+ [data-slot='select-trigger']
54
+ ) {
55
+ outline: none;
56
+ }
57
+
58
+ :where(
59
+ input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']),
60
+ textarea,
61
+ [data-slot='input'],
62
+ [data-slot='select-trigger']
63
+ ):is(:focus, :focus-visible) {
64
+ border-color: var(--focus-border) !important;
65
+ box-shadow: none !important;
66
+ --tw-ring-shadow: 0 0 #0000 !important;
67
+ --tw-ring-offset-shadow: 0 0 #0000 !important;
68
+ }
69
+
70
+ .page-enter-active,
71
+ .page-leave-active {
72
+ transition:
73
+ opacity 0.2s ease,
74
+ transform 0.2s ease;
75
+ }
76
+ .page-enter-from {
77
+ opacity: 0;
78
+ transform: translateY(6px);
79
+ }
80
+ .page-leave-to {
81
+ opacity: 0;
82
+ transform: translateY(-3px);
83
+ }
84
+
85
+ /* 细圆角滚动条(无轨道背景);颜色由主题 --scrollbar-thumb* 提供 */
86
+ * {
87
+ scrollbar-width: thin;
88
+ scrollbar-color: var(--scrollbar-thumb) transparent;
89
+ }
90
+
91
+ *::-webkit-scrollbar {
92
+ width: 8px;
93
+ height: 8px;
94
+ }
95
+
96
+ *::-webkit-scrollbar-track {
97
+ background: transparent;
98
+ }
99
+
100
+ *::-webkit-scrollbar-thumb {
101
+ background: var(--scrollbar-thumb);
102
+ border: 2px solid transparent;
103
+ background-clip: padding-box;
104
+ border-radius: 999px;
105
+ }
106
+
107
+ *::-webkit-scrollbar-thumb:hover {
108
+ background: var(--scrollbar-thumb-hover);
109
+ border: 2px solid transparent;
110
+ background-clip: padding-box;
111
+ }
112
+
113
+ .vm-scroll {
114
+ scrollbar-width: thin;
115
+ scrollbar-color: var(--scrollbar-thumb) transparent;
116
+ }
117
+
118
+ /* Dialog 内 Teleport 浮层:modal 时 body pointer-events:none,浮层需显式恢复 */
119
+ .vm-dialog-float {
120
+ pointer-events: auto;
121
+ }