@jiangood/open-admin 1.3.4 → 2.0.1

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 (153) hide show
  1. package/config/config.js +3 -8
  2. package/package.json +5 -9
  3. package/src/.umi-production/appData.json +325 -365
  4. package/src/.umi-production/core/helmet.ts +1 -1
  5. package/src/.umi-production/core/history.ts +1 -1
  6. package/src/.umi-production/core/historyIntelli.ts +1 -1
  7. package/src/.umi-production/core/pluginConfig.ts +1 -1
  8. package/src/.umi-production/core/polyfill.ts +216 -216
  9. package/src/.umi-production/core/route.tsx +2 -4
  10. package/src/.umi-production/exports.ts +3 -3
  11. package/src/.umi-production/testBrowser.tsx +1 -1
  12. package/src/.umi-production/tsconfig.json +1 -1
  13. package/src/.umi-production/umi.ts +2 -2
  14. package/src/framework/components/ErrorBoundary/index.tsx +86 -0
  15. package/src/framework/components/Gap/index.tsx +42 -0
  16. package/src/framework/components/NamedIcon/index.d.ts +6 -4
  17. package/src/framework/components/NamedIcon/index.jsx +9 -6
  18. package/src/framework/components/OrgTree/{index.jsx → index.tsx} +10 -19
  19. package/src/framework/components/PageLoading/{index.jsx → index.tsx} +2 -5
  20. package/src/framework/components/ProModal/index.tsx +1 -1
  21. package/src/framework/components/ProTable/components/ToolBar/{index.jsx → index.tsx} +3 -3
  22. package/src/framework/components/ProTable/index.less +1 -1
  23. package/src/framework/components/ProTable/{index.jsx → index.tsx} +9 -7
  24. package/src/framework/components/ProTable/utils/index.ts +62 -0
  25. package/src/framework/components/RoleTree/{index.jsx → index.tsx} +7 -17
  26. package/src/framework/components/ValueType/{index.jsx → index.tsx} +2 -1
  27. package/src/framework/components/ViewRange/index.tsx +15 -0
  28. package/src/framework/components/index.ts +2 -1
  29. package/src/framework/components/system/ButtonList.tsx +22 -0
  30. package/src/framework/components/system/index.tsx +4 -4
  31. package/src/framework/fields/BaseRemoteSelect/index.tsx +129 -0
  32. package/src/framework/fields/FieldDictSelect/{index.jsx → index.tsx} +10 -4
  33. package/src/framework/fields/FieldRemoteSelect/index.tsx +37 -0
  34. package/src/framework/fields/FieldRemoteSelectMultiple/index.tsx +29 -0
  35. package/src/framework/fields/FieldRemoteSelectMultipleInline/index.tsx +33 -0
  36. package/src/framework/fields/FieldRemoteTree/index.tsx +31 -0
  37. package/src/framework/fields/FieldRemoteTreeCascader/index.tsx +39 -0
  38. package/src/framework/fields/FieldRemoteTreeSelect/index.tsx +39 -0
  39. package/src/framework/fields/FieldRemoteTreeSelectMultiple/index.tsx +43 -0
  40. package/src/framework/fields/FieldSysOrgTree/{index.jsx → index.tsx} +2 -2
  41. package/src/framework/fields/FieldSysOrgTreeSelect/{index.jsx → index.tsx} +2 -2
  42. package/src/framework/fields/FieldTable/{index.jsx → index.tsx} +5 -5
  43. package/src/framework/fields/FieldUploadFile/{index.jsx → index.tsx} +1 -3
  44. package/src/framework/index.ts +0 -1
  45. package/src/framework/utils/ArrayUtils.ts +186 -0
  46. package/src/framework/utils/EventBusUtils.ts +0 -1
  47. package/src/framework/utils/MessageUtils.tsx +0 -2
  48. package/src/framework/utils/TreeUtils.ts +2 -2
  49. package/src/framework/utils/index.ts +1 -1
  50. package/src/framework/utils/system/FormRegistryUtils.ts +0 -1
  51. package/src/framework/utils/system/PermUtils.ts +2 -2
  52. package/src/framework/views/ViewApproveStatus/index.tsx +11 -0
  53. package/src/framework/views/ViewBoolean/index.tsx +6 -0
  54. package/src/framework/views/ViewFile/{index.jsx → index.tsx} +4 -4
  55. package/src/framework/views/ViewImage/{index.jsx → index.tsx} +3 -3
  56. package/src/framework/views/ViewPassword/{index.jsx → index.tsx} +2 -2
  57. package/src/framework/views/ViewProcessInstanceProgressButton/{index.jsx → index.tsx} +1 -2
  58. package/src/layouts/PageRender.jsx +6 -6
  59. package/src/layouts/admin/HeaderRight.jsx +2 -2
  60. package/src/layouts/admin/TabPageRender.jsx +28 -13
  61. package/src/layouts/admin/index.jsx +15 -14
  62. package/src/layouts/admin/index.less +1 -1
  63. package/src/layouts/index.jsx +12 -13
  64. package/src/layouts/index.less +2 -2
  65. package/src/loading.jsx +17 -16
  66. package/src/pages/login.jsx +132 -4
  67. package/src/{framework/pages/LoginPage.less → pages/login.less} +3 -3
  68. package/src/pages/system/dict/index.jsx +4 -3
  69. package/src/pages/system/file/index.jsx +6 -5
  70. package/src/pages/system/job/index.jsx +10 -9
  71. package/src/pages/system/{sysManual → manual}/index.jsx +1 -1
  72. package/src/pages/system/org/index.jsx +4 -5
  73. package/src/pages/system/role/index.jsx +5 -5
  74. package/src/pages/system/role/perm.jsx +6 -6
  75. package/src/pages/system/user/UserPerm.jsx +4 -4
  76. package/src/pages/system/user/index.jsx +2 -2
  77. package/src/pages/userCenter/ChangePassword.jsx +3 -5
  78. package/src/pages/userCenter/manual.jsx +1 -1
  79. package/src/pages/userCenter/message.jsx +1 -1
  80. package/src/framework/components/DownloadFileButton/index.d.ts +0 -11
  81. package/src/framework/components/Gap/index.d.ts +0 -23
  82. package/src/framework/components/Gap/index.jsx +0 -46
  83. package/src/framework/components/LinkButton/index.d.ts +0 -14
  84. package/src/framework/components/OrgTree/index.d.ts +0 -4
  85. package/src/framework/components/Page/index.d.ts +0 -17
  86. package/src/framework/components/PageLoading/index.d.ts +0 -1
  87. package/src/framework/components/ProTable/index.d.ts +0 -42
  88. package/src/framework/components/ProTable/utils/index.js +0 -43
  89. package/src/framework/components/RoleTree/index.d.ts +0 -4
  90. package/src/framework/components/ViewRange/index.d.ts +0 -14
  91. package/src/framework/components/ViewRange/index.jsx +0 -20
  92. package/src/framework/components/system/ButtonList.d.ts +0 -8
  93. package/src/framework/components/system/ButtonList.jsx +0 -42
  94. package/src/framework/fields/FieldBoolean/index.d.ts +0 -9
  95. package/src/framework/fields/FieldDate/index.d.ts +0 -23
  96. package/src/framework/fields/FieldDateRange/index.d.ts +0 -22
  97. package/src/framework/fields/FieldDictSelect/index.d.ts +0 -12
  98. package/src/framework/fields/FieldEditor/index.d.ts +0 -14
  99. package/src/framework/fields/FieldNumberRange/index.d.ts +0 -10
  100. package/src/framework/fields/FieldPercent/index.d.ts +0 -8
  101. package/src/framework/fields/FieldRemoteSelect/index.d.ts +0 -44
  102. package/src/framework/fields/FieldRemoteSelect/index.jsx +0 -66
  103. package/src/framework/fields/FieldRemoteSelectMultiple/index.d.ts +0 -20
  104. package/src/framework/fields/FieldRemoteSelectMultiple/index.jsx +0 -85
  105. package/src/framework/fields/FieldRemoteSelectMultipleInline/index.d.ts +0 -21
  106. package/src/framework/fields/FieldRemoteSelectMultipleInline/index.jsx +0 -88
  107. package/src/framework/fields/FieldRemoteTree/index.d.ts +0 -20
  108. package/src/framework/fields/FieldRemoteTree/index.jsx +0 -50
  109. package/src/framework/fields/FieldRemoteTreeCascader/index.d.ts +0 -18
  110. package/src/framework/fields/FieldRemoteTreeCascader/index.jsx +0 -59
  111. package/src/framework/fields/FieldRemoteTreeSelect/index.d.ts +0 -19
  112. package/src/framework/fields/FieldRemoteTreeSelect/index.jsx +0 -57
  113. package/src/framework/fields/FieldRemoteTreeSelectMultiple/index.d.ts +0 -20
  114. package/src/framework/fields/FieldRemoteTreeSelectMultiple/index.jsx +0 -62
  115. package/src/framework/fields/FieldSysOrgTree/index.d.ts +0 -9
  116. package/src/framework/fields/FieldSysOrgTreeSelect/index.d.ts +0 -9
  117. package/src/framework/fields/FieldTable/index.d.ts +0 -14
  118. package/src/framework/fields/FieldTableSelect/index.d.ts +0 -19
  119. package/src/framework/fields/FieldUploadFile/index.d.ts +0 -31
  120. package/src/framework/pages/LoginPage.d.ts +0 -16
  121. package/src/framework/pages/LoginPage.jsx +0 -135
  122. package/src/framework/pages/LoginPageUtils.ts +0 -36
  123. package/src/framework/pages/index.ts +0 -2
  124. package/src/framework/utils/ArrUtils.ts +0 -229
  125. package/src/framework/views/ViewApproveStatus/index.d.ts +0 -5
  126. package/src/framework/views/ViewApproveStatus/index.jsx +0 -15
  127. package/src/framework/views/ViewBoolean/index.d.ts +0 -3
  128. package/src/framework/views/ViewBoolean/index.jsx +0 -4
  129. package/src/framework/views/ViewBooleanEnableDisable/index.d.ts +0 -5
  130. package/src/framework/views/ViewFile/index.d.ts +0 -10
  131. package/src/framework/views/ViewFileButton/index.d.ts +0 -10
  132. package/src/framework/views/ViewImage/index.d.ts +0 -6
  133. package/src/framework/views/ViewPassword/index.d.ts +0 -5
  134. package/src/framework/views/ViewProcessInstanceProgress/index.d.ts +0 -12
  135. package/src/framework/views/ViewProcessInstanceProgressButton/index.d.ts +0 -6
  136. package/src/framework/views/ViewText/index.d.ts +0 -16
  137. package/src/pages/system/api/index.jsx +0 -279
  138. package/src/pages/test/views.jsx +0 -95
  139. package/src/framework/components/DownloadFileButton/{index.jsx → index.tsx} +0 -0
  140. package/src/framework/components/LinkButton/{index.jsx → index.tsx} +0 -0
  141. package/src/framework/components/Page/{index.jsx → index.tsx} +0 -0
  142. package/src/framework/components/ValueType/{registry.jsx → registry.tsx} +1 -1
  143. /package/src/framework/fields/FieldBoolean/{index.jsx → index.tsx} +0 -0
  144. /package/src/framework/fields/FieldDate/{index.jsx → index.tsx} +0 -0
  145. /package/src/framework/fields/FieldDateRange/{index.jsx → index.tsx} +0 -0
  146. /package/src/framework/fields/FieldEditor/{index.jsx → index.tsx} +0 -0
  147. /package/src/framework/fields/FieldNumberRange/{index.jsx → index.tsx} +0 -0
  148. /package/src/framework/fields/FieldPercent/{index.jsx → index.tsx} +0 -0
  149. /package/src/framework/fields/FieldTableSelect/{index.jsx → index.tsx} +0 -0
  150. /package/src/framework/views/ViewBooleanEnableDisable/{index.jsx → index.tsx} +0 -0
  151. /package/src/framework/views/ViewFileButton/{index.jsx → index.tsx} +0 -0
  152. /package/src/framework/views/ViewProcessInstanceProgress/{index.jsx → index.tsx} +0 -0
  153. /package/src/framework/views/ViewText/{index.jsx → index.tsx} +0 -0
@@ -6,22 +6,18 @@
6
6
  "@types/react": "^19.2.2",
7
7
  "@types/react-dom": "^19.0.0",
8
8
  "@umijs/plugins": "^4.3.17",
9
- "typescript": "^5.0.0"
9
+ "babel-plugin-react-compiler": "^1.0.0",
10
+ "typescript": "^6.0.3"
10
11
  },
11
12
  "peerDependencies": {
12
13
  "@ant-design/icons": "^6.0.0",
13
- "@bpmn-io/properties-panel": "^3.34.0",
14
14
  "@tinymce/tinymce-react": "^6.0.0",
15
- "@umijs/types": "^3.5.43",
16
15
  "antd": "^6.0.0",
17
16
  "antd-img-crop": "^4.23.0",
18
17
  "axios": "^1.13.2",
19
- "bpmn-js": "^18.7.0",
20
- "bpmn-js-properties-panel": "^5.43.0",
21
18
  "dayjs": "^1.11.13",
22
19
  "jsencrypt": "^3.5.4",
23
20
  "lodash": "^4.17.23",
24
- "preact": "^10.27.2",
25
21
  "qs": "^6.14.0",
26
22
  "react": "^19.0.0",
27
23
  "react-dom": "^19.0.0",
@@ -40,41 +36,41 @@
40
36
  "dev": "umi dev",
41
37
  "build": "umi build"
42
38
  },
43
- "version": "1.3.4"
39
+ "version": "2.0.1"
44
40
  },
45
41
  "pkgPath": "/home/runner/work/open-admin/open-admin/web/package.json",
46
42
  "plugins": {
47
- "./node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/servicePlugin": {
43
+ "./node_modules/@umijs/core/dist/service/servicePlugin": {
48
44
  "cwd": "/home/runner/work/open-admin/open-admin/web",
49
45
  "type": "preset",
50
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/servicePlugin.js",
51
- "id": "./node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/servicePlugin",
46
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/core/dist/service/servicePlugin.js",
47
+ "id": "./node_modules/@umijs/core/dist/service/servicePlugin",
52
48
  "key": "servicePlugin",
53
49
  "config": {},
54
50
  "time": {
55
51
  "hooks": {},
56
- "register": 136
52
+ "register": 0
57
53
  },
58
54
  "enableBy": "register"
59
55
  },
60
56
  "@umijs/preset-umi": {
61
57
  "cwd": "/home/runner/work/open-admin/open-admin/web",
62
58
  "type": "preset",
63
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/index.js",
59
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/index.js",
64
60
  "id": "@umijs/preset-umi",
65
61
  "key": "umi",
66
62
  "config": {},
67
63
  "time": {
68
64
  "hooks": {},
69
- "register": 5
65
+ "register": 4
70
66
  },
71
67
  "enableBy": "register"
72
68
  },
73
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/registerMethods": {
69
+ "./node_modules/@umijs/preset-umi/dist/registerMethods": {
74
70
  "cwd": "/home/runner/work/open-admin/open-admin/web",
75
71
  "type": "plugin",
76
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/registerMethods.js",
77
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/registerMethods",
72
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/registerMethods.js",
73
+ "id": "./node_modules/@umijs/preset-umi/dist/registerMethods",
78
74
  "key": "registerMethods",
79
75
  "config": {},
80
76
  "time": {
@@ -83,14 +79,14 @@
83
79
  0
84
80
  ]
85
81
  },
86
- "register": 4
82
+ "register": 2
87
83
  },
88
84
  "enableBy": "register"
89
85
  },
90
86
  "@umijs/did-you-know": {
91
87
  "cwd": "/home/runner/work/open-admin/open-admin/web",
92
88
  "type": "plugin",
93
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+did-you-know@1.0.4/node_modules/@umijs/did-you-know/dist/plugin.js",
89
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/did-you-know/dist/plugin.js",
94
90
  "id": "@umijs/did-you-know",
95
91
  "key": "umijsDidYouKnow",
96
92
  "config": {},
@@ -100,15 +96,15 @@
100
96
  1
101
97
  ]
102
98
  },
103
- "register": 3
99
+ "register": 2
104
100
  },
105
101
  "enableBy": "register"
106
102
  },
107
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/404/404": {
103
+ "./node_modules/@umijs/preset-umi/dist/features/404/404": {
108
104
  "cwd": "/home/runner/work/open-admin/open-admin/web",
109
105
  "type": "plugin",
110
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/404/404.js",
111
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/404/404",
106
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/404/404.js",
107
+ "id": "./node_modules/@umijs/preset-umi/dist/features/404/404",
112
108
  "key": "404",
113
109
  "config": {},
114
110
  "time": {
@@ -121,11 +117,11 @@
121
117
  },
122
118
  "enableBy": "register"
123
119
  },
124
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev": {
120
+ "./node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev": {
125
121
  "cwd": "/home/runner/work/open-admin/open-admin/web",
126
122
  "type": "plugin",
127
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev.js",
128
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev",
123
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev.js",
124
+ "id": "./node_modules/@umijs/preset-umi/dist/features/aiDev/aiDev",
129
125
  "key": "aiDev",
130
126
  "config": {},
131
127
  "time": {
@@ -134,11 +130,11 @@
134
130
  },
135
131
  "enableBy": "register"
136
132
  },
137
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/appData": {
133
+ "./node_modules/@umijs/preset-umi/dist/features/appData/appData": {
138
134
  "cwd": "/home/runner/work/open-admin/open-admin/web",
139
135
  "type": "plugin",
140
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/appData.js",
141
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/appData",
136
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/appData/appData.js",
137
+ "id": "./node_modules/@umijs/preset-umi/dist/features/appData/appData",
142
138
  "key": "appData",
143
139
  "config": {},
144
140
  "time": {
@@ -147,15 +143,15 @@
147
143
  58
148
144
  ]
149
145
  },
150
- "register": 24
146
+ "register": 21
151
147
  },
152
148
  "enableBy": "register"
153
149
  },
154
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/umiInfo": {
150
+ "./node_modules/@umijs/preset-umi/dist/features/appData/umiInfo": {
155
151
  "cwd": "/home/runner/work/open-admin/open-admin/web",
156
152
  "type": "plugin",
157
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/umiInfo.js",
158
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/appData/umiInfo",
153
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/appData/umiInfo.js",
154
+ "id": "./node_modules/@umijs/preset-umi/dist/features/appData/umiInfo",
159
155
  "key": "umiInfo",
160
156
  "config": {},
161
157
  "time": {
@@ -164,11 +160,11 @@
164
160
  },
165
161
  "enableBy": "register"
166
162
  },
167
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/check": {
163
+ "./node_modules/@umijs/preset-umi/dist/features/check/check": {
168
164
  "cwd": "/home/runner/work/open-admin/open-admin/web",
169
165
  "type": "plugin",
170
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/check.js",
171
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/check",
166
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/check/check.js",
167
+ "id": "./node_modules/@umijs/preset-umi/dist/features/check/check",
172
168
  "key": "check",
173
169
  "config": {},
174
170
  "time": {
@@ -184,11 +180,11 @@
184
180
  },
185
181
  "enableBy": "register"
186
182
  },
187
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/babel722": {
183
+ "./node_modules/@umijs/preset-umi/dist/features/check/babel722": {
188
184
  "cwd": "/home/runner/work/open-admin/open-admin/web",
189
185
  "type": "plugin",
190
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/babel722.js",
191
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/check/babel722",
186
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/check/babel722.js",
187
+ "id": "./node_modules/@umijs/preset-umi/dist/features/check/babel722",
192
188
  "key": "babel722",
193
189
  "config": {},
194
190
  "time": {
@@ -201,24 +197,24 @@
201
197
  },
202
198
  "enableBy": "register"
203
199
  },
204
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting": {
200
+ "./node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting": {
205
201
  "cwd": "/home/runner/work/open-admin/open-admin/web",
206
202
  "type": "plugin",
207
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting.js",
208
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting",
203
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting.js",
204
+ "id": "./node_modules/@umijs/preset-umi/dist/features/codeSplitting/codeSplitting",
209
205
  "key": "codeSplitting",
210
206
  "config": {},
211
207
  "time": {
212
208
  "hooks": {},
213
- "register": 1
209
+ "register": 0
214
210
  },
215
211
  "enableBy": "config"
216
212
  },
217
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins": {
213
+ "./node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins": {
218
214
  "cwd": "/home/runner/work/open-admin/open-admin/web",
219
215
  "type": "plugin",
220
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins.js",
221
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins",
216
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins.js",
217
+ "id": "./node_modules/@umijs/preset-umi/dist/features/configPlugins/configPlugins",
222
218
  "key": "configPlugins",
223
219
  "config": {},
224
220
  "time": {
@@ -227,7 +223,7 @@
227
223
  0
228
224
  ]
229
225
  },
230
- "register": 9
226
+ "register": 5
231
227
  },
232
228
  "enableBy": "register"
233
229
  },
@@ -1057,10 +1053,10 @@
1057
1053
  "config": {
1058
1054
  "default": {
1059
1055
  "umi": "@@/exports",
1060
- "react": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react@18.3.1/node_modules/react",
1061
- "react-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom",
1062
- "react-router": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-router@6.3.0_react@18.3.1/node_modules/react-router",
1063
- "react-router-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-router-dom@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom"
1056
+ "react": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react",
1057
+ "react-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react-dom",
1058
+ "react-router": "/home/runner/work/open-admin/open-admin/web/node_modules/react-router",
1059
+ "react-router-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/react-router-dom"
1064
1060
  }
1065
1061
  },
1066
1062
  "type": "plugin",
@@ -1070,24 +1066,24 @@
1070
1066
  "register": 0
1071
1067
  }
1072
1068
  },
1073
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin": {
1069
+ "./node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin": {
1074
1070
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1075
1071
  "type": "plugin",
1076
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin.js",
1077
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin",
1072
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin.js",
1073
+ "id": "./node_modules/@umijs/preset-umi/dist/features/crossorigin/crossorigin",
1078
1074
  "key": "crossorigin",
1079
1075
  "config": {},
1080
1076
  "time": {
1081
1077
  "hooks": {},
1082
- "register": 0
1078
+ "register": 1
1083
1079
  },
1084
1080
  "enableBy": "config"
1085
1081
  },
1086
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand": {
1082
+ "./node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand": {
1087
1083
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1088
1084
  "type": "plugin",
1089
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand.js",
1090
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand",
1085
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand.js",
1086
+ "id": "./node_modules/@umijs/preset-umi/dist/features/depsOnDemand/depsOnDemand",
1091
1087
  "key": "depsOnDemand",
1092
1088
  "config": {},
1093
1089
  "time": {
@@ -1096,15 +1092,15 @@
1096
1092
  0
1097
1093
  ]
1098
1094
  },
1099
- "register": 1
1095
+ "register": 0
1100
1096
  },
1101
1097
  "enableBy": "register"
1102
1098
  },
1103
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/devTool/devTool": {
1099
+ "./node_modules/@umijs/preset-umi/dist/features/devTool/devTool": {
1104
1100
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1105
1101
  "type": "plugin",
1106
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/devTool/devTool.js",
1107
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/devTool/devTool",
1102
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/devTool/devTool.js",
1103
+ "id": "./node_modules/@umijs/preset-umi/dist/features/devTool/devTool",
1108
1104
  "key": "devTool",
1109
1105
  "config": {},
1110
1106
  "time": {
@@ -1113,50 +1109,50 @@
1113
1109
  },
1114
1110
  "enableBy": "register"
1115
1111
  },
1116
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker": {
1112
+ "./node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker": {
1117
1113
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1118
1114
  "type": "plugin",
1119
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker.js",
1120
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker",
1115
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker.js",
1116
+ "id": "./node_modules/@umijs/preset-umi/dist/features/esbuildHelperChecker/esbuildHelperChecker",
1121
1117
  "key": "esbuildHelperChecker",
1122
1118
  "config": {},
1123
1119
  "time": {
1124
1120
  "hooks": {},
1125
- "register": 90
1121
+ "register": 98
1126
1122
  },
1127
1123
  "enableBy": "register"
1128
1124
  },
1129
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esmi/esmi": {
1125
+ "./node_modules/@umijs/preset-umi/dist/features/esmi/esmi": {
1130
1126
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1131
1127
  "type": "plugin",
1132
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esmi/esmi.js",
1133
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/esmi/esmi",
1128
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/esmi/esmi.js",
1129
+ "id": "./node_modules/@umijs/preset-umi/dist/features/esmi/esmi",
1134
1130
  "key": "esmi",
1135
1131
  "config": {},
1136
1132
  "time": {
1137
1133
  "hooks": {},
1138
- "register": 39
1134
+ "register": 28
1139
1135
  },
1140
1136
  "enableBy": "config"
1141
1137
  },
1142
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic": {
1138
+ "./node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic": {
1143
1139
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1144
1140
  "type": "plugin",
1145
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic.js",
1146
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic",
1141
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic.js",
1142
+ "id": "./node_modules/@umijs/preset-umi/dist/features/exportStatic/exportStatic",
1147
1143
  "key": "exportStatic",
1148
1144
  "config": {},
1149
1145
  "time": {
1150
1146
  "hooks": {},
1151
- "register": 10
1147
+ "register": 9
1152
1148
  },
1153
1149
  "enableBy": "config"
1154
1150
  },
1155
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/favicons/favicons": {
1151
+ "./node_modules/@umijs/preset-umi/dist/features/favicons/favicons": {
1156
1152
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1157
1153
  "type": "plugin",
1158
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/favicons/favicons.js",
1159
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/favicons/favicons",
1154
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/favicons/favicons.js",
1155
+ "id": "./node_modules/@umijs/preset-umi/dist/features/favicons/favicons",
1160
1156
  "key": "favicons",
1161
1157
  "config": {},
1162
1158
  "time": {
@@ -1169,11 +1165,11 @@
1169
1165
  },
1170
1166
  "enableBy": "register"
1171
1167
  },
1172
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/helmet/helmet": {
1168
+ "./node_modules/@umijs/preset-umi/dist/features/helmet/helmet": {
1173
1169
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1174
1170
  "type": "plugin",
1175
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/helmet/helmet.js",
1176
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/helmet/helmet",
1171
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/helmet/helmet.js",
1172
+ "id": "./node_modules/@umijs/preset-umi/dist/features/helmet/helmet",
1177
1173
  "key": "helmet",
1178
1174
  "config": {},
1179
1175
  "time": {
@@ -1182,11 +1178,11 @@
1182
1178
  },
1183
1179
  "enableBy": "register"
1184
1180
  },
1185
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/icons/icons": {
1181
+ "./node_modules/@umijs/preset-umi/dist/features/icons/icons": {
1186
1182
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1187
1183
  "type": "plugin",
1188
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/icons/icons.js",
1189
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/icons/icons",
1184
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/icons/icons.js",
1185
+ "id": "./node_modules/@umijs/preset-umi/dist/features/icons/icons",
1190
1186
  "key": "icons",
1191
1187
  "config": {},
1192
1188
  "time": {
@@ -1195,48 +1191,48 @@
1195
1191
  },
1196
1192
  "enableBy": "config"
1197
1193
  },
1198
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mock/mock": {
1194
+ "./node_modules/@umijs/preset-umi/dist/features/mock/mock": {
1199
1195
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1200
1196
  "type": "plugin",
1201
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mock/mock.js",
1202
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mock/mock",
1197
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/mock/mock.js",
1198
+ "id": "./node_modules/@umijs/preset-umi/dist/features/mock/mock",
1203
1199
  "key": "mock",
1204
1200
  "config": {},
1205
1201
  "time": {
1206
1202
  "hooks": {},
1207
- "register": 38
1203
+ "register": 31
1208
1204
  }
1209
1205
  },
1210
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mpa/mpa": {
1206
+ "./node_modules/@umijs/preset-umi/dist/features/mpa/mpa": {
1211
1207
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1212
1208
  "type": "plugin",
1213
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mpa/mpa.js",
1214
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mpa/mpa",
1209
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/mpa/mpa.js",
1210
+ "id": "./node_modules/@umijs/preset-umi/dist/features/mpa/mpa",
1215
1211
  "key": "mpa",
1216
1212
  "config": {},
1217
1213
  "time": {
1218
1214
  "hooks": {},
1219
- "register": 1
1215
+ "register": 0
1220
1216
  },
1221
1217
  "enableBy": "config"
1222
1218
  },
1223
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/okam/okam": {
1219
+ "./node_modules/@umijs/preset-umi/dist/features/okam/okam": {
1224
1220
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1225
1221
  "type": "plugin",
1226
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/okam/okam.js",
1227
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/okam/okam",
1222
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/okam/okam.js",
1223
+ "id": "./node_modules/@umijs/preset-umi/dist/features/okam/okam",
1228
1224
  "key": "okam",
1229
1225
  "config": {},
1230
1226
  "time": {
1231
1227
  "hooks": {},
1232
- "register": 0
1228
+ "register": 1
1233
1229
  }
1234
1230
  },
1235
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/overrides/overrides": {
1231
+ "./node_modules/@umijs/preset-umi/dist/features/overrides/overrides": {
1236
1232
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1237
1233
  "type": "plugin",
1238
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/overrides/overrides.js",
1239
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/overrides/overrides",
1234
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/overrides/overrides.js",
1235
+ "id": "./node_modules/@umijs/preset-umi/dist/features/overrides/overrides",
1240
1236
  "key": "overrides",
1241
1237
  "config": {},
1242
1238
  "time": {
@@ -1245,11 +1241,11 @@
1245
1241
  },
1246
1242
  "enableBy": "register"
1247
1243
  },
1248
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency": {
1244
+ "./node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency": {
1249
1245
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1250
1246
  "type": "plugin",
1251
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency.js",
1252
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency",
1247
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency.js",
1248
+ "id": "./node_modules/@umijs/preset-umi/dist/features/phantomDependency/phantomDependency",
1253
1249
  "key": "phantomDependency",
1254
1250
  "config": {},
1255
1251
  "time": {
@@ -1258,11 +1254,11 @@
1258
1254
  },
1259
1255
  "enableBy": "config"
1260
1256
  },
1261
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill": {
1257
+ "./node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill": {
1262
1258
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1263
1259
  "type": "plugin",
1264
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill.js",
1265
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill",
1260
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill.js",
1261
+ "id": "./node_modules/@umijs/preset-umi/dist/features/polyfill/polyfill",
1266
1262
  "key": "polyfill",
1267
1263
  "config": {},
1268
1264
  "time": {
@@ -1274,24 +1270,24 @@
1274
1270
  "register": 1
1275
1271
  }
1276
1272
  },
1277
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill": {
1273
+ "./node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill": {
1278
1274
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1279
1275
  "type": "plugin",
1280
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill.js",
1281
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill",
1276
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill.js",
1277
+ "id": "./node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill",
1282
1278
  "key": "publicPathPolyfill",
1283
1279
  "config": {},
1284
1280
  "time": {
1285
1281
  "hooks": {},
1286
- "register": 1
1282
+ "register": 0
1287
1283
  },
1288
1284
  "enableBy": "register"
1289
1285
  },
1290
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/prepare/prepare": {
1286
+ "./node_modules/@umijs/preset-umi/dist/features/prepare/prepare": {
1291
1287
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1292
1288
  "type": "plugin",
1293
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/prepare/prepare.js",
1294
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/prepare/prepare",
1289
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/prepare/prepare.js",
1290
+ "id": "./node_modules/@umijs/preset-umi/dist/features/prepare/prepare",
1295
1291
  "key": "prepare",
1296
1292
  "config": {},
1297
1293
  "time": {
@@ -1300,63 +1296,63 @@
1300
1296
  },
1301
1297
  "enableBy": "register"
1302
1298
  },
1303
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch": {
1299
+ "./node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch": {
1304
1300
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1305
1301
  "type": "plugin",
1306
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch.js",
1307
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch",
1302
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch.js",
1303
+ "id": "./node_modules/@umijs/preset-umi/dist/features/routePrefetch/routePrefetch",
1308
1304
  "key": "routePrefetch",
1309
1305
  "config": {},
1310
1306
  "time": {
1311
1307
  "hooks": {},
1312
- "register": 0
1308
+ "register": 1
1313
1309
  },
1314
1310
  "enableBy": "config"
1315
1311
  },
1316
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise": {
1312
+ "./node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise": {
1317
1313
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1318
1314
  "type": "plugin",
1319
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise.js",
1320
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise",
1315
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise.js",
1316
+ "id": "./node_modules/@umijs/preset-umi/dist/features/stagewise/stagewise",
1321
1317
  "key": "stagewise",
1322
1318
  "config": {},
1323
1319
  "time": {
1324
1320
  "hooks": {},
1325
- "register": 1
1321
+ "register": 0
1326
1322
  },
1327
1323
  "enableBy": "config"
1328
1324
  },
1329
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/terminal/terminal": {
1325
+ "./node_modules/@umijs/preset-umi/dist/features/terminal/terminal": {
1330
1326
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1331
1327
  "type": "plugin",
1332
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/terminal/terminal.js",
1333
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/terminal/terminal",
1328
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/terminal/terminal.js",
1329
+ "id": "./node_modules/@umijs/preset-umi/dist/features/terminal/terminal",
1334
1330
  "key": "terminal",
1335
1331
  "config": {},
1336
1332
  "time": {
1337
1333
  "hooks": {},
1338
- "register": 0
1334
+ "register": 1
1339
1335
  },
1340
1336
  "enableBy": "register"
1341
1337
  },
1342
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles": {
1338
+ "./node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles": {
1343
1339
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1344
1340
  "type": "plugin",
1345
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles.js",
1346
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles",
1341
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles.js",
1342
+ "id": "./node_modules/@umijs/preset-umi/dist/features/tmpFiles/tmpFiles",
1347
1343
  "key": "tmpFiles",
1348
1344
  "config": {},
1349
1345
  "time": {
1350
1346
  "hooks": {},
1351
- "register": 4
1347
+ "register": 3
1352
1348
  },
1353
1349
  "enableBy": "register"
1354
1350
  },
1355
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader": {
1351
+ "./node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader": {
1356
1352
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1357
1353
  "type": "plugin",
1358
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader.js",
1359
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader",
1354
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader.js",
1355
+ "id": "./node_modules/@umijs/preset-umi/dist/features/clientLoader/clientLoader",
1360
1356
  "key": "clientLoader",
1361
1357
  "config": {},
1362
1358
  "time": {
@@ -1365,23 +1361,23 @@
1365
1361
  },
1366
1362
  "enableBy": "config"
1367
1363
  },
1368
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps": {
1364
+ "./node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps": {
1369
1365
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1370
1366
  "type": "plugin",
1371
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps.js",
1372
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps",
1367
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps.js",
1368
+ "id": "./node_modules/@umijs/preset-umi/dist/features/routeProps/routeProps",
1373
1369
  "key": "routeProps",
1374
1370
  "config": {},
1375
1371
  "time": {
1376
1372
  "hooks": {},
1377
- "register": 1
1373
+ "register": 0
1378
1374
  }
1379
1375
  },
1380
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ssr/ssr": {
1376
+ "./node_modules/@umijs/preset-umi/dist/features/ssr/ssr": {
1381
1377
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1382
1378
  "type": "plugin",
1383
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ssr/ssr.js",
1384
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ssr/ssr",
1379
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/ssr/ssr.js",
1380
+ "id": "./node_modules/@umijs/preset-umi/dist/features/ssr/ssr",
1385
1381
  "key": "ssr",
1386
1382
  "config": {},
1387
1383
  "time": {
@@ -1390,11 +1386,11 @@
1390
1386
  },
1391
1387
  "enableBy": "config"
1392
1388
  },
1393
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes": {
1389
+ "./node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes": {
1394
1390
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1395
1391
  "type": "plugin",
1396
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes.js",
1397
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes",
1392
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes.js",
1393
+ "id": "./node_modules/@umijs/preset-umi/dist/features/tmpFiles/configTypes",
1398
1394
  "key": "configTypes",
1399
1395
  "config": {},
1400
1396
  "time": {
@@ -1403,24 +1399,24 @@
1403
1399
  },
1404
1400
  "enableBy": "register"
1405
1401
  },
1406
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/transform/transform": {
1402
+ "./node_modules/@umijs/preset-umi/dist/features/transform/transform": {
1407
1403
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1408
1404
  "type": "plugin",
1409
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/transform/transform.js",
1410
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/transform/transform",
1405
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/transform/transform.js",
1406
+ "id": "./node_modules/@umijs/preset-umi/dist/features/transform/transform",
1411
1407
  "key": "transform",
1412
1408
  "config": {},
1413
1409
  "time": {
1414
1410
  "hooks": {},
1415
- "register": 4
1411
+ "register": 3
1416
1412
  },
1417
1413
  "enableBy": "register"
1418
1414
  },
1419
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport": {
1415
+ "./node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport": {
1420
1416
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1421
1417
  "type": "plugin",
1422
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport.js",
1423
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport",
1418
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport.js",
1419
+ "id": "./node_modules/@umijs/preset-umi/dist/features/lowImport/lowImport",
1424
1420
  "key": "lowImport",
1425
1421
  "config": {},
1426
1422
  "time": {
@@ -1429,24 +1425,24 @@
1429
1425
  },
1430
1426
  "enableBy": "config"
1431
1427
  },
1432
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/vite/vite": {
1428
+ "./node_modules/@umijs/preset-umi/dist/features/vite/vite": {
1433
1429
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1434
1430
  "type": "plugin",
1435
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/vite/vite.js",
1436
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/vite/vite",
1431
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/vite/vite.js",
1432
+ "id": "./node_modules/@umijs/preset-umi/dist/features/vite/vite",
1437
1433
  "key": "vite",
1438
1434
  "config": {},
1439
1435
  "time": {
1440
1436
  "hooks": {},
1441
- "register": 1
1437
+ "register": 0
1442
1438
  },
1443
1439
  "enableBy": "config"
1444
1440
  },
1445
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute": {
1441
+ "./node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute": {
1446
1442
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1447
1443
  "type": "plugin",
1448
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute.js",
1449
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute",
1444
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute.js",
1445
+ "id": "./node_modules/@umijs/preset-umi/dist/features/apiRoute/apiRoute",
1450
1446
  "key": "apiRoute",
1451
1447
  "config": {},
1452
1448
  "time": {
@@ -1454,24 +1450,24 @@
1454
1450
  "register": 4
1455
1451
  }
1456
1452
  },
1457
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/monorepo/redirect": {
1453
+ "./node_modules/@umijs/preset-umi/dist/features/monorepo/redirect": {
1458
1454
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1459
1455
  "type": "plugin",
1460
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/monorepo/redirect.js",
1461
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/monorepo/redirect",
1456
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/monorepo/redirect.js",
1457
+ "id": "./node_modules/@umijs/preset-umi/dist/features/monorepo/redirect",
1462
1458
  "key": "monorepoRedirect",
1463
1459
  "config": {},
1464
1460
  "time": {
1465
1461
  "hooks": {},
1466
- "register": 22
1462
+ "register": 20
1467
1463
  },
1468
1464
  "enableBy": "config"
1469
1465
  },
1470
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/test/test": {
1466
+ "./node_modules/@umijs/preset-umi/dist/features/test/test": {
1471
1467
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1472
1468
  "type": "plugin",
1473
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/test/test.js",
1474
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/test/test",
1469
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/test/test.js",
1470
+ "id": "./node_modules/@umijs/preset-umi/dist/features/test/test",
1475
1471
  "key": "test",
1476
1472
  "config": {},
1477
1473
  "time": {
@@ -1479,11 +1475,11 @@
1479
1475
  "register": 1
1480
1476
  }
1481
1477
  },
1482
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent": {
1478
+ "./node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent": {
1483
1479
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1484
1480
  "type": "plugin",
1485
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent.js",
1486
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent",
1481
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent.js",
1482
+ "id": "./node_modules/@umijs/preset-umi/dist/features/clickToComponent/clickToComponent",
1487
1483
  "key": "clickToComponent",
1488
1484
  "config": {},
1489
1485
  "time": {
@@ -1491,11 +1487,11 @@
1491
1487
  "register": 1
1492
1488
  }
1493
1489
  },
1494
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/legacy/legacy": {
1490
+ "./node_modules/@umijs/preset-umi/dist/features/legacy/legacy": {
1495
1491
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1496
1492
  "type": "plugin",
1497
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/legacy/legacy.js",
1498
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/legacy/legacy",
1493
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/legacy/legacy.js",
1494
+ "id": "./node_modules/@umijs/preset-umi/dist/features/legacy/legacy",
1499
1495
  "key": "legacy",
1500
1496
  "config": {},
1501
1497
  "time": {
@@ -1504,36 +1500,36 @@
1504
1500
  },
1505
1501
  "enableBy": "config"
1506
1502
  },
1507
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose": {
1503
+ "./node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose": {
1508
1504
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1509
1505
  "type": "plugin",
1510
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose.js",
1511
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose",
1506
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose.js",
1507
+ "id": "./node_modules/@umijs/preset-umi/dist/features/classPropertiesLoose/classPropertiesLoose",
1512
1508
  "key": "classPropertiesLoose",
1513
1509
  "config": {},
1514
1510
  "time": {
1515
1511
  "hooks": {},
1516
- "register": 1
1512
+ "register": 0
1517
1513
  },
1518
1514
  "enableBy": "config"
1519
1515
  },
1520
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/webpack/webpack": {
1516
+ "./node_modules/@umijs/preset-umi/dist/features/webpack/webpack": {
1521
1517
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1522
1518
  "type": "plugin",
1523
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/webpack/webpack.js",
1524
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/webpack/webpack",
1519
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/webpack/webpack.js",
1520
+ "id": "./node_modules/@umijs/preset-umi/dist/features/webpack/webpack",
1525
1521
  "key": "preset-umi:webpack",
1526
1522
  "config": {},
1527
1523
  "time": {
1528
1524
  "hooks": {},
1529
- "register": 0
1525
+ "register": 1
1530
1526
  }
1531
1527
  },
1532
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/swc/swc": {
1528
+ "./node_modules/@umijs/preset-umi/dist/features/swc/swc": {
1533
1529
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1534
1530
  "type": "plugin",
1535
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/swc/swc.js",
1536
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/swc/swc",
1531
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/swc/swc.js",
1532
+ "id": "./node_modules/@umijs/preset-umi/dist/features/swc/swc",
1537
1533
  "key": "swc",
1538
1534
  "config": {},
1539
1535
  "time": {
@@ -1542,40 +1538,40 @@
1542
1538
  0
1543
1539
  ]
1544
1540
  },
1545
- "register": 1
1541
+ "register": 0
1546
1542
  },
1547
1543
  "enableBy": "register"
1548
1544
  },
1549
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ui/ui": {
1545
+ "./node_modules/@umijs/preset-umi/dist/features/ui/ui": {
1550
1546
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1551
1547
  "type": "plugin",
1552
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ui/ui.js",
1553
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/ui/ui",
1548
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/ui/ui.js",
1549
+ "id": "./node_modules/@umijs/preset-umi/dist/features/ui/ui",
1554
1550
  "key": "ui",
1555
1551
  "config": {},
1556
1552
  "time": {
1557
1553
  "hooks": {},
1558
- "register": 2
1554
+ "register": 3
1559
1555
  }
1560
1556
  },
1561
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mako/mako": {
1557
+ "./node_modules/@umijs/preset-umi/dist/features/mako/mako": {
1562
1558
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1563
1559
  "type": "plugin",
1564
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mako/mako.js",
1565
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/mako/mako",
1560
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/mako/mako.js",
1561
+ "id": "./node_modules/@umijs/preset-umi/dist/features/mako/mako",
1566
1562
  "key": "mako",
1567
1563
  "config": {},
1568
1564
  "time": {
1569
1565
  "hooks": {},
1570
- "register": 1
1566
+ "register": 0
1571
1567
  },
1572
1568
  "enableBy": "config"
1573
1569
  },
1574
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack": {
1570
+ "./node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack": {
1575
1571
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1576
1572
  "type": "plugin",
1577
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack.js",
1578
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack",
1573
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack.js",
1574
+ "id": "./node_modules/@umijs/preset-umi/dist/features/utoopack/utoopack",
1579
1575
  "key": "utoopack",
1580
1576
  "config": {},
1581
1577
  "time": {
@@ -1583,23 +1579,23 @@
1583
1579
  "register": 1
1584
1580
  }
1585
1581
  },
1586
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian": {
1582
+ "./node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian": {
1587
1583
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1588
1584
  "type": "plugin",
1589
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian.js",
1590
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian",
1585
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian.js",
1586
+ "id": "./node_modules/@umijs/preset-umi/dist/features/hmrGuardian/hmrGuardian",
1591
1587
  "key": "hmrGuardian",
1592
1588
  "config": {},
1593
1589
  "time": {
1594
1590
  "hooks": {},
1595
- "register": 2
1591
+ "register": 3
1596
1592
  }
1597
1593
  },
1598
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad": {
1594
+ "./node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad": {
1599
1595
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1600
1596
  "type": "plugin",
1601
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad.js",
1602
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad",
1597
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad.js",
1598
+ "id": "./node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad",
1603
1599
  "key": "routePreloadOnLoad",
1604
1600
  "config": {},
1605
1601
  "time": {
@@ -1607,24 +1603,24 @@
1607
1603
  "register": 27
1608
1604
  }
1609
1605
  },
1610
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/forget/forget": {
1606
+ "./node_modules/@umijs/preset-umi/dist/features/forget/forget": {
1611
1607
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1612
1608
  "type": "plugin",
1613
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/forget/forget.js",
1614
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/forget/forget",
1609
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/forget/forget.js",
1610
+ "id": "./node_modules/@umijs/preset-umi/dist/features/forget/forget",
1615
1611
  "key": "forget",
1616
1612
  "config": {},
1617
1613
  "time": {
1618
1614
  "hooks": {},
1619
- "register": 1
1615
+ "register": 2
1620
1616
  },
1621
1617
  "enableBy": "config"
1622
1618
  },
1623
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/bundler/bundler": {
1619
+ "./node_modules/@umijs/preset-umi/dist/features/bundler/bundler": {
1624
1620
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1625
1621
  "type": "plugin",
1626
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/bundler/bundler.js",
1627
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/features/bundler/bundler",
1622
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/features/bundler/bundler.js",
1623
+ "id": "./node_modules/@umijs/preset-umi/dist/features/bundler/bundler",
1628
1624
  "key": "preset-umi:bundler",
1629
1625
  "config": {},
1630
1626
  "time": {
@@ -1633,11 +1629,11 @@
1633
1629
  },
1634
1630
  "enableBy": "register"
1635
1631
  },
1636
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/build": {
1632
+ "./node_modules/@umijs/preset-umi/dist/commands/build": {
1637
1633
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1638
1634
  "type": "plugin",
1639
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/build.js",
1640
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/build",
1635
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/build.js",
1636
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/build",
1641
1637
  "key": "build",
1642
1638
  "config": {},
1643
1639
  "time": {
@@ -1646,153 +1642,153 @@
1646
1642
  },
1647
1643
  "enableBy": "register"
1648
1644
  },
1649
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/config/config": {
1645
+ "./node_modules/@umijs/preset-umi/dist/commands/config/config": {
1650
1646
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1651
1647
  "type": "plugin",
1652
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/config/config.js",
1653
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/config/config",
1648
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/config/config.js",
1649
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/config/config",
1654
1650
  "key": "config",
1655
1651
  "config": {},
1656
1652
  "time": {
1657
1653
  "hooks": {},
1658
- "register": 40
1654
+ "register": 45
1659
1655
  },
1660
1656
  "enableBy": "register"
1661
1657
  },
1662
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/dev/dev": {
1658
+ "./node_modules/@umijs/preset-umi/dist/commands/dev/dev": {
1663
1659
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1664
1660
  "type": "plugin",
1665
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/dev/dev.js",
1666
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/dev/dev",
1661
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/dev/dev.js",
1662
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/dev/dev",
1667
1663
  "key": "dev",
1668
1664
  "config": {},
1669
1665
  "time": {
1670
1666
  "hooks": {},
1671
- "register": 25
1667
+ "register": 16
1672
1668
  }
1673
1669
  },
1674
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/help": {
1670
+ "./node_modules/@umijs/preset-umi/dist/commands/help": {
1675
1671
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1676
1672
  "type": "plugin",
1677
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/help.js",
1678
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/help",
1673
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/help.js",
1674
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/help",
1679
1675
  "key": "help",
1680
1676
  "config": {},
1681
1677
  "time": {
1682
1678
  "hooks": {},
1683
- "register": 0
1679
+ "register": 1
1684
1680
  },
1685
1681
  "enableBy": "register"
1686
1682
  },
1687
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/lint": {
1683
+ "./node_modules/@umijs/preset-umi/dist/commands/lint": {
1688
1684
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1689
1685
  "type": "plugin",
1690
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/lint.js",
1691
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/lint",
1686
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/lint.js",
1687
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/lint",
1692
1688
  "key": "lint",
1693
1689
  "config": {},
1694
1690
  "time": {
1695
1691
  "hooks": {},
1696
- "register": 1
1692
+ "register": 0
1697
1693
  },
1698
1694
  "enableBy": "register"
1699
1695
  },
1700
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/setup": {
1696
+ "./node_modules/@umijs/preset-umi/dist/commands/setup": {
1701
1697
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1702
1698
  "type": "plugin",
1703
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/setup.js",
1704
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/setup",
1699
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/setup.js",
1700
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/setup",
1705
1701
  "key": "setup",
1706
1702
  "config": {},
1707
1703
  "time": {
1708
1704
  "hooks": {},
1709
- "register": 0
1705
+ "register": 1
1710
1706
  },
1711
1707
  "enableBy": "register"
1712
1708
  },
1713
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/deadcode": {
1709
+ "./node_modules/@umijs/preset-umi/dist/commands/deadcode": {
1714
1710
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1715
1711
  "type": "plugin",
1716
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/deadcode.js",
1717
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/deadcode",
1712
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/deadcode.js",
1713
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/deadcode",
1718
1714
  "key": "deadcode",
1719
1715
  "config": {},
1720
1716
  "time": {
1721
1717
  "hooks": {},
1722
- "register": 1
1718
+ "register": 0
1723
1719
  },
1724
1720
  "enableBy": "register"
1725
1721
  },
1726
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/version": {
1722
+ "./node_modules/@umijs/preset-umi/dist/commands/version": {
1727
1723
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1728
1724
  "type": "plugin",
1729
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/version.js",
1730
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/version",
1725
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/version.js",
1726
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/version",
1731
1727
  "key": "version",
1732
1728
  "config": {},
1733
1729
  "time": {
1734
1730
  "hooks": {},
1735
- "register": 0
1731
+ "register": 1
1736
1732
  },
1737
1733
  "enableBy": "register"
1738
1734
  },
1739
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/page": {
1735
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/page": {
1740
1736
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1741
1737
  "type": "plugin",
1742
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/page.js",
1743
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/page",
1738
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/page.js",
1739
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/page",
1744
1740
  "key": "generator:page",
1745
1741
  "config": {},
1746
1742
  "time": {
1747
1743
  "hooks": {},
1748
- "register": 2
1744
+ "register": 1
1749
1745
  },
1750
1746
  "enableBy": "register"
1751
1747
  },
1752
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/prettier": {
1748
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/prettier": {
1753
1749
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1754
1750
  "type": "plugin",
1755
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/prettier.js",
1756
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/prettier",
1751
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/prettier.js",
1752
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/prettier",
1757
1753
  "key": "generator:prettier",
1758
1754
  "config": {},
1759
1755
  "time": {
1760
1756
  "hooks": {},
1761
- "register": 0
1757
+ "register": 1
1762
1758
  },
1763
1759
  "enableBy": "register"
1764
1760
  },
1765
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig": {
1761
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig": {
1766
1762
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1767
1763
  "type": "plugin",
1768
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig.js",
1769
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig",
1764
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig.js",
1765
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/tsconfig",
1770
1766
  "key": "generator:tsconfig",
1771
1767
  "config": {},
1772
1768
  "time": {
1773
1769
  "hooks": {},
1774
- "register": 1
1770
+ "register": 0
1775
1771
  },
1776
1772
  "enableBy": "register"
1777
1773
  },
1778
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/jest": {
1774
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/jest": {
1779
1775
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1780
1776
  "type": "plugin",
1781
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/jest.js",
1782
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/jest",
1777
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/jest.js",
1778
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/jest",
1783
1779
  "key": "generator:jest",
1784
1780
  "config": {},
1785
1781
  "time": {
1786
1782
  "hooks": {},
1787
- "register": 0
1783
+ "register": 1
1788
1784
  },
1789
1785
  "enableBy": "register"
1790
1786
  },
1791
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss": {
1787
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss": {
1792
1788
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1793
1789
  "type": "plugin",
1794
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss.js",
1795
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss",
1790
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss.js",
1791
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/tailwindcss",
1796
1792
  "key": "generator:tailwindcss",
1797
1793
  "config": {},
1798
1794
  "time": {
@@ -1801,76 +1797,76 @@
1801
1797
  },
1802
1798
  "enableBy": "register"
1803
1799
  },
1804
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/dva": {
1800
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/dva": {
1805
1801
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1806
1802
  "type": "plugin",
1807
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/dva.js",
1808
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/dva",
1803
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/dva.js",
1804
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/dva",
1809
1805
  "key": "generator:dva",
1810
1806
  "config": {},
1811
1807
  "time": {
1812
1808
  "hooks": {},
1813
- "register": 1
1809
+ "register": 0
1814
1810
  },
1815
1811
  "enableBy": "register"
1816
1812
  },
1817
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/component": {
1813
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/component": {
1818
1814
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1819
1815
  "type": "plugin",
1820
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/component.js",
1821
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/component",
1816
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/component.js",
1817
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/component",
1822
1818
  "key": "generator:component",
1823
1819
  "config": {},
1824
1820
  "time": {
1825
1821
  "hooks": {},
1826
- "register": 0
1822
+ "register": 1
1827
1823
  },
1828
1824
  "enableBy": "register"
1829
1825
  },
1830
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/mock": {
1826
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/mock": {
1831
1827
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1832
1828
  "type": "plugin",
1833
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/mock.js",
1834
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/mock",
1829
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/mock.js",
1830
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/mock",
1835
1831
  "key": "generator:mock",
1836
1832
  "config": {},
1837
1833
  "time": {
1838
1834
  "hooks": {},
1839
- "register": 1
1835
+ "register": 0
1840
1836
  },
1841
1837
  "enableBy": "register"
1842
1838
  },
1843
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/cypress": {
1839
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/cypress": {
1844
1840
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1845
1841
  "type": "plugin",
1846
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/cypress.js",
1847
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/cypress",
1842
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/cypress.js",
1843
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/cypress",
1848
1844
  "key": "generator:cypress",
1849
1845
  "config": {},
1850
1846
  "time": {
1851
1847
  "hooks": {},
1852
- "register": 0
1848
+ "register": 1
1853
1849
  },
1854
1850
  "enableBy": "register"
1855
1851
  },
1856
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/api": {
1852
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/api": {
1857
1853
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1858
1854
  "type": "plugin",
1859
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/api.js",
1860
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/api",
1855
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/api.js",
1856
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/api",
1861
1857
  "key": "generator:api",
1862
1858
  "config": {},
1863
1859
  "time": {
1864
1860
  "hooks": {},
1865
- "register": 1
1861
+ "register": 0
1866
1862
  },
1867
1863
  "enableBy": "register"
1868
1864
  },
1869
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/precommit": {
1865
+ "./node_modules/@umijs/preset-umi/dist/commands/generators/precommit": {
1870
1866
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1871
1867
  "type": "plugin",
1872
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/precommit.js",
1873
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/generators/precommit",
1868
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/generators/precommit.js",
1869
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/generators/precommit",
1874
1870
  "key": "generator:precommit",
1875
1871
  "config": {},
1876
1872
  "time": {
@@ -1879,11 +1875,11 @@
1879
1875
  },
1880
1876
  "enableBy": "register"
1881
1877
  },
1882
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/plugin": {
1878
+ "./node_modules/@umijs/preset-umi/dist/commands/plugin": {
1883
1879
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1884
1880
  "type": "plugin",
1885
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/plugin.js",
1886
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/plugin",
1881
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/plugin.js",
1882
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/plugin",
1887
1883
  "key": "command:plugin",
1888
1884
  "config": {},
1889
1885
  "time": {
@@ -1892,11 +1888,11 @@
1892
1888
  },
1893
1889
  "enableBy": "register"
1894
1890
  },
1895
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/verify-commit": {
1891
+ "./node_modules/@umijs/preset-umi/dist/commands/verify-commit": {
1896
1892
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1897
1893
  "type": "plugin",
1898
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/verify-commit.js",
1899
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/verify-commit",
1894
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/verify-commit.js",
1895
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/verify-commit",
1900
1896
  "key": "verifyCommit",
1901
1897
  "config": {},
1902
1898
  "time": {
@@ -1905,55 +1901,55 @@
1905
1901
  },
1906
1902
  "enableBy": "register"
1907
1903
  },
1908
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/preview": {
1904
+ "./node_modules/@umijs/preset-umi/dist/commands/preview": {
1909
1905
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1910
1906
  "type": "plugin",
1911
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/preview.js",
1912
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/preview",
1907
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/preview.js",
1908
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/preview",
1913
1909
  "key": "preview",
1914
1910
  "config": {},
1915
1911
  "time": {
1916
1912
  "hooks": {},
1917
- "register": 23
1913
+ "register": 20
1918
1914
  },
1919
1915
  "enableBy": "register"
1920
1916
  },
1921
- "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu": {
1917
+ "./node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu": {
1922
1918
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1923
1919
  "type": "plugin",
1924
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu.js",
1925
- "id": "./node_modules/.pnpm/@umijs+preset-umi@4.6.51_@types+node@25.6.0_@types+react@19.2.14_lightningcss@1.22.1_ro_d572e3924c20f248167c9de19764c04c/node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu",
1920
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu.js",
1921
+ "id": "./node_modules/@umijs/preset-umi/dist/commands/mfsu/mfsu",
1926
1922
  "key": "mfsu-cli",
1927
1923
  "config": {},
1928
1924
  "time": {
1929
1925
  "hooks": {},
1930
- "register": 0
1926
+ "register": 1
1931
1927
  },
1932
1928
  "enableBy": "register"
1933
1929
  },
1934
1930
  "@umijs/plugin-run": {
1935
1931
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1936
1932
  "type": "plugin",
1937
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+plugin-run@4.6.51/node_modules/@umijs/plugin-run/dist/index.js",
1933
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/plugin-run/dist/index.js",
1938
1934
  "id": "@umijs/plugin-run",
1939
1935
  "key": "run",
1940
1936
  "config": {},
1941
1937
  "time": {
1942
1938
  "hooks": {},
1943
- "register": 3
1939
+ "register": 1
1944
1940
  },
1945
1941
  "enableBy": "register"
1946
1942
  },
1947
- "./node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/generatePlugin": {
1943
+ "./node_modules/@umijs/core/dist/service/generatePlugin": {
1948
1944
  "cwd": "/home/runner/work/open-admin/open-admin/web",
1949
1945
  "type": "plugin",
1950
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/generatePlugin.js",
1951
- "id": "./node_modules/.pnpm/@umijs+core@4.6.51/node_modules/@umijs/core/dist/service/generatePlugin",
1946
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/core/dist/service/generatePlugin.js",
1947
+ "id": "./node_modules/@umijs/core/dist/service/generatePlugin",
1952
1948
  "key": "generatePlugin",
1953
1949
  "config": {},
1954
1950
  "time": {
1955
1951
  "hooks": {},
1956
- "register": 0
1952
+ "register": 1
1957
1953
  },
1958
1954
  "enableBy": "register"
1959
1955
  },
@@ -1966,7 +1962,7 @@
1966
1962
  "config": {},
1967
1963
  "time": {
1968
1964
  "hooks": {},
1969
- "register": 8
1965
+ "register": 6
1970
1966
  },
1971
1967
  "enableBy": "register"
1972
1968
  }
@@ -1999,14 +1995,6 @@
1999
1995
  "target": "http://127.0.0.1:8080",
2000
1996
  "changeOrigin": true
2001
1997
  },
2002
- "/swagger-ui": {
2003
- "target": "http://127.0.0.1:8080",
2004
- "changeOrigin": true
2005
- },
2006
- "/v3/api-docs": {
2007
- "target": "http://127.0.0.1:8080",
2008
- "changeOrigin": true
2009
- },
2010
1998
  "/admin/ws": {
2011
1999
  "target": "ws://127.0.0.1:8080",
2012
2000
  "changeOrigin": true,
@@ -2032,13 +2020,13 @@
2032
2020
  "autoCSSModules": true,
2033
2021
  "alias": {
2034
2022
  "umi": "@@/exports",
2035
- "react": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react@18.3.1/node_modules/react",
2036
- "react-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom",
2037
- "react-router": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-router@6.3.0_react@18.3.1/node_modules/react-router",
2038
- "react-router-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-router-dom@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom",
2023
+ "react": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react",
2024
+ "react-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react-dom",
2025
+ "react-router": "/home/runner/work/open-admin/open-admin/web/node_modules/react-router",
2026
+ "react-router-dom": "/home/runner/work/open-admin/open-admin/web/node_modules/react-router-dom",
2039
2027
  "@": "/home/runner/work/open-admin/open-admin/web/src",
2040
2028
  "@@": "/home/runner/work/open-admin/open-admin/web/src/.umi-production",
2041
- "regenerator-runtime": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/regenerator-runtime@0.13.11/node_modules/regenerator-runtime"
2029
+ "regenerator-runtime": "/home/runner/work/open-admin/open-admin/web/node_modules/regenerator-runtime"
2042
2030
  },
2043
2031
  "hash": true,
2044
2032
  "esbuildMinifyIIFE": true,
@@ -2058,14 +2046,6 @@
2058
2046
  "target": "http://127.0.0.1:8080",
2059
2047
  "changeOrigin": true
2060
2048
  },
2061
- "/swagger-ui": {
2062
- "target": "http://127.0.0.1:8080",
2063
- "changeOrigin": true
2064
- },
2065
- "/v3/api-docs": {
2066
- "target": "http://127.0.0.1:8080",
2067
- "changeOrigin": true
2068
- },
2069
2049
  "/admin/ws": {
2070
2050
  "target": "ws://127.0.0.1:8080",
2071
2051
  "changeOrigin": true,
@@ -2093,37 +2073,37 @@
2093
2073
  "parentId": "@@/global-layout",
2094
2074
  "file": "userCenter/ChangePassword.jsx",
2095
2075
  "absPath": "/userCenter/ChangePassword",
2096
- "__content": "import React from \"react\";\nimport {Button, Form, Input, Modal} from \"antd\";\n\n\nimport {history} from 'umi'\nimport {HttpUtils} from \"../../framework\";\n\nexport default class extends React.Component {\n\n\n onFinish = (values) => {\n HttpUtils.post('admin/userCenter/updatePwd', values).then(() => {\n Modal.success({\n title: '提示',\n content: '修改密码成功',\n onOk: () => {\n SysUtils.setToken(null)\n history.push('/login')\n }\n })\n })\n }\n\n validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n HttpUtils.get(\"admin/sysUser/pwdStrength\", {password: value}).then(response => {\n const rs = response.data\n if (!rs.success) {\n reject(rs.message)\n }\n resolve()\n })\n })\n\n }\n\n render() {\n return <div>\n\n <Form onFinish={this.onFinish} style={{maxWidth: 400}}>\n\n <Form.Item name='newPassword'\n label='新密码'\n extra={'请输入字母、数字、特殊字符'}\n rules={[\n {required: true},\n {\n validator: this.validator\n }\n ]}\n >\n <Input.Password></Input.Password>\n </Form.Item>\n\n <Form.Item wrapperCol={{offset: 5}} style={{marginTop: 40}}>\n <Button type=\"primary\" htmlType=\"submit\">\n 确定\n </Button>\n </Form.Item>\n </Form>\n\n </div>\n }\n}\n",
2076
+ "__content": "import React from \"react\";\nimport {Button, Form, Input, Modal} from \"antd\";\nimport {history} from 'umi'\nimport {HttpUtils, SysUtils} from \"../../framework\";\n\nexport default class extends React.Component {\n\n\n onFinish = (values) => {\n HttpUtils.post('admin/userCenter/update-pwd', values).then(() => {\n Modal.success({\n title: '提示',\n content: '修改密码成功',\n onOk: () => {\n SysUtils.setToken(null)\n history.push('/login')\n }\n })\n })\n }\n\n validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n HttpUtils.get(\"admin/sysUser/pwd-strength\", {password: value}).then(response => {\n const rs = response.data\n if (!rs.success) {\n reject(rs.message)\n }\n resolve()\n })\n })\n\n }\n\n render() {\n return <div>\n\n <Form onFinish={this.onFinish} style={{maxWidth: 400}}>\n\n <Form.Item name='newPassword'\n label='新密码'\n extra={'请输入字母、数字、特殊字符'}\n rules={[\n {required: true},\n {\n validator: this.validator\n }\n ]}\n >\n <Input.Password></Input.Password>\n </Form.Item>\n\n <Form.Item wrapperCol={{offset: 5}} style={{marginTop: 40}}>\n <Button type=\"primary\" htmlType=\"submit\">\n 确定\n </Button>\n </Form.Item>\n </Form>\n\n </div>\n }\n}\n",
2097
2077
  "__isJSFile": true,
2098
2078
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/userCenter/ChangePassword.jsx"
2099
2079
  },
2100
- "system/sysManual/index": {
2101
- "path": "system/sysManual",
2102
- "id": "system/sysManual/index",
2103
- "parentId": "@@/global-layout",
2104
- "file": "system/sysManual/index.jsx",
2105
- "absPath": "/system/sysManual",
2106
- "__content": "import {PlusOutlined} from '@ant-design/icons'\nimport {Button, Form, Input, Modal, Popconfirm} from 'antd'\nimport React from 'react'\nimport {ButtonList, FieldUploadFile, HttpUtils, Page, ProTable} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record})\n }\n\n onFinish = values => {\n HttpUtils.post('admin/sysManual/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysManual/delete', {id: record.id}).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '版本',\n dataIndex: 'version',\n render(version) {\n return 'v' + version;\n }\n },\n\n {\n title: '文件',\n dataIndex: 'fileId',\n render(id) {\n const url = 'admin/sysFile/preview/' + id;\n return <a href={url} target='_blank'>查看文件</a>\n }\n\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => (\n <ButtonList>\n <Button size='small' perm='sysManual:save' onClick={() => this.handleEdit(record)}>编辑</Button>\n <Popconfirm perm='sysManual:delete' title='是否确定删除操作手册'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n ),\n },\n\n ]\n\n render() {\n return <Page>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={(params, {selectedRows, selectedRowKeys}) => {\n return <ButtonList>\n <Button perm='sysManual:save' type='primary' onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/sysManual/page', params)}\n columns={this.columns}\n\n />\n\n <Modal title='操作手册'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnHidden\n maskClosable={false}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}\n >\n <Form.Item name='id' noStyle></Form.Item>\n\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='文件' name='fileId' rules={[{required: true}]}>\n <FieldUploadFile accept=\".pdf\" maxCount={1}/>\n </Form.Item>\n\n </Form>\n </Modal>\n </Page>\n\n\n }\n}\n\n\n",
2107
- "__isJSFile": true,
2108
- "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/sysManual/index.jsx"
2109
- },
2110
2080
  "system/user/UserPerm": {
2111
2081
  "path": "system/user/UserPerm",
2112
2082
  "id": "system/user/UserPerm",
2113
2083
  "parentId": "@@/global-layout",
2114
2084
  "file": "system/user/UserPerm.jsx",
2115
2085
  "absPath": "/system/user/UserPerm",
2116
- "__content": "import {Form, Modal} from 'antd';\nimport React from 'react';\nimport {FieldDictSelect, FieldRemoteSelectMultiple, FieldSysOrgTree, HttpUtils} from \"../../../framework\";\n\n\nexport default class UserPerm extends React.Component {\n\n\n state = {\n visible: false,\n\n confirmLoading: false,\n\n formValues: {\n dataPermType: null\n },\n }\n formRef = React.createRef()\n\n show(item) {\n this.setState({visible: true})\n\n HttpUtils.get('admin/sysUser/getPermInfo', {id: item.id}).then(rs => {\n this.setState({formValues: rs})\n this.formRef.current.setFieldsValue(rs)\n })\n }\n\n handleSave = (values) => {\n values.grantOrgIdList = this.state.checked\n\n this.setState({\n confirmLoading: true\n })\n\n\n HttpUtils.post('admin/sysUser/grantPerm', values).then(rs => {\n this.setState({\n visible: false,\n confirmLoading: false\n })\n this.props.onOk()\n }).finally(() => {\n this.setState({\n confirmLoading: false\n })\n\n })\n }\n\n render() {\n let {visible, confirmLoading} = this.state\n\n return <Modal\n title=\"授权\"\n destroyOnHidden\n width={600}\n open={visible}\n confirmLoading={confirmLoading}\n onCancel={() => this.setState({visible: false})}\n onOk={() => this.formRef.current.submit()}\n >\n\n <Form ref={this.formRef}\n onFinish={this.handleSave}\n onValuesChange={(change, values) => {\n this.setState({formValues: values})\n }}\n labelCol={{flex: '100px'}}\n >\n <Form.Item name='id' noStyle></Form.Item>\n <Form.Item label='角色' name='roleIds' rules={[{required: true}]}>\n <FieldRemoteSelectMultiple url='admin/sysRole/options'/>\n </Form.Item>\n <Form.Item label='数据权限' name='dataPermType' rules={[{required: true}]}>\n <FieldDictSelect typeCode='dataPermType'/>\n </Form.Item>\n\n\n {this.state.formValues.dataPermType === 'CUSTOM' && <>\n <Form.Item label='组织机构' name='orgIds'>\n <FieldSysOrgTree/>\n </Form.Item>\n </>}\n\n\n </Form>\n\n\n </Modal>\n }\n\n\n}\n",
2086
+ "__content": "import {Form, Modal} from 'antd';\nimport React from 'react';\nimport {FieldDictSelect, FieldRemoteSelectMultiple, FieldSysOrgTree, HttpUtils} from \"../../../framework\";\n\n\nexport default class UserPerm extends React.Component {\n\n\n state = {\n visible: false,\n\n confirmLoading: false,\n\n formValues: {\n dataPermType: null\n },\n }\n formRef = React.createRef()\n\n show(item) {\n this.setState({visible: true})\n\n HttpUtils.get('admin/sysUser/get-perm-info', {id: item.id}).then(rs => {\n this.setState({formValues: rs})\n this.formRef.current.setFieldsValue(rs)\n })\n }\n\n handleSave = (values) => {\n values.grantOrgIdList = this.state.checked\n\n this.setState({\n confirmLoading: true\n })\n\n\n HttpUtils.post('admin/sysUser/grant-perm', values).then(rs => {\n this.setState({\n visible: false,\n confirmLoading: false\n })\n this.props.onOk()\n }).finally(() => {\n this.setState({\n confirmLoading: false\n })\n\n })\n }\n\n render() {\n const {visible, confirmLoading} = this.state\n\n return <Modal\n title=\"授权\"\n destroyOnClose\n width={600}\n open={visible}\n confirmLoading={confirmLoading}\n onCancel={() => this.setState({visible: false})}\n onOk={() => this.formRef.current.submit()}\n >\n\n <Form ref={this.formRef}\n onFinish={this.handleSave}\n onValuesChange={(change, values) => {\n this.setState({formValues: values})\n }}\n labelCol={{flex: '100px'}}\n >\n <Form.Item name='id' noStyle></Form.Item>\n <Form.Item label='角色' name='roleIds' rules={[{required: true}]}>\n <FieldRemoteSelectMultiple url='admin/sysRole/options'/>\n </Form.Item>\n <Form.Item label='数据权限' name='dataPermType' rules={[{required: true}]}>\n <FieldDictSelect typeCode='dataPermType'/>\n </Form.Item>\n\n\n {this.state.formValues.dataPermType === 'CUSTOM' && <>\n <Form.Item label='组织机构' name='orgIds'>\n <FieldSysOrgTree/>\n </Form.Item>\n </>}\n\n\n </Form>\n\n\n </Modal>\n }\n\n\n}\n",
2117
2087
  "__isJSFile": true,
2118
2088
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/user/UserPerm.jsx"
2119
2089
  },
2090
+ "system/manual/index": {
2091
+ "path": "system/manual",
2092
+ "id": "system/manual/index",
2093
+ "parentId": "@@/global-layout",
2094
+ "file": "system/manual/index.jsx",
2095
+ "absPath": "/system/manual",
2096
+ "__content": "import {PlusOutlined} from '@ant-design/icons'\nimport {Button, Form, Input, Modal, Popconfirm} from 'antd'\nimport React from 'react'\nimport {ButtonList, FieldUploadFile, HttpUtils, Page, ProTable} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record})\n }\n\n onFinish = values => {\n HttpUtils.post('admin/sysManual/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysManual/delete', {id: record.id}).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '版本',\n dataIndex: 'version',\n render(version) {\n return 'v' + version;\n }\n },\n\n {\n title: '文件',\n dataIndex: 'fileId',\n render(id) {\n const url = 'admin/sysFile/preview/' + id;\n return <a href={url} target='_blank'>查看文件</a>\n }\n\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => (\n <ButtonList>\n <Button size='small' perm='sysManual:save' onClick={() => this.handleEdit(record)}>编辑</Button>\n <Popconfirm perm='sysManual:delete' title='是否确定删除操作手册'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n ),\n },\n\n ]\n\n render() {\n return <Page>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={(params, {selectedRows, selectedRowKeys}) => {\n return <ButtonList>\n <Button perm='sysManual:save' type='primary' onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/sysManual/page', params)}\n columns={this.columns}\n\n />\n\n <Modal title='操作手册'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnClose\n maskClosable={false}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}\n >\n <Form.Item name='id' noStyle></Form.Item>\n\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='文件' name='fileId' rules={[{required: true}]}>\n <FieldUploadFile accept=\".pdf\" maxCount={1}/>\n </Form.Item>\n\n </Form>\n </Modal>\n </Page>\n\n\n }\n}\n\n\n",
2097
+ "__isJSFile": true,
2098
+ "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/manual/index.jsx"
2099
+ },
2120
2100
  "userCenter/message": {
2121
2101
  "path": "userCenter/message",
2122
2102
  "id": "userCenter/message",
2123
2103
  "parentId": "@@/global-layout",
2124
2104
  "file": "userCenter/message.jsx",
2125
2105
  "absPath": "/userCenter/message",
2126
- "__content": "import React from \"react\";\nimport {Button, Card, Tabs, Tag} from \"antd\";\nimport {ProTable} from \"../../framework\";\n\nexport default class extends React.Component {\n\n tableRef = React.createRef()\n\n read = (record) => {\n HttpUtils.post(\"admin/user/msg/read\", record).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '时间',\n dataIndex: 'createTime',\n width: 150\n },\n {\n title: '标题',\n dataIndex: 'title',\n },\n {\n title: '内容',\n dataIndex: 'content',\n render(content, row) {\n return <div dangerouslySetInnerHTML={{__html: content}}/>\n }\n },\n {\n title: '已读时间',\n dataIndex: 'readTime',\n width: 150\n },\n {\n title: '状态',\n dataIndex: 'isRead',\n render: (v, row) => {\n return v == true ? <Tag color='green'>已读</Tag> : <Tag color='red'>未读</Tag>;\n },\n width: 80\n },\n\n {\n title: '-',\n dataIndex: 'option',\n render: (read, row) => {\n if (!row.isRead)\n return <Button size='small' onClick={() => this.read(row)}> 标记已读 </Button>\n }, width: 80\n }\n ]\n\n render() {\n return <Card variant={\"borderless\"}>\n\n <Tabs defaultActiveKey=\"0\" destroyOnHidden\n >\n <Tabs.TabPane key='0' tab='所有消息'>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page\", params)}\n columns={this.columns}\n toolbarOptions={{showSearch: false}}\n size='small'\n />\n </Tabs.TabPane>\n <Tabs.TabPane key='1' tab='未读消息'>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page?read=false\", params)}\n columns={this.columns}\n rowSelection={false}\n rowKey='id'\n toolbarOptions={{showSearch: false}}\n size='small'\n />\n\n\n </Tabs.TabPane>\n <Tabs.TabPane key='2' tab='已读消息'>\n\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page?read=true\", params)}\n rowSelection={false}\n rowKey='id'\n toolbarOptions={{showSearch: false}}\n options={false}\n size='small'\n columns={this.columns}\n />\n\n\n </Tabs.TabPane>\n\n </Tabs>\n\n </Card>\n }\n}\n",
2106
+ "__content": "import React from \"react\";\nimport {Button, Card, Tabs, Tag} from \"antd\";\nimport {ProTable} from \"../../framework\";\n\nexport default class extends React.Component {\n\n tableRef = React.createRef()\n\n read = (record) => {\n HttpUtils.post(\"admin/user/msg/read\", record).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '时间',\n dataIndex: 'createTime',\n width: 150\n },\n {\n title: '标题',\n dataIndex: 'title',\n },\n {\n title: '内容',\n dataIndex: 'content',\n render(content, row) {\n return <div dangerouslySetInnerHTML={{__html: content}}/>\n }\n },\n {\n title: '已读时间',\n dataIndex: 'readTime',\n width: 150\n },\n {\n title: '状态',\n dataIndex: 'isRead',\n render: (v, row) => {\n return v == true ? <Tag color='green'>已读</Tag> : <Tag color='red'>未读</Tag>;\n },\n width: 80\n },\n\n {\n title: '-',\n dataIndex: 'option',\n render: (read, row) => {\n if (!row.isRead)\n return <Button size='small' onClick={() => this.read(row)}> 标记已读 </Button>\n }, width: 80\n }\n ]\n\n render() {\n return <Card variant={\"borderless\"}>\n\n <Tabs defaultActiveKey=\"0\" destroyOnClose\n >\n <Tabs.TabPane key='0' tab='所有消息'>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page\", params)}\n columns={this.columns}\n toolbarOptions={{showSearch: false}}\n size='small'\n />\n </Tabs.TabPane>\n <Tabs.TabPane key='1' tab='未读消息'>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page?read=false\", params)}\n columns={this.columns}\n rowSelection={false}\n rowKey='id'\n toolbarOptions={{showSearch: false}}\n size='small'\n />\n\n\n </Tabs.TabPane>\n <Tabs.TabPane key='2' tab='已读消息'>\n\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get(\"admin/user/msg/page?read=true\", params)}\n rowSelection={false}\n rowKey='id'\n toolbarOptions={{showSearch: false}}\n options={false}\n size='small'\n columns={this.columns}\n />\n\n\n </Tabs.TabPane>\n\n </Tabs>\n\n </Card>\n }\n}\n",
2127
2107
  "__isJSFile": true,
2128
2108
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/userCenter/message.jsx"
2129
2109
  },
@@ -2133,7 +2113,7 @@
2133
2113
  "parentId": "@@/global-layout",
2134
2114
  "file": "system/dict/index.jsx",
2135
2115
  "absPath": "/system/dict",
2136
- "__content": "import React from \"react\";\nimport {Button, Form, Input, InputNumber, Modal, Popconfirm, Splitter, Tag, Tree, Typography} from \"antd\";\nimport {\n ButtonList,\n FieldBoolean, FieldDictSelect, FieldRemoteSelect,\n HttpUtils,\n Page,\n ProTable,\n ViewBooleanEnableDisable, ViewText\n} from \"../../../framework\";\nimport {PlusOutlined} from \"@ant-design/icons\";\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n\n\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record})\n }\n\n onFinish = values => {\n HttpUtils.post('admin/dict/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = row => {\n HttpUtils.post('admin/dict/delete', row).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '类型标签',\n dataIndex: 'typeLabel',\n },\n {\n title: '类型编码',\n dataIndex: 'typeCode',\n },\n {\n title: '标签',\n dataIndex: 'label',\n },\n {\n title: '编码',\n dataIndex: 'code',\n },\n\n {\n title: '启用',\n dataIndex: 'enabled',\n render(v) {\n return <ViewBooleanEnableDisable value={v}/>\n }\n\n },\n {\n title: '显示颜色',\n dataIndex: 'color',\n render(v) {\n if (v) {\n return <Tag color={v.toLowerCase()}>{v}</Tag>\n }\n\n }\n },\n\n {\n title: '序号',\n dataIndex: 'seq',\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n if(!record.id){ // 非数据库定义的不让修改\n return\n }\n\n return (\n <ButtonList>\n <Button size='small' perm='sysDict:save'\n onClick={() => this.handleEdit(record)}> 编辑 </Button>\n <Popconfirm perm='sysDict:delete' title='是否确定删除字典项'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n );\n },\n },\n ]\n\n render() {\n return <Page padding>\n <ProTable\n rowKey='uid'\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button perm='sysDict:save' type='primary' onClick={this.handleAdd} >\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => {\n params.typeCode = this.state.typeCode\n return HttpUtils.get('admin/dict/page', params);\n }}\n columns={this.columns}\n showToolbarSearch={true}\n scrollY={500}\n />\n <Modal\n title='编辑数据字典项'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnHidden\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle></Form.Item>\n <Form.Item label='类型' name='color' rules={[{required: true}]} >\n <ViewText />\n </Form.Item>\n <Form.Item label='类型' name='typeCode' rules={[{required: true}]} >\n <FieldRemoteSelect url='/admin/dict/typeOptions' />\n </Form.Item>\n <Form.Item label='编码' name='code' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n <Form.Item label='标签' name='label' rules={[{required: true}]} help='显示文本'>\n <Input/>\n </Form.Item>\n <Form.Item label='颜色' name='color' rules={[{required: true}]}>\n <FieldDictSelect typeCode='statusColor' />\n </Form.Item>\n <Form.Item label='序号' name='seq' rules={[{required: true}]}>\n <InputNumber/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n </Form>\n </Modal>\n </Page>\n\n\n }\n\n\n}\n",
2116
+ "__content": "import React from \"react\";\nimport {Button, Form, Input, InputNumber, Modal, Popconfirm, Splitter, Tag, Tree, Typography} from \"antd\";\nimport {PlusOutlined} from \"@ant-design/icons\";\n\nimport {\n ButtonList,\n FieldBoolean, FieldDictSelect, FieldRemoteSelect,\n HttpUtils,\n Page,\n ProTable,\n ViewBooleanEnableDisable, ViewText\n} from \"../../../framework\";\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n\n\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record})\n }\n\n onFinish = values => {\n HttpUtils.post('admin/dict/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = row => {\n HttpUtils.post('admin/dict/delete', row).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '类型标签',\n dataIndex: 'typeLabel',\n },\n {\n title: '类型编码',\n dataIndex: 'typeCode',\n },\n {\n title: '标签',\n dataIndex: 'label',\n },\n {\n title: '编码',\n dataIndex: 'code',\n },\n\n {\n title: '启用',\n dataIndex: 'enabled',\n render(v) {\n return <ViewBooleanEnableDisable value={v}/>\n }\n\n },\n {\n title: '显示颜色',\n dataIndex: 'color',\n render(v) {\n if (v) {\n return <Tag color={v.toLowerCase()}>{v}</Tag>\n }\n\n }\n },\n\n {\n title: '序号',\n dataIndex: 'seq',\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n if(!record.id){ // 非数据库定义的不让修改\n return\n }\n\n return (\n <ButtonList>\n <Button size='small' perm='sysDict:save'\n onClick={() => this.handleEdit(record)}> 编辑 </Button>\n <Popconfirm perm='sysDict:delete' title='是否确定删除字典项'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n );\n },\n },\n ]\n\n render() {\n return <Page padding>\n <ProTable\n rowKey='uid'\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button perm='sysDict:save' type='primary' onClick={this.handleAdd} >\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => {\n params.typeCode = this.state.typeCode\n return HttpUtils.get('admin/dict/page', params);\n }}\n columns={this.columns}\n showToolbarSearch={true}\n scrollY={500}\n />\n <Modal\n title='编辑数据字典项'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnClose\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle></Form.Item>\n <Form.Item label='类型' name='color' rules={[{required: true}]} >\n <ViewText />\n </Form.Item>\n <Form.Item label='类型' name='typeCode' rules={[{required: true}]} >\n <FieldRemoteSelect url='/admin/dict/type-options' />\n </Form.Item>\n <Form.Item label='编码' name='code' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n <Form.Item label='标签' name='label' rules={[{required: true}]} help='显示文本'>\n <Input/>\n </Form.Item>\n <Form.Item label='颜色' name='color' rules={[{required: true}]}>\n <FieldDictSelect typeCode='statusColor' />\n </Form.Item>\n <Form.Item label='序号' name='seq' rules={[{required: true}]}>\n <InputNumber/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n </Form>\n </Modal>\n </Page>\n\n\n }\n\n\n}\n",
2137
2117
  "__isJSFile": true,
2138
2118
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/dict/index.jsx"
2139
2119
  },
@@ -2143,7 +2123,7 @@
2143
2123
  "parentId": "@@/global-layout",
2144
2124
  "file": "system/file/index.jsx",
2145
2125
  "absPath": "/system/file",
2146
- "__content": "import {Button, Form, Input, Modal, Popconfirm} from 'antd'\nimport React from 'react'\nimport {ButtonList, FieldDateRange, FieldDictSelect, FieldUploadFile, HttpUtils, ProTable} from \"../../../framework\";\nimport {CloudUploadOutlined} from \"@ant-design/icons\";\n\nexport default class extends React.Component {\n\n state = {\n formOpen: false,\n formValues: {}\n }\n\n tableRef = React.createRef()\n formRef = React.createRef()\n\n handleDelete = row => {\n HttpUtils.post('admin/sysFile/delete', row).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '原始名称',\n tooltip: '上传时候的文件名',\n dataIndex: 'originName',\n width: 200,\n },\n {\n title: '存储名称',\n dataIndex: 'objectName',\n tooltip: '文件唯一标识id'\n },\n\n {\n title: '文件大小',\n dataIndex: 'sizeInfo',\n },\n\n {\n title: 'mime',\n dataIndex: 'mimeType',\n },\n {\n title: '扩展名',\n dataIndex: 'suffix',\n },\n\n {\n title: '上传时间',\n dataIndex: 'createTime',\n },\n {\n title: '上传者',\n dataIndex: 'createUserLabel',\n },\n {\n title: '预览',\n dataIndex: 'id',\n render(id, record) {\n const nodes = [<a href={'/admin/sysFile/preview/' + record.id} target='_blank'>预览</a>]\n\n\n if (record.imageUrls?.length > 0) {\n for (let item of record.imageUrls) {\n let url = item.url;\n let label = item.label;\n nodes.push(<a href={(url)} target='_blank' style={{marginLeft: 8}}>{label}</a>)\n }\n }\n\n return nodes;\n\n }\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => (\n <ButtonList>\n <Popconfirm perm='sysFile:delete' title='是否确定删除文件信息'\n onConfirm={() => this.handleDelete(record)}>\n <a>删除</a>\n </Popconfirm>\n </ButtonList>\n ),\n },\n ]\n\n render() {\n return <>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <Button type='primary' icon={<CloudUploadOutlined/>}\n onClick={() => this.setState({formOpen: true})}>\n 上传文件\n </Button>\n }}\n request={(params) => {\n return HttpUtils.get('admin/sysFile/page', params);\n }}\n\n columns={this.columns}\n\n >\n <Form.Item label='文件名' name='originName'>\n <Input/>\n </Form.Item>\n <Form.Item label='对象名称' name='objectName'>\n <Input/>\n </Form.Item>\n <Form.Item label='类型' name='type'>\n <FieldDictSelect typeCode='materialType'/>\n </Form.Item>\n\n <Form.Item label='上传时间' name='dateRange'>\n <FieldDateRange/>\n </Form.Item>\n </ProTable>\n\n <Modal open={this.state.formOpen} title='上传文件'\n width={800}\n onCancel={() => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n }}\n footer={null}\n destroyOnHidden\n >\n <Form ref={this.formRef}\n initialValues={this.state.formValues}\n >\n <Form.Item name='文件'>\n <FieldUploadFile accept=\"*/*\"/>\n </Form.Item>\n\n\n </Form>\n </Modal>\n\n </>\n }\n}\n\n\n\n",
2126
+ "__content": "import React from 'react'\nimport {Button, Form, Input, Modal, Popconfirm} from 'antd'\nimport {CloudUploadOutlined} from \"@ant-design/icons\";\n\nimport {ButtonList, FieldDateRange, FieldDictSelect, FieldUploadFile, HttpUtils, ProTable} from \"../../../framework\";\n\nexport default class extends React.Component {\n\n state = {\n formOpen: false,\n formValues: {}\n }\n\n tableRef = React.createRef()\n formRef = React.createRef()\n\n handleDelete = row => {\n HttpUtils.post('admin/sysFile/delete', row).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '原始名称',\n tooltip: '上传时候的文件名',\n dataIndex: 'originName',\n width: 200,\n },\n {\n title: '存储名称',\n dataIndex: 'objectName',\n tooltip: '文件唯一标识id'\n },\n\n {\n title: '文件大小',\n dataIndex: 'sizeInfo',\n },\n\n {\n title: 'mime',\n dataIndex: 'mimeType',\n },\n {\n title: '扩展名',\n dataIndex: 'suffix',\n },\n\n {\n title: '上传时间',\n dataIndex: 'createTime',\n },\n {\n title: '上传者',\n dataIndex: 'createUserLabel',\n },\n {\n title: '预览',\n dataIndex: 'id',\n render(id, record) {\n const nodes = [<a href={'/admin/sysFile/preview/' + record.id} target='_blank'>预览</a>]\n\n\n if (record.imageUrls?.length > 0) {\n for (let item of record.imageUrls) {\n const url = item.url;\n const label = item.label;\n nodes.push(<a href={(url)} target='_blank' style={{marginLeft: 8}}>{label}</a>)\n }\n }\n\n return nodes;\n\n }\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => (\n <ButtonList>\n <Popconfirm perm='sysFile:delete' title='是否确定删除文件信息'\n onConfirm={() => this.handleDelete(record)}>\n <a>删除</a>\n </Popconfirm>\n </ButtonList>\n ),\n },\n ]\n\n render() {\n return <>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <Button type='primary' icon={<CloudUploadOutlined/>}\n onClick={() => this.setState({formOpen: true})}>\n 上传文件\n </Button>\n }}\n request={(params) => {\n return HttpUtils.get('admin/sysFile/page', params);\n }}\n\n columns={this.columns}\n\n >\n <Form.Item label='文件名' name='originName'>\n <Input/>\n </Form.Item>\n <Form.Item label='对象名称' name='objectName'>\n <Input/>\n </Form.Item>\n <Form.Item label='类型' name='type'>\n <FieldDictSelect typeCode='materialType'/>\n </Form.Item>\n\n <Form.Item label='上传时间' name='dateRange'>\n <FieldDateRange/>\n </Form.Item>\n </ProTable>\n\n <Modal open={this.state.formOpen} title='上传文件'\n width={800}\n onCancel={() => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n }}\n footer={null}\n destroyOnClose\n >\n <Form ref={this.formRef}\n initialValues={this.state.formValues}\n >\n <Form.Item name='文件'>\n <FieldUploadFile accept=\"*/*\"/>\n </Form.Item>\n\n\n </Form>\n </Modal>\n\n </>\n }\n}\n\n\n\n",
2147
2127
  "__isJSFile": true,
2148
2128
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/file/index.jsx"
2149
2129
  },
@@ -2153,7 +2133,7 @@
2153
2133
  "parentId": "@@/global-layout",
2154
2134
  "file": "system/role/index.jsx",
2155
2135
  "absPath": "/system/role",
2156
- "__content": "import {PlusOutlined} from '@ant-design/icons'\nimport {Button, Form, Input, InputNumber, Modal, Popconfirm, Transfer, Tree} from 'antd'\nimport React from 'react'\nimport {ButtonList, FieldBoolean, HttpUtils, Page, PageUtils, ProTable, ViewText} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false,\n\n usersModalOpen: false,\n\n\n userList: [],\n targetKeys: [],\n selectedKeys: [],\n\n menuOpen: false,\n menuTree: [],\n menuTreeLoading: false,\n menuChecked: [],\n menuHalfChecked: []\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record}, () => {\n\n })\n }\n\n handleEditUser = record => {\n this.setState({usersModalOpen: true, formValues: record})\n HttpUtils.get('admin/sysRole/userList', {id: record.id}).then(rs => {\n this.setState({userList: rs.list, targetKeys: rs.selectedKeys})\n })\n }\n\n onFinish = values => {\n HttpUtils.post('admin/sysRole/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysRole/delete', {id: record.id}).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '编号',\n dataIndex: 'code',\n\n\n },\n\n {\n title: '排序',\n dataIndex: 'seq',\n\n\n },\n\n {\n title: '备注',\n dataIndex: 'remark',\n\n\n },\n\n {\n title: '启用',\n dataIndex: 'enabled',\n\n\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n\n\n },\n {\n title: '是否内置',\n dataIndex: 'builtin',\n\n\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n\n\n },\n\n {\n title: '权限码',\n dataIndex: 'perms',\n width: 300,\n render(v) {\n if (v) {\n return <ViewText value={v.join(',')} ellipsis={true} />\n }\n }\n\n },\n\n\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n\n return (\n <ButtonList>\n <Button size='small' perm='sysRole:manage'\n onClick={() => this.handleEditUser(record)}>用户设置</Button>\n\n <Button size='small' perm='sysRole:manage' disabled={record.builtin}\n onClick={() => PageUtils.open('/system/role/perm?id=' + record.id, '角色权限设置')}>权限设置</Button>\n\n <Button size='small' perm='sysRole:manage' disabled={record.builtin}\n onClick={() => this.handleEdit(record)}>编辑</Button>\n <Popconfirm perm='sysRole:manage' disabled={record.builtin} title='是否确定删除系统角色'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n );\n },\n },\n ]\n\n handleSaveUsers = () => {\n const params = {\n id: this.state.formValues.id,\n userIdList: this.state.targetKeys\n }\n HttpUtils.post('admin/sysRole/grantUsers', params).then(rs => {\n this.setState({usersModalOpen: false})\n })\n }\n\n handleEditMenu = (record) => {\n this.setState({menuOpen: true, formValues: record, menuTreeLoading: true})\n HttpUtils.get('admin/sysRole/ownMenu', {id: record.id}).then(rs => {\n this.setState({menuChecked: rs.checked, menuHalfChecked: rs.halfChecked})\n })\n HttpUtils.get('admin/sysRole/menuTree').then(rs => {\n this.setState({menuTree: rs, menuTreeLoading: false})\n })\n }\n handleGrantMenu = () => {\n const params = {\n id: this.state.formValues.id,\n menuIds: [...this.state.menuChecked, ...this.state.menuHalfChecked]\n }\n HttpUtils.post('admin/sysRole/grantMenu', params).then(rs => {\n this.setState({menuOpen: false})\n })\n }\n\n render() {\n return <Page padding>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button perm='sysRole:manage' type='primary' onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/sysRole/page', params)}\n columns={this.columns}\n\n />\n\n <Modal title='系统角色'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnHidden\n maskClosable={false}\n width={600}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}\n >\n <Form.Item name='id' noStyle></Form.Item>\n\n\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='编码' name='code' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='排序' name='seq'>\n <InputNumber/>\n </Form.Item>\n\n\n <Form.Item label='备注' name='remark'>\n <Input/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n\n </Form>\n </Modal>\n\n\n <Modal title={'角色用户' + \"【\" + this.state.formValues?.name + '】'}\n open={this.state.usersModalOpen}\n destroyOnHidden\n maskClosable={false}\n width={800}\n onCancel={() => this.setState({usersModalOpen: false})}\n onOk={this.handleSaveUsers}\n >\n\n\n <Transfer\n listStyle={{height: '60vh', width: 300}}\n\n dataSource={this.state.userList} titles={[\"未选择\", \"已选择\"]}\n targetKeys={this.state.targetKeys}\n selectedKeys={this.state.selectedKeys}\n render={item => item.title}\n onChange={(nextTargetKeys, direction, moveKeys) => {\n this.setState({\n targetKeys: nextTargetKeys\n })\n }}\n onSelectChange={(sourceSelectedKeys, targetSelectedKeys) => {\n this.setState({\n selectedKeys: [...sourceSelectedKeys, ...targetSelectedKeys]\n })\n }}\n showSearch\n />\n\n\n </Modal>\n\n <Modal title={'角色授权菜单权限' + \"【\" + this.state.formValues?.name + '】'}\n open={this.state.menuOpen}\n destroyOnHidden\n maskClosable={false}\n width={800}\n onCancel={() => this.setState({menuOpen: false})}\n onOk={this.handleGrantMenu}\n loading={this.state.menuTreeLoading}\n >\n <Tree\n height={600}\n treeData={this.state.menuTree}\n multiple\n checkable\n checkedKeys={{checked: this.state.menuChecked}}\n onCheck={(keys, e) => {\n this.setState({menuChecked: keys, menuHalfChecked: e.halfCheckedKeys})\n }}\n defaultExpandAll\n titleRender={node => {\n return <span title={node.perm}>{node.title}</span>\n }}\n />\n </Modal>\n </Page>\n\n\n }\n}\n\n",
2136
+ "__content": "import {PlusOutlined} from '@ant-design/icons'\nimport {Button, Form, Input, InputNumber, Modal, Popconfirm, Transfer, Tree} from 'antd'\nimport React from 'react'\nimport {ButtonList, FieldBoolean, HttpUtils, Page, PageUtils, ProTable, ViewText} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false,\n\n usersModalOpen: false,\n\n\n userList: [],\n targetKeys: [],\n selectedKeys: [],\n\n menuOpen: false,\n menuTree: [],\n menuTreeLoading: false,\n menuChecked: [],\n menuHalfChecked: []\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record}, () => {\n\n })\n }\n\n handleEditUser = record => {\n this.setState({usersModalOpen: true, formValues: record})\n HttpUtils.get('admin/sysRole/user-list', {id: record.id}).then(rs => {\n this.setState({userList: rs.list, targetKeys: rs.selectedKeys})\n })\n }\n\n onFinish = values => {\n HttpUtils.post('admin/sysRole/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysRole/delete', {id: record.id}).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '编号',\n dataIndex: 'code',\n\n\n },\n\n {\n title: '排序',\n dataIndex: 'seq',\n\n\n },\n\n {\n title: '备注',\n dataIndex: 'remark',\n\n\n },\n\n {\n title: '启用',\n dataIndex: 'enabled',\n\n\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n\n\n },\n {\n title: '是否内置',\n dataIndex: 'builtin',\n\n\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n\n\n },\n\n {\n title: '权限码',\n dataIndex: 'perms',\n width: 300,\n render(v) {\n if (v) {\n return <ViewText value={v.join(',')} ellipsis={true} />\n }\n }\n\n },\n\n\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n\n return (\n <ButtonList>\n <Button size='small' perm='sysRole:manage'\n onClick={() => this.handleEditUser(record)}>用户设置</Button>\n\n <Button size='small' perm='sysRole:manage' disabled={record.builtin}\n onClick={() => PageUtils.open('/system/role/perm?id=' + record.id, '角色权限设置')}>权限设置</Button>\n\n <Button size='small' perm='sysRole:manage' disabled={record.builtin}\n onClick={() => this.handleEdit(record)}>编辑</Button>\n <Popconfirm perm='sysRole:manage' disabled={record.builtin} title='是否确定删除系统角色'\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>\n );\n },\n },\n ]\n\n handleSaveUsers = () => {\n const params = {\n id: this.state.formValues.id,\n userIdList: this.state.targetKeys\n }\n HttpUtils.post('admin/sysRole/grant-users', params).then(rs => {\n this.setState({usersModalOpen: false})\n })\n }\n\n handleEditMenu = (record) => {\n this.setState({menuOpen: true, formValues: record, menuTreeLoading: true})\n HttpUtils.get('admin/sysRole/ownMenu', {id: record.id}).then(rs => {\n this.setState({menuChecked: rs.checked, menuHalfChecked: rs.halfChecked})\n })\n HttpUtils.get('admin/sysRole/menuTree').then(rs => {\n this.setState({menuTree: rs, menuTreeLoading: false})\n })\n }\n handleGrantMenu = () => {\n const params = {\n id: this.state.formValues.id,\n menuIds: [...this.state.menuChecked, ...this.state.menuHalfChecked]\n }\n HttpUtils.post('admin/sysRole/grantMenu', params).then(rs => {\n this.setState({menuOpen: false})\n })\n }\n\n render() {\n return <Page padding>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button perm='sysRole:manage' type='primary' onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/sysRole/page', params)}\n columns={this.columns}\n\n />\n\n <Modal title='系统角色'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnClose\n maskClosable={false}\n width={600}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}\n >\n <Form.Item name='id' noStyle></Form.Item>\n\n\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='编码' name='code' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='排序' name='seq'>\n <InputNumber/>\n </Form.Item>\n\n\n <Form.Item label='备注' name='remark'>\n <Input/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n\n </Form>\n </Modal>\n\n\n <Modal title={'角色用户' + \"【\" + this.state.formValues?.name + '】'}\n open={this.state.usersModalOpen}\n destroyOnClose\n maskClosable={false}\n width={800}\n onCancel={() => this.setState({usersModalOpen: false})}\n onOk={this.handleSaveUsers}\n >\n\n\n <Transfer\n listStyle={{height: '60vh', width: 300}}\n\n dataSource={this.state.userList} titles={[\"未选择\", \"已选择\"]}\n targetKeys={this.state.targetKeys}\n selectedKeys={this.state.selectedKeys}\n render={item => item.title}\n onChange={(nextTargetKeys, direction, moveKeys) => {\n this.setState({\n targetKeys: nextTargetKeys\n })\n }}\n onSelectChange={(sourceSelectedKeys, targetSelectedKeys) => {\n this.setState({\n selectedKeys: [...sourceSelectedKeys, ...targetSelectedKeys]\n })\n }}\n showSearch\n />\n\n\n </Modal>\n\n <Modal title={'角色授权菜单权限' + \"【\" + this.state.formValues?.name + '】'}\n open={this.state.menuOpen}\n destroyOnClose\n maskClosable={false}\n width={800}\n onCancel={() => this.setState({menuOpen: false})}\n onOk={this.handleGrantMenu}\n loading={this.state.menuTreeLoading}\n >\n <Tree\n height={600}\n treeData={this.state.menuTree}\n multiple\n checkable\n checkedKeys={{checked: this.state.menuChecked}}\n onCheck={(keys, e) => {\n this.setState({menuChecked: keys, menuHalfChecked: e.halfCheckedKeys})\n }}\n defaultExpandAll\n titleRender={node => {\n return <span title={node.perm}>{node.title}</span>\n }}\n />\n </Modal>\n </Page>\n\n\n }\n}\n\n",
2157
2137
  "__isJSFile": true,
2158
2138
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/role/index.jsx"
2159
2139
  },
@@ -2163,7 +2143,7 @@
2163
2143
  "parentId": "@@/global-layout",
2164
2144
  "file": "system/user/index.jsx",
2165
2145
  "absPath": "/system/user",
2166
- "__content": "import {PlusOutlined} from '@ant-design/icons';\nimport {Button, Form, Input, Modal, Popconfirm, Splitter, Tabs} from 'antd';\nimport React from 'react';\nimport {\n ButtonList,\n DictUtils,\n FieldBoolean,\n FieldSysOrgTreeSelect,\n HttpUtils,\n OrgTree,\n Page,\n ProTable,\n RoleTree\n} from \"../../../framework\";\nimport UserPerm from \"./UserPerm\";\n\nexport default class extends React.Component {\n\n state = {\n showAddForm: false,\n showEditForm: false,\n formValues: {},\n\n currentOrgId: null,\n currentRoleId: null,\n }\n permRef = React.createRef();\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n resetPwd(row) {\n HttpUtils.post('admin/sysUser/resetPwd', {id: row.id}).then(rs => {\n Modal.success({\n title: '重置密码成功',\n content: rs\n })\n })\n }\n\n handleDelete = r => {\n HttpUtils.post('admin/sysUser/delete', {id: r.id}).then(rs => {\n this.tableRef.current.reload();\n })\n }\n\n onSelectOrg = (key) => {\n this.setState({currentOrgId: key}, () => this.tableRef.current.reload())\n }\n\n onSelectRole = (key) => {\n this.setState({currentRoleId: key}, () => this.tableRef.current.reload())\n }\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n record.deptId = record.deptId || record.unitId\n this.setState({formOpen: true, formValues: record})\n }\n\n columns = [\n {\n title: '单位',\n dataIndex: 'unitLabel',\n },\n {\n title: '部门',\n dataIndex: 'deptLabel',\n },\n {\n title: '姓名',\n dataIndex: 'name',\n sorter: true\n },\n {\n title: '登录账号',\n dataIndex: 'account',\n sorter: true\n },\n\n\n {\n title: '手机',\n dataIndex: 'phone'\n },\n {\n title: '邮箱',\n dataIndex: 'email'\n },\n\n {\n title: '角色',\n dataIndex: 'roleIds',\n render: (_, row) => {\n if (row.roleNames) {\n return row.roleNames.join(',')\n }\n },\n },\n {\n title: '状态',\n dataIndex: 'enabled',\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n },\n {\n title: '数据权限',\n dataIndex: 'dataPermType',\n render(v) {\n return DictUtils.dictTag('dataPermType', v)\n }\n },\n\n {\n title: '创建时间',\n dataIndex: 'createTime',\n },\n {\n title: '操作',\n dataIndex: 'option',\n fixed: 'right',\n render: (_, record) => {\n return <ButtonList>\n <Button size='small' perm='sysUser:save' onClick={() => this.handleEdit(record)}> 编辑 </Button>\n\n <Button size='small' perm='sysUser:grantPerm'\n onClick={() => this.permRef.current.show(record)}> 授权 </Button>\n\n <Popconfirm perm='sysUser:resetPwd' title='确认重置密码?' onConfirm={() => this.resetPwd(record)}>\n <Button size='small'>重置密码</Button>\n </Popconfirm>\n\n <Popconfirm perm='sysUser:delete' title={'是否确定删除用户'}\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>;\n },\n },\n ];\n\n onFinish = values => {\n HttpUtils.post('admin/sysUser/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n render() {\n\n return <Page>\n <Splitter>\n <Splitter.Panel defaultSize={400}>\n <Tabs\n type='card'\n size='small'\n items={[\n {\n key: 'org',\n label: '按组织机构',\n children: <OrgTree onChange={this.onSelectOrg}/>\n },\n {\n key: 'role',\n label: '按角色',\n children: <RoleTree onSelect={this.onSelectRole}/>\n }\n ]}/>\n\n </Splitter.Panel>\n <Splitter.Panel style={{paddingLeft: 16}}>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button\n perm='sysUser:save'\n type=\"primary\"\n onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n\n\n </ButtonList>\n }}\n showToolbarSearch\n request={(params) => {\n params.orgId = this.state.currentOrgId\n params.roleId = this.state.currentRoleId\n return HttpUtils.get('admin/sysUser/page', params)\n }\n }\n columns={this.columns}\n >\n\n </ProTable>\n </Splitter.Panel>\n </Splitter>\n\n\n <Modal title='系统用户'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnHidden\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle></Form.Item>\n\n <Form.Item label='所属机构' name='deptId' rules={[{required: true}]}>\n <FieldSysOrgTreeSelect/>\n </Form.Item>\n\n <Form.Item label='姓名' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n <Form.Item label='账号' name='account' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='电话' name='phone'>\n <Input/>\n </Form.Item>\n <Form.Item label='邮箱' name='email'>\n <Input/>\n </Form.Item>\n\n <Form.Item label='启用状态' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n </Form>\n </Modal>\n\n\n <UserPerm ref={this.permRef} onOk={() => this.tableRef.current.reload()}/>\n\n </Page>\n }\n\n\n}\n\n\n\n",
2146
+ "__content": "import {PlusOutlined} from '@ant-design/icons';\nimport {Button, Form, Input, Modal, Popconfirm, Splitter, Tabs} from 'antd';\nimport React from 'react';\nimport {\n ButtonList,\n DictUtils,\n FieldBoolean,\n FieldSysOrgTreeSelect,\n HttpUtils,\n OrgTree,\n Page,\n ProTable,\n RoleTree\n} from \"../../../framework\";\nimport UserPerm from \"./UserPerm\";\n\nexport default class extends React.Component {\n\n state = {\n showAddForm: false,\n showEditForm: false,\n formValues: {},\n\n currentOrgId: null,\n currentRoleId: null,\n }\n permRef = React.createRef();\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n resetPwd(row) {\n HttpUtils.post('admin/sysUser/reset-pwd', {id: row.id}).then(rs => {\n Modal.success({\n title: '重置密码成功',\n content: rs\n })\n })\n }\n\n handleDelete = r => {\n HttpUtils.post('admin/sysUser/delete', {id: r.id}).then(rs => {\n this.tableRef.current.reload();\n })\n }\n\n onSelectOrg = (key) => {\n this.setState({currentOrgId: key}, () => this.tableRef.current.reload())\n }\n\n onSelectRole = (key) => {\n this.setState({currentRoleId: key}, () => this.tableRef.current.reload())\n }\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n record.deptId = record.deptId || record.unitId\n this.setState({formOpen: true, formValues: record})\n }\n\n columns = [\n {\n title: '单位',\n dataIndex: 'unitLabel',\n },\n {\n title: '部门',\n dataIndex: 'deptLabel',\n },\n {\n title: '姓名',\n dataIndex: 'name',\n sorter: true\n },\n {\n title: '登录账号',\n dataIndex: 'account',\n sorter: true\n },\n\n\n {\n title: '手机',\n dataIndex: 'phone'\n },\n {\n title: '邮箱',\n dataIndex: 'email'\n },\n\n {\n title: '角色',\n dataIndex: 'roleIds',\n render: (_, row) => {\n if (row.roleNames) {\n return row.roleNames.join(',')\n }\n },\n },\n {\n title: '状态',\n dataIndex: 'enabled',\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n },\n {\n title: '数据权限',\n dataIndex: 'dataPermType',\n render(v) {\n return DictUtils.dictTag('dataPermType', v)\n }\n },\n\n {\n title: '创建时间',\n dataIndex: 'createTime',\n },\n {\n title: '操作',\n dataIndex: 'option',\n fixed: 'right',\n render: (_, record) => {\n return <ButtonList>\n <Button size='small' perm='sysUser:save' onClick={() => this.handleEdit(record)}> 编辑 </Button>\n\n <Button size='small' perm='sysUser:grantPerm'\n onClick={() => this.permRef.current.show(record)}> 授权 </Button>\n\n <Popconfirm perm='sysUser:resetPwd' title='确认重置密码?' onConfirm={() => this.resetPwd(record)}>\n <Button size='small'>重置密码</Button>\n </Popconfirm>\n\n <Popconfirm perm='sysUser:delete' title={'是否确定删除用户'}\n onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </ButtonList>;\n },\n },\n ];\n\n onFinish = values => {\n HttpUtils.post('admin/sysUser/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n render() {\n\n return <Page>\n <Splitter>\n <Splitter.Panel defaultSize={400}>\n <Tabs\n type='card'\n size='small'\n items={[\n {\n key: 'org',\n label: '按组织机构',\n children: <OrgTree onChange={this.onSelectOrg}/>\n },\n {\n key: 'role',\n label: '按角色',\n children: <RoleTree onSelect={this.onSelectRole}/>\n }\n ]}/>\n\n </Splitter.Panel>\n <Splitter.Panel style={{paddingLeft: 16}}>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button\n perm='sysUser:save'\n type=\"primary\"\n onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n\n\n </ButtonList>\n }}\n showToolbarSearch\n request={(params) => {\n params.orgId = this.state.currentOrgId\n params.roleId = this.state.currentRoleId\n return HttpUtils.get('admin/sysUser/page', params)\n }\n }\n columns={this.columns}\n >\n\n </ProTable>\n </Splitter.Panel>\n </Splitter>\n\n\n <Modal title='系统用户'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnClose\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle></Form.Item>\n\n <Form.Item label='所属机构' name='deptId' rules={[{required: true}]}>\n <FieldSysOrgTreeSelect/>\n </Form.Item>\n\n <Form.Item label='姓名' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n <Form.Item label='账号' name='account' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='电话' name='phone'>\n <Input/>\n </Form.Item>\n <Form.Item label='邮箱' name='email'>\n <Input/>\n </Form.Item>\n\n <Form.Item label='启用状态' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n </Form>\n </Modal>\n\n\n <UserPerm ref={this.permRef} onOk={() => this.tableRef.current.reload()}/>\n\n </Page>\n }\n\n\n}\n\n\n\n",
2167
2147
  "__isJSFile": true,
2168
2148
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/user/index.jsx"
2169
2149
  },
@@ -2173,27 +2153,17 @@
2173
2153
  "parentId": "@@/global-layout",
2174
2154
  "file": "userCenter/manual.jsx",
2175
2155
  "absPath": "/userCenter/manual",
2176
- "__content": "import React from 'react'\nimport {HttpUtils, Page, ProTable} from \"../../framework\";\n\n\nexport default class extends React.Component {\n\n\n tableRef = React.createRef()\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '版本',\n dataIndex: 'version',\n render(version) {\n return 'v' + version;\n }\n },\n\n {\n title: '文件',\n dataIndex: 'fileId',\n render(id) {\n const url = ('admin/sysFile/preview/' + id);\n return <a href={url} target='_blank'>查看文件</a>\n }\n\n },\n\n {\n title: '更新时间',\n dataIndex: 'updateTime',\n },\n ]\n\n\n render() {\n return <Page>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get('admin/sysManual/pageForUser', params)}\n columns={this.columns}\n />\n </Page>\n\n\n }\n}\n\n\n",
2156
+ "__content": "import React from 'react'\nimport {HttpUtils, Page, ProTable} from \"../../framework\";\n\n\nexport default class extends React.Component {\n\n\n tableRef = React.createRef()\n\n columns = [\n\n {\n title: '名称',\n dataIndex: 'name',\n\n\n },\n\n {\n title: '版本',\n dataIndex: 'version',\n render(version) {\n return 'v' + version;\n }\n },\n\n {\n title: '文件',\n dataIndex: 'fileId',\n render(id) {\n const url = ('admin/sysFile/preview/' + id);\n return <a href={url} target='_blank'>查看文件</a>\n }\n\n },\n\n {\n title: '更新时间',\n dataIndex: 'updateTime',\n },\n ]\n\n\n render() {\n return <Page>\n <ProTable\n actionRef={this.tableRef}\n request={(params) => HttpUtils.get('admin/sysManual/page-for-user', params)}\n columns={this.columns}\n />\n </Page>\n\n\n }\n}\n\n\n",
2177
2157
  "__isJSFile": true,
2178
2158
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/userCenter/manual.jsx"
2179
2159
  },
2180
- "system/api/index": {
2181
- "path": "system/api",
2182
- "id": "system/api/index",
2183
- "parentId": "@@/global-layout",
2184
- "file": "system/api/index.jsx",
2185
- "absPath": "/system/api",
2186
- "__content": "import {PlusOutlined} from '@ant-design/icons'\nimport {Button, Form, Input, message, Modal, Popconfirm, Switch, Table, Tabs} from 'antd'\nimport React from 'react'\nimport {\n ArrUtils,\n ButtonList,\n FieldBoolean,\n FieldDate,\n HttpUtils, ObjectUtils,\n Page,\n ProTable,\n StringUtils,\n ViewPassword\n} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false,\n\n list: [],\n grantFormOpen: false\n }\n\n formRef = React.createRef()\n tableRef = React.createRef()\n\n componentDidMount() {\n HttpUtils.get(\"/admin/apiAccount/permList\").then(rs => {\n this.setState({list: rs})\n })\n }\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}})\n }\n\n handleEdit = record => {\n this.setState({formOpen: true, formValues: record})\n }\n\n onFinish = values => {\n HttpUtils.post('admin/apiAccount/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload()\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/apiAccount/delete', {id: record.id}).then(rs => {\n this.tableRef.current.reload()\n })\n }\n\n columns = [\n {\n title: '账户名称',\n dataIndex: 'name',\n },\n {\n title: 'appSecret',\n dataIndex: 'appSecret',\n render(v) {\n return <ViewPassword value={v}></ViewPassword>;\n }\n },\n {\n title: '准入IP',\n dataIndex: 'accessIp',\n },\n {\n title: '有效期',\n dataIndex: 'endTime',\n },\n {\n title: '启用',\n dataIndex: 'enable',\n render(v) {\n return v == null ? null : (v ? '是' : '否')\n },\n },\n {\n title: '权限',\n dataIndex: 'perms',\n render(perms) {\n if (!perms) {\n return\n }\n return perms.join(', ')\n }\n },\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => (\n <ButtonList>\n <Button size='small' perm='api'\n onClick={() => {\n this.handlePreGrant(record);\n }}\n type='primary'>授权</Button>\n <Button size='small' perm='api' onClick={() => this.handleEdit(record)}>编辑</Button>\n <Popconfirm perm='api' title='是否确定删除接口访客' onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n <Button size='small' perm='api' href={'/admin/apiAccount/export/' + record.id} target={'_blank'}>下载文档</Button>\n </ButtonList>\n ),\n },\n ]\n\n handlePreGrant(record) {\n this.setState({grantFormOpen: true, formValues: ObjectUtils.clone(record)})\n }\n\n randomAppSecret = () => {\n const appSecret = StringUtils.random(32)\n this.formRef.current.setFieldsValue({appSecret})\n }\n\n onGrantItemChange = (id, checked) => {\n const perms = this.state.formValues.perms\n if (checked) {\n ArrUtils.add(perms, id)\n } else {\n ArrUtils.remove(perms, id)\n }\n this.setState({formValues: this.state.formValues})\n }\n\n onGrant = () => {\n const hide = message.loading('授权中...', 0)\n let accountId = this.state.formValues.id;\n HttpUtils.post('admin/apiAccount/grant/'+accountId, this.state.formValues.perms).then(rs => {\n this.setState({grantFormOpen: false})\n this.tableRef.current.reload()\n }).finally(hide)\n };\n\n\n render() {\n return <Page padding>\n <Tabs items={[\n {\n label: '接口文档',\n key: 'doc',\n children: <iframe src={'/admin/swagger-ui/index.html'} width=\"100%\" height=\"1000px\"></iframe>\n },\n {\n label: '账号管理',\n key: '1',\n children: <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button perm='api' type='primary' onClick={this.handleAdd}>\n <PlusOutlined/> 新增\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/apiAccount/page', params)}\n columns={this.columns}\n />\n },\n {\n label: '访问记录',\n key: 'log',\n children: <ProTable\n request={(params) => HttpUtils.get('admin/apiLog/page', params)}\n columns={[\n {\n title: '接口',\n dataIndex: 'url',\n },\n {\n title: 'ip',\n dataIndex: 'ip',\n },\n {\n title: 'ipLocation',\n dataIndex: 'ipLocation',\n },\n {\n title: '执行时间',\n dataIndex: 'executionTime',\n },\n {\n title: '接口账户',\n dataIndex: 'accountName',\n }\n ]}\n />\n },\n\n ]}>\n\n </Tabs>\n\n\n <Modal title='接口访客'\n open={this.state.formOpen}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n destroyOnHidden\n mask={{closable:false}}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onFinish={this.onFinish}\n\n >\n <Form.Item name='id' noStyle></Form.Item>\n\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='appId' name='appId'>\n <Input placeholder='多个用逗号分隔'/>\n </Form.Item>\n <Form.Item label='appSecret' name='appSecret' rules={[{required: true}, {len: 32}]}\n help={<Button size='small' type='link' onClick={this.randomAppSecret}>随机生成</Button>}\n >\n <Input/>\n </Form.Item>\n\n <Form.Item label='准入IP' name='accessIp'>\n <Input placeholder='多个用逗号分隔'/>\n </Form.Item>\n <Form.Item label='有效期' name='endTime' style={{marginTop: 32}}>\n <FieldDate type='YYYY-MM-DD'/>\n </Form.Item>\n <Form.Item label='启用' name='enable' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n\n </Form>\n </Modal>\n\n\n <Modal title='权限列表' destroyOnHidden={true} width={800}\n open={this.state.grantFormOpen}\n onCancel={() => this.setState({grantFormOpen: false, formValues: null})}\n onOk={this.onGrant}\n >\n <Table\n dataSource={this.state.list}\n pagination={false}\n rowKey='id'\n size={'small'}\n columns={[\n {dataIndex: 'id', title: '标识'},\n {dataIndex: 'name', title: '名称'},\n {dataIndex: 'description', title: '描述'},\n {dataIndex: 'path', title: '路径'},\n {\n dataIndex: 'option', title: '操作',\n render: (_, record) => {\n let id = record.id;\n return <Switch checked={this.state.formValues.perms.includes(id)}\n onChange={(checked) => {\n this.onGrantItemChange(id, checked)\n }} />\n }\n }\n ]}\n\n />\n </Modal>\n </Page>\n\n\n }\n}\n\n",
2187
- "__isJSFile": true,
2188
- "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/api/index.jsx"
2189
- },
2190
2160
  "system/job/index": {
2191
2161
  "path": "system/job",
2192
2162
  "id": "system/job/index",
2193
2163
  "parentId": "@@/global-layout",
2194
2164
  "file": "system/job/index.jsx",
2195
2165
  "absPath": "/system/job",
2196
- "__content": "import {\n Alert,\n AutoComplete,\n Button,\n Divider,\n Form,\n Input,\n message,\n Modal,\n Popconfirm,\n Select,\n Space,\n Switch,\n Tag\n} from 'antd'\nimport React from 'react'\nimport {PlusOutlined} from \"@ant-design/icons\";\nimport {ButtonList, HttpUtils, Page, ProTable, StringUtils, ValueType} from \"../../../framework\";\n\n\nconst cronOptions = [\n {\n label: '*/5 * * * * ? 每隔5秒',\n value: '*/5 * * * * ?'\n },\n {\n label: '0 */5 * * * ? 每隔5分钟',\n value: '0 */5 * * * ?'\n },\n {\n label: '0 0 22 * * ? 每天22点',\n value: '0 0 22 * * ?'\n },\n {\n label: '0 0 1 * * ? 每天1点',\n value: '0 0 1 * * ?'\n },\n {\n label: '0 0 1 1 * ? 每月1号凌晨1点',\n value: '0 0 1 1 * ?'\n }\n]\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false,\n\n selectedRowKeys: [],\n\n jobClassOptions: [],\n\n paramList: [],\n\n statusOpen: false,\n status: null,\n\n executeRecordOpen: false,\n }\n tableRef = React.createRef()\n formRef = React.createRef()\n\n componentDidMount() {\n HttpUtils.get('admin/job/jobClassOptions').then(rs => {\n this.setState({jobClassOptions: rs})\n })\n }\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}, paramList: []})\n }\n\n handleEdit = (record) => {\n this.loadJobParamFields(record.jobClass, record.jobData)\n this.setState({formOpen: true, formValues: record,})\n }\n\n loadJobParamFields(className, jobData) {\n HttpUtils.post(\"admin/job/getJobParamFields\", jobData || {}, {className}).then(rs => {\n this.setState({paramList: rs})\n })\n }\n\n onFinish = (values) => {\n HttpUtils.post('admin/job/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload();\n })\n }\n\n handleDelete = row => {\n const hide = message.loading(\"删除作业中...\")\n HttpUtils.post('admin/job/delete', {id: row.id}).then(rs => {\n this.tableRef.current.reload();\n }).catch(hide)\n }\n\n handleTriggerJob = row => {\n HttpUtils.get('admin/job/triggerJob', {id: row.id}).then(rs => {\n this.tableRef.current.reload();\n })\n }\n\n columns = [\n {\n title: '名称',\n dataIndex: 'name',\n\n },\n {\n title: '执行类',\n dataIndex: 'jobClass',\n\n },\n\n {\n title: 'cron',\n dataIndex: 'cron',\n },\n\n\n {\n title: '参数',\n dataIndex: 'jobData',\n render(list) {\n if (list)\n return JSON.stringify(list)\n }\n },\n\n\n {\n title: '启用状态',\n dataIndex: 'enabled',\n render: (v, record) => {\n return record.enabled ? <Tag color='green'>启用</Tag> : <Tag color='red'>停用</Tag>\n },\n },\n\n {\n title: '操作',\n dataIndex: 'option',\n fixed: 'right',\n render: (_, record) => {\n\n return (\n <Space>\n <Button size='small' onClick={() => this.showExecuteRecord(record)}>执行记录</Button>\n <Button size='small' onClick={() => this.handleTriggerJob(record)}>执行一次</Button>\n <Button size='small' onClick={() => this.handleEdit(record)}> 编辑 </Button>\n <Popconfirm title='是否确定删除?' onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </Space>\n );\n },\n },\n\n ]\n\n showStatus = () => {\n this.setState({statusOpen: true})\n HttpUtils.get('admin/job/status').then(rs => {\n this.setState({status: rs})\n })\n };\n\n showExecuteRecord(record) {\n this.setState({executeRecordOpen: true, formValues: record})\n }\n\n\n render() {\n return <Page padding>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button type='primary' onClick={() => this.handleAdd()} icon={<PlusOutlined/>}>\n 新增\n </Button>\n <Button onClick={this.showStatus}>\n 查看状态\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/job/page', params)}\n columns={this.columns}\n showToolbarSearch\n />\n\n\n <Modal title='作业调度'\n open={this.state.formOpen}\n destroyOnHidden\n width={800}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onValuesChange={this.onValuesChange}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle>\n </Form.Item>\n <Form.Item label='执行类' name='jobClass' rules={[{required: true}]}\n tooltip='org.quartz.Job接口,参考io.tmgg.job.builtin.DemoJob'>\n <Select options={this.state.jobClassOptions}/>\n </Form.Item>\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='cron表达式' name='cron' help='格式:秒分时日月周,留空表示手动执行'\n rules={[{required: true}]}>\n <AutoComplete placeholder='如 0 */5 * * * ?' options={cronOptions}/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' valuePropName='checked' rules={[{required: true}]}>\n <Switch/>\n </Form.Item>\n\n\n {this.state.paramList?.map(p => (\n <div key={p.name}>\n <Divider>作业参数</Divider>\n <Form.Item label={p.label}\n name={['jobData', p.name]}\n key={p.name}\n rules={[{required: p.required}]}>\n {ValueType.renderField(p.componentType, p.componentProps)}\n </Form.Item>\n </div>\n ))}\n </Form>\n </Modal>\n\n <Modal title='作业调度状态'\n open={this.state.statusOpen}\n onCancel={() => this.setState({statusOpen: false})}\n footer={null}\n width={1024}\n >\n <Alert message={<pre>{this.state.status}</pre>}></Alert>\n\n </Modal>\n\n <Modal title='作业调度记录'\n open={this.state.executeRecordOpen}\n onCancel={() => this.setState({executeRecordOpen: false})}\n footer={null}\n width={1024}\n destroyOnHidden\n >\n <ProTable columns={[{\n title: '开始时间',\n dataIndex: 'beginTime',\n },\n {\n title: '结束时间',\n dataIndex: 'endTime',\n },\n {\n title: '耗时',\n dataIndex: 'jobRunTimeLabel',\n\n },\n {\n title: '是否成功',\n dataIndex: 'success',\n width: 200,\n render: v => {\n if (v != null) {\n return v ? '成功' : '异常'\n }\n }\n },\n {\n title: '返回结果',\n dataIndex: 'result',\n width: 300\n },\n\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n let url = '/admin/sys/log/' + record.id;\n return <a href={url} target='_blank'>日志</a>;\n },\n }\n ]} request={params => {\n params.jobId = this.state.formValues.id\n return HttpUtils.get('admin/job/executeRecord', params);\n }}></ProTable>\n\n </Modal>\n </Page>\n }\n\n onValuesChange = (changed, values) => {\n if (changed.jobClass) {\n this.loadJobParamFields(values.jobClass)\n const option = this.state.jobClassOptions.find(o => o.value === changed.jobClass)\n if (option) {\n let {label} = option;\n if (StringUtils.contains(label, \" \")) { // 取中文名部门设置为name\n this.formRef.current.setFieldValue(\"name\", label.split(\" \")[1])\n }\n }\n }\n\n if (changed.jobData) {\n this.loadJobParamFields(values.jobClass, values.jobData)\n }\n\n };\n}\n\n\n\n",
2166
+ "__content": "import React from 'react'\nimport {\n Alert,\n AutoComplete,\n Button,\n Divider,\n Form,\n Input,\n message,\n Modal,\n Popconfirm,\n Select,\n Space,\n Switch,\n Tag\n} from 'antd'\nimport {PlusOutlined} from \"@ant-design/icons\";\n\nimport {ButtonList, HttpUtils, Page, ProTable, StringUtils, ValueType} from \"../../../framework\";\n\n\nconst cronOptions = [\n {\n label: '*/5 * * * * ? 每隔5秒',\n value: '*/5 * * * * ?'\n },\n {\n label: '0 */5 * * * ? 每隔5分钟',\n value: '0 */5 * * * ?'\n },\n {\n label: '0 0 22 * * ? 每天22点',\n value: '0 0 22 * * ?'\n },\n {\n label: '0 0 1 * * ? 每天1点',\n value: '0 0 1 * * ?'\n },\n {\n label: '0 0 1 1 * ? 每月1号凌晨1点',\n value: '0 0 1 1 * ?'\n }\n]\n\n\nexport default class extends React.Component {\n\n state = {\n formValues: {},\n formOpen: false,\n\n selectedRowKeys: [],\n\n jobClassOptions: [],\n\n paramList: [],\n\n statusOpen: false,\n status: null,\n\n executeRecordOpen: false,\n }\n tableRef = React.createRef()\n formRef = React.createRef()\n\n componentDidMount() {\n HttpUtils.get('admin/job/job-class-options').then(rs => {\n this.setState({jobClassOptions: rs})\n })\n }\n\n handleAdd = () => {\n this.setState({formOpen: true, formValues: {}, paramList: []})\n }\n\n handleEdit = (record) => {\n this.loadJobParamFields(record.jobClass, record.jobData)\n this.setState({formOpen: true, formValues: record,})\n }\n\n loadJobParamFields(className, jobData) {\n HttpUtils.post(\"admin/job/get-job-param-fields\", jobData || {}, {className}).then(rs => {\n this.setState({paramList: rs})\n })\n }\n\n onFinish = (values) => {\n HttpUtils.post('admin/job/save', values).then(rs => {\n this.setState({formOpen: false})\n this.tableRef.current.reload();\n })\n }\n\n handleDelete = row => {\n const hide = message.loading(\"删除作业中...\")\n HttpUtils.post('admin/job/delete', {id: row.id}).then(rs => {\n this.tableRef.current.reload();\n }).catch(hide)\n }\n\n handleTriggerJob = row => {\n HttpUtils.get('admin/job/trigger-job', {id: row.id}).then(rs => {\n this.tableRef.current.reload();\n })\n }\n\n columns = [\n {\n title: '名称',\n dataIndex: 'name',\n\n },\n {\n title: '执行类',\n dataIndex: 'jobClass',\n\n },\n\n {\n title: 'cron',\n dataIndex: 'cron',\n },\n\n\n {\n title: '参数',\n dataIndex: 'jobData',\n render(list) {\n if (list)\n return JSON.stringify(list)\n }\n },\n\n\n {\n title: '启用状态',\n dataIndex: 'enabled',\n render: (v, record) => {\n return record.enabled ? <Tag color='green'>启用</Tag> : <Tag color='red'>停用</Tag>\n },\n },\n\n {\n title: '操作',\n dataIndex: 'option',\n fixed: 'right',\n render: (_, record) => {\n\n return (\n <Space>\n <Button size='small' onClick={() => this.showExecuteRecord(record)}>执行记录</Button>\n <Button size='small' onClick={() => this.handleTriggerJob(record)}>执行一次</Button>\n <Button size='small' onClick={() => this.handleEdit(record)}> 编辑 </Button>\n <Popconfirm title='是否确定删除?' onConfirm={() => this.handleDelete(record)}>\n <Button size='small'>删除</Button>\n </Popconfirm>\n </Space>\n );\n },\n },\n\n ]\n\n showStatus = () => {\n this.setState({statusOpen: true})\n HttpUtils.get('admin/job/status').then(rs => {\n this.setState({status: rs})\n })\n };\n\n showExecuteRecord(record) {\n this.setState({executeRecordOpen: true, formValues: record})\n }\n\n\n render() {\n return <Page padding>\n <ProTable\n actionRef={this.tableRef}\n toolBarRender={() => {\n return <ButtonList>\n <Button type='primary' onClick={() => this.handleAdd()} icon={<PlusOutlined/>}>\n 新增\n </Button>\n <Button onClick={this.showStatus}>\n 查看状态\n </Button>\n </ButtonList>\n }}\n request={(params) => HttpUtils.get('admin/job/page', params)}\n columns={this.columns}\n showToolbarSearch\n />\n\n\n <Modal title='作业调度'\n open={this.state.formOpen}\n destroyOnClose\n width={800}\n onOk={() => this.formRef.current.submit()}\n onCancel={() => this.setState({formOpen: false})}\n >\n\n <Form ref={this.formRef} labelCol={{flex: '100px'}}\n initialValues={this.state.formValues}\n onValuesChange={this.onValuesChange}\n onFinish={this.onFinish}>\n <Form.Item name='id' noStyle>\n </Form.Item>\n <Form.Item label='执行类' name='jobClass' rules={[{required: true}]}\n tooltip='org.quartz.Job接口,参考io.tmgg.job.builtin.DemoJob'>\n <Select options={this.state.jobClassOptions}/>\n </Form.Item>\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n <Form.Item label='cron表达式' name='cron' help='格式:秒分时日月周,留空表示手动执行'\n rules={[{required: true}]}>\n <AutoComplete placeholder='如 0 */5 * * * ?' options={cronOptions}/>\n </Form.Item>\n\n <Form.Item label='启用' name='enabled' valuePropName='checked' rules={[{required: true}]}>\n <Switch/>\n </Form.Item>\n\n\n {this.state.paramList?.map(p => (\n <div key={p.name}>\n <Divider>作业参数</Divider>\n <Form.Item label={p.label}\n name={['jobData', p.name]}\n key={p.name}\n rules={[{required: p.required}]}>\n {ValueType.renderField(p.componentType, p.componentProps)}\n </Form.Item>\n </div>\n ))}\n </Form>\n </Modal>\n\n <Modal title='作业调度状态'\n open={this.state.statusOpen}\n onCancel={() => this.setState({statusOpen: false})}\n footer={null}\n width={1024}\n >\n <Alert message={<pre>{this.state.status}</pre>}></Alert>\n\n </Modal>\n\n <Modal title='作业调度记录'\n open={this.state.executeRecordOpen}\n onCancel={() => this.setState({executeRecordOpen: false})}\n footer={null}\n width={1024}\n destroyOnClose\n >\n <ProTable columns={[{\n title: '开始时间',\n dataIndex: 'beginTime',\n },\n {\n title: '结束时间',\n dataIndex: 'endTime',\n },\n {\n title: '耗时',\n dataIndex: 'jobRunTimeLabel',\n\n },\n {\n title: '是否成功',\n dataIndex: 'success',\n width: 200,\n render: v => {\n if (v != null) {\n return v ? '成功' : '异常'\n }\n }\n },\n {\n title: '返回结果',\n dataIndex: 'result',\n width: 300\n },\n\n {\n title: '操作',\n dataIndex: 'option',\n render: (_, record) => {\n const url = '/admin/sys/log/' + record.id;\n return <a href={url} target='_blank'>日志</a>;\n },\n }\n ]} request={params => {\n params.jobId = this.state.formValues.id\n return HttpUtils.get('admin/job/execute-record', params);\n }}></ProTable>\n\n </Modal>\n </Page>\n }\n\n onValuesChange = (changed, values) => {\n if (changed.jobClass) {\n this.loadJobParamFields(values.jobClass)\n const option = this.state.jobClassOptions.find(o => o.value === changed.jobClass)\n if (option) {\n const {label} = option;\n if (StringUtils.contains(label, \" \")) { // 取中文名部门设置为name\n this.formRef.current.setFieldValue(\"name\", label.split(\" \")[1])\n }\n }\n }\n\n if (changed.jobData) {\n this.loadJobParamFields(values.jobClass, values.jobData)\n }\n\n };\n}\n\n\n\n",
2197
2167
  "__isJSFile": true,
2198
2168
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/job/index.jsx"
2199
2169
  },
@@ -2213,7 +2183,7 @@
2213
2183
  "parentId": "@@/global-layout",
2214
2184
  "file": "system/org/index.jsx",
2215
2185
  "absPath": "/system/org",
2216
- "__content": "import {DeleteOutlined, EditOutlined, PlusOutlined, SyncOutlined} from '@ant-design/icons';\nimport {Button, Card, Checkbox, Empty, Form, Input, Popconfirm, Space, Splitter, Switch, Tree} from 'antd';\nimport React from 'react';\nimport {\n FieldBoolean,\n FieldDictSelect,\n FieldRemoteTreeSelect,\n FieldUserSelect,\n Gap,\n HttpUtils,\n NamedIcon,\n Page\n} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formLoading: false,\n formValues: undefined,\n submitLoading: false,\n formEditing: false,\n\n\n params: {\n onlyShowEnabled: true,\n onlyShowUnit: false,\n searchText: null\n },\n\n treeData: [],\n treeLoading: false,\n draggable: false,\n }\n actionRef = React.createRef();\n treeRef = React.createRef();\n\n componentDidMount() {\n this.loadTree()\n }\n\n loadTree = () => {\n this.setState({treeLoading: true})\n\n const {params} = this.state\n HttpUtils.get('admin/sysOrg/tree', params).then(rs => {\n let treeData = rs;\n this.setState({treeData})\n }).finally(() => {\n this.setState({treeLoading: false});\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysOrg/delete', {id: record.id})\n .then(rs => {\n this.setState({formValues: null})\n this.loadTree()\n })\n }\n\n\n onSelect = (selectedKeys) => {\n if (selectedKeys.length === 0) {\n this.setState({formValues: null})\n return\n }\n\n const key = selectedKeys[0]\n this.setState({formLoading: true, formEditing: false})\n HttpUtils.get(\"admin/sysOrg/detail\", {id: key}).then(rs => {\n this.setState({formValues: rs})\n }).finally(() => {\n this.setState({formLoading: false})\n })\n }\n\n onFinish = (values) => {\n this.setState({submitLoading: true, formEditing: false})\n HttpUtils.post('admin/sysOrg/save', values).then(rs => {\n this.loadTree()\n }).finally(() => {\n this.setState({submitLoading: false})\n })\n }\n\n\n onDraggableChange = e => {\n this.setState({draggable: e})\n };\n\n\n render() {\n let {formValues} = this.state;\n let disabled = formValues == null;\n let params = this.state.params;\n return <Page padding>\n <Card>\n <Space>\n\n <Input.Search placeholder='搜索' value={params.searchText} onChange={e => {\n params.searchText = e.target.value\n this.setState({params}, this.loadTree)\n }}/>\n <Checkbox checked={params.onlyShowEnabled}\n onChange={e => {\n params.onlyShowEnabled = e.target.checked;\n this.setState({params}, this.loadTree);\n }}>仅显示启用</Checkbox>\n\n <Checkbox checked={params.onlyShowUnit}\n onChange={e => {\n params.onlyShowUnit = e.target.checked;\n this.setState({params}, this.loadTree);\n }}>仅显示单位</Checkbox>\n\n\n </Space>\n </Card>\n <Gap/>\n <Splitter>\n <Splitter.Panel defaultSize={500}>\n <Card loading={this.state.treeLoading}\n title='组织机构'\n extra={<Space>\n\n <div>\n 拖拽排序&nbsp;<Switch\n value={this.state.draggable}\n onChange={this.onDraggableChange}/>\n </div>\n <Button size='small' shape={\"round\"} icon={<SyncOutlined/>}\n onClick={this.loadTree}></Button>\n </Space>}>\n\n\n <Tree ref={this.treeRef}\n treeData={this.state.treeData}\n onSelect={this.onSelect}\n showIcon\n blockNode\n icon={item => {\n return <NamedIcon name={item.data.iconName}/>;\n }}\n draggable={this.state.draggable}\n onDrop={this.onDrop}\n showLine\n defaultExpandAll\n />\n {this.state.treeData.length === 0 && <Empty/>}\n </Card>\n </Splitter.Panel>\n\n <Splitter>\n <Card\n loading={this.state.formLoading}\n extra={<Space>\n <Button type='primary' onClick={() => {\n this.setState({\n formLoading: true,\n formEditing: true,\n formValues: {\n pid: formValues?.id,\n }\n }, () => {\n this.setState({formLoading: false})\n })\n }}>\n <PlusOutlined/> 新增\n </Button>\n <Button disabled={disabled} onClick={() => {\n this.setState({\n formEditing: true\n })\n }}>\n <EditOutlined/> 编辑\n </Button>\n\n <Popconfirm title={'是否确定删除组织机构'} disabled={disabled}\n onConfirm={() => this.handleDelete(formValues)}>\n <Button icon={<DeleteOutlined/>} disabled={disabled}>删除</Button>\n </Popconfirm>\n\n\n </Space>}\n >\n\n {formValues == null ? <Empty description='未选择机构'/> : <Form\n disabled={!this.state.formEditing}\n labelCol={{flex: '150px'}}\n wrapperCol={{flex: '400px'}}\n initialValues={formValues}\n onFinish={this.onFinish}\n >\n <Form.Item noStyle name='id'>\n </Form.Item>\n <Form.Item label='父节点' name='pid'>\n <FieldRemoteTreeSelect url='admin/sysOrg/tree'/>\n </Form.Item>\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='类型' name='type' rules={[{required: true}]}>\n <FieldDictSelect typeCode='orgType'/>\n </Form.Item>\n\n <Form.Item label='部门领导' name={['leader', 'id']}>\n <FieldUserSelect/>\n </Form.Item>\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n <Form.Item label='扩展字段1' name='extra1'>\n <Input/>\n </Form.Item>\n <Form.Item label='扩展字段2' name='extra2'>\n <Input/>\n </Form.Item>\n <Form.Item label='扩展字段3' name='extra3'>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label=' ' colon={false}>\n <Button type=\"primary\" htmlType='submit'\n loading={this.state.submitLoading}>保存</Button>\n </Form.Item>\n\n </Form>\n }\n\n\n </Card>\n </Splitter>\n\n </Splitter>\n\n\n </Page>\n }\n\n onDrop = (e) => {\n const {dragNode, dropToGap, node} = e;\n const dropKey = node.key;\n const dragKey = dragNode.key;\n\n const dropPos = e.node.pos.split('-');\n const dropPosition = e.dropPosition - Number(dropPos[dropPos.length - 1]); // the drop position relative to the drop node, inside 0, top -1, bottom 1\n\n\n console.log(dragNode.title, '->', node.title, 'dropToGap:', dropToGap, \"dropPosition:\", dropPosition)\n HttpUtils.post('admin/sysOrg/sort', {dropPosition, dropToGap, dropKey, dragKey}).then(this.loadTree)\n };\n}\n\n\n\n",
2186
+ "__content": "import {DeleteOutlined, EditOutlined, PlusOutlined, SyncOutlined} from '@ant-design/icons';\nimport {Button, Card, Checkbox, Empty, Form, Input, Popconfirm, Space, Splitter, Switch, Tree} from 'antd';\nimport React from 'react';\nimport {\n FieldBoolean,\n FieldDictSelect,\n FieldRemoteTreeSelect,\n FieldUserSelect,\n Gap,\n HttpUtils,\n NamedIcon,\n Page\n} from \"../../../framework\";\n\n\nexport default class extends React.Component {\n\n state = {\n formLoading: false,\n formValues: undefined,\n submitLoading: false,\n formEditing: false,\n\n\n params: {\n onlyShowEnabled: true,\n onlyShowUnit: false,\n searchText: null\n },\n\n treeData: [],\n treeLoading: false,\n draggable: false,\n }\n actionRef = React.createRef();\n treeRef = React.createRef();\n\n componentDidMount() {\n this.loadTree()\n }\n\n loadTree = () => {\n this.setState({treeLoading: true})\n\n const {params} = this.state\n HttpUtils.get('admin/sysOrg/tree', params).then(rs => {\n const treeData = rs;\n this.setState({treeData})\n }).finally(() => {\n this.setState({treeLoading: false});\n })\n }\n\n handleDelete = record => {\n HttpUtils.post('admin/sysOrg/delete', {id: record.id})\n .then(rs => {\n this.setState({formValues: null})\n this.loadTree()\n })\n }\n\n\n onSelect = (selectedKeys) => {\n if (selectedKeys.length === 0) {\n this.setState({formValues: null})\n return\n }\n\n const key = selectedKeys[0]\n this.setState({formLoading: true, formEditing: false})\n HttpUtils.get(\"admin/sysOrg/detail\", {id: key}).then(rs => {\n this.setState({formValues: rs})\n }).finally(() => {\n this.setState({formLoading: false})\n })\n }\n\n onFinish = (values) => {\n this.setState({submitLoading: true, formEditing: false})\n HttpUtils.post('admin/sysOrg/save', values).then(rs => {\n this.loadTree()\n }).finally(() => {\n this.setState({submitLoading: false})\n })\n }\n\n\n onDraggableChange = e => {\n this.setState({draggable: e})\n };\n\n\n render() {\n const {formValues} = this.state;\n const disabled = formValues == null;\n const params = this.state.params;\n return <Page padding>\n <Card>\n <Space>\n\n <Input.Search placeholder='搜索' value={params.searchText} onChange={e => {\n params.searchText = e.target.value\n this.setState({params}, this.loadTree)\n }}/>\n <Checkbox checked={params.onlyShowEnabled}\n onChange={e => {\n params.onlyShowEnabled = e.target.checked;\n this.setState({params}, this.loadTree);\n }}>仅显示启用</Checkbox>\n\n <Checkbox checked={params.onlyShowUnit}\n onChange={e => {\n params.onlyShowUnit = e.target.checked;\n this.setState({params}, this.loadTree);\n }}>仅显示单位</Checkbox>\n\n\n </Space>\n </Card>\n <Gap/>\n <Splitter>\n <Splitter.Panel defaultSize={500}>\n <Card loading={this.state.treeLoading}\n title='组织机构'\n extra={<Space>\n\n <div>\n 拖拽排序&nbsp;<Switch\n value={this.state.draggable}\n onChange={this.onDraggableChange}/>\n </div>\n <Button size='small' shape={\"round\"} icon={<SyncOutlined/>}\n onClick={this.loadTree}></Button>\n </Space>}>\n\n\n <Tree ref={this.treeRef}\n treeData={this.state.treeData}\n onSelect={this.onSelect}\n showIcon\n blockNode\n icon={item => {\n return <NamedIcon name={item.data.iconName}/>;\n }}\n draggable={this.state.draggable}\n onDrop={this.onDrop}\n showLine\n defaultExpandAll\n />\n {this.state.treeData.length === 0 && <Empty/>}\n </Card>\n </Splitter.Panel>\n\n <Splitter>\n <Card\n loading={this.state.formLoading}\n extra={<Space>\n <Button type='primary' onClick={() => {\n this.setState({\n formLoading: true,\n formEditing: true,\n formValues: {\n pid: formValues?.id,\n }\n }, () => {\n this.setState({formLoading: false})\n })\n }}>\n <PlusOutlined/> 新增\n </Button>\n <Button disabled={disabled} onClick={() => {\n this.setState({\n formEditing: true\n })\n }}>\n <EditOutlined/> 编辑\n </Button>\n\n <Popconfirm title={'是否确定删除组织机构'} disabled={disabled}\n onConfirm={() => this.handleDelete(formValues)}>\n <Button icon={<DeleteOutlined/>} disabled={disabled}>删除</Button>\n </Popconfirm>\n\n\n </Space>}\n >\n\n {formValues == null ? <Empty description='未选择机构'/> : <Form\n disabled={!this.state.formEditing}\n labelCol={{flex: '150px'}}\n wrapperCol={{flex: '400px'}}\n initialValues={formValues}\n onFinish={this.onFinish}\n >\n <Form.Item noStyle name='id'>\n </Form.Item>\n <Form.Item label='父节点' name='pid'>\n <FieldRemoteTreeSelect url='admin/sysOrg/tree'/>\n </Form.Item>\n <Form.Item label='名称' name='name' rules={[{required: true}]}>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label='类型' name='type' rules={[{required: true}]}>\n <FieldDictSelect typeCode='orgType'/>\n </Form.Item>\n\n <Form.Item label='部门领导' name={['leader', 'id']}>\n <FieldUserSelect/>\n </Form.Item>\n <Form.Item label='启用' name='enabled' rules={[{required: true}]}>\n <FieldBoolean/>\n </Form.Item>\n <Form.Item label='扩展字段1' name='extra1'>\n <Input/>\n </Form.Item>\n <Form.Item label='扩展字段2' name='extra2'>\n <Input/>\n </Form.Item>\n <Form.Item label='扩展字段3' name='extra3'>\n <Input/>\n </Form.Item>\n\n\n <Form.Item label=' ' colon={false}>\n <Button type=\"primary\" htmlType='submit'\n loading={this.state.submitLoading}>保存</Button>\n </Form.Item>\n\n </Form>\n }\n\n\n </Card>\n </Splitter>\n\n </Splitter>\n\n\n </Page>\n }\n\n onDrop = (e) => {\n const {dragNode, dropToGap, node} = e;\n const dropKey = node.key;\n const dragKey = dragNode.key;\n\n const dropPos = e.node.pos.split('-');\n const dropPosition = e.dropPosition - Number(dropPos[dropPos.length - 1]); // the drop position relative to the drop node, inside 0, top -1, bottom 1\n\n\n HttpUtils.post('admin/sysOrg/sort', {dropPosition, dropToGap, dropKey, dragKey}).then(this.loadTree)\n };\n}\n\n\n\n",
2217
2187
  "__isJSFile": true,
2218
2188
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/org/index.jsx"
2219
2189
  },
@@ -2223,7 +2193,7 @@
2223
2193
  "parentId": "@@/global-layout",
2224
2194
  "file": "system/role/perm.jsx",
2225
2195
  "absPath": "/system/role/perm",
2226
- "__content": "import React from \"react\";\nimport {Button, Card, Checkbox, Table, Typography} from \"antd\";\nimport {SaveOutlined} from \"@ant-design/icons\";\nimport {ArrUtils, HttpUtils, PageUtils} from \"../../../framework\";\nexport default class extends React.Component {\n\n\n state = {\n loading: false,\n roleInfo: {},\n\n dataSource: [],\n rowSelectedKeys: {},\n }\n\n columns = [\n {\n title: '菜单',\n dataIndex: 'name',\n },\n\n {\n title: '权限',\n dataIndex: 'permCodes',\n render: (permCodes, record) => {\n if (permCodes == null) {\n return\n }\n const {permNames} = record\n const options = [];\n for (let i = 0; i < permCodes.length; i++) {\n const label = permNames[i];\n const value = permCodes[i];\n options.push({label, value});\n }\n\n\n let rowSelectedKey = this.state.rowSelectedKeys[record.id];\n return <Checkbox.Group options={options}\n value={rowSelectedKey}\n onChange={(ks) => {\n const rowSelectedKeys = this.state.rowSelectedKeys;\n rowSelectedKeys[record.id] = ks;\n this.setState({rowSelectedKeys})\n }}/>\n }\n }\n ]\n\n componentDidMount() {\n this.roleId = PageUtils.currentParams().id;\n this.loadData();\n }\n\n\n loadData() {\n this.setState({loading: true})\n Promise.all([\n HttpUtils.get('admin/sysRole/get', {id: this.roleId}).then(rs => {\n this.setState({roleInfo: rs})\n }),\n HttpUtils.get('admin/sysRole/permTreeTable', {id: this.roleId}).then(rs => {\n this.setState({dataSource: rs})\n }),\n HttpUtils.get('admin/sysRole/ownPerms', {id: this.roleId}).then(rs => {\n this.setState({rowSelectedKeys: rs})\n })\n ]).then(rs => {\n this.setState({loading: false})\n })\n }\n\n savePerms = () => {\n const {rowSelectedKeys} = this.state;\n const perms = [];\n const menus = []\n for (let menuId in rowSelectedKeys) {\n const ks = rowSelectedKeys[menuId];\n if (ks == null || ks.length === 0) {\n continue;\n }\n menus.push(menuId)\n ArrUtils.addAll(perms, ks)\n }\n HttpUtils.post('admin/sysRole/savePerms', {id: this.roleId, perms, menus}).then(rs => {\n // Page.open(PageUtils.currentPathname(), PageUtils.currentLabel())\n })\n };\n\n\n render() {\n return <>\n\n\n <Card title='角色权限设置' loading={this.state.loading}\n variant={\"borderless\"}\n extra={<Button type='primary' icon={<SaveOutlined/>} onClick={this.savePerms}>保存权限</Button>}>\n <Typography.Text>角色名称:{this.state.roleInfo.name}, 编码:{this.state.roleInfo.code} </Typography.Text>\n <Table dataSource={this.state.dataSource}\n columns={this.columns}\n size='small' bordered pagination={false} rowKey='id'\n expandable={{defaultExpandAllRows: true}}\n ></Table>\n </Card>\n </>\n }\n}\n",
2196
+ "__content": "import React from \"react\";\nimport {Button, Card, Checkbox, Table, Typography} from \"antd\";\nimport {SaveOutlined} from \"@ant-design/icons\";\nimport {ArrayUtils, HttpUtils, PageUtils} from \"../../../framework\";\nexport default class extends React.Component {\n\n\n state = {\n loading: false,\n roleInfo: {},\n\n dataSource: [],\n rowSelectedKeys: {},\n }\n\n columns = [\n {\n title: '菜单',\n dataIndex: 'name',\n },\n\n {\n title: '权限',\n dataIndex: 'permCodes',\n render: (permCodes, record) => {\n if (permCodes == null) {\n return\n }\n const {permNames} = record\n const options = [];\n for (let i = 0; i < permCodes.length; i++) {\n const label = permNames[i];\n const value = permCodes[i];\n options.push({label, value});\n }\n\n\n const rowSelectedKey = this.state.rowSelectedKeys[record.id];\n return <Checkbox.Group options={options}\n value={rowSelectedKey}\n onChange={(ks) => {\n const rowSelectedKeys = this.state.rowSelectedKeys;\n rowSelectedKeys[record.id] = ks;\n this.setState({rowSelectedKeys})\n }}/>\n }\n }\n ]\n\n componentDidMount() {\n this.roleId = PageUtils.currentParams().id;\n this.loadData();\n }\n\n\n loadData() {\n this.setState({loading: true})\n Promise.all([\n HttpUtils.get('admin/sysRole/get', {id: this.roleId}).then(rs => {\n this.setState({roleInfo: rs})\n }),\n HttpUtils.get('admin/sysRole/perm-tree-table', {id: this.roleId}).then(rs => {\n this.setState({dataSource: rs})\n }),\n HttpUtils.get('admin/sysRole/own-perms', {id: this.roleId}).then(rs => {\n this.setState({rowSelectedKeys: rs})\n })\n ]).then(rs => {\n this.setState({loading: false})\n })\n }\n\n savePerms = () => {\n const {rowSelectedKeys} = this.state;\n const perms = [];\n const menus = []\n for (let menuId in rowSelectedKeys) {\n const ks = rowSelectedKeys[menuId];\n if (ks == null || ks.length === 0) {\n continue;\n }\n menus.push(menuId)\n ArrayUtils.addAll(perms, ks)\n }\n HttpUtils.post('admin/sysRole/save-perms', {id: this.roleId, perms, menus}).then(rs => {\n // Page.open(PageUtils.currentPathname(), PageUtils.currentLabel())\n })\n };\n\n\n render() {\n return <>\n\n\n <Card title='角色权限设置' loading={this.state.loading}\n variant={\"borderless\"}\n extra={<Button type='primary' icon={<SaveOutlined/>} onClick={this.savePerms}>保存权限</Button>}>\n <Typography.Text>角色名称:{this.state.roleInfo.name}, 编码:{this.state.roleInfo.code} </Typography.Text>\n <Table dataSource={this.state.dataSource}\n columns={this.columns}\n size='small' bordered pagination={false} rowKey='id'\n expandable={{defaultExpandAllRows: true}}\n ></Table>\n </Card>\n </>\n }\n}\n",
2227
2197
  "__isJSFile": true,
2228
2198
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/system/role/perm.jsx"
2229
2199
  },
@@ -2237,16 +2207,6 @@
2237
2207
  "__isJSFile": true,
2238
2208
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/userCenter/index.jsx"
2239
2209
  },
2240
- "test/views": {
2241
- "path": "test/views",
2242
- "id": "test/views",
2243
- "parentId": "@@/global-layout",
2244
- "file": "test/views.jsx",
2245
- "absPath": "/test/views",
2246
- "__content": "import {ViewText, ViewBoolean, ViewBooleanEnableDisable, ViewFile, ViewFileButton, ViewImage, ViewPassword, ViewApproveStatus, ViewProcessInstanceProgress, ViewProcessInstanceProgressButton} from \"../../framework\";\n\nexport function ViewTextTest() {\n return <ViewText value='你好' />\n}\n\nexport function ViewBooleanTest() {\n return <ViewBoolean value={true} />\n}\n\nexport function ViewBooleanEnableDisableTest() {\n return <ViewBooleanEnableDisable value={true} />\n}\n\nexport function ViewTextEllipsisTest() {\n return <ViewText value='这是一段很长的文本,用于测试省略显示功能' ellipsis={true} maxLength={10} />\n}\n\nexport function ViewFileTest() {\n return <ViewFile value='file123' height='200px' />\n}\n\nexport function ViewFileButtonTest() {\n return <ViewFileButton value='file123' height='200px' />\n}\n\nexport function ViewImageTest() {\n return <ViewImage value='https://via.placeholder.com/150' />\n}\n\nexport function ViewPasswordTest() {\n return <ViewPassword value='password123' />\n}\n\nexport function ViewApproveStatusTest() {\n return <ViewApproveStatus value='approved' />\n}\n\nexport function ViewProcessInstanceProgressTest() {\n return <ViewProcessInstanceProgress value='process123' />\n}\n\nexport function ViewProcessInstanceProgressButtonTest() {\n return <ViewProcessInstanceProgressButton value='process123' />\n}\n\nexport default function () {\n return <>\n <h1>View 组件测试</h1>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewText</h2>\n <ViewTextTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewBoolean</h2>\n <ViewBooleanTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewBooleanEnableDisable</h2>\n <ViewBooleanEnableDisableTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewText (with ellipsis)</h2>\n <ViewTextEllipsisTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewFile</h2>\n <ViewFileTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewFileButton</h2>\n <ViewFileButtonTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewImage</h2>\n <ViewImageTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewPassword</h2>\n <ViewPasswordTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewApproveStatus</h2>\n <ViewApproveStatusTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewProcessInstanceProgress</h2>\n <ViewProcessInstanceProgressTest/>\n </div>\n <div style={{marginBottom: '20px'}}>\n <h2>ViewProcessInstanceProgressButton</h2>\n <ViewProcessInstanceProgressButtonTest/>\n </div>\n </>\n}",
2247
- "__isJSFile": true,
2248
- "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/test/views.jsx"
2249
- },
2250
2210
  "about": {
2251
2211
  "path": "about",
2252
2212
  "id": "about",
@@ -2273,7 +2233,7 @@
2273
2233
  "parentId": "@@/global-layout",
2274
2234
  "file": "login.jsx",
2275
2235
  "absPath": "/login",
2276
- "__content": "import React from 'react';\n\nimport {LoginPage} from \"../framework/pages/LoginPage\";\n\n\nexport default class extends React.Component {\n\n\n render() {\n return <LoginPage/>\n // 支持自定义\n // return <LoginPage form={<Button type={\"primary\"} size='large'>xx登录</Button>} />\n }\n\n\n}\n",
2236
+ "__content": "import React from 'react';\nimport {Button, Form, Input, message, Space} from 'antd';\nimport {LockOutlined, SafetyCertificateOutlined, UserOutlined, WarningOutlined} from '@ant-design/icons';\nimport {JSEncrypt} from \"jsencrypt\";\nimport {history} from 'umi';\nimport {EventBusUtils, HttpUtils, PageUtils, MessageUtils, SysUtils} from \"../framework/utils\";\n\nimport \"./login.less\"\n\nfunction getRedirect() {\n let redirect = PageUtils.currentParams()['redirect'];\n if (redirect) {\n redirect = decodeURIComponent(redirect)\n } else {\n redirect = '/'\n }\n return redirect;\n}\n\nfunction postLogin(values) {\n return new Promise((resolve, reject) => {\n HttpUtils.post('/admin/auth/login', values).then(rs => {\n EventBusUtils.emit('loginSuccess')\n history.push(getRedirect())\n resolve(rs)\n }).catch(e => {\n reject(e)\n })\n })\n}\n\nexport default class extends React.Component {\n\n state = {\n logging: false,\n siteInfo: {},\n random: Math.random()\n }\n\n async componentDidMount() {\n if (localStorage.length === 0) {\n MessageUtils.alert('站点数据缺失,刷新当前页面...')\n window.location.reload()\n return\n }\n\n const siteInfo = SysUtils.getSiteInfo()\n this.setState({siteInfo})\n }\n\n submit = values => {\n this.setState({logging: true})\n\n const pubkey = this.state.siteInfo.rsaPublicKey;\n if (!pubkey) {\n message.error(\"未获取密钥,请刷新浏览器再试\")\n this.setState({logging: false})\n return\n }\n const crypt = new JSEncrypt();\n crypt.setPublicKey(pubkey);\n values.password = crypt.encrypt(values.password)\n\n postLogin(values).finally(() => {\n this.setState({logging: false})\n })\n }\n\n render() {\n const {siteInfo} = this.state\n\n const pageStyle = {}\n if (siteInfo.loginBackground) {\n const url = 'admin/sysFile/preview/' + siteInfo.loginBackground;\n pageStyle.backgroundImage = 'url(\"' + url + '\")'\n }\n\n return (\n <section className='login-page' style={pageStyle}>\n <div className=\"login-content\">\n <h1>{siteInfo.title}</h1>\n {this.getForm(siteInfo)}\n {this.renderFormBottom()}\n </div>\n </section>\n );\n }\n\n getForm = siteInfo => {\n const form = (\n <Form\n name=\"normal_login\"\n className=\"login-form\"\n initialValues={{remember: true}}\n onFinish={this.submit}\n requiredMark={false}\n colon={false}\n >\n <Form.Item name=\"username\" rules={[{required: true, message: '请输入用户名!'}]}>\n <Input size='large' prefix={<UserOutlined/>} placeholder=\"用户名\" autoComplete=\"off\"/>\n </Form.Item>\n <Form.Item name=\"password\" rules={[{required: true, message: '请输入密码!'}]}>\n <Input autoComplete=\"off\" prefix={<LockOutlined/>} type=\"password\" placeholder=\"密码\"\n size='large'\n />\n </Form.Item>\n\n {siteInfo.captcha && (\n <Form.Item name='captchaCode' rules={[{required: true}]}>\n <Space style={{alignItems: 'center'}}>\n <Input size='large' placeholder='验证码' prefix={<SafetyCertificateOutlined/>}/>\n <img height={36} width={100}\n src={\"/admin/auth/captcha-image?_random=\" + this.state.random}\n onClick={() => this.setState({random: Math.random()})}/>\n </Space>\n </Form.Item>\n )}\n\n <Form.Item style={{marginTop: 10}}>\n <Button loading={this.state.logging} type=\"primary\" htmlType=\"submit\"\n block size='large'>\n 登录\n </Button>\n </Form.Item>\n </Form>\n );\n\n if (this.props.formRender) {\n return this.props.formRender(form);\n }\n return form;\n };\n\n renderFormBottom() {\n const siteInfo = this.state.siteInfo;\n if (siteInfo.loginBoxBottomTip) {\n return (\n <div style={{color: 'white', marginTop: 50, fontSize: '14px', textAlign: 'center'}}>\n <WarningOutlined/> {siteInfo.loginBoxBottomTip}\n </div>\n )\n }\n }\n}\n",
2277
2237
  "__isJSFile": true,
2278
2238
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/login.jsx"
2279
2239
  },
@@ -2288,9 +2248,9 @@
2288
2248
  },
2289
2249
  "apiRoutes": {},
2290
2250
  "hasSrcDir": true,
2291
- "npmClient": "pnpm",
2251
+ "npmClient": "cnpm",
2292
2252
  "umi": {
2293
- "version": "4.6.51",
2253
+ "version": "4.6.55",
2294
2254
  "name": "Umi",
2295
2255
  "importSource": "umi",
2296
2256
  "cliName": "umi"
@@ -2300,11 +2260,11 @@
2300
2260
  },
2301
2261
  "react": {
2302
2262
  "version": "18.3.1",
2303
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react@18.3.1/node_modules/react"
2263
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react"
2304
2264
  },
2305
2265
  "react-dom": {
2306
2266
  "version": "18.3.1",
2307
- "path": "/home/runner/work/open-admin/open-admin/web/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom"
2267
+ "path": "/home/runner/work/open-admin/open-admin/web/node_modules/@umijs/preset-umi/node_modules/react-dom"
2308
2268
  },
2309
2269
  "appJS": null,
2310
2270
  "locale": "C",
@@ -2318,7 +2278,7 @@
2318
2278
  },
2319
2279
  "framework": "react",
2320
2280
  "typescript": {
2321
- "tsVersion": "5.9.3",
2281
+ "tsVersion": "6.0.3",
2322
2282
  "tslibVersion": "2.8.1"
2323
2283
  },
2324
2284
  "faviconFiles": []