feat(web): 更换页面框架为pro-layout

This commit is contained in:
v-zhangjc9
2025-05-12 10:42:59 +08:00
parent aa93b52dd9
commit 1e7b195f9f
17 changed files with 772 additions and 222 deletions

View File

@@ -10,6 +10,9 @@
},
"dependencies": {
"@ant-design/icons": "^6.0.0",
"@ant-design/pro-components": "^2.8.7",
"@ant-design/pro-layout": "^7.22.4",
"@ant-design/x": "^1.2.0",
"@fortawesome/fontawesome-free": "^6.7.2",
"@tinyflow-ai/react": "^0.1.6",
"amis": "^6.12.0",
@@ -18,7 +21,8 @@
"licia": "^1.48.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "^7.5.3"
"react-router": "^7.5.3",
"styled-components": "^6.1.18"
},
"devDependencies": {
"@types/react": "^18.2.0",

View File

@@ -11,6 +11,15 @@ importers:
'@ant-design/icons':
specifier: ^6.0.0
version: 6.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-components':
specifier: ^2.8.7
version: 2.8.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-layout':
specifier: ^7.22.4
version: 7.22.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/x':
specifier: ^1.2.0
version: 1.2.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@fortawesome/fontawesome-free':
specifier: ^6.7.2
version: 6.7.2
@@ -38,6 +47,9 @@ importers:
react-router:
specifier: ^7.5.3
version: 7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
styled-components:
specifier: ^6.1.18
version: 6.1.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
devDependencies:
'@types/react':
specifier: ^18.2.0
@@ -113,21 +125,150 @@ packages:
react: '>=16.0.0'
react-dom: '>=16.0.0'
'@ant-design/pro-card@2.9.7':
resolution: {integrity: sha512-uDDYowmYH1ldRfG8Mb4QOwcEEz6ptRBQDLO1tkVADCRkdOMwz82xlZneR4uVuFyKcuNmgHzarYNncozBKhFuaA==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
'@ant-design/pro-components@2.8.7':
resolution: {integrity: sha512-QhibkPsUJryEjI1QmwUn+XCngGHidu0ekvricL6TIEvPgP+AUAca29XutN5+Mmn8Xfja1ca9HFTHTgFoV74Z7Q==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-descriptions@2.6.7':
resolution: {integrity: sha512-fgn2d0kDWUODGDWKpgziZuuqPlmIoKxQFJY9Yg4nbaRp8GDDKZeSSqgvW+OxjpYM8dxq31fiz1dZlZnOPoYKpg==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
'@ant-design/pro-field@3.0.4':
resolution: {integrity: sha512-nJSng/6/pPZFdiFeTtZcBQLNrHg9tIeiKFR1+zzbnQbI3qBOFP9aBZS/+LwkQZcI2G71vrRgz2x5OhHb7AX0wQ==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
'@ant-design/pro-form@2.31.7':
resolution: {integrity: sha512-0TCtIC/ynbLPoes8sLBFwFbi0tkeNmSU6the2EcyKIKDLfWHDbfkLM1OSFrzv3QD+H8OgFWMkTSOjhMOKSsOBg==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
rc-field-form: '>=1.22.0'
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-layout@7.22.4':
resolution: {integrity: sha512-X2WO4L2itXemX4zhS+0NG+8kXQD5SX9sG+zjx/15BmIO3FvsUGqOHgoCg0vhd424EiyPj7WtdMZJ39G1xdgDwA==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-list@2.6.7':
resolution: {integrity: sha512-6k/En7pioMgepho/1HMf2DAnkSTZiat1lDg2ggCok2lhSgqXzir7x22ewJQRgPvEiVb6/qqaFQNd7a8dnrFj1w==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-provider@2.15.4':
resolution: {integrity: sha512-DBX0JNUNOYXAucVqd/zTdqtXckCDqr2Lo85KIku2YzWdhptDPDZRTNqL04JShjGejDl8fzwQ8yREHgVUfzn6Gg==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-skeleton@2.2.1':
resolution: {integrity: sha512-3M2jNOZQZWEDR8pheY00OkHREfb0rquvFZLCa6DypGmiksiuuYuR9Y4iA82ZF+mva2FmpHekdwbje/GpbxqBeg==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-table@3.19.0':
resolution: {integrity: sha512-nL25734d5q5oqtmG7Apn2TNJUnJE8m9dkopXMQdoNZnv8qeRQLBH+i5cZT1yh7FIO8z6QLXleg+KnR/cI7VRRw==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
rc-field-form: '>=1.22.0'
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/pro-utils@2.17.0':
resolution: {integrity: sha512-hHKUISjMEoS+E5ltJWyvNTrlEA3IimZNxtDrEhorRIbgVYAlmEN5Mj/ESSofzDM3+UlxiI5+A/Y6IHkByTfDEA==}
peerDependencies:
antd: ^4.24.15 || ^5.11.2
react: '>=17.0.0'
react-dom: '>=17.0.0'
'@ant-design/react-slick@1.1.2':
resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==}
peerDependencies:
react: '>=16.9.0'
'@ant-design/x@1.2.0':
resolution: {integrity: sha512-sV+C6ER+xn6XQF3gYN3Ma9MnK8Bcfj+5C4cRvtKNvzExHwC6laBD1g6TWHH7vFPDOQUhYlJT4tw+NdcvZJx/ZA==}
peerDependencies:
antd: ^5.20.3
react: '>=18.0.0'
react-dom: '>=18.0.0'
'@babel/runtime@7.27.1':
resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
engines: {node: '>=6.9.0'}
'@chenshuai2144/sketch-color@1.0.9':
resolution: {integrity: sha512-obzSy26cb7Pm7OprWyVpgMpIlrZpZ0B7vbrU0RMbvRg0YAI890S5Xy02Aj1Nhl4+KTbi1lVYHt6HQP8Hm9s+1w==}
peerDependencies:
react: '>=16.12.0'
'@ctrl/tinycolor@3.6.1':
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
engines: {node: '>=10'}
'@dnd-kit/accessibility@3.1.1':
resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
peerDependencies:
react: '>=16.8.0'
'@dnd-kit/core@6.3.1':
resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
'@dnd-kit/modifiers@6.0.1':
resolution: {integrity: sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==}
peerDependencies:
'@dnd-kit/core': ^6.0.6
react: '>=16.8.0'
'@dnd-kit/sortable@7.0.2':
resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==}
peerDependencies:
'@dnd-kit/core': ^6.0.7
react: '>=16.8.0'
'@dnd-kit/utilities@3.2.2':
resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==}
peerDependencies:
react: '>=16.8.0'
'@emotion/hash@0.8.0':
resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
'@emotion/is-prop-valid@1.2.2':
resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==}
'@emotion/memoize@0.8.1':
resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
'@emotion/unitless@0.7.5':
resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
'@emotion/unitless@0.8.1':
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
'@esbuild/aix-ppc64@0.25.4':
resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==}
engines: {node: '>=18'}
@@ -802,6 +943,9 @@ packages:
'@types/react@18.3.21':
resolution: {integrity: sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==}
'@types/stylis@4.2.5':
resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==}
'@types/warning@3.0.3':
resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==}
@@ -852,6 +996,14 @@ packages:
resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@umijs/route-utils@4.0.1':
resolution: {integrity: sha512-+1ixf1BTOLuH+ORb4x8vYMPeIt38n9q0fJDwhv9nSxrV46mxbLF0nmELIo9CKQB2gHfuC4+hww6xejJ6VYnBHQ==}
'@umijs/use-params@1.0.9':
resolution: {integrity: sha512-QlN0RJSBVQBwLRNxbxjQ5qzqYIGn+K7USppMoIOVlf7fxXHsnQZ2bEsa6Pm74bt6DVQxpUE8HqvdStn6Y9FV1w==}
peerDependencies:
react: '*'
'@vitejs/plugin-react-swc@3.9.0':
resolution: {integrity: sha512-jYFUSXhwMCYsh/aQTgSGLIN3Foz5wMbH9ahb0Zva//UzwZYbMiZd7oT3AU9jHT9DLswYDswsRwPU9jVF3yA48Q==}
peerDependencies:
@@ -882,6 +1034,9 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
add-dom-event-listener@1.1.0:
resolution: {integrity: sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==}
adler-32@1.3.1:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
engines: {node: '>=0.8'}
@@ -1054,6 +1209,9 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
camelize@1.0.1:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
canvas@2.11.2:
resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==}
engines: {node: '>=6'}
@@ -1186,6 +1344,13 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
css-color-keywords@1.0.0:
resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==}
engines: {node: '>=4'}
css-to-react-native@3.2.0:
resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==}
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -2099,6 +2264,13 @@ packages:
resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==}
engines: {node: '>=16.20.0'}
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
postcss@8.4.49:
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
@@ -2297,6 +2469,12 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
rc-resize-observer@0.2.6:
resolution: {integrity: sha512-YX6nYnd6fk7zbuvT6oSDMKiZjyngjHoy+fz+vL3Tez38d/G5iGdaDJa2yE7345G6sc4Mm1IGRUIwclvltddhmA==}
peerDependencies:
react: '>=16.9.0'
react-dom: '>=16.9.0'
rc-resize-observer@1.4.3:
resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==}
peerDependencies:
@@ -2381,6 +2559,9 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
rc-util@4.21.1:
resolution: {integrity: sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==}
rc-util@5.44.4:
resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==}
peerDependencies:
@@ -2571,6 +2752,10 @@ packages:
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
safe-stable-stringify@2.5.0:
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
engines: {node: '>=10'}
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -2618,6 +2803,9 @@ packages:
setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
shallowequal@1.1.0:
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -2690,6 +2878,16 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
styled-components@6.1.18:
resolution: {integrity: sha512-Mvf3gJFzZCkhjY2Y/Fx9z1m3dxbza0uI9H1CbNZm/jSHCojzJhQ0R7bByrlFJINnMzz/gPulpoFFGymNwrsMcw==}
engines: {node: '>= 16'}
peerDependencies:
react: '>= 16.8.0'
react-dom: '>= 16.8.0'
stylis@4.3.2:
resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==}
stylis@4.3.6:
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
@@ -2701,6 +2899,11 @@ packages:
resolution: {integrity: sha512-FbWBxgWOpQfhKvoGJv/TFwzqb4EhJbwCD17dB0tEpQiw1XyUEKZJtgm4nA4xq3LLsMo7hu5UY/BOFmroAxKTMg==}
engines: {node: '>=18'}
swr@2.3.3:
resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==}
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
@@ -2756,6 +2959,9 @@ packages:
tslib@2.3.0:
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -2831,6 +3037,11 @@ packages:
'@types/react':
optional: true
use-sync-external-store@1.5.0:
resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -3019,6 +3230,194 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@ant-design/pro-card@2.9.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
transitivePeerDependencies:
- react-dom
'@ant-design/pro-components@2.8.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/pro-card': 2.9.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-descriptions': 2.6.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-field': 3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-form': 2.31.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-layout': 7.22.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-list': 2.6.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-skeleton': 2.2.1(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-table': 3.19.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- rc-field-form
'@ant-design/pro-descriptions@2.6.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/pro-field': 3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-form': 2.31.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-skeleton': 2.2.1(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-resize-observer: 0.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
transitivePeerDependencies:
- rc-field-form
- react-dom
'@ant-design/pro-field@3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
'@chenshuai2144/sketch-color': 1.0.9(react@18.3.1)
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
dayjs: 1.11.13
lodash: 4.17.21
lodash-es: 4.17.21
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
swr: 2.3.3(react@18.3.1)
transitivePeerDependencies:
- react-dom
'@ant-design/pro-form@2.31.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-field': 3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
'@chenshuai2144/sketch-color': 1.0.9(react@18.3.1)
'@umijs/use-params': 1.0.9(react@18.3.1)
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
dayjs: 1.11.13
lodash: 4.17.21
lodash-es: 4.17.21
rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@ant-design/pro-layout@7.22.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
'@umijs/route-utils': 4.0.1
'@umijs/use-params': 1.0.9(react@18.3.1)
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
lodash: 4.17.21
lodash-es: 4.17.21
path-to-regexp: 8.2.0
rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
swr: 2.3.3(react@18.3.1)
warning: 4.0.3
'@ant-design/pro-list@2.6.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-card': 2.9.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-field': 3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-table': 3.19.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
dayjs: 1.11.13
rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 4.21.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- rc-field-form
'@ant-design/pro-provider@2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
'@ctrl/tinycolor': 3.6.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
dayjs: 1.11.13
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
swr: 2.3.3(react@18.3.1)
'@ant-design/pro-skeleton@2.2.1(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@ant-design/pro-table@3.19.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-card': 2.9.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-field': 3.0.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-form': 2.31.7(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-utils': 2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
'@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
dayjs: 1.11.13
lodash: 4.17.21
lodash-es: 4.17.21
rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@ant-design/pro-utils@2.17.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/pro-provider': 2.15.4(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
dayjs: 1.11.13
lodash: 4.17.21
lodash-es: 4.17.21
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
safe-stable-stringify: 2.5.0
swr: 2.3.3(react@18.3.1)
'@ant-design/react-slick@1.1.2(react@18.3.1)':
dependencies:
'@babel/runtime': 7.27.1
@@ -3028,12 +3427,75 @@ snapshots:
resize-observer-polyfill: 1.5.1
throttle-debounce: 5.0.2
'@ant-design/x@1.2.0(antd@5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ant-design/colors': 7.2.0
'@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@ant-design/fast-color': 2.0.6
'@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.27.1
antd: 5.25.0(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames: 2.5.1
rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@babel/runtime@7.27.1': {}
'@chenshuai2144/sketch-color@1.0.9(react@18.3.1)':
dependencies:
react: 18.3.1
reactcss: 1.2.3(react@18.3.1)
tinycolor2: 1.6.0
'@ctrl/tinycolor@3.6.1': {}
'@dnd-kit/accessibility@3.1.1(react@18.3.1)':
dependencies:
react: 18.3.1
tslib: 2.8.1
'@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@dnd-kit/accessibility': 3.1.1(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tslib: 2.8.1
'@dnd-kit/modifiers@6.0.1(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
'@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
react: 18.3.1
tslib: 2.8.1
'@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
'@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
react: 18.3.1
tslib: 2.8.1
'@dnd-kit/utilities@3.2.2(react@18.3.1)':
dependencies:
react: 18.3.1
tslib: 2.8.1
'@emotion/hash@0.8.0': {}
'@emotion/is-prop-valid@1.2.2':
dependencies:
'@emotion/memoize': 0.8.1
'@emotion/memoize@0.8.1': {}
'@emotion/unitless@0.7.5': {}
'@emotion/unitless@0.8.1': {}
'@esbuild/aix-ppc64@0.25.4':
optional: true
@@ -3578,6 +4040,8 @@ snapshots:
'@types/prop-types': 15.7.14
csstype: 3.1.3
'@types/stylis@4.2.5': {}
'@types/warning@3.0.3': {}
'@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint@9.26.0)(typescript@5.8.3)':
@@ -3657,6 +4121,12 @@ snapshots:
'@typescript-eslint/types': 8.32.0
eslint-visitor-keys: 4.2.0
'@umijs/route-utils@4.0.1': {}
'@umijs/use-params@1.0.9(react@18.3.1)':
dependencies:
react: 18.3.1
'@vitejs/plugin-react-swc@3.9.0(vite@6.3.5(sass@1.87.0))':
dependencies:
'@swc/core': 1.11.24
@@ -3695,6 +4165,10 @@ snapshots:
acorn@8.14.1: {}
add-dom-event-listener@1.1.0:
dependencies:
object-assign: 4.1.1
adler-32@1.3.1: {}
agent-base@6.0.2:
@@ -4054,6 +4528,8 @@ snapshots:
callsites@3.1.0: {}
camelize@1.0.1: {}
canvas@2.11.2:
dependencies:
'@mapbox/node-pre-gyp': 1.0.11
@@ -4176,6 +4652,14 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
css-color-keywords@1.0.0: {}
css-to-react-native@3.2.0:
dependencies:
camelize: 1.0.1
css-color-keywords: 1.0.0
postcss-value-parser: 4.2.0
csstype@3.1.3: {}
d3-color@3.1.0: {}
@@ -5100,6 +5584,14 @@ snapshots:
pkce-challenge@5.0.0: {}
postcss-value-parser@4.2.0: {}
postcss@8.4.49:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
postcss@8.5.3:
dependencies:
nanoid: 3.3.11
@@ -5349,6 +5841,15 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
rc-resize-observer@0.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.27.1
classnames: 2.5.1
rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
resize-observer-polyfill: 1.5.1
rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.27.1
@@ -5473,6 +5974,14 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
rc-util@4.21.1:
dependencies:
add-dom-event-listener: 1.1.0
prop-types: 15.8.1
react-is: 16.13.1
react-lifecycles-compat: 3.0.4
shallowequal: 1.1.0
rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.27.1
@@ -5729,6 +6238,8 @@ snapshots:
safe-buffer@5.2.1: {}
safe-stable-stringify@2.5.0: {}
safer-buffer@2.1.2: {}
sass@1.87.0:
@@ -5790,6 +6301,8 @@ snapshots:
setprototypeof@1.2.0: {}
shallowequal@1.1.0: {}
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
@@ -5873,6 +6386,22 @@ snapshots:
strip-json-comments@3.1.1: {}
styled-components@6.1.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@emotion/is-prop-valid': 1.2.2
'@emotion/unitless': 0.8.1
'@types/stylis': 4.2.5
css-to-react-native: 3.2.0
csstype: 3.1.3
postcss: 8.4.49
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
shallowequal: 1.1.0
stylis: 4.3.2
tslib: 2.6.2
stylis@4.3.2: {}
stylis@4.3.6: {}
supports-color@7.2.0:
@@ -5896,6 +6425,12 @@ snapshots:
magic-string: 0.30.17
zimmerframe: 1.1.2
swr@2.3.3(react@18.3.1):
dependencies:
dequal: 2.0.3
react: 18.3.1
use-sync-external-store: 1.5.0(react@18.3.1)
tar-stream@2.2.0:
dependencies:
bl: 4.1.0
@@ -5947,6 +6482,8 @@ snapshots:
tslib@2.3.0: {}
tslib@2.6.2: {}
tslib@2.8.1: {}
turbo-stream@2.4.0: {}
@@ -6023,6 +6560,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.21
use-sync-external-store@1.5.0(react@18.3.1):
dependencies:
react: 18.3.1
util-deprecate@1.0.2: {}
uuid@8.3.2: {}

View File

@@ -3,73 +3,8 @@ import {createHashRouter, RouterProvider} from 'react-router'
import './components/Registry.ts'
import App from './pages/App.tsx'
import Cloud from './pages/Cloud.tsx'
import Conversation from './pages/Conversation.tsx'
import Home from './pages/Home.tsx'
import Overview from './pages/Overview.tsx'
import Queue from './pages/Queue.tsx'
import Table from './pages/Table.tsx'
import Task from './pages/Task.tsx'
import Tool from './pages/Tool.tsx'
import Version from './pages/Version.tsx'
import Yarn from './pages/Yarn.tsx'
import YarnCluster from './pages/YarnCluster.tsx'
const routes = createHashRouter([
{
path: '/',
Component: App,
children: [
{
Component: Home,
children: [
{
index: true,
Component: Overview,
},
{
path: '/home/table',
Component: Table,
},
{
path: '/home/queue',
Component: Queue,
},
{
path: '/home/version',
Component: Version,
},
{
path: '/home/yarn/:clusters/:queue/:search?',
Component: Yarn,
},
{
path: '/home/cloud',
Component: Cloud,
},
{
path: '/home/yarn_cluster',
Component: YarnCluster,
},
{
path: '/home/tool',
Component: Tool,
},
{
path: '/home/task',
Component: Task,
},
],
},
{
path: 'conversation',
Component: Conversation,
},
],
},
])
import {routes} from './route.tsx'
createRoot(document.getElementById('root')!).render(
<RouterProvider router={routes}/>,
<RouterProvider router={createHashRouter(routes)}/>,
)

View File

@@ -0,0 +1,18 @@
import {amisRender} from '../util/amis.ts'
function Ai() {
return (
<div className="ai">
{amisRender(
{
type: 'wrapper',
body: [
'逗你的,什么都没做,哎嘿!',
],
},
)}
</div>
)
}
export default Ai

View File

@@ -1,54 +1,50 @@
import {Layout, Menu} from 'antd'
import type {ItemType, MenuItemType} from 'antd/es/menu/interface'
import {contain, isEqual} from 'licia'
import React, {useEffect, useState} from 'react'
import {NavLink, Outlet, useLocation} from 'react-router'
const {Header, Content} = Layout
const headerNav: Array<MenuItemType> = [
{key: '/', label: '首页'},
{key: '/conversation', label: 'AI'},
]
import {ProLayout} from '@ant-design/pro-components'
import React, {useEffect} from 'react'
import {Outlet, useLocation, useNavigate} from 'react-router'
import {menus} from '../route.tsx'
const App: React.FC = () => {
const [_, setCurrentMenu] = useState<ItemType>()
const [selectedKeys, setSelectedKeys] = useState<Array<string>>([])
const navigate = useNavigate()
const location = useLocation()
useEffect(() => {
if (isEqual('/', location.pathname)) {
setSelectedKeys([location.pathname])
} else {
setSelectedKeys([headerNav.filter(nav => !isEqual(nav?.key, '/')).find(nav => contain(location.pathname, nav?.key))?.key as string ?? '/'])
}
setCurrentMenu(headerNav.find(nav => isEqual(nav?.key, location.pathname)))
console.log(location.pathname)
}, [location])
return (
<Layout className="app h-full">
<Header className="header flex items-center p-5">
<div className="title font-sans text-white flex flex-col mr-10">
<div className="main-title text-xl font-extrabold leading-normal">Hudi </div>
<div className="sub-title text-gray-300 font-bold leading-normal">Hudi </div>
<ProLayout
token={{
header: {
colorBgHeader: '#292f33',
colorHeaderTitle: '#ffffff',
colorTextMenu: '#dfdfdf',
colorTextMenuSecondary: '#dfdfdf',
colorTextMenuSelected: '#ffffff',
colorTextMenuActive: '#ffffff',
colorBgMenuItemSelected: '#22272b',
colorTextRightActionsItem: '#dfdfdf',
},
}}
logo={<img src="/icon.png" alt="logo"/>}
title="Hudi 服务总台"
route={menus}
location={{pathname: location.pathname}}
menu={{type: 'sub'}}
menuItemRender={(item, dom) => (
<div
onClick={() => {
navigate(item.path ?? '/')
}}
>
{dom}
</div>
<Menu
className="header-nav"
theme="dark"
mode="horizontal"
selectedKeys={selectedKeys}
items={headerNav.map(nav => ({
key: nav.key,
label: <NavLink className="font-bold" to={nav.key as string}>{nav.label}</NavLink>,
}))}
style={{minWidth: 0, flex: 'auto'}}
/>
</Header>
<Layout>
<Content className="content">
<Outlet/>
</Content>
</Layout>
</Layout>
)}
fixSiderbar={true}
layout="mix"
splitMenus={true}
style={{height: '100vh'}}
contentStyle={{backgroundColor: 'white', padding: '10px 10px 10px 20px'}}
>
<Outlet/>
</ProLayout>
)
}

View File

@@ -1,83 +0,0 @@
import {
CheckSquareOutlined,
CloudOutlined,
ClusterOutlined,
CompressOutlined,
InfoCircleOutlined,
SunOutlined,
SyncOutlined,
TableOutlined,
ToolOutlined,
} from '@ant-design/icons'
import {Layout, Menu, theme} from 'antd'
import type {ItemType} from 'antd/es/menu/interface'
import {isNil} from 'licia'
import React from 'react'
import {NavLink, Outlet} from 'react-router'
import {commonInfo} from '../util/amis.ts'
const {Sider, Content} = Layout
const generateNavItem: any = (key: string, label: string, icon?: any) => {
let nav: any = {
key: key,
label: <NavLink to={key}>{label}</NavLink>,
}
if (!isNil(icon)) {
nav['icon'] = icon
}
return nav
}
const siderNav: ItemType[] = [
generateNavItem('/', '概览', <InfoCircleOutlined/>),
generateNavItem('/home/table', '表任务', <TableOutlined/>),
generateNavItem('/home/queue', '压缩队列', <CompressOutlined/>),
generateNavItem('/home/version', '跨天', <SunOutlined/>),
generateNavItem(`/home/yarn/${commonInfo.clusters.sync_names()}/root/Sync`, '同步集群', <SyncOutlined/>),
generateNavItem(
`/home/yarn/${commonInfo.clusters.compaction_names()}/default/Compaction`,
'压缩集群',
<SyncOutlined/>,
),
generateNavItem('/home/cloud', '服务', <CloudOutlined/>),
{
label: '集群',
icon: <ClusterOutlined/>,
children: [
generateNavItem('/home/yarn_cluster', '总览', <InfoCircleOutlined/>),
...Object.keys(commonInfo.clusters.compaction).map(name => generateNavItem(
// @ts-ignore
`/home/yarn/${name}/${commonInfo.clusters.compaction[name]}`,
`${name} 集群`,
<ClusterOutlined/>,
)),
],
},
generateNavItem('/home/tool', '工具', <ToolOutlined/>),
generateNavItem('/home/task', '任务', <CheckSquareOutlined/>),
]
const Home: React.FC = () => {
const {
token: {
colorBgContainer,
},
} = theme.useToken()
return (
<Layout className="home min-h-full">
<Sider width={170} style={{backgroundColor: colorBgContainer}}>
<Menu
mode="inline"
defaultSelectedKeys={['/']}
items={siderNav}
/>
</Sider>
<Content className="p-3">
<Outlet/>
</Content>
</Layout>
)
}
export default Home

View File

@@ -1,4 +1,4 @@
import {amisRender} from '../util/amis.ts'
import {amisRender} from '../../util/amis.ts'
function Conversation() {
return (

View File

@@ -6,7 +6,7 @@ import {
serviceLogByAppName,
serviceLogByAppNameAndHost,
time,
} from '../util/amis.ts'
} from '../../util/amis.ts'
const cloudCrud = (title: string, path: string) => {
return {

View File

@@ -6,7 +6,7 @@ import {
paginationCommonOptions,
time,
yarnQueueCrud,
} from '../util/amis.ts'
} from '../../util/amis.ts'
const queueCrud = (name: string) => {
return {

View File

@@ -14,7 +14,7 @@ import {
tableMetaDialog,
tableRunningStateMapping,
timeAndFrom,
} from '../util/amis.ts'
} from '../../util/amis.ts'
function Table() {
return (

View File

@@ -1,5 +1,5 @@
import React from 'react'
import {amisRender, commonInfo, paginationCommonOptions, serviceLogByAppName, yarnCrudColumns} from '../util/amis.ts'
import {amisRender, commonInfo, paginationCommonOptions, serviceLogByAppName, yarnCrudColumns} from '../../util/amis.ts'
const Task: React.FC = () => {
return (

View File

@@ -10,7 +10,7 @@ import {
paginationCommonOptions,
readOnlyDialogOptions,
timelineColumns,
} from '../util/amis.ts'
} from '../../util/amis.ts'
const Tool: React.FC = () => {
return (

View File

@@ -10,7 +10,7 @@ import {
paginationCommonOptions,
tableMetaDialog,
versionUpdateStateMapping,
} from '../util/amis.ts'
} from '../../util/amis.ts'
function Version() {
return (

View File

@@ -7,7 +7,7 @@ import {
paginationCommonOptions,
yarnCrudColumns,
yarnQueueCrud,
} from '../util/amis.ts'
} from '../../util/amis.ts'
const Yarn: React.FC = () => {
const {clusters, queue, search} = useParams()

View File

@@ -1,5 +1,5 @@
import React from 'react'
import {amisRender, commonInfo, yarnQueueCrud} from '../util/amis.ts'
import {amisRender, commonInfo, yarnQueueCrud} from '../../util/amis.ts'
const YarnCluster: React.FC = () => {
return (

View File

@@ -0,0 +1,157 @@
import {
CheckSquareOutlined,
CloudOutlined,
ClusterOutlined,
CompressOutlined,
InfoCircleOutlined,
SunOutlined,
SyncOutlined,
TableOutlined,
ToolOutlined,
} from '@ant-design/icons'
import type {Route} from '@ant-design/pro-layout/es/typing'
import type {RouteObject} from 'react-router'
import Ai from './pages/Ai.tsx'
import App from './pages/App.tsx'
import Cloud from './pages/overview/Cloud.tsx'
import Overview from './pages/Overview.tsx'
import Queue from './pages/overview/Queue.tsx'
import Table from './pages/overview/Table.tsx'
import Task from './pages/overview/Task.tsx'
import Tool from './pages/overview/Tool.tsx'
import Version from './pages/overview/Version.tsx'
import Yarn from './pages/overview/Yarn.tsx'
import YarnCluster from './pages/overview/YarnCluster.tsx'
import {commonInfo} from './util/amis.ts'
export const routes: RouteObject[] = [
{
path: '/',
Component: App,
children: [
{
children: [
{
index: true,
Component: Overview,
},
{
path: 'table',
Component: Table,
},
{
path: 'queue',
Component: Queue,
},
{
path: 'version',
Component: Version,
},
{
path: 'yarn/:clusters/:queue/:search?',
Component: Yarn,
},
{
path: 'cloud',
Component: Cloud,
},
{
path: 'yarn_cluster',
Component: YarnCluster,
},
{
path: 'tool',
Component: Tool,
},
{
path: 'task',
Component: Task,
},
],
},
{
path: 'ai',
Component: Ai,
},
],
},
]
export const menus: Route = {
routes: [
{
path: '/',
name: '概览',
icon: <InfoCircleOutlined/>,
routes: [
{
path: '/',
name: '概览',
icon: <InfoCircleOutlined/>,
},
{
path: '/table',
name: '表任务',
icon: <TableOutlined/>,
},
{
path: '/queue',
name: '压缩队列',
icon: <CompressOutlined/>,
},
{
path: '/version',
name: '跨天',
icon: <SunOutlined/>,
},
{
path: `/yarn/${commonInfo.clusters.sync_names()}/root/Sync`,
name: '同步集群',
icon: <SyncOutlined/>,
},
{
path: `/yarn/${commonInfo.clusters.compaction_names()}/default/Compaction`,
name: '压缩集群',
icon: <SyncOutlined/>,
},
{
path: '/cloud',
name: '服务',
icon: <CloudOutlined/>,
},
{
path: '/yarn_cluster',
name: '集群',
icon: <ClusterOutlined/>,
routes: [
{
path: '/yarn_cluster',
name: '概览',
icon: <InfoCircleOutlined/>,
},
...Object.keys(commonInfo.clusters.compaction).map(name => ({
// @ts-ignore
path: `/yarn/${name}/${commonInfo.clusters.compaction[name]}`,
name: `${name} 集群`,
icon: <ClusterOutlined/>,
})),
],
},
{
path: '/tool',
name: '工具',
icon: <ToolOutlined/>,
},
{
path: '/task',
name: '任务',
icon: <CheckSquareOutlined/>,
},
],
},
{
path: '/ai',
name: 'AI',
}
],
}

View File

@@ -7,23 +7,6 @@
<springProperty scope="context" name="LOGGING_PARENT" source="logging.parent"/>
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
<appender name="Loki" class="com.github.loki4j.logback.Loki4jAppender">
<metricsEnabled>true</metricsEnabled>
<http class="com.github.loki4j.logback.ApacheHttpSender">
<url>${LOKI_PUSH_URL:-http://localhost/loki/api/v1/push}</url>
</http>
<format>
<label>
<pattern>app=${APP_NAME:-none},host=${HOSTNAME:-none},level=%level</pattern>
<readMarkers>true</readMarkers>
</label>
<message>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %p [${HOSTNAME}] [%t] %logger #@# %m%n%wEx</pattern>
</message>
<sortByTime>true</sortByTime>
</format>
</appender>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %clr(%5p) %clr([${HOSTNAME}]){yellow} %clr([%t]){magenta} %clr(%logger{40}){cyan} #@# %m%n%wEx</pattern>
@@ -45,7 +28,6 @@
<logger name="com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver" level="WARN"/>
<root level="INFO">
<appender-ref ref="Loki"/>
<appender-ref ref="Console"/>
<appender-ref ref="RollingFile"/>
</root>