1
This commit is contained in:
parent
a76685bbd6
commit
f6865cce59
623
frontend/package-lock.json
generated
623
frontend/package-lock.json
generated
@ -21,6 +21,9 @@
|
|||||||
"@antv/x6-plugin-snapline": "^2.1.7",
|
"@antv/x6-plugin-snapline": "^2.1.7",
|
||||||
"@antv/x6-plugin-transform": "^2.1.8",
|
"@antv/x6-plugin-transform": "^2.1.8",
|
||||||
"@antv/x6-react-shape": "^2.2.3",
|
"@antv/x6-react-shape": "^2.2.3",
|
||||||
|
"@formily/antd-v5": "^1.2.3",
|
||||||
|
"@formily/core": "^2.3.2",
|
||||||
|
"@formily/react": "^2.3.2",
|
||||||
"@hookform/resolvers": "^3.9.1",
|
"@hookform/resolvers": "^3.9.1",
|
||||||
"@logicflow/core": "^2.0.9",
|
"@logicflow/core": "^2.0.9",
|
||||||
"@logicflow/extension": "^2.0.13",
|
"@logicflow/extension": "^2.0.13",
|
||||||
@ -44,10 +47,11 @@
|
|||||||
"@types/recharts": "^1.8.29",
|
"@types/recharts": "^1.8.29",
|
||||||
"ajv": "^8.17.1",
|
"ajv": "^8.17.1",
|
||||||
"ajv-formats": "^3.0.1",
|
"ajv-formats": "^3.0.1",
|
||||||
"antd": "^5.22.2",
|
"antd": "^5.23.1",
|
||||||
"axios": "^1.6.2",
|
"axios": "^1.6.2",
|
||||||
"cmdk": "^1.0.4",
|
"cmdk": "^1.0.4",
|
||||||
"dagre": "^0.8.5",
|
"dagre": "^0.8.5",
|
||||||
|
"dayjs": "^1.11.13",
|
||||||
"form-render": "^2.5.1",
|
"form-render": "^2.5.1",
|
||||||
"less": "^4.2.1",
|
"less": "^4.2.1",
|
||||||
"monaco-editor": "^0.52.2",
|
"monaco-editor": "^0.52.2",
|
||||||
@ -112,11 +116,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/colors": {
|
"node_modules/@ant-design/colors": {
|
||||||
"version": "7.1.0",
|
"version": "7.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.2.0.tgz",
|
||||||
"integrity": "sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==",
|
"integrity": "sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ctrl/tinycolor": "^3.6.1"
|
"@ant-design/fast-color": "^2.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/cssinjs": {
|
"node_modules/@ant-design/cssinjs": {
|
||||||
@ -138,9 +143,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/cssinjs-utils": {
|
"node_modules/@ant-design/cssinjs-utils": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmmirror.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz",
|
||||||
"integrity": "sha512-2HAiyGGGnM0es40SxdszeQAU5iWp41wBIInq+ONTCKjlSKOrzQfnw4JDtB8IBmqE6tQaEKwmzTP2LGdt5DSwYQ==",
|
"integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/cssinjs": "^1.21.0",
|
"@ant-design/cssinjs": "^1.21.0",
|
||||||
"@babel/runtime": "^7.23.2",
|
"@babel/runtime": "^7.23.2",
|
||||||
@ -163,9 +169,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ant-design/icons": {
|
"node_modules/@ant-design/icons": {
|
||||||
"version": "5.5.1",
|
"version": "5.5.2",
|
||||||
"resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.5.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.5.2.tgz",
|
||||||
"integrity": "sha512-0UrM02MA2iDIgvLatWrj6YTCYe0F/cwXvVE0E2SqGrL7PZireQwgEKTKBisWpZyal5eXZLvuM98kju6YtYne8w==",
|
"integrity": "sha512-xc53rjVBl9v2BqFxUjZGti/RfdDeA8/6KYglmInM2PNqSXc/WfuGDTifJI/ZsokJK0aeKvOIbXc9y2g8ILAhEA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/colors": "^7.0.0",
|
"@ant-design/colors": "^7.0.0",
|
||||||
"@ant-design/icons-svg": "^4.4.0",
|
"@ant-design/icons-svg": "^4.4.0",
|
||||||
@ -1672,6 +1679,224 @@
|
|||||||
"integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==",
|
"integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@formily/antd-v5": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/antd-v5/-/antd-v5-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-QH9x1vNyMtXGuWAkZ8z0qu7akpp8NoOLsM3onKMPAdvSEHBbZDbc6xtdODSmOuhRtzcN0rjXf29oumyidaoeFQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@ant-design/cssinjs": "^1.3.1",
|
||||||
|
"@ant-design/icons": "^5.0.0",
|
||||||
|
"@dnd-kit/core": "^6.0.0",
|
||||||
|
"@dnd-kit/sortable": "^7.0.0",
|
||||||
|
"@formily/core": "^2.2.0",
|
||||||
|
"@formily/grid": "^2.2.0",
|
||||||
|
"@formily/json-schema": "^2.2.0",
|
||||||
|
"@formily/react": "^2.2.0",
|
||||||
|
"@formily/reactive": "^2.2.0",
|
||||||
|
"@formily/reactive-react": "^2.2.0",
|
||||||
|
"@formily/shared": "^2.2.0",
|
||||||
|
"classnames": "^2.2.6",
|
||||||
|
"react-sticky-box": "^1.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": ">=16.8.0 || >=17.0.0",
|
||||||
|
"@types/react-dom": ">=16.8.0 || >=17.0.0",
|
||||||
|
"antd": "^5.13.0",
|
||||||
|
"react": ">=16.8.0 || >=17.0.0",
|
||||||
|
"react-dom": ">=16.8.0",
|
||||||
|
"react-is": ">=16.8.0 || >=17.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/core": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/core/-/core-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-qS02mKWDRdm5IYnx3b6L4i/i7oFEBbVotF6B3xdqgbkeSjdzSz81/aJnEr0Sbi3yCgh1FhA0x+QKkpWnE8/GDQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/reactive": "2.3.2",
|
||||||
|
"@formily/shared": "2.3.2",
|
||||||
|
"@formily/validator": "2.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/grid": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/grid/-/grid-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-cbPBOZKHT5xp3DIcn+Tsqm9B2VMWDsfnhbGl7qvKza8v7cDn7io2aFp8a7sQTeZVmRT+A8H30LjCAKJS9n6+2w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/reactive": "2.3.2",
|
||||||
|
"@juggle/resize-observer": "^3.3.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "4.x || 5.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/json-schema": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/json-schema/-/json-schema-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-DFsdrbxFvdxUtrD5mVRb8USUWJV6KkhSiz83wxA779lgntGDLrwuE0DI2dVg8Vm4dZsK79iB+XhWidaNqH41fQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/core": "2.3.2",
|
||||||
|
"@formily/reactive": "2.3.2",
|
||||||
|
"@formily/shared": "2.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": ">4.1.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/path": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/path/-/path-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-KK8h/CupHOs4HIgu9JucqwWvIr8Nbmof++Kby0NdNFHdTN5nAyVzStS8VEPFPGRkQaXV3AH+FVGAxgucmEy4ZA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/react": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/react/-/react-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-p0jCtX2K9b2/OUdXcDGJhRX4gU4zGFXg1uOYd49iqV1EP+XhRa/4OGAz7QMnUP0K/3FVLboqbQS2nMOKY1rrPg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/core": "2.3.2",
|
||||||
|
"@formily/json-schema": "2.3.2",
|
||||||
|
"@formily/reactive": "2.3.2",
|
||||||
|
"@formily/reactive-react": "2.3.2",
|
||||||
|
"@formily/shared": "2.3.2",
|
||||||
|
"@formily/validator": "2.3.2",
|
||||||
|
"hoist-non-react-statics": "^3.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": ">=16.8.0",
|
||||||
|
"@types/react-dom": ">=16.8.0",
|
||||||
|
"react": ">=16.8.0",
|
||||||
|
"react-dom": ">=16.8.0",
|
||||||
|
"react-is": ">=16.8.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@types/react-dom": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/react/node_modules/hoist-non-react-statics": {
|
||||||
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"react-is": "^16.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/react/node_modules/hoist-non-react-statics/node_modules/react-is": {
|
||||||
|
"version": "16.13.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
|
||||||
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@formily/reactive": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/reactive/-/reactive-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-fw9EBWyBNSo3d1diX+HW3v6fBYqmn5zRM+L8le03XGft847LaajCYkjXiZXSzj7v8U4qzjhURIcqVYgmi4OW8g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/reactive-react": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/reactive-react/-/reactive-react-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-SdlKSDbUzgddasDnuUugWR02AGC426jHhc7UJuUU1W4ORAuYQunqdMu7xB7/aF4OAVCw4j6KECQtIPo4kftkFg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/reactive": "2.3.2",
|
||||||
|
"hoist-non-react-statics": "^3.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": ">=16.8.0",
|
||||||
|
"@types/react-dom": ">=16.8.0",
|
||||||
|
"react": ">=16.8.0",
|
||||||
|
"react-dom": ">=16.8.0",
|
||||||
|
"react-is": ">=16.8.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@types/react-dom": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/reactive-react/node_modules/hoist-non-react-statics": {
|
||||||
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": {
|
||||||
|
"react-is": "^16.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/reactive-react/node_modules/hoist-non-react-statics/node_modules/react-is": {
|
||||||
|
"version": "16.13.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
|
||||||
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@formily/shared": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/shared/-/shared-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-hb8eL28Dqe4WQzGtxC3h7OwG9VPPBXtfKUfmnRkaBMJ8zn2KmdYOP8YnAkwdO2ZMgxtkOl0hku0Ufm2PwP3ziA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/path": "2.3.2",
|
||||||
|
"camel-case": "^4.1.1",
|
||||||
|
"lower-case": "^2.0.1",
|
||||||
|
"no-case": "^3.0.4",
|
||||||
|
"param-case": "^3.0.4",
|
||||||
|
"pascal-case": "^3.1.1",
|
||||||
|
"upper-case": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formily/validator": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@formily/validator/-/validator-2.3.2.tgz",
|
||||||
|
"integrity": "sha512-XoY31kUypHB8MIw9jhp/Pb0fDFan5wPhR9Hgz/HiTPUdpg8l7kxzHRMZieqtL4YbtFzJD4wpk1+XrylILpPGYg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@formily/shared": "2.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"npm": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@hookform/resolvers": {
|
"node_modules/@hookform/resolvers": {
|
||||||
"version": "3.9.1",
|
"version": "3.9.1",
|
||||||
"resolved": "https://registry.npmmirror.com/@hookform/resolvers/-/resolvers-3.9.1.tgz",
|
"resolved": "https://registry.npmmirror.com/@hookform/resolvers/-/resolvers-3.9.1.tgz",
|
||||||
@ -1838,6 +2063,12 @@
|
|||||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@juggle/resize-observer": {
|
||||||
|
"version": "3.4.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
|
||||||
|
"integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
},
|
||||||
"node_modules/@logicflow/core": {
|
"node_modules/@logicflow/core": {
|
||||||
"version": "2.0.9",
|
"version": "2.0.9",
|
||||||
"resolved": "https://registry.npmmirror.com/@logicflow/core/-/core-2.0.9.tgz",
|
"resolved": "https://registry.npmmirror.com/@logicflow/core/-/core-2.0.9.tgz",
|
||||||
@ -2932,6 +3163,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz",
|
||||||
"integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==",
|
"integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"rc-util": "^5.27.0"
|
"rc-util": "^5.27.0"
|
||||||
@ -2945,6 +3177,7 @@
|
|||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz",
|
||||||
"integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==",
|
"integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.0"
|
"@babel/runtime": "^7.18.0"
|
||||||
},
|
},
|
||||||
@ -3023,16 +3256,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rc-component/trigger": {
|
"node_modules/@rc-component/trigger": {
|
||||||
"version": "2.2.5",
|
"version": "2.2.6",
|
||||||
"resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.2.5.tgz",
|
"resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.2.6.tgz",
|
||||||
"integrity": "sha512-F1EJ4KjFpGAHAjuKvOyZB/6IZDkVx0bHl0M4fQM5wXcmm7lgTgVSSnR3bXwdmS6jOJGHOqfDxIJW3WUvwMIXhQ==",
|
"integrity": "sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.23.2",
|
"@babel/runtime": "^7.23.2",
|
||||||
"@rc-component/portal": "^1.1.0",
|
"@rc-component/portal": "^1.1.0",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
"rc-motion": "^2.0.0",
|
"rc-motion": "^2.0.0",
|
||||||
"rc-resize-observer": "^1.3.1",
|
"rc-resize-observer": "^1.3.1",
|
||||||
"rc-util": "^5.38.0"
|
"rc-util": "^5.44.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.x"
|
"node": ">=8.x"
|
||||||
@ -3496,7 +3730,6 @@
|
|||||||
"version": "18.3.5",
|
"version": "18.3.5",
|
||||||
"resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.5.tgz",
|
"resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.5.tgz",
|
||||||
"integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==",
|
"integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==",
|
||||||
"devOptional": true,
|
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "^18.0.0"
|
"@types/react": "^18.0.0"
|
||||||
}
|
}
|
||||||
@ -4015,57 +4248,58 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/antd": {
|
"node_modules/antd": {
|
||||||
"version": "5.22.2",
|
"version": "5.23.1",
|
||||||
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.22.2.tgz",
|
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.23.1.tgz",
|
||||||
"integrity": "sha512-vihhiJbm9VG3d6boUeD1q2MXMax+qBrXhgqCEC+45v8iGUF6m4Ct+lFiCW4oWaN3EABOsbVA6Svy3Rj/QkQFKw==",
|
"integrity": "sha512-rg5xd5LotHw0IRyo/nsiUN/EEV3e+xU4V4UmIb/62hMN9+3APyz1Ohjf17a+fN13jC8sNY1hP1K252SU2Th0xA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/colors": "^7.1.0",
|
"@ant-design/colors": "^7.2.0",
|
||||||
"@ant-design/cssinjs": "^1.21.1",
|
"@ant-design/cssinjs": "^1.22.0",
|
||||||
"@ant-design/cssinjs-utils": "^1.1.1",
|
"@ant-design/cssinjs-utils": "^1.1.3",
|
||||||
"@ant-design/icons": "^5.5.1",
|
"@ant-design/fast-color": "^2.0.6",
|
||||||
|
"@ant-design/icons": "^5.5.2",
|
||||||
"@ant-design/react-slick": "~1.1.2",
|
"@ant-design/react-slick": "~1.1.2",
|
||||||
"@babel/runtime": "^7.25.7",
|
"@babel/runtime": "^7.26.0",
|
||||||
"@ctrl/tinycolor": "^3.6.1",
|
|
||||||
"@rc-component/color-picker": "~2.0.1",
|
"@rc-component/color-picker": "~2.0.1",
|
||||||
"@rc-component/mutate-observer": "^1.1.0",
|
"@rc-component/mutate-observer": "^1.1.0",
|
||||||
"@rc-component/qrcode": "~1.0.0",
|
"@rc-component/qrcode": "~1.0.0",
|
||||||
"@rc-component/tour": "~1.15.1",
|
"@rc-component/tour": "~1.15.1",
|
||||||
"@rc-component/trigger": "^2.2.5",
|
"@rc-component/trigger": "^2.2.6",
|
||||||
"classnames": "^2.5.1",
|
"classnames": "^2.5.1",
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"dayjs": "^1.11.11",
|
"dayjs": "^1.11.11",
|
||||||
"rc-cascader": "~3.30.0",
|
"rc-cascader": "~3.33.0",
|
||||||
"rc-checkbox": "~3.3.0",
|
"rc-checkbox": "~3.5.0",
|
||||||
"rc-collapse": "~3.9.0",
|
"rc-collapse": "~3.9.0",
|
||||||
"rc-dialog": "~9.6.0",
|
"rc-dialog": "~9.6.0",
|
||||||
"rc-drawer": "~7.2.0",
|
"rc-drawer": "~7.2.0",
|
||||||
"rc-dropdown": "~4.2.0",
|
"rc-dropdown": "~4.2.1",
|
||||||
"rc-field-form": "~2.5.1",
|
"rc-field-form": "~2.7.0",
|
||||||
"rc-image": "~7.11.0",
|
"rc-image": "~7.11.0",
|
||||||
"rc-input": "~1.6.3",
|
"rc-input": "~1.7.2",
|
||||||
"rc-input-number": "~9.3.0",
|
"rc-input-number": "~9.4.0",
|
||||||
"rc-mentions": "~2.17.0",
|
"rc-mentions": "~2.19.1",
|
||||||
"rc-menu": "~9.16.0",
|
"rc-menu": "~9.16.0",
|
||||||
"rc-motion": "^2.9.3",
|
"rc-motion": "^2.9.5",
|
||||||
"rc-notification": "~5.6.2",
|
"rc-notification": "~5.6.2",
|
||||||
"rc-pagination": "~4.3.0",
|
"rc-pagination": "~5.0.0",
|
||||||
"rc-picker": "~4.8.1",
|
"rc-picker": "~4.9.2",
|
||||||
"rc-progress": "~4.0.0",
|
"rc-progress": "~4.0.0",
|
||||||
"rc-rate": "~2.13.0",
|
"rc-rate": "~2.13.0",
|
||||||
"rc-resize-observer": "^1.4.0",
|
"rc-resize-observer": "^1.4.3",
|
||||||
"rc-segmented": "~2.5.0",
|
"rc-segmented": "~2.7.0",
|
||||||
"rc-select": "~14.16.3",
|
"rc-select": "~14.16.5",
|
||||||
"rc-slider": "~11.1.7",
|
"rc-slider": "~11.1.8",
|
||||||
"rc-steps": "~6.0.1",
|
"rc-steps": "~6.0.1",
|
||||||
"rc-switch": "~4.1.0",
|
"rc-switch": "~4.1.0",
|
||||||
"rc-table": "~7.48.1",
|
"rc-table": "~7.50.2",
|
||||||
"rc-tabs": "~15.4.0",
|
"rc-tabs": "~15.5.0",
|
||||||
"rc-textarea": "~1.8.2",
|
"rc-textarea": "~1.9.0",
|
||||||
"rc-tooltip": "~6.2.1",
|
"rc-tooltip": "~6.3.2",
|
||||||
"rc-tree": "~5.10.1",
|
"rc-tree": "~5.13.0",
|
||||||
"rc-tree-select": "~5.24.4",
|
"rc-tree-select": "~5.27.0",
|
||||||
"rc-upload": "~4.8.1",
|
"rc-upload": "~4.8.1",
|
||||||
"rc-util": "^5.43.0",
|
"rc-util": "^5.44.3",
|
||||||
"scroll-into-view-if-needed": "^3.1.0",
|
"scroll-into-view-if-needed": "^3.1.0",
|
||||||
"throttle-debounce": "^5.0.2"
|
"throttle-debounce": "^5.0.2"
|
||||||
},
|
},
|
||||||
@ -4314,6 +4548,16 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/camel-case": {
|
||||||
|
"version": "4.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz",
|
||||||
|
"integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pascal-case": "^3.1.2",
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/camelcase-css": {
|
"node_modules/camelcase-css": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
||||||
@ -4820,28 +5064,11 @@
|
|||||||
"lodash": "^4.17.15"
|
"lodash": "^4.17.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/date-fns": {
|
|
||||||
"version": "2.30.0",
|
|
||||||
"resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-2.30.0.tgz",
|
|
||||||
"integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/runtime": "^7.21.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.11"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/date-fns"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/dayjs": {
|
"node_modules/dayjs": {
|
||||||
"version": "1.11.13",
|
"version": "1.11.13",
|
||||||
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
|
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
|
||||||
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
|
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "4.3.7",
|
"version": "4.3.7",
|
||||||
@ -4945,6 +5172,16 @@
|
|||||||
"csstype": "^3.0.2"
|
"csstype": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/dot-case": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"no-case": "^3.0.4",
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/eastasianwidth": {
|
"node_modules/eastasianwidth": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||||||
@ -6262,6 +6499,15 @@
|
|||||||
"loose-envify": "cli.js"
|
"loose-envify": "cli.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/lower-case": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lru-cache": {
|
"node_modules/lru-cache": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||||
@ -6465,17 +6711,6 @@
|
|||||||
"mobx": "^4.13.1 || ^5.13.1"
|
"mobx": "^4.13.1 || ^5.13.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/moment": {
|
|
||||||
"version": "2.30.1",
|
|
||||||
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
|
|
||||||
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/monaco-editor": {
|
"node_modules/monaco-editor": {
|
||||||
"version": "0.52.2",
|
"version": "0.52.2",
|
||||||
"resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.52.2.tgz",
|
"resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.52.2.tgz",
|
||||||
@ -6550,6 +6785,16 @@
|
|||||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/no-case": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"lower-case": "^2.0.2",
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.18",
|
"version": "2.0.18",
|
||||||
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
|
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
|
||||||
@ -6662,6 +6907,16 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BlueOak-1.0.0"
|
"license": "BlueOak-1.0.0"
|
||||||
},
|
},
|
||||||
|
"node_modules/param-case": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz",
|
||||||
|
"integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"dot-case": "^3.0.4",
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/parent-module": {
|
"node_modules/parent-module": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
|
||||||
@ -6700,6 +6955,16 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/pascal-case": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"no-case": "^3.0.4",
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/path-exists": {
|
"node_modules/path-exists": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
|
||||||
@ -7134,14 +7399,15 @@
|
|||||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||||
},
|
},
|
||||||
"node_modules/rc-cascader": {
|
"node_modules/rc-cascader": {
|
||||||
"version": "3.30.0",
|
"version": "3.33.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.30.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.33.0.tgz",
|
||||||
"integrity": "sha512-rrzSbk1Bdqbu+pDwiLCLHu72+lwX9BZ28+JKzoi0DWZ4N29QYFeip8Gctl33QVd2Xg3Rf14D3yAOG76ElJw16w==",
|
"integrity": "sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.25.7",
|
"@babel/runtime": "^7.25.7",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"rc-select": "~14.16.2",
|
"rc-select": "~14.16.2",
|
||||||
"rc-tree": "~5.10.1",
|
"rc-tree": "~5.13.0",
|
||||||
"rc-util": "^5.43.0"
|
"rc-util": "^5.43.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -7150,9 +7416,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-checkbox": {
|
"node_modules/rc-checkbox": {
|
||||||
"version": "3.3.0",
|
"version": "3.5.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.5.0.tgz",
|
||||||
"integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==",
|
"integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
@ -7211,14 +7478,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-dropdown": {
|
"node_modules/rc-dropdown": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.1.tgz",
|
||||||
"integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==",
|
"integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@rc-component/trigger": "^2.0.0",
|
"@rc-component/trigger": "^2.0.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-util": "^5.17.0"
|
"rc-util": "^5.44.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=16.11.0",
|
"react": ">=16.11.0",
|
||||||
@ -7226,9 +7494,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-field-form": {
|
"node_modules/rc-field-form": {
|
||||||
"version": "2.5.1",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-2.5.1.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-2.7.0.tgz",
|
||||||
"integrity": "sha512-33hunXwynQJyeae7LS3hMGTXNeRBjiPyPYgB0824EbmLHiXC1EBGyUwRh6xjLRy9c+en5WARYN0gJz5+JAqwig==",
|
"integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.0",
|
"@babel/runtime": "^7.18.0",
|
||||||
"@rc-component/async-validator": "^5.0.3",
|
"@rc-component/async-validator": "^5.0.3",
|
||||||
@ -7260,9 +7529,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-input": {
|
"node_modules/rc-input": {
|
||||||
"version": "1.6.3",
|
"version": "1.7.2",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.6.3.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.7.2.tgz",
|
||||||
"integrity": "sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==",
|
"integrity": "sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
@ -7274,14 +7544,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-input-number": {
|
"node_modules/rc-input-number": {
|
||||||
"version": "9.3.0",
|
"version": "9.4.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.4.0.tgz",
|
||||||
"integrity": "sha512-JQ363ywqRyxwgVxpg2z2kja3CehTpYdqR7emJ/6yJjRdbvo+RvfE83fcpBCIJRq3zLp8SakmEXq60qzWyZ7Usw==",
|
"integrity": "sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/mini-decimal": "^1.0.1",
|
"@rc-component/mini-decimal": "^1.0.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"rc-input": "~1.6.0",
|
"rc-input": "~1.7.1",
|
||||||
"rc-util": "^5.40.1"
|
"rc-util": "^5.40.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -7290,16 +7561,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-mentions": {
|
"node_modules/rc-mentions": {
|
||||||
"version": "2.17.0",
|
"version": "2.19.1",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.17.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.19.1.tgz",
|
||||||
"integrity": "sha512-sfHy+qLvc+p8jx8GUsujZWXDOIlIimp6YQz7N5ONQ6bHsa2kyG+BLa5k2wuxgebBbH97is33wxiyq5UkiXRpHA==",
|
"integrity": "sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.22.5",
|
"@babel/runtime": "^7.22.5",
|
||||||
"@rc-component/trigger": "^2.0.0",
|
"@rc-component/trigger": "^2.0.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-input": "~1.6.0",
|
"rc-input": "~1.7.1",
|
||||||
"rc-menu": "~9.16.0",
|
"rc-menu": "~9.16.0",
|
||||||
"rc-textarea": "~1.8.0",
|
"rc-textarea": "~1.9.0",
|
||||||
"rc-util": "^5.34.1"
|
"rc-util": "^5.34.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -7311,6 +7583,7 @@
|
|||||||
"version": "9.16.0",
|
"version": "9.16.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.16.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.16.0.tgz",
|
||||||
"integrity": "sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w==",
|
"integrity": "sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/trigger": "^2.0.0",
|
"@rc-component/trigger": "^2.0.0",
|
||||||
@ -7325,13 +7598,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-motion": {
|
"node_modules/rc-motion": {
|
||||||
"version": "2.9.3",
|
"version": "2.9.5",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.3.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.5.tgz",
|
||||||
"integrity": "sha512-rkW47ABVkic7WEB0EKJqzySpvDqwl60/tdkY7hWP7dYnh5pm0SzJpo54oW3TDUGXV5wfxXFmMkxrzRRbotQ0+w==",
|
"integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
"rc-util": "^5.43.0"
|
"rc-util": "^5.44.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=16.9.0",
|
"react": ">=16.9.0",
|
||||||
@ -7357,9 +7631,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-overflow": {
|
"node_modules/rc-overflow": {
|
||||||
"version": "1.3.2",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.4.1.tgz",
|
||||||
"integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==",
|
"integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
@ -7372,9 +7647,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-pagination": {
|
"node_modules/rc-pagination": {
|
||||||
"version": "4.3.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-4.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-5.0.0.tgz",
|
||||||
"integrity": "sha512-UubEWA0ShnroQ1tDa291Fzw6kj0iOeF26IsUObxYTpimgj4/qPCWVFl18RLZE+0Up1IZg0IK4pMn6nB3mjvB7g==",
|
"integrity": "sha512-QjrPvbAQwps93iluvFM62AEYglGYhWW2q/nliQqmvkTi4PXP4HHoh00iC1Sa5LLVmtWQHmG73fBi2x6H6vFHRg==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
@ -7386,9 +7662,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-picker": {
|
"node_modules/rc-picker": {
|
||||||
"version": "4.8.1",
|
"version": "4.9.2",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.8.1.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.9.2.tgz",
|
||||||
"integrity": "sha512-lj9hXXMSkbjFUIhfQh8XH698ybxnoBOfq7pdM1FvfSyDwdFhdQa7dvsIYwo6Uz7Zp1wVkfw5rOJO3MpdWzoHsg==",
|
"integrity": "sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.24.7",
|
"@babel/runtime": "^7.24.7",
|
||||||
"@rc-component/trigger": "^2.0.0",
|
"@rc-component/trigger": "^2.0.0",
|
||||||
@ -7455,13 +7732,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-resize-observer": {
|
"node_modules/rc-resize-observer": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.3",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz",
|
||||||
"integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==",
|
"integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.7",
|
"@babel/runtime": "^7.20.7",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
"rc-util": "^5.38.0",
|
"rc-util": "^5.44.1",
|
||||||
"resize-observer-polyfill": "^1.5.1"
|
"resize-observer-polyfill": "^1.5.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -7470,9 +7748,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-segmented": {
|
"node_modules/rc-segmented": {
|
||||||
"version": "2.5.0",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.7.0.tgz",
|
||||||
"integrity": "sha512-B28Fe3J9iUFOhFJET3RoXAPFJ2u47QvLSYcZWC4tFYNGPEjug5LAxEasZlA/PpAxhdOPqGWsGbSj7ftneukJnw==",
|
"integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.1",
|
"@babel/runtime": "^7.11.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
@ -7485,9 +7764,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-select": {
|
"node_modules/rc-select": {
|
||||||
"version": "14.16.3",
|
"version": "14.16.5",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.16.3.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.16.5.tgz",
|
||||||
"integrity": "sha512-51+j6s3fJJJXB7E+B6W1hM4Tjzv1B/Decooz9ilgegDBt3ZAth1b/xMwYCTrT5BbG2e53XACQsyDib2+3Ro1fg==",
|
"integrity": "sha512-cRls713egTcitJ7WUXhHEf22h3U1OMC8nbw9+HN4Fniew8Xo3avgEDvIeGRwhbiyPNbQR23AwP+tt6KWUcB4IA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/trigger": "^2.1.1",
|
"@rc-component/trigger": "^2.1.1",
|
||||||
@ -7506,9 +7786,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-slider": {
|
"node_modules/rc-slider": {
|
||||||
"version": "11.1.7",
|
"version": "11.1.8",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-11.1.7.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-11.1.8.tgz",
|
||||||
"integrity": "sha512-ytYbZei81TX7otdC0QvoYD72XSlxvTihNth5OeZ6PMXyEDq/vHdWFulQmfDGyXK1NwKwSlKgpvINOa88uT5g2A==",
|
"integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
@ -7554,15 +7835,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-table": {
|
"node_modules/rc-table": {
|
||||||
"version": "7.48.1",
|
"version": "7.50.2",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.48.1.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.50.2.tgz",
|
||||||
"integrity": "sha512-Z4mDKjWg+xz/Ezdw6ivWcbqRpaJ0QfCORRoRrlrw65KSGZLK8OcTdacH22/fyGb8L4It/0/9qcMm8VrVAk/WBw==",
|
"integrity": "sha512-+nJbzxzstBriLb5sr9U7Vjs7+4dO8cWlouQbMwBVYghk2vr508bBdkHJeP/z9HVjAIKmAgMQKxmtbgDd3gc5wA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"@rc-component/context": "^1.4.0",
|
"@rc-component/context": "^1.4.0",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"rc-resize-observer": "^1.1.0",
|
"rc-resize-observer": "^1.1.0",
|
||||||
"rc-util": "^5.41.0",
|
"rc-util": "^5.44.3",
|
||||||
"rc-virtual-list": "^3.14.2"
|
"rc-virtual-list": "^3.14.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -7574,9 +7856,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tabs": {
|
"node_modules/rc-tabs": {
|
||||||
"version": "15.4.0",
|
"version": "15.5.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.4.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.5.0.tgz",
|
||||||
"integrity": "sha512-llKuyiAVqmXm2z7OrmhX5cNb2ueZaL8ZyA2P4R+6/72NYYcbEgOXibwHiQCFY2RiN3swXl53SIABi2CumUS02g==",
|
"integrity": "sha512-NrDcTaUJLh9UuDdMBkjKTn97U9iXG44s9D03V5NHkhEDWO5/nC6PwC3RhkCWFMKB9hh+ryqgZ+TIr1b9Jd/hnQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -7595,13 +7878,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-textarea": {
|
"node_modules/rc-textarea": {
|
||||||
"version": "1.8.2",
|
"version": "1.9.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.8.2.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.9.0.tgz",
|
||||||
"integrity": "sha512-UFAezAqltyR00a8Lf0IPAyTd29Jj9ee8wt8DqXyDMal7r/Cg/nDt3e1OOv3Th4W6mKaZijjgwuPXhAfVNTN8sw==",
|
"integrity": "sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
"rc-input": "~1.6.0",
|
"rc-input": "~1.7.1",
|
||||||
"rc-resize-observer": "^1.0.0",
|
"rc-resize-observer": "^1.0.0",
|
||||||
"rc-util": "^5.27.0"
|
"rc-util": "^5.27.0"
|
||||||
},
|
},
|
||||||
@ -7611,9 +7895,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tooltip": {
|
"node_modules/rc-tooltip": {
|
||||||
"version": "6.2.1",
|
"version": "6.3.2",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.2.1.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.3.2.tgz",
|
||||||
"integrity": "sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg==",
|
"integrity": "sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"@rc-component/trigger": "^2.0.0",
|
"@rc-component/trigger": "^2.0.0",
|
||||||
@ -7625,9 +7910,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tree": {
|
"node_modules/rc-tree": {
|
||||||
"version": "5.10.1",
|
"version": "5.13.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.10.1.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.13.0.tgz",
|
||||||
"integrity": "sha512-FPXb3tT/u39mgjr6JNlHaUTYfHkVGW56XaGDahDpEFLGsnPxGcVLNTjcqoQb/GNbSCycl7tD7EvIymwOTP0+Yw==",
|
"integrity": "sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -7644,14 +7930,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-tree-select": {
|
"node_modules/rc-tree-select": {
|
||||||
"version": "5.24.5",
|
"version": "5.27.0",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.24.5.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.27.0.tgz",
|
||||||
"integrity": "sha512-PnyR8LZJWaiEFw0SHRqo4MNQWyyZsyMs8eNmo68uXZWjxc7QqeWcjPPoONN0rc90c3HZqGF9z+Roz+GLzY5GXA==",
|
"integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.25.7",
|
"@babel/runtime": "^7.25.7",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
"rc-select": "~14.16.2",
|
"rc-select": "~14.16.2",
|
||||||
"rc-tree": "~5.10.1",
|
"rc-tree": "~5.13.0",
|
||||||
"rc-util": "^5.43.0"
|
"rc-util": "^5.43.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -7704,9 +7991,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-util": {
|
"node_modules/rc-util": {
|
||||||
"version": "5.43.0",
|
"version": "5.44.3",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.43.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.3.tgz",
|
||||||
"integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==",
|
"integrity": "sha512-q6KCcOFk3rv/zD3MckhJteZxb0VjAIFuf622B7ElK4vfrZdAzs16XR5p3VTdy3+U5jfJU5ACz4QnhLSuAGe5dA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"react-is": "^18.2.0"
|
"react-is": "^18.2.0"
|
||||||
@ -7717,9 +8005,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc-virtual-list": {
|
"node_modules/rc-virtual-list": {
|
||||||
"version": "3.15.0",
|
"version": "3.17.1",
|
||||||
"resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.15.0.tgz",
|
"resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.17.1.tgz",
|
||||||
"integrity": "sha512-dF2YQztqrU3ijAeWOqscTshCEr7vpimzSqAVjO1AyAmaqcHulaXpnGR0ptK5PXfxTUy48VkJOiglMIxlkYGs0w==",
|
"integrity": "sha512-n9rKy6BB/Hi/LsOJr9ILpeFxDJfAIYzFYX1famZb0KLQrlsdxNBDsBjBY9lblJ35MTRJwi06ohv5ma9uTUeLog==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.0",
|
"@babel/runtime": "^7.20.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
@ -7930,6 +8219,18 @@
|
|||||||
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-sticky-box": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/react-sticky-box/-/react-sticky-box-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-Kyvtppdtv1KqJyNU4DtrSMI0unyQRgtraZvVQ0GAazVbYiTsIVpyhpr+5R0Aavzu4uJNSe1awj2rk/qI7i6Zfw==",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"resize-observer-polyfill": "^1.5.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-style-singleton": {
|
"node_modules/react-style-singleton": {
|
||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
|
"resolved": "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
|
||||||
@ -8874,7 +9175,6 @@
|
|||||||
"version": "5.7.2",
|
"version": "5.7.2",
|
||||||
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.7.2.tgz",
|
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.7.2.tgz",
|
||||||
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
|
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
@ -8926,6 +9226,15 @@
|
|||||||
"browserslist": ">= 4.21.0"
|
"browserslist": ">= 4.21.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/upper-case": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/upper-case/-/upper-case-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/uri-js": {
|
"node_modules/uri-js": {
|
||||||
"version": "4.4.1",
|
"version": "4.4.1",
|
||||||
"resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
|
"resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
|
||||||
|
|||||||
@ -23,6 +23,9 @@
|
|||||||
"@antv/x6-plugin-snapline": "^2.1.7",
|
"@antv/x6-plugin-snapline": "^2.1.7",
|
||||||
"@antv/x6-plugin-transform": "^2.1.8",
|
"@antv/x6-plugin-transform": "^2.1.8",
|
||||||
"@antv/x6-react-shape": "^2.2.3",
|
"@antv/x6-react-shape": "^2.2.3",
|
||||||
|
"@formily/antd-v5": "^1.2.3",
|
||||||
|
"@formily/core": "^2.3.2",
|
||||||
|
"@formily/react": "^2.3.2",
|
||||||
"@hookform/resolvers": "^3.9.1",
|
"@hookform/resolvers": "^3.9.1",
|
||||||
"@logicflow/core": "^2.0.9",
|
"@logicflow/core": "^2.0.9",
|
||||||
"@logicflow/extension": "^2.0.13",
|
"@logicflow/extension": "^2.0.13",
|
||||||
@ -46,10 +49,11 @@
|
|||||||
"@types/recharts": "^1.8.29",
|
"@types/recharts": "^1.8.29",
|
||||||
"ajv": "^8.17.1",
|
"ajv": "^8.17.1",
|
||||||
"ajv-formats": "^3.0.1",
|
"ajv-formats": "^3.0.1",
|
||||||
"antd": "^5.22.2",
|
"antd": "^5.23.1",
|
||||||
"axios": "^1.6.2",
|
"axios": "^1.6.2",
|
||||||
"cmdk": "^1.0.4",
|
"cmdk": "^1.0.4",
|
||||||
"dagre": "^0.8.5",
|
"dagre": "^0.8.5",
|
||||||
|
"dayjs": "^1.11.13",
|
||||||
"form-render": "^2.5.1",
|
"form-render": "^2.5.1",
|
||||||
"less": "^4.2.1",
|
"less": "^4.2.1",
|
||||||
"monaco-editor": "^0.52.2",
|
"monaco-editor": "^0.52.2",
|
||||||
|
|||||||
@ -0,0 +1,137 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {
|
||||||
|
Dialog,
|
||||||
|
DialogContent,
|
||||||
|
DialogHeader,
|
||||||
|
DialogTitle,
|
||||||
|
DialogDescription
|
||||||
|
} from "@/components/ui/dialog";
|
||||||
|
import type {DeploymentConfig} from '../types';
|
||||||
|
import {FormButtonGroup, FormItem, Select, Submit} from '@formily/antd-v5'
|
||||||
|
import {createForm, Field, FieldDataSource} from '@formily/core'
|
||||||
|
import {createSchemaField, FormProvider, ISchema} from '@formily/react'
|
||||||
|
import {action} from '@formily/reactive'
|
||||||
|
|
||||||
|
interface DeploymentConfigModalProps {
|
||||||
|
open: boolean;
|
||||||
|
onCancel: () => void;
|
||||||
|
onSuccess: () => void;
|
||||||
|
initialValues?: DeploymentConfig;
|
||||||
|
envId: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DeploymentConfigModal: React.FC<DeploymentConfigModalProps> = ({
|
||||||
|
open,
|
||||||
|
onCancel,
|
||||||
|
onSuccess,
|
||||||
|
initialValues,
|
||||||
|
envId,
|
||||||
|
}) => {
|
||||||
|
const SchemaField = createSchemaField({
|
||||||
|
components: {
|
||||||
|
Select,
|
||||||
|
FormItem,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const loadData = async (field: Field) => {
|
||||||
|
const linkage = field.query('linkage').get('value')
|
||||||
|
if (!linkage) return []
|
||||||
|
return new Promise<FieldDataSource>((resolve) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (linkage === 1) {
|
||||||
|
resolve([
|
||||||
|
{
|
||||||
|
label: 'AAA',
|
||||||
|
value: 'aaa',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'BBB',
|
||||||
|
value: 'ccc',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
} else if (linkage === 2) {
|
||||||
|
resolve([
|
||||||
|
{
|
||||||
|
label: 'CCC',
|
||||||
|
value: 'ccc',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'DDD',
|
||||||
|
value: 'ddd',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}, 1500)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const useAsyncDataSource = (service: typeof loadData) => (field: Field) => {
|
||||||
|
field.loading = true
|
||||||
|
service(field).then(
|
||||||
|
action.bound?.((data) => {
|
||||||
|
field.dataSource = data
|
||||||
|
field.loading = false
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const form = createForm()
|
||||||
|
|
||||||
|
const schema: ISchema = {
|
||||||
|
type: 'object',
|
||||||
|
properties: {
|
||||||
|
linkage: {
|
||||||
|
type: 'string',
|
||||||
|
title: '联动选择框',
|
||||||
|
enum: [
|
||||||
|
{label: '发请求1', value: 1},
|
||||||
|
{label: '发请求2', value: 2},
|
||||||
|
],
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-component-props': {
|
||||||
|
style: {
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
type: 'string',
|
||||||
|
title: '异步选择框',
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-component-props': {
|
||||||
|
style: {
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'x-reactions': ['{{useAsyncDataSource(loadData)}}'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Dialog open={open} onOpenChange={(open) => !open && onCancel()}>
|
||||||
|
<DialogContent className="max-w-3xl">
|
||||||
|
<DialogHeader>
|
||||||
|
<DialogTitle>部署配置</DialogTitle>
|
||||||
|
<DialogDescription>
|
||||||
|
配置三方Jenkins系统相关参数
|
||||||
|
</DialogDescription>
|
||||||
|
</DialogHeader>
|
||||||
|
|
||||||
|
<div className="h-[calc(100vh-250px)] overflow-y-auto p-6">
|
||||||
|
<FormProvider form={form}>
|
||||||
|
<SchemaField schema={schema} scope={{useAsyncDataSource, loadData}}/>
|
||||||
|
<FormButtonGroup>
|
||||||
|
<Submit onSubmit={console.log}>Submit</Submit>
|
||||||
|
</FormButtonGroup>
|
||||||
|
</FormProvider>
|
||||||
|
</div>
|
||||||
|
</DialogContent>
|
||||||
|
</Dialog>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DeploymentConfigModal;
|
||||||
@ -1,19 +1,12 @@
|
|||||||
import React, {useEffect, useState, useCallback} from 'react';
|
import React from 'react';
|
||||||
import {Modal, Form, Select, message, Switch, Space, Button} from 'antd';
|
import {Modal} from 'antd';
|
||||||
import {FullscreenOutlined} from '@ant-design/icons';
|
import type {DeploymentConfig} from '../types';
|
||||||
import type {DeploymentConfig, DeployConfigTemplate, CreateDeploymentConfigRequest} from '../types';
|
|
||||||
import {createDeploymentConfig, updateDeploymentConfig, getDeployConfigTemplates} from '../service';
|
|
||||||
import {getApplicationList} from '../../../Application/List/service';
|
|
||||||
import type {Application} from '../../../Application/List/types';
|
|
||||||
import {BetaSchemaForm} from '@ant-design/pro-form';
|
|
||||||
import {convertJsonSchemaToColumns} from '@/utils/jsonSchemaUtils';
|
|
||||||
import {Editor} from '@/components/Editor';
|
|
||||||
import type {JsonNode} from '@/types/common';
|
|
||||||
import {getPublishedDefinitions} from '@/pages/Workflow/Definition/service';
|
|
||||||
import type {WorkflowDefinition} from '@/pages/Workflow/Definition/types';
|
|
||||||
import './styles.less';
|
import './styles.less';
|
||||||
|
import {FormButtonGroup, FormItem, Select, Submit, FormGrid} from '@formily/antd-v5'
|
||||||
const {Option} = Select;
|
import {createForm, Field, FieldDataSource} from '@formily/core'
|
||||||
|
import {createSchemaField, FormProvider, ISchema} from '@formily/react'
|
||||||
|
import {action} from '@formily/reactive'
|
||||||
|
import request from '@/utils/request';
|
||||||
|
|
||||||
interface DeploymentConfigModalProps {
|
interface DeploymentConfigModalProps {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
@ -23,203 +16,141 @@ interface DeploymentConfigModalProps {
|
|||||||
envId: number;
|
envId: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 定义字段映射接口
|
||||||
|
interface FieldMapping {
|
||||||
|
label: string; // 显示字段
|
||||||
|
value: string; // 值字段
|
||||||
|
}
|
||||||
|
|
||||||
const DeploymentConfigModal: React.FC<DeploymentConfigModalProps> = ({
|
const DeploymentConfigModal: React.FC<DeploymentConfigModalProps> = ({
|
||||||
open,
|
open,
|
||||||
onCancel,
|
onCancel,
|
||||||
onSuccess,
|
onSuccess,
|
||||||
initialValues,
|
initialValues,
|
||||||
envId,
|
envId,
|
||||||
}) => {
|
}) => {
|
||||||
const [form] = Form.useForm();
|
|
||||||
const [applications, setApplications] = useState<Application[]>([]);
|
|
||||||
const [templates, setTemplates] = useState<DeployConfigTemplate[]>([]);
|
|
||||||
const [selectedTemplate, setSelectedTemplate] = useState<DeployConfigTemplate>();
|
|
||||||
const [buildVariables, setBuildVariables] = useState<JsonNode>({});
|
|
||||||
const [loading, setLoading] = useState(false);
|
|
||||||
const [workflowDefinitions, setWorkflowDefinitions] = useState<WorkflowDefinition[]>([]);
|
|
||||||
const [fullscreenEditor, setFullscreenEditor] = useState<{
|
|
||||||
key: string;
|
|
||||||
title: string;
|
|
||||||
} | null>(null);
|
|
||||||
const isEdit = !!initialValues?.id;
|
|
||||||
|
|
||||||
// 获取应用列表
|
const SchemaField = createSchemaField({
|
||||||
const fetchApplications = useCallback(async () => {
|
components: {
|
||||||
try {
|
Select,
|
||||||
const data = await getApplicationList();
|
FormItem,
|
||||||
setApplications(data);
|
FormGrid,
|
||||||
} catch (error) {
|
},
|
||||||
message.error('获取应用列表失败');
|
})
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
// 获取配置模板
|
// 通用的异步数据源加载方法
|
||||||
const fetchTemplates = useCallback(async () => {
|
const useAsyncDataSource = (
|
||||||
try {
|
url: string,
|
||||||
const data = await getDeployConfigTemplates();
|
options?: {
|
||||||
setTemplates(data);
|
params?: Record<string, any>;
|
||||||
} catch (error) {
|
mapping?: FieldMapping;
|
||||||
message.error('获取配置模板失败');
|
|
||||||
}
|
}
|
||||||
}, []);
|
) => (field: Field) => {
|
||||||
|
const {params, mapping = {label: 'name', value: 'id'}} = options || {};
|
||||||
// 获取已发布的工作流列表
|
field.loading = true;
|
||||||
const fetchWorkflowDefinitions = useCallback(async () => {
|
request.get(url, {params})
|
||||||
try {
|
.then(action.bound?.((response) => {
|
||||||
const data = await getPublishedDefinitions(0);
|
field.dataSource = response.map((item: any) => ({
|
||||||
setWorkflowDefinitions(data);
|
label: item[mapping.label],
|
||||||
} catch (error) {
|
value: item[mapping.value]
|
||||||
message.error('获取工作流列表失败');
|
}));
|
||||||
}
|
field.loading = false;
|
||||||
}, []);
|
}))
|
||||||
|
.catch(action.bound?.((error) => {
|
||||||
// 在模态框显示时获取数据
|
console.error(`Failed to load data from ${url}:`, error);
|
||||||
useEffect(() => {
|
field.dataSource = [];
|
||||||
if (open) {
|
field.loading = false;
|
||||||
fetchApplications();
|
|
||||||
fetchTemplates();
|
|
||||||
if (!isEdit) {
|
|
||||||
fetchWorkflowDefinitions();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [open, fetchApplications, fetchTemplates, fetchWorkflowDefinitions, isEdit]);
|
|
||||||
|
|
||||||
// 初始化表单数据
|
|
||||||
useEffect(() => {
|
|
||||||
if (!open) return;
|
|
||||||
|
|
||||||
if (initialValues) {
|
|
||||||
// 设置基础字段
|
|
||||||
form.setFieldsValue({
|
|
||||||
applicationId: initialValues.applicationId,
|
|
||||||
enabled: initialValues.enabled,
|
|
||||||
...initialValues.buildVariables // 设置所有构建变量到表单中
|
|
||||||
});
|
|
||||||
|
|
||||||
const template = templates.find(t => t.buildType === initialValues.buildType && t.languageType === initialValues.languageType);
|
|
||||||
if (template) {
|
|
||||||
setSelectedTemplate(template);
|
|
||||||
// 只保存编辑器字段的值到 buildVariables
|
|
||||||
const editorValues = Object.entries(initialValues.buildVariables || {})
|
|
||||||
.filter(([key]) => template.buildVariablesSchema?.properties?.[key]?.editorConfig)
|
|
||||||
.reduce((acc, [key, value]) => ({...acc, [key]: value}), {});
|
|
||||||
setBuildVariables(editorValues);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
form.resetFields();
|
|
||||||
form.setFieldsValue({
|
|
||||||
enabled: true
|
|
||||||
});
|
|
||||||
setSelectedTemplate(undefined);
|
|
||||||
setBuildVariables({});
|
|
||||||
}
|
|
||||||
}, [open, initialValues, form, templates]);
|
|
||||||
|
|
||||||
const handleAppChange = useCallback((applicationId: number) => {
|
|
||||||
const app = applications.find(a => a.id === applicationId);
|
|
||||||
if (app) {
|
|
||||||
const template = templates.find(t => t.languageType === app.language);
|
|
||||||
if (template) {
|
|
||||||
setSelectedTemplate(template);
|
|
||||||
setBuildVariables({});
|
|
||||||
// 重置除了 applicationId 和 enabled 之外的所有字段
|
|
||||||
const currentValues = form.getFieldsValue();
|
|
||||||
form.setFieldsValue({
|
|
||||||
applicationId: currentValues.applicationId,
|
|
||||||
enabled: currentValues.enabled
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [applications, templates, form]);
|
|
||||||
|
|
||||||
const handleFormValuesChange = (changedValues: Record<string, any>) => {
|
|
||||||
setBuildVariables(prev => ({
|
|
||||||
...prev,
|
|
||||||
...changedValues
|
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
const form = createForm()
|
||||||
try {
|
|
||||||
setLoading(true);
|
|
||||||
const formValues = await form.validateFields();
|
|
||||||
|
|
||||||
// 获取选中的应用信息
|
const schema: ISchema = {
|
||||||
const selectedApp = applications.find(app => app.id === formValues.applicationId);
|
type: 'object',
|
||||||
if (!selectedApp) {
|
properties: {
|
||||||
throw new Error('请选择应用');
|
layout: {
|
||||||
|
type: 'void',
|
||||||
|
'x-component': 'FormGrid',
|
||||||
|
'x-component-props': {
|
||||||
|
maxColumns: 2,
|
||||||
|
minColumns: 2,
|
||||||
|
columnGap: 24
|
||||||
|
},
|
||||||
|
properties: {
|
||||||
|
externalSystem: {
|
||||||
|
type: 'string',
|
||||||
|
title: '三方系统',
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-component-props': {
|
||||||
|
style: {
|
||||||
|
width: '100%'
|
||||||
|
},
|
||||||
|
placeholder: '请选择三方系统'
|
||||||
|
},
|
||||||
|
'x-reactions': ["{{useAsyncDataSource('/api/v1/external-system/list', { params: { type: 'JENKINS' }, mapping: { label: 'name', value: 'id' } })}}"],
|
||||||
|
},
|
||||||
|
jenkinsView: {
|
||||||
|
type: 'string',
|
||||||
|
title: 'Jenkins视图',
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-component-props': {
|
||||||
|
style: {
|
||||||
|
width: '100%'
|
||||||
|
},
|
||||||
|
placeholder: '请选择Jenkins视图'
|
||||||
|
},
|
||||||
|
'x-reactions': {
|
||||||
|
dependencies: ['externalSystem'],
|
||||||
|
fulfill: {
|
||||||
|
state: {
|
||||||
|
visible: '{{!!$deps[0]}}',
|
||||||
|
value: undefined
|
||||||
|
},
|
||||||
|
run: '{{function runEffect(){if($deps[0]){useAsyncDataSource("/api/v1/jenkins-view/list", { params: { externalSystemId: $deps[0] }, mapping: { label: "viewName", value: "id" } })($self)}};runEffect()}}'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": "{{$self.dataSource && $self.value ? ($self.dataSource.find(item => item.value === $self.value)?.extra?.description) : undefined}}"
|
||||||
|
},
|
||||||
|
jenkinsJob: {
|
||||||
|
type: 'string',
|
||||||
|
title: 'Jenkins作业',
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-component-props': {
|
||||||
|
style: {
|
||||||
|
width: '100%'
|
||||||
|
},
|
||||||
|
placeholder: '请选择Jenkins作业'
|
||||||
|
},
|
||||||
|
'x-reactions': {
|
||||||
|
dependencies: ['externalSystem', 'jenkinsView'],
|
||||||
|
fulfill: {
|
||||||
|
state: {
|
||||||
|
visible: '{{!!$deps[0] && !!$deps[1]}}',
|
||||||
|
value: undefined
|
||||||
|
},
|
||||||
|
run: '{{function runEffect(){if($deps[0] && $deps[1]){useAsyncDataSource("/api/v1/jenkins-job/list", { params: { externalSystemId: $deps[0], viewId: $deps[1] }, mapping: { label: "jobName", value: "id" } })($self)}};runEffect()}}'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": "{{$self.dataSource && $self.value ? ($self.dataSource.find(item => item.value === $self.value)?.extra?.description) : undefined}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取对应的模板
|
|
||||||
const template = templates.find(t => t.languageType === selectedApp.language);
|
|
||||||
if (!template) {
|
|
||||||
throw new Error('未找到匹配配置模板');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从 formValues 中提取构建变量(排除 applicationId、enabled 和 workflowDefinitionId)
|
|
||||||
const { applicationId, enabled, workflowDefinitionId, ...formBuildVariables } = formValues;
|
|
||||||
|
|
||||||
// 构建提交数据
|
|
||||||
const submitData: CreateDeploymentConfigRequest = {
|
|
||||||
environmentId: envId,
|
|
||||||
applicationId,
|
|
||||||
buildType: template.buildType,
|
|
||||||
languageType: selectedApp.language,
|
|
||||||
buildVariables: {
|
|
||||||
...formBuildVariables, // 表单中的值
|
|
||||||
...buildVariables // 编辑器中的值
|
|
||||||
} as Record<string, any>, // 使用类型断言确保类型兼容
|
|
||||||
enabled,
|
|
||||||
workflowDefinitionId: isEdit ? initialValues.workflowDefinitionId : workflowDefinitionId
|
|
||||||
};
|
|
||||||
|
|
||||||
if (isEdit) {
|
|
||||||
await updateDeploymentConfig({
|
|
||||||
...submitData,
|
|
||||||
id: initialValues.id,
|
|
||||||
formVariablesSchema: initialValues.formVariablesSchema,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await createDeploymentConfig(submitData);
|
|
||||||
}
|
}
|
||||||
message.success(`${isEdit ? '更新' : '创建'}成功`);
|
|
||||||
form.resetFields();
|
|
||||||
onSuccess();
|
|
||||||
} catch (error) {
|
|
||||||
if (error instanceof Error) {
|
|
||||||
message.error(`${isEdit ? '更新' : '创建'}失败: ${error.message}`);
|
|
||||||
} else {
|
|
||||||
message.error(`${isEdit ? '更新' : '创建'}失败`);
|
|
||||||
}
|
}
|
||||||
} finally {
|
|
||||||
setLoading(false);
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
// 处理富文本编辑器的值变化
|
|
||||||
const handleEditorChange = (key: string, value: string | undefined) => {
|
|
||||||
setBuildVariables(prev => ({
|
|
||||||
...prev,
|
|
||||||
[key]: value || ''
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Modal
|
<Modal
|
||||||
title={`${isEdit ? '编辑' : '新建'}部署配置`}
|
title={`部署配置`}
|
||||||
open={open}
|
open={open}
|
||||||
onCancel={() => {
|
|
||||||
form.resetFields();
|
|
||||||
onCancel();
|
|
||||||
}}
|
|
||||||
onOk={handleSubmit}
|
|
||||||
width={800}
|
width={800}
|
||||||
className="deployment-config-modal"
|
className="deployment-config-modal"
|
||||||
maskClosable={false}
|
maskClosable={false}
|
||||||
confirmLoading={loading}
|
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
style={{ top: 50 }}
|
style={{top: 50}}
|
||||||
styles={{
|
styles={{
|
||||||
body: {
|
body: {
|
||||||
height: 'calc(100vh - 250px)',
|
height: 'calc(100vh - 250px)',
|
||||||
@ -228,178 +159,12 @@ const DeploymentConfigModal: React.FC<DeploymentConfigModalProps> = ({
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Form
|
<FormProvider form={form}>
|
||||||
form={form}
|
<SchemaField schema={schema} scope={{useAsyncDataSource}}/>
|
||||||
layout="vertical"
|
<FormButtonGroup>
|
||||||
initialValues={{
|
<Submit onSubmit={console.log}>Submit</Submit>
|
||||||
enabled: true,
|
</FormButtonGroup>
|
||||||
}}
|
</FormProvider>
|
||||||
>
|
|
||||||
{/* 应用选择 */}
|
|
||||||
<Form.Item
|
|
||||||
name="applicationId"
|
|
||||||
label="应用"
|
|
||||||
required
|
|
||||||
tooltip="选择要部署的应用"
|
|
||||||
>
|
|
||||||
<Select
|
|
||||||
placeholder="请选择应用"
|
|
||||||
onChange={handleAppChange}
|
|
||||||
disabled={isEdit}
|
|
||||||
showSearch
|
|
||||||
optionFilterProp="children"
|
|
||||||
>
|
|
||||||
{applications.map((app) => (
|
|
||||||
<Option key={app.id} value={app.id}>
|
|
||||||
{app.appName}
|
|
||||||
</Option>
|
|
||||||
))}
|
|
||||||
</Select>
|
|
||||||
</Form.Item>
|
|
||||||
|
|
||||||
{/* 工作流选择 */}
|
|
||||||
{!isEdit && (
|
|
||||||
<Form.Item
|
|
||||||
name="workflowDefinitionId"
|
|
||||||
label="工作流"
|
|
||||||
required
|
|
||||||
tooltip="选择要使用的工作流"
|
|
||||||
>
|
|
||||||
<Select
|
|
||||||
placeholder="请选择工作流"
|
|
||||||
showSearch
|
|
||||||
optionFilterProp="children"
|
|
||||||
>
|
|
||||||
{workflowDefinitions.map((workflow) => (
|
|
||||||
<Option key={workflow.id} value={workflow.id}>
|
|
||||||
{workflow.name}
|
|
||||||
</Option>
|
|
||||||
))}
|
|
||||||
</Select>
|
|
||||||
</Form.Item>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* 动态构建配置 */}
|
|
||||||
{selectedTemplate?.buildVariablesSchema?.properties && (
|
|
||||||
<>
|
|
||||||
{/* 使用 BetaSchemaForm 渲染普通字段 */}
|
|
||||||
<BetaSchemaForm
|
|
||||||
layoutType="Embed"
|
|
||||||
columns={convertJsonSchemaToColumns({
|
|
||||||
type: 'object',
|
|
||||||
properties: Object.fromEntries(
|
|
||||||
Object.entries(selectedTemplate.buildVariablesSchema.properties)
|
|
||||||
.filter(([_, prop]) => !prop.editorConfig)
|
|
||||||
.map(([key, prop]) => [key, {
|
|
||||||
...prop,
|
|
||||||
type: prop.type || 'string' // 确保有 type 字段
|
|
||||||
}])
|
|
||||||
),
|
|
||||||
required: selectedTemplate.buildVariablesSchema.required || []
|
|
||||||
})}
|
|
||||||
initialValues={buildVariables}
|
|
||||||
onValuesChange={(_, values) => {
|
|
||||||
setBuildVariables(prev => ({
|
|
||||||
...prev,
|
|
||||||
...values
|
|
||||||
}));
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{/* 渲染编辑器字段 */}
|
|
||||||
{Object.entries(selectedTemplate.buildVariablesSchema.properties)
|
|
||||||
.filter(([_, prop]) => prop.editorConfig)
|
|
||||||
.map(([key, property]) => {
|
|
||||||
const isFullscreen = fullscreenEditor?.key === key;
|
|
||||||
|
|
||||||
const editor = (
|
|
||||||
<Editor
|
|
||||||
height={isFullscreen ? "calc(100vh - 55px)" : "300px"}
|
|
||||||
defaultLanguage={property.editorConfig.language || 'shell'}
|
|
||||||
theme={property.editorConfig.theme || 'vs-dark'}
|
|
||||||
value={buildVariables[key] || property.default || ''}
|
|
||||||
onChange={(value) => handleEditorChange(key, value)}
|
|
||||||
options={{
|
|
||||||
minimap: { enabled: isFullscreen ? true : (property.editorConfig.minimap ?? false) },
|
|
||||||
fontSize: property.editorConfig.fontSize || 14,
|
|
||||||
lineNumbers: property.editorConfig.lineNumbers ? 'on' : 'off',
|
|
||||||
wordWrap: property.editorConfig.wordWrap ? 'on' : 'off',
|
|
||||||
tabSize: property.editorConfig.tabSize || 2,
|
|
||||||
scrollBeyondLastLine: false,
|
|
||||||
automaticLayout: true,
|
|
||||||
folding: property.editorConfig.folding ?? true,
|
|
||||||
autoClosingBrackets: 'always',
|
|
||||||
autoClosingQuotes: 'always',
|
|
||||||
formatOnPaste: true,
|
|
||||||
formatOnType: true,
|
|
||||||
suggestOnTriggerCharacters: property.editorConfig.autoComplete ?? true,
|
|
||||||
renderWhitespace: 'boundary',
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
return isFullscreen ? (
|
|
||||||
<Modal
|
|
||||||
key={key}
|
|
||||||
title={property.title || key}
|
|
||||||
open={true}
|
|
||||||
onCancel={() => setFullscreenEditor(null)}
|
|
||||||
footer={null}
|
|
||||||
width="100vw"
|
|
||||||
styles={{
|
|
||||||
body: { padding: 0 },
|
|
||||||
mask: { backgroundColor: 'rgba(0, 0, 0, 0.65)' },
|
|
||||||
content: {
|
|
||||||
position: 'fixed',
|
|
||||||
top: 0,
|
|
||||||
left: 0,
|
|
||||||
right: 0,
|
|
||||||
bottom: 0,
|
|
||||||
margin: 0,
|
|
||||||
padding: 0,
|
|
||||||
width: '100vw',
|
|
||||||
height: '100vh'
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{editor}
|
|
||||||
</Modal>
|
|
||||||
) : (
|
|
||||||
<Form.Item
|
|
||||||
key={key}
|
|
||||||
label={
|
|
||||||
<Space>
|
|
||||||
{property.title || key}
|
|
||||||
<Button
|
|
||||||
type="text"
|
|
||||||
icon={<FullscreenOutlined />}
|
|
||||||
onClick={() => setFullscreenEditor({
|
|
||||||
key,
|
|
||||||
title: property.title || key
|
|
||||||
})}
|
|
||||||
/>
|
|
||||||
</Space>
|
|
||||||
}
|
|
||||||
required={selectedTemplate.buildVariablesSchema.required?.includes(key)}
|
|
||||||
tooltip={property.description}
|
|
||||||
>
|
|
||||||
{editor}
|
|
||||||
</Form.Item>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* 状态 */}
|
|
||||||
<Form.Item
|
|
||||||
name="enabled"
|
|
||||||
label="状态"
|
|
||||||
valuePropName="checked"
|
|
||||||
tooltip="是否启用该配置"
|
|
||||||
>
|
|
||||||
<Switch checkedChildren="启用" unCheckedChildren="禁用" />
|
|
||||||
</Form.Item>
|
|
||||||
</Form>
|
|
||||||
</Modal>
|
</Modal>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -0,0 +1,408 @@
|
|||||||
|
import React, {useEffect, useState, useCallback} from 'react';
|
||||||
|
import {Modal, Form, Select, message, Switch, Space, Button} from 'antd';
|
||||||
|
import {FullscreenOutlined} from '@ant-design/icons';
|
||||||
|
import type {DeploymentConfig, DeployConfigTemplate, CreateDeploymentConfigRequest} from '../types';
|
||||||
|
import {createDeploymentConfig, updateDeploymentConfig, getDeployConfigTemplates} from '../service';
|
||||||
|
import {getApplicationList} from '../../../Application/List/service';
|
||||||
|
import type {Application} from '../../../Application/List/types';
|
||||||
|
import {BetaSchemaForm} from '@ant-design/pro-form';
|
||||||
|
import {convertJsonSchemaToColumns} from '@/utils/jsonSchemaUtils';
|
||||||
|
import {Editor} from '@/components/Editor';
|
||||||
|
import type {JsonNode} from '@/types/common';
|
||||||
|
import {getPublishedDefinitions} from '@/pages/Workflow/Definition/service';
|
||||||
|
import type {WorkflowDefinition} from '@/pages/Workflow/Definition/types';
|
||||||
|
import './styles.less';
|
||||||
|
|
||||||
|
const {Option} = Select;
|
||||||
|
|
||||||
|
interface DeploymentConfigModalProps {
|
||||||
|
open: boolean;
|
||||||
|
onCancel: () => void;
|
||||||
|
onSuccess: () => void;
|
||||||
|
initialValues?: DeploymentConfig;
|
||||||
|
envId: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DeploymentConfigModal: React.FC<DeploymentConfigModalProps> = ({
|
||||||
|
open,
|
||||||
|
onCancel,
|
||||||
|
onSuccess,
|
||||||
|
initialValues,
|
||||||
|
envId,
|
||||||
|
}) => {
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
const [applications, setApplications] = useState<Application[]>([]);
|
||||||
|
const [templates, setTemplates] = useState<DeployConfigTemplate[]>([]);
|
||||||
|
const [selectedTemplate, setSelectedTemplate] = useState<DeployConfigTemplate>();
|
||||||
|
const [buildVariables, setBuildVariables] = useState<JsonNode>({});
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [workflowDefinitions, setWorkflowDefinitions] = useState<WorkflowDefinition[]>([]);
|
||||||
|
const [fullscreenEditor, setFullscreenEditor] = useState<{
|
||||||
|
key: string;
|
||||||
|
title: string;
|
||||||
|
} | null>(null);
|
||||||
|
const isEdit = !!initialValues?.id;
|
||||||
|
|
||||||
|
// 获取应用列表
|
||||||
|
const fetchApplications = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
const data = await getApplicationList();
|
||||||
|
setApplications(data);
|
||||||
|
} catch (error) {
|
||||||
|
message.error('获取应用列表失败');
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// 获取配置模板
|
||||||
|
const fetchTemplates = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
const data = await getDeployConfigTemplates();
|
||||||
|
setTemplates(data);
|
||||||
|
} catch (error) {
|
||||||
|
message.error('获取配置模板失败');
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// 获取已发布的工作流列表
|
||||||
|
const fetchWorkflowDefinitions = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
const data = await getPublishedDefinitions(0);
|
||||||
|
setWorkflowDefinitions(data);
|
||||||
|
} catch (error) {
|
||||||
|
message.error('获取工作流列表失败');
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// 在模态框显示时获取数据
|
||||||
|
useEffect(() => {
|
||||||
|
if (open) {
|
||||||
|
fetchApplications();
|
||||||
|
fetchTemplates();
|
||||||
|
if (!isEdit) {
|
||||||
|
fetchWorkflowDefinitions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [open, fetchApplications, fetchTemplates, fetchWorkflowDefinitions, isEdit]);
|
||||||
|
|
||||||
|
// 初始化表单数据
|
||||||
|
useEffect(() => {
|
||||||
|
if (!open) return;
|
||||||
|
|
||||||
|
if (initialValues) {
|
||||||
|
// 设置基础字段
|
||||||
|
form.setFieldsValue({
|
||||||
|
applicationId: initialValues.applicationId,
|
||||||
|
enabled: initialValues.enabled,
|
||||||
|
...initialValues.buildVariables // 设置所有构建变量到表单中
|
||||||
|
});
|
||||||
|
|
||||||
|
const template = templates.find(t => t.buildType === initialValues.buildType && t.languageType === initialValues.languageType);
|
||||||
|
if (template) {
|
||||||
|
setSelectedTemplate(template);
|
||||||
|
// 只保存编辑器字段的值到 buildVariables
|
||||||
|
const editorValues = Object.entries(initialValues.buildVariables || {})
|
||||||
|
.filter(([key]) => template.buildVariablesSchema?.properties?.[key]?.editorConfig)
|
||||||
|
.reduce((acc, [key, value]) => ({...acc, [key]: value}), {});
|
||||||
|
setBuildVariables(editorValues);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
form.resetFields();
|
||||||
|
form.setFieldsValue({
|
||||||
|
enabled: true
|
||||||
|
});
|
||||||
|
setSelectedTemplate(undefined);
|
||||||
|
setBuildVariables({});
|
||||||
|
}
|
||||||
|
}, [open, initialValues, form, templates]);
|
||||||
|
|
||||||
|
const handleAppChange = useCallback((applicationId: number) => {
|
||||||
|
const app = applications.find(a => a.id === applicationId);
|
||||||
|
if (app) {
|
||||||
|
const template = templates.find(t => t.languageType === app.language);
|
||||||
|
if (template) {
|
||||||
|
setSelectedTemplate(template);
|
||||||
|
setBuildVariables({});
|
||||||
|
// 重置除了 applicationId 和 enabled 之外的所有字段
|
||||||
|
const currentValues = form.getFieldsValue();
|
||||||
|
form.setFieldsValue({
|
||||||
|
applicationId: currentValues.applicationId,
|
||||||
|
enabled: currentValues.enabled
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [applications, templates, form]);
|
||||||
|
|
||||||
|
const handleFormValuesChange = (changedValues: Record<string, any>) => {
|
||||||
|
setBuildVariables(prev => ({
|
||||||
|
...prev,
|
||||||
|
...changedValues
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSubmit = async () => {
|
||||||
|
try {
|
||||||
|
setLoading(true);
|
||||||
|
const formValues = await form.validateFields();
|
||||||
|
|
||||||
|
// 获取选中的应用信息
|
||||||
|
const selectedApp = applications.find(app => app.id === formValues.applicationId);
|
||||||
|
if (!selectedApp) {
|
||||||
|
throw new Error('请选择应用');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取对应的模板
|
||||||
|
const template = templates.find(t => t.languageType === selectedApp.language);
|
||||||
|
if (!template) {
|
||||||
|
throw new Error('未找到匹配配置模板');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从 formValues 中提取构建变量(排除 applicationId、enabled 和 workflowDefinitionId)
|
||||||
|
const { applicationId, enabled, workflowDefinitionId, ...formBuildVariables } = formValues;
|
||||||
|
|
||||||
|
// 构建提交数据
|
||||||
|
const submitData: CreateDeploymentConfigRequest = {
|
||||||
|
environmentId: envId,
|
||||||
|
applicationId,
|
||||||
|
buildType: template.buildType,
|
||||||
|
languageType: selectedApp.language,
|
||||||
|
buildVariables: {
|
||||||
|
...formBuildVariables, // 表单中的值
|
||||||
|
...buildVariables // 编辑器中的值
|
||||||
|
} as Record<string, any>, // 使用类型断言确保类型兼容
|
||||||
|
enabled,
|
||||||
|
workflowDefinitionId: isEdit ? initialValues.workflowDefinitionId : workflowDefinitionId
|
||||||
|
};
|
||||||
|
|
||||||
|
if (isEdit) {
|
||||||
|
await updateDeploymentConfig({
|
||||||
|
...submitData,
|
||||||
|
id: initialValues.id,
|
||||||
|
formVariablesSchema: initialValues.formVariablesSchema,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await createDeploymentConfig(submitData);
|
||||||
|
}
|
||||||
|
message.success(`${isEdit ? '更新' : '创建'}成功`);
|
||||||
|
form.resetFields();
|
||||||
|
onSuccess();
|
||||||
|
} catch (error) {
|
||||||
|
if (error instanceof Error) {
|
||||||
|
message.error(`${isEdit ? '更新' : '创建'}失败: ${error.message}`);
|
||||||
|
} else {
|
||||||
|
message.error(`${isEdit ? '更新' : '创建'}失败`);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 处理富文本编辑器的值变化
|
||||||
|
const handleEditorChange = (key: string, value: string | undefined) => {
|
||||||
|
setBuildVariables(prev => ({
|
||||||
|
...prev,
|
||||||
|
[key]: value || ''
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Modal
|
||||||
|
title={`${isEdit ? '编辑' : '新建'}部署配置`}
|
||||||
|
open={open}
|
||||||
|
onCancel={() => {
|
||||||
|
form.resetFields();
|
||||||
|
onCancel();
|
||||||
|
}}
|
||||||
|
onOk={handleSubmit}
|
||||||
|
width={800}
|
||||||
|
className="deployment-config-modal"
|
||||||
|
maskClosable={false}
|
||||||
|
confirmLoading={loading}
|
||||||
|
destroyOnClose
|
||||||
|
style={{ top: 50 }}
|
||||||
|
styles={{
|
||||||
|
body: {
|
||||||
|
height: 'calc(100vh - 250px)',
|
||||||
|
overflowY: 'auto',
|
||||||
|
padding: '24px'
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Form
|
||||||
|
form={form}
|
||||||
|
layout="vertical"
|
||||||
|
initialValues={{
|
||||||
|
enabled: true,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{/* 应用选择 */}
|
||||||
|
<Form.Item
|
||||||
|
name="applicationId"
|
||||||
|
label="应用"
|
||||||
|
required
|
||||||
|
tooltip="选择要部署的应用"
|
||||||
|
>
|
||||||
|
<Select
|
||||||
|
placeholder="请选择应用"
|
||||||
|
onChange={handleAppChange}
|
||||||
|
disabled={isEdit}
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="children"
|
||||||
|
>
|
||||||
|
{applications.map((app) => (
|
||||||
|
<Option key={app.id} value={app.id}>
|
||||||
|
{app.appName}
|
||||||
|
</Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
{/* 工作流选择 */}
|
||||||
|
{!isEdit && (
|
||||||
|
<Form.Item
|
||||||
|
name="workflowDefinitionId"
|
||||||
|
label="工作流"
|
||||||
|
required
|
||||||
|
tooltip="选择要使用的工作流"
|
||||||
|
>
|
||||||
|
<Select
|
||||||
|
placeholder="请选择工作流"
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="children"
|
||||||
|
>
|
||||||
|
{workflowDefinitions.map((workflow) => (
|
||||||
|
<Option key={workflow.id} value={workflow.id}>
|
||||||
|
{workflow.name}
|
||||||
|
</Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* 动态构建配置 */}
|
||||||
|
{selectedTemplate?.buildVariablesSchema?.properties && (
|
||||||
|
<>
|
||||||
|
{/* 使用 BetaSchemaForm 渲染普通字段 */}
|
||||||
|
<BetaSchemaForm
|
||||||
|
layoutType="Embed"
|
||||||
|
columns={convertJsonSchemaToColumns({
|
||||||
|
type: 'object',
|
||||||
|
properties: Object.fromEntries(
|
||||||
|
Object.entries(selectedTemplate.buildVariablesSchema.properties)
|
||||||
|
.filter(([_, prop]) => !prop.editorConfig)
|
||||||
|
.map(([key, prop]) => [key, {
|
||||||
|
...prop,
|
||||||
|
type: prop.type || 'string' // 确保有 type 字段
|
||||||
|
}])
|
||||||
|
),
|
||||||
|
required: selectedTemplate.buildVariablesSchema.required || []
|
||||||
|
})}
|
||||||
|
initialValues={buildVariables}
|
||||||
|
onValuesChange={(_, values) => {
|
||||||
|
setBuildVariables(prev => ({
|
||||||
|
...prev,
|
||||||
|
...values
|
||||||
|
}));
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
{/* 渲染编辑器字段 */}
|
||||||
|
{Object.entries(selectedTemplate.buildVariablesSchema.properties)
|
||||||
|
.filter(([_, prop]) => prop.editorConfig)
|
||||||
|
.map(([key, property]) => {
|
||||||
|
const isFullscreen = fullscreenEditor?.key === key;
|
||||||
|
|
||||||
|
const editor = (
|
||||||
|
<Editor
|
||||||
|
height={isFullscreen ? "calc(100vh - 55px)" : "300px"}
|
||||||
|
defaultLanguage={property.editorConfig.language || 'shell'}
|
||||||
|
theme={property.editorConfig.theme || 'vs-dark'}
|
||||||
|
value={buildVariables[key] || property.default || ''}
|
||||||
|
onChange={(value) => handleEditorChange(key, value)}
|
||||||
|
options={{
|
||||||
|
minimap: { enabled: isFullscreen ? true : (property.editorConfig.minimap ?? false) },
|
||||||
|
fontSize: property.editorConfig.fontSize || 14,
|
||||||
|
lineNumbers: property.editorConfig.lineNumbers ? 'on' : 'off',
|
||||||
|
wordWrap: property.editorConfig.wordWrap ? 'on' : 'off',
|
||||||
|
tabSize: property.editorConfig.tabSize || 2,
|
||||||
|
scrollBeyondLastLine: false,
|
||||||
|
automaticLayout: true,
|
||||||
|
folding: property.editorConfig.folding ?? true,
|
||||||
|
autoClosingBrackets: 'always',
|
||||||
|
autoClosingQuotes: 'always',
|
||||||
|
formatOnPaste: true,
|
||||||
|
formatOnType: true,
|
||||||
|
suggestOnTriggerCharacters: property.editorConfig.autoComplete ?? true,
|
||||||
|
renderWhitespace: 'boundary',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
return isFullscreen ? (
|
||||||
|
<Modal
|
||||||
|
key={key}
|
||||||
|
title={property.title || key}
|
||||||
|
open={true}
|
||||||
|
onCancel={() => setFullscreenEditor(null)}
|
||||||
|
footer={null}
|
||||||
|
width="100vw"
|
||||||
|
styles={{
|
||||||
|
body: { padding: 0 },
|
||||||
|
mask: { backgroundColor: 'rgba(0, 0, 0, 0.65)' },
|
||||||
|
content: {
|
||||||
|
position: 'fixed',
|
||||||
|
top: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
bottom: 0,
|
||||||
|
margin: 0,
|
||||||
|
padding: 0,
|
||||||
|
width: '100vw',
|
||||||
|
height: '100vh'
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{editor}
|
||||||
|
</Modal>
|
||||||
|
) : (
|
||||||
|
<Form.Item
|
||||||
|
key={key}
|
||||||
|
label={
|
||||||
|
<Space>
|
||||||
|
{property.title || key}
|
||||||
|
<Button
|
||||||
|
type="text"
|
||||||
|
icon={<FullscreenOutlined />}
|
||||||
|
onClick={() => setFullscreenEditor({
|
||||||
|
key,
|
||||||
|
title: property.title || key
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
</Space>
|
||||||
|
}
|
||||||
|
required={selectedTemplate.buildVariablesSchema.required?.includes(key)}
|
||||||
|
tooltip={property.description}
|
||||||
|
>
|
||||||
|
{editor}
|
||||||
|
</Form.Item>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* 状态 */}
|
||||||
|
<Form.Item
|
||||||
|
name="enabled"
|
||||||
|
label="状态"
|
||||||
|
valuePropName="checked"
|
||||||
|
tooltip="是否启用该配置"
|
||||||
|
>
|
||||||
|
<Switch checkedChildren="启用" unCheckedChildren="禁用" />
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DeploymentConfigModal;
|
||||||
Loading…
Reference in New Issue
Block a user