diff --git a/react-ui/config/proxy.ts b/react-ui/config/proxy.ts index 3f381754..911db70b 100644 --- a/react-ui/config/proxy.ts +++ b/react-ui/config/proxy.ts @@ -16,6 +16,7 @@ export default { '/api/': { // 要代理的地址 // target: 'http://172.20.32.181:31205', + // target: 'http://172.20.32.98:8082', target: 'http://172.20.32.150:8082', // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie diff --git a/react-ui/config/routes.ts b/react-ui/config/routes.ts index 224541ce..9dd26c3e 100644 --- a/react-ui/config/routes.ts +++ b/react-ui/config/routes.ts @@ -105,6 +105,33 @@ export default [ }, ] }, + { + name: 'dataset', + path: '/dataset', + routes: [ + { + name: '数据集管理', + path: '/dataset/datasetIndex', + component: './Dataset/index', + }, + { + name: '数据集简介', + path: '/dataset/datasetIntro/:id', + component: './Dataset/datasetIntro', + }, + { + name: '模型管理', + path: '/dataset/modelIndex', + component: './Model/index', + + }, + { + name: '模型简介', + path: '/dataset/modelIntro/:id', + component: './Model/modelIntro', + }, + ] + }, { name: 'monitor', path: '/monitor', diff --git a/react-ui/public/assets/images/dataset-back.png b/react-ui/public/assets/images/dataset-back.png new file mode 100644 index 00000000..10604dd9 Binary files /dev/null and b/react-ui/public/assets/images/dataset-back.png differ diff --git a/react-ui/public/assets/images/dataset/101-hover.png b/react-ui/public/assets/images/dataset/101-hover.png new file mode 100644 index 00000000..cb72d1cd Binary files /dev/null and b/react-ui/public/assets/images/dataset/101-hover.png differ diff --git a/react-ui/public/assets/images/dataset/101.png b/react-ui/public/assets/images/dataset/101.png new file mode 100644 index 00000000..d1e93c0e Binary files /dev/null and b/react-ui/public/assets/images/dataset/101.png differ diff --git a/react-ui/public/assets/images/dataset/102-hover.png b/react-ui/public/assets/images/dataset/102-hover.png new file mode 100644 index 00000000..2a7d8940 Binary files /dev/null and b/react-ui/public/assets/images/dataset/102-hover.png differ diff --git a/react-ui/public/assets/images/dataset/102.png b/react-ui/public/assets/images/dataset/102.png new file mode 100644 index 00000000..13b6f312 Binary files /dev/null and b/react-ui/public/assets/images/dataset/102.png differ diff --git a/react-ui/public/assets/images/dataset/103-hover.png b/react-ui/public/assets/images/dataset/103-hover.png new file mode 100644 index 00000000..223f57fd Binary files /dev/null and b/react-ui/public/assets/images/dataset/103-hover.png differ diff --git a/react-ui/public/assets/images/dataset/103.png b/react-ui/public/assets/images/dataset/103.png new file mode 100644 index 00000000..654e3f00 Binary files /dev/null and b/react-ui/public/assets/images/dataset/103.png differ diff --git a/react-ui/public/assets/images/dataset/104-hover.png b/react-ui/public/assets/images/dataset/104-hover.png new file mode 100644 index 00000000..1132b52d Binary files /dev/null and b/react-ui/public/assets/images/dataset/104-hover.png differ diff --git a/react-ui/public/assets/images/dataset/104.png b/react-ui/public/assets/images/dataset/104.png new file mode 100644 index 00000000..49efaf49 Binary files /dev/null and b/react-ui/public/assets/images/dataset/104.png differ diff --git a/react-ui/public/assets/images/dataset/105-hover.png b/react-ui/public/assets/images/dataset/105-hover.png new file mode 100644 index 00000000..3b671ec9 Binary files /dev/null and b/react-ui/public/assets/images/dataset/105-hover.png differ diff --git a/react-ui/public/assets/images/dataset/105.png b/react-ui/public/assets/images/dataset/105.png new file mode 100644 index 00000000..e46f0703 Binary files /dev/null and b/react-ui/public/assets/images/dataset/105.png differ diff --git a/react-ui/public/assets/images/dataset/201-hover.png b/react-ui/public/assets/images/dataset/201-hover.png new file mode 100644 index 00000000..ce75d970 Binary files /dev/null and b/react-ui/public/assets/images/dataset/201-hover.png differ diff --git a/react-ui/public/assets/images/dataset/201.png b/react-ui/public/assets/images/dataset/201.png new file mode 100644 index 00000000..9c250f5e Binary files /dev/null and b/react-ui/public/assets/images/dataset/201.png differ diff --git a/react-ui/public/assets/images/dataset/202-hover.png b/react-ui/public/assets/images/dataset/202-hover.png new file mode 100644 index 00000000..473fa1ee Binary files /dev/null and b/react-ui/public/assets/images/dataset/202-hover.png differ diff --git a/react-ui/public/assets/images/dataset/202.png b/react-ui/public/assets/images/dataset/202.png new file mode 100644 index 00000000..10bb9a70 Binary files /dev/null and b/react-ui/public/assets/images/dataset/202.png differ diff --git a/react-ui/public/assets/images/dataset/203-hover.png b/react-ui/public/assets/images/dataset/203-hover.png new file mode 100644 index 00000000..67f9be74 Binary files /dev/null and b/react-ui/public/assets/images/dataset/203-hover.png differ diff --git a/react-ui/public/assets/images/dataset/203.png b/react-ui/public/assets/images/dataset/203.png new file mode 100644 index 00000000..7cd68e50 Binary files /dev/null and b/react-ui/public/assets/images/dataset/203.png differ diff --git a/react-ui/public/assets/images/dataset/204-hover.png b/react-ui/public/assets/images/dataset/204-hover.png new file mode 100644 index 00000000..add14532 Binary files /dev/null and b/react-ui/public/assets/images/dataset/204-hover.png differ diff --git a/react-ui/public/assets/images/dataset/204.png b/react-ui/public/assets/images/dataset/204.png new file mode 100644 index 00000000..f1b1c7f4 Binary files /dev/null and b/react-ui/public/assets/images/dataset/204.png differ diff --git a/react-ui/public/assets/images/dataset/205-hover.png b/react-ui/public/assets/images/dataset/205-hover.png new file mode 100644 index 00000000..1335a72c Binary files /dev/null and b/react-ui/public/assets/images/dataset/205-hover.png differ diff --git a/react-ui/public/assets/images/dataset/205.png b/react-ui/public/assets/images/dataset/205.png new file mode 100644 index 00000000..e4b57231 Binary files /dev/null and b/react-ui/public/assets/images/dataset/205.png differ diff --git a/react-ui/public/assets/images/dataset/206-hover.png b/react-ui/public/assets/images/dataset/206-hover.png new file mode 100644 index 00000000..a2d94e8f Binary files /dev/null and b/react-ui/public/assets/images/dataset/206-hover.png differ diff --git a/react-ui/public/assets/images/dataset/206.png b/react-ui/public/assets/images/dataset/206.png new file mode 100644 index 00000000..dadaed7c Binary files /dev/null and b/react-ui/public/assets/images/dataset/206.png differ diff --git a/react-ui/public/assets/images/dataset/207-hover.png b/react-ui/public/assets/images/dataset/207-hover.png new file mode 100644 index 00000000..332e3d2f Binary files /dev/null and b/react-ui/public/assets/images/dataset/207-hover.png differ diff --git a/react-ui/public/assets/images/dataset/207.png b/react-ui/public/assets/images/dataset/207.png new file mode 100644 index 00000000..19c5a5ae Binary files /dev/null and b/react-ui/public/assets/images/dataset/207.png differ diff --git a/react-ui/public/assets/images/dataset/208-hover.png b/react-ui/public/assets/images/dataset/208-hover.png new file mode 100644 index 00000000..f301b63b Binary files /dev/null and b/react-ui/public/assets/images/dataset/208-hover.png differ diff --git a/react-ui/public/assets/images/dataset/208.png b/react-ui/public/assets/images/dataset/208.png new file mode 100644 index 00000000..5ac7b1d6 Binary files /dev/null and b/react-ui/public/assets/images/dataset/208.png differ diff --git a/react-ui/public/assets/images/dataset/209-hover.png b/react-ui/public/assets/images/dataset/209-hover.png new file mode 100644 index 00000000..b35d2d69 Binary files /dev/null and b/react-ui/public/assets/images/dataset/209-hover.png differ diff --git a/react-ui/public/assets/images/dataset/209.png b/react-ui/public/assets/images/dataset/209.png new file mode 100644 index 00000000..98f224d3 Binary files /dev/null and b/react-ui/public/assets/images/dataset/209.png differ diff --git a/react-ui/public/assets/images/dataset/210-hover.png b/react-ui/public/assets/images/dataset/210-hover.png new file mode 100644 index 00000000..ad753acf Binary files /dev/null and b/react-ui/public/assets/images/dataset/210-hover.png differ diff --git a/react-ui/public/assets/images/dataset/210.png b/react-ui/public/assets/images/dataset/210.png new file mode 100644 index 00000000..f96c9bf9 Binary files /dev/null and b/react-ui/public/assets/images/dataset/210.png differ diff --git a/react-ui/public/assets/images/dataset/211-hover.png b/react-ui/public/assets/images/dataset/211-hover.png new file mode 100644 index 00000000..c46621ac Binary files /dev/null and b/react-ui/public/assets/images/dataset/211-hover.png differ diff --git a/react-ui/public/assets/images/dataset/211.png b/react-ui/public/assets/images/dataset/211.png new file mode 100644 index 00000000..f1b2860a Binary files /dev/null and b/react-ui/public/assets/images/dataset/211.png differ diff --git a/react-ui/public/assets/images/dataset/2115-hover.png b/react-ui/public/assets/images/dataset/2115-hover.png new file mode 100644 index 00000000..b3bb5fa7 Binary files /dev/null and b/react-ui/public/assets/images/dataset/2115-hover.png differ diff --git a/react-ui/public/assets/images/dataset/212-hover.png b/react-ui/public/assets/images/dataset/212-hover.png new file mode 100644 index 00000000..3634e695 Binary files /dev/null and b/react-ui/public/assets/images/dataset/212-hover.png differ diff --git a/react-ui/public/assets/images/dataset/212.png b/react-ui/public/assets/images/dataset/212.png new file mode 100644 index 00000000..358d1402 Binary files /dev/null and b/react-ui/public/assets/images/dataset/212.png differ diff --git a/react-ui/public/assets/images/dataset/213-hover.png b/react-ui/public/assets/images/dataset/213-hover.png new file mode 100644 index 00000000..267126e2 Binary files /dev/null and b/react-ui/public/assets/images/dataset/213-hover.png differ diff --git a/react-ui/public/assets/images/dataset/213.png b/react-ui/public/assets/images/dataset/213.png new file mode 100644 index 00000000..b08dddf3 Binary files /dev/null and b/react-ui/public/assets/images/dataset/213.png differ diff --git a/react-ui/public/assets/images/dataset/214-hover.png b/react-ui/public/assets/images/dataset/214-hover.png new file mode 100644 index 00000000..77451aba Binary files /dev/null and b/react-ui/public/assets/images/dataset/214-hover.png differ diff --git a/react-ui/public/assets/images/dataset/214.png b/react-ui/public/assets/images/dataset/214.png new file mode 100644 index 00000000..62107d2a Binary files /dev/null and b/react-ui/public/assets/images/dataset/214.png differ diff --git a/react-ui/public/assets/images/dataset/215-hover.png b/react-ui/public/assets/images/dataset/215-hover.png new file mode 100644 index 00000000..b3bb5fa7 Binary files /dev/null and b/react-ui/public/assets/images/dataset/215-hover.png differ diff --git a/react-ui/public/assets/images/dataset/215.png b/react-ui/public/assets/images/dataset/215.png new file mode 100644 index 00000000..7c38ceca Binary files /dev/null and b/react-ui/public/assets/images/dataset/215.png differ diff --git a/react-ui/public/assets/images/dataset/216-hover.png b/react-ui/public/assets/images/dataset/216-hover.png new file mode 100644 index 00000000..1b6c5bd1 Binary files /dev/null and b/react-ui/public/assets/images/dataset/216-hover.png differ diff --git a/react-ui/public/assets/images/dataset/216.png b/react-ui/public/assets/images/dataset/216.png new file mode 100644 index 00000000..0a64c541 Binary files /dev/null and b/react-ui/public/assets/images/dataset/216.png differ diff --git a/react-ui/public/assets/images/dataset/217-hover.png b/react-ui/public/assets/images/dataset/217-hover.png new file mode 100644 index 00000000..25da4dac Binary files /dev/null and b/react-ui/public/assets/images/dataset/217-hover.png differ diff --git a/react-ui/public/assets/images/dataset/217.png b/react-ui/public/assets/images/dataset/217.png new file mode 100644 index 00000000..13e827b8 Binary files /dev/null and b/react-ui/public/assets/images/dataset/217.png differ diff --git a/react-ui/public/assets/images/dataset/218-hover.png b/react-ui/public/assets/images/dataset/218-hover.png new file mode 100644 index 00000000..1ed77e55 Binary files /dev/null and b/react-ui/public/assets/images/dataset/218-hover.png differ diff --git a/react-ui/public/assets/images/dataset/218.png b/react-ui/public/assets/images/dataset/218.png new file mode 100644 index 00000000..1dc451c5 Binary files /dev/null and b/react-ui/public/assets/images/dataset/218.png differ diff --git a/react-ui/public/assets/images/dataset/219-hover.png b/react-ui/public/assets/images/dataset/219-hover.png new file mode 100644 index 00000000..5f241bed Binary files /dev/null and b/react-ui/public/assets/images/dataset/219-hover.png differ diff --git a/react-ui/public/assets/images/dataset/219.png b/react-ui/public/assets/images/dataset/219.png new file mode 100644 index 00000000..ee13574d Binary files /dev/null and b/react-ui/public/assets/images/dataset/219.png differ diff --git a/react-ui/public/assets/images/dataset/220-hover.png b/react-ui/public/assets/images/dataset/220-hover.png new file mode 100644 index 00000000..510a48aa Binary files /dev/null and b/react-ui/public/assets/images/dataset/220-hover.png differ diff --git a/react-ui/public/assets/images/dataset/220.png b/react-ui/public/assets/images/dataset/220.png new file mode 100644 index 00000000..fd967601 Binary files /dev/null and b/react-ui/public/assets/images/dataset/220.png differ diff --git a/react-ui/public/assets/images/dataset/221-hover.png b/react-ui/public/assets/images/dataset/221-hover.png new file mode 100644 index 00000000..5d63f41c Binary files /dev/null and b/react-ui/public/assets/images/dataset/221-hover.png differ diff --git a/react-ui/public/assets/images/dataset/221.png b/react-ui/public/assets/images/dataset/221.png new file mode 100644 index 00000000..4a17dfc0 Binary files /dev/null and b/react-ui/public/assets/images/dataset/221.png differ diff --git a/react-ui/public/assets/images/dataset/222-hover.png b/react-ui/public/assets/images/dataset/222-hover.png new file mode 100644 index 00000000..e9a3f6b9 Binary files /dev/null and b/react-ui/public/assets/images/dataset/222-hover.png differ diff --git a/react-ui/public/assets/images/dataset/222.png b/react-ui/public/assets/images/dataset/222.png new file mode 100644 index 00000000..dd6fbfbe Binary files /dev/null and b/react-ui/public/assets/images/dataset/222.png differ diff --git a/react-ui/public/assets/images/dataset/223-hover.png b/react-ui/public/assets/images/dataset/223-hover.png new file mode 100644 index 00000000..dff4b183 Binary files /dev/null and b/react-ui/public/assets/images/dataset/223-hover.png differ diff --git a/react-ui/public/assets/images/dataset/223.png b/react-ui/public/assets/images/dataset/223.png new file mode 100644 index 00000000..8a83957e Binary files /dev/null and b/react-ui/public/assets/images/dataset/223.png differ diff --git a/react-ui/public/assets/images/dataset/224-hover.png b/react-ui/public/assets/images/dataset/224-hover.png new file mode 100644 index 00000000..18641ec3 Binary files /dev/null and b/react-ui/public/assets/images/dataset/224-hover.png differ diff --git a/react-ui/public/assets/images/dataset/224.png b/react-ui/public/assets/images/dataset/224.png new file mode 100644 index 00000000..6adb7430 Binary files /dev/null and b/react-ui/public/assets/images/dataset/224.png differ diff --git a/react-ui/public/assets/images/dataset/225-hover.png b/react-ui/public/assets/images/dataset/225-hover.png new file mode 100644 index 00000000..13f0ff47 Binary files /dev/null and b/react-ui/public/assets/images/dataset/225-hover.png differ diff --git a/react-ui/public/assets/images/dataset/225.png b/react-ui/public/assets/images/dataset/225.png new file mode 100644 index 00000000..a16ca3e9 Binary files /dev/null and b/react-ui/public/assets/images/dataset/225.png differ diff --git a/react-ui/public/assets/images/dataset/226-hover.png b/react-ui/public/assets/images/dataset/226-hover.png new file mode 100644 index 00000000..f1189c3a Binary files /dev/null and b/react-ui/public/assets/images/dataset/226-hover.png differ diff --git a/react-ui/public/assets/images/dataset/226.png b/react-ui/public/assets/images/dataset/226.png new file mode 100644 index 00000000..0c26129c Binary files /dev/null and b/react-ui/public/assets/images/dataset/226.png differ diff --git a/react-ui/public/assets/images/dataset/227-hover.png b/react-ui/public/assets/images/dataset/227-hover.png new file mode 100644 index 00000000..c7dfb095 Binary files /dev/null and b/react-ui/public/assets/images/dataset/227-hover.png differ diff --git a/react-ui/public/assets/images/dataset/227.png b/react-ui/public/assets/images/dataset/227.png new file mode 100644 index 00000000..fcfb2b32 Binary files /dev/null and b/react-ui/public/assets/images/dataset/227.png differ diff --git a/react-ui/public/assets/images/dataset/228-hover.png b/react-ui/public/assets/images/dataset/228-hover.png new file mode 100644 index 00000000..ad4dcfea Binary files /dev/null and b/react-ui/public/assets/images/dataset/228-hover.png differ diff --git a/react-ui/public/assets/images/dataset/228.png b/react-ui/public/assets/images/dataset/228.png new file mode 100644 index 00000000..ff0dd839 Binary files /dev/null and b/react-ui/public/assets/images/dataset/228.png differ diff --git a/react-ui/public/assets/images/dataset/229-hover.png b/react-ui/public/assets/images/dataset/229-hover.png new file mode 100644 index 00000000..da3eb819 Binary files /dev/null and b/react-ui/public/assets/images/dataset/229-hover.png differ diff --git a/react-ui/public/assets/images/dataset/229.png b/react-ui/public/assets/images/dataset/229.png new file mode 100644 index 00000000..a9944b63 Binary files /dev/null and b/react-ui/public/assets/images/dataset/229.png differ diff --git a/react-ui/public/assets/images/dataset/230-hover.png b/react-ui/public/assets/images/dataset/230-hover.png new file mode 100644 index 00000000..b5ee43a2 Binary files /dev/null and b/react-ui/public/assets/images/dataset/230-hover.png differ diff --git a/react-ui/public/assets/images/dataset/230.png b/react-ui/public/assets/images/dataset/230.png new file mode 100644 index 00000000..19615631 Binary files /dev/null and b/react-ui/public/assets/images/dataset/230.png differ diff --git a/react-ui/public/assets/images/dataset/231-hover.png b/react-ui/public/assets/images/dataset/231-hover.png new file mode 100644 index 00000000..21b5be81 Binary files /dev/null and b/react-ui/public/assets/images/dataset/231-hover.png differ diff --git a/react-ui/public/assets/images/dataset/231.png b/react-ui/public/assets/images/dataset/231.png new file mode 100644 index 00000000..f338c66d Binary files /dev/null and b/react-ui/public/assets/images/dataset/231.png differ diff --git a/react-ui/public/assets/images/model/301-hover.png b/react-ui/public/assets/images/model/301-hover.png new file mode 100644 index 00000000..7e5ec51c Binary files /dev/null and b/react-ui/public/assets/images/model/301-hover.png differ diff --git a/react-ui/public/assets/images/model/301.png b/react-ui/public/assets/images/model/301.png new file mode 100644 index 00000000..25657ea3 Binary files /dev/null and b/react-ui/public/assets/images/model/301.png differ diff --git a/react-ui/public/assets/images/model/302-hover.png b/react-ui/public/assets/images/model/302-hover.png new file mode 100644 index 00000000..ba5204b2 Binary files /dev/null and b/react-ui/public/assets/images/model/302-hover.png differ diff --git a/react-ui/public/assets/images/model/302.png b/react-ui/public/assets/images/model/302.png new file mode 100644 index 00000000..dbc659df Binary files /dev/null and b/react-ui/public/assets/images/model/302.png differ diff --git a/react-ui/public/assets/images/model/303-hover.png b/react-ui/public/assets/images/model/303-hover.png new file mode 100644 index 00000000..e8397758 Binary files /dev/null and b/react-ui/public/assets/images/model/303-hover.png differ diff --git a/react-ui/public/assets/images/model/303.png b/react-ui/public/assets/images/model/303.png new file mode 100644 index 00000000..a5cef19a Binary files /dev/null and b/react-ui/public/assets/images/model/303.png differ diff --git a/react-ui/public/assets/images/model/304-hover.png b/react-ui/public/assets/images/model/304-hover.png new file mode 100644 index 00000000..a33f5bbe Binary files /dev/null and b/react-ui/public/assets/images/model/304-hover.png differ diff --git a/react-ui/public/assets/images/model/304.png b/react-ui/public/assets/images/model/304.png new file mode 100644 index 00000000..ac04f077 Binary files /dev/null and b/react-ui/public/assets/images/model/304.png differ diff --git a/react-ui/public/assets/images/model/305-hover.png b/react-ui/public/assets/images/model/305-hover.png new file mode 100644 index 00000000..a2b6d11c Binary files /dev/null and b/react-ui/public/assets/images/model/305-hover.png differ diff --git a/react-ui/public/assets/images/model/305.png b/react-ui/public/assets/images/model/305.png new file mode 100644 index 00000000..d325e9b5 Binary files /dev/null and b/react-ui/public/assets/images/model/305.png differ diff --git a/react-ui/public/assets/images/model/306-hover.png b/react-ui/public/assets/images/model/306-hover.png new file mode 100644 index 00000000..40bdb681 Binary files /dev/null and b/react-ui/public/assets/images/model/306-hover.png differ diff --git a/react-ui/public/assets/images/model/306.png b/react-ui/public/assets/images/model/306.png new file mode 100644 index 00000000..93294f06 Binary files /dev/null and b/react-ui/public/assets/images/model/306.png differ diff --git a/react-ui/public/assets/images/model/307-hover.png b/react-ui/public/assets/images/model/307-hover.png new file mode 100644 index 00000000..fd2cfb13 Binary files /dev/null and b/react-ui/public/assets/images/model/307-hover.png differ diff --git a/react-ui/public/assets/images/model/307.png b/react-ui/public/assets/images/model/307.png new file mode 100644 index 00000000..51ebc12a Binary files /dev/null and b/react-ui/public/assets/images/model/307.png differ diff --git a/react-ui/public/assets/images/model/401-hover.png b/react-ui/public/assets/images/model/401-hover.png new file mode 100644 index 00000000..5ba8329e Binary files /dev/null and b/react-ui/public/assets/images/model/401-hover.png differ diff --git a/react-ui/public/assets/images/model/401.png b/react-ui/public/assets/images/model/401.png new file mode 100644 index 00000000..b956b157 Binary files /dev/null and b/react-ui/public/assets/images/model/401.png differ diff --git a/react-ui/public/assets/images/model/402-hover.png b/react-ui/public/assets/images/model/402-hover.png new file mode 100644 index 00000000..7c7a1556 Binary files /dev/null and b/react-ui/public/assets/images/model/402-hover.png differ diff --git a/react-ui/public/assets/images/model/402.png b/react-ui/public/assets/images/model/402.png new file mode 100644 index 00000000..324e16fc Binary files /dev/null and b/react-ui/public/assets/images/model/402.png differ diff --git a/react-ui/public/assets/images/model/403-hover.png b/react-ui/public/assets/images/model/403-hover.png new file mode 100644 index 00000000..525751e0 Binary files /dev/null and b/react-ui/public/assets/images/model/403-hover.png differ diff --git a/react-ui/public/assets/images/model/403.png b/react-ui/public/assets/images/model/403.png new file mode 100644 index 00000000..915a6b7f Binary files /dev/null and b/react-ui/public/assets/images/model/403.png differ diff --git a/react-ui/public/assets/images/model/404-hover.png b/react-ui/public/assets/images/model/404-hover.png new file mode 100644 index 00000000..f953e03a Binary files /dev/null and b/react-ui/public/assets/images/model/404-hover.png differ diff --git a/react-ui/public/assets/images/model/404.png b/react-ui/public/assets/images/model/404.png new file mode 100644 index 00000000..52769661 Binary files /dev/null and b/react-ui/public/assets/images/model/404.png differ diff --git a/react-ui/public/assets/images/model/405-hover.png b/react-ui/public/assets/images/model/405-hover.png new file mode 100644 index 00000000..473fa1ee Binary files /dev/null and b/react-ui/public/assets/images/model/405-hover.png differ diff --git a/react-ui/public/assets/images/model/405.png b/react-ui/public/assets/images/model/405.png new file mode 100644 index 00000000..10bb9a70 Binary files /dev/null and b/react-ui/public/assets/images/model/405.png differ diff --git a/react-ui/public/assets/images/model/406-hover.png b/react-ui/public/assets/images/model/406-hover.png new file mode 100644 index 00000000..e9948f2b Binary files /dev/null and b/react-ui/public/assets/images/model/406-hover.png differ diff --git a/react-ui/public/assets/images/model/406.png b/react-ui/public/assets/images/model/406.png new file mode 100644 index 00000000..80769f13 Binary files /dev/null and b/react-ui/public/assets/images/model/406.png differ diff --git a/react-ui/public/assets/images/model/407-hover.png b/react-ui/public/assets/images/model/407-hover.png new file mode 100644 index 00000000..0193f68a Binary files /dev/null and b/react-ui/public/assets/images/model/407-hover.png differ diff --git a/react-ui/public/assets/images/model/407.png b/react-ui/public/assets/images/model/407.png new file mode 100644 index 00000000..9bd4651d Binary files /dev/null and b/react-ui/public/assets/images/model/407.png differ diff --git a/react-ui/public/assets/images/model/408-hover.png b/react-ui/public/assets/images/model/408-hover.png new file mode 100644 index 00000000..a42c9e59 Binary files /dev/null and b/react-ui/public/assets/images/model/408-hover.png differ diff --git a/react-ui/public/assets/images/model/408.png b/react-ui/public/assets/images/model/408.png new file mode 100644 index 00000000..17d23dc6 Binary files /dev/null and b/react-ui/public/assets/images/model/408.png differ diff --git a/react-ui/public/assets/images/model/409-hover.png b/react-ui/public/assets/images/model/409-hover.png new file mode 100644 index 00000000..0cb3ff30 Binary files /dev/null and b/react-ui/public/assets/images/model/409-hover.png differ diff --git a/react-ui/public/assets/images/model/409.png b/react-ui/public/assets/images/model/409.png new file mode 100644 index 00000000..5f0c3014 Binary files /dev/null and b/react-ui/public/assets/images/model/409.png differ diff --git a/react-ui/public/assets/images/model/410-hover.png b/react-ui/public/assets/images/model/410-hover.png new file mode 100644 index 00000000..84da02c1 Binary files /dev/null and b/react-ui/public/assets/images/model/410-hover.png differ diff --git a/react-ui/public/assets/images/model/410.png b/react-ui/public/assets/images/model/410.png new file mode 100644 index 00000000..50175005 Binary files /dev/null and b/react-ui/public/assets/images/model/410.png differ diff --git a/react-ui/public/assets/images/model/411-hover.png b/react-ui/public/assets/images/model/411-hover.png new file mode 100644 index 00000000..1ed50a25 Binary files /dev/null and b/react-ui/public/assets/images/model/411-hover.png differ diff --git a/react-ui/public/assets/images/model/411.png b/react-ui/public/assets/images/model/411.png new file mode 100644 index 00000000..75e1f70c Binary files /dev/null and b/react-ui/public/assets/images/model/411.png differ diff --git a/react-ui/public/assets/images/model/412-hover.png b/react-ui/public/assets/images/model/412-hover.png new file mode 100644 index 00000000..c2811d1a Binary files /dev/null and b/react-ui/public/assets/images/model/412-hover.png differ diff --git a/react-ui/public/assets/images/model/412.png b/react-ui/public/assets/images/model/412.png new file mode 100644 index 00000000..9c393719 Binary files /dev/null and b/react-ui/public/assets/images/model/412.png differ diff --git a/react-ui/public/assets/images/model/413-hover.png b/react-ui/public/assets/images/model/413-hover.png new file mode 100644 index 00000000..781784ed Binary files /dev/null and b/react-ui/public/assets/images/model/413-hover.png differ diff --git a/react-ui/public/assets/images/model/413.png b/react-ui/public/assets/images/model/413.png new file mode 100644 index 00000000..1a97d2cb Binary files /dev/null and b/react-ui/public/assets/images/model/413.png differ diff --git a/react-ui/public/assets/images/model/414-hover.png b/react-ui/public/assets/images/model/414-hover.png new file mode 100644 index 00000000..359db025 Binary files /dev/null and b/react-ui/public/assets/images/model/414-hover.png differ diff --git a/react-ui/public/assets/images/model/414.png b/react-ui/public/assets/images/model/414.png new file mode 100644 index 00000000..c154cb8f Binary files /dev/null and b/react-ui/public/assets/images/model/414.png differ diff --git a/react-ui/public/assets/images/model/415-hover.png b/react-ui/public/assets/images/model/415-hover.png new file mode 100644 index 00000000..47a5feb2 Binary files /dev/null and b/react-ui/public/assets/images/model/415-hover.png differ diff --git a/react-ui/public/assets/images/model/415.png b/react-ui/public/assets/images/model/415.png new file mode 100644 index 00000000..0155b437 Binary files /dev/null and b/react-ui/public/assets/images/model/415.png differ diff --git a/react-ui/public/assets/images/model/416-hover.png b/react-ui/public/assets/images/model/416-hover.png new file mode 100644 index 00000000..223f57fd Binary files /dev/null and b/react-ui/public/assets/images/model/416-hover.png differ diff --git a/react-ui/public/assets/images/model/416.png b/react-ui/public/assets/images/model/416.png new file mode 100644 index 00000000..654e3f00 Binary files /dev/null and b/react-ui/public/assets/images/model/416.png differ diff --git a/react-ui/public/assets/images/model/417-hover.png b/react-ui/public/assets/images/model/417-hover.png new file mode 100644 index 00000000..bd84640b Binary files /dev/null and b/react-ui/public/assets/images/model/417-hover.png differ diff --git a/react-ui/public/assets/images/model/417.png b/react-ui/public/assets/images/model/417.png new file mode 100644 index 00000000..c4cd1a1e Binary files /dev/null and b/react-ui/public/assets/images/model/417.png differ diff --git a/react-ui/public/assets/images/model/418-hover.png b/react-ui/public/assets/images/model/418-hover.png new file mode 100644 index 00000000..6e731363 Binary files /dev/null and b/react-ui/public/assets/images/model/418-hover.png differ diff --git a/react-ui/public/assets/images/model/418.png b/react-ui/public/assets/images/model/418.png new file mode 100644 index 00000000..f17f408e Binary files /dev/null and b/react-ui/public/assets/images/model/418.png differ diff --git a/react-ui/public/assets/images/model/419-hover.png b/react-ui/public/assets/images/model/419-hover.png new file mode 100644 index 00000000..d8eb74ed Binary files /dev/null and b/react-ui/public/assets/images/model/419-hover.png differ diff --git a/react-ui/public/assets/images/model/419.png b/react-ui/public/assets/images/model/419.png new file mode 100644 index 00000000..e63a5e13 Binary files /dev/null and b/react-ui/public/assets/images/model/419.png differ diff --git a/react-ui/public/assets/images/model/420-hover.png b/react-ui/public/assets/images/model/420-hover.png new file mode 100644 index 00000000..692e3731 Binary files /dev/null and b/react-ui/public/assets/images/model/420-hover.png differ diff --git a/react-ui/public/assets/images/model/420.png b/react-ui/public/assets/images/model/420.png new file mode 100644 index 00000000..e9747894 Binary files /dev/null and b/react-ui/public/assets/images/model/420.png differ diff --git a/react-ui/public/assets/images/model/421-hover.png b/react-ui/public/assets/images/model/421-hover.png new file mode 100644 index 00000000..88596858 Binary files /dev/null and b/react-ui/public/assets/images/model/421-hover.png differ diff --git a/react-ui/public/assets/images/model/421.png b/react-ui/public/assets/images/model/421.png new file mode 100644 index 00000000..ec5f9da8 Binary files /dev/null and b/react-ui/public/assets/images/model/421.png differ diff --git a/react-ui/public/assets/images/model/422-hover.png b/react-ui/public/assets/images/model/422-hover.png new file mode 100644 index 00000000..44f36292 Binary files /dev/null and b/react-ui/public/assets/images/model/422-hover.png differ diff --git a/react-ui/public/assets/images/model/422.png b/react-ui/public/assets/images/model/422.png new file mode 100644 index 00000000..5d60e0d1 Binary files /dev/null and b/react-ui/public/assets/images/model/422.png differ diff --git a/react-ui/public/assets/images/model/423-hover.png b/react-ui/public/assets/images/model/423-hover.png new file mode 100644 index 00000000..cb160d8d Binary files /dev/null and b/react-ui/public/assets/images/model/423-hover.png differ diff --git a/react-ui/public/assets/images/model/423.png b/react-ui/public/assets/images/model/423.png new file mode 100644 index 00000000..52419ee3 Binary files /dev/null and b/react-ui/public/assets/images/model/423.png differ diff --git a/react-ui/public/assets/images/sjj-icon-1.png b/react-ui/public/assets/images/sjj-icon-1.png new file mode 100644 index 00000000..3f2e7d4f Binary files /dev/null and b/react-ui/public/assets/images/sjj-icon-1.png differ diff --git a/react-ui/public/assets/images/upload-icon.png b/react-ui/public/assets/images/upload-icon.png new file mode 100644 index 00000000..74be5489 Binary files /dev/null and b/react-ui/public/assets/images/upload-icon.png differ diff --git a/react-ui/src/app.tsx b/react-ui/src/app.tsx index 45eafeeb..de4c7db2 100644 --- a/react-ui/src/app.tsx +++ b/react-ui/src/app.tsx @@ -12,7 +12,8 @@ import { getRemoteMenu, getRoutersInfo, getUserInfo, patchRouteWithRemoteMenus, import { PageEnum } from './enums/pagesEnums'; import '../public/fonts/font.css' import './global.less' - +import axios from 'axios' +axios.defaults.baseUrl='http://172.20.32.150:8082' const isDev = process.env.NODE_ENV === 'development'; diff --git a/react-ui/src/global.less b/react-ui/src/global.less index 4e109ebf..c6d331ea 100644 --- a/react-ui/src/global.less +++ b/react-ui/src/global.less @@ -52,8 +52,9 @@ body { border-radius:0px 20px 20px 0px; } .ant-pro-layout .ant-pro-layout-content{ - background-color: #fff; + background-color: transparent; } + .ant-pro-global-header-logo img{ height: 21px; } @@ -63,6 +64,35 @@ border-radius:0px 20px 20px 0px; .ant-pro-layout .ant-pro-layout-container{ height: 98vh; } +.ant-pagination .ant-pagination-item-active a{ + background:#1664ff; + color: #fff; + border-color: #1664ff; +} +.ant-pagination .ant-pagination-item-active a:hover{ + background:rgba(22, 100, 255, 0.8); + color: #fff; + border-color: rgba(22, 100, 255, 0.8); +} +// ::-webkit-scrollbar-button { +// background: #97a1bd; +// } +::-webkit-scrollbar{ + width:9px; + border-radius: 2px; +} +::-webkit-scrollbar-thumb{ + // background-color: #9aa3bc!important; + width: 7px; + background:rgba(77, 87, 123,0.5)!important; + +} +::-webkit-scrollbar-track{ + // background-color: #eaf1ff!important; + width: 9px; + background:rgba(22, 100, 255,0.06)!important; + +} ul, ol { list-style: none; diff --git a/react-ui/src/pages/Dataset/datasetIntro.jsx b/react-ui/src/pages/Dataset/datasetIntro.jsx new file mode 100644 index 00000000..05b01e31 --- /dev/null +++ b/react-ui/src/pages/Dataset/datasetIntro.jsx @@ -0,0 +1,298 @@ + +import React ,{useEffect,useState,useRef}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,Select,Table,Upload} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined,UploadOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getDatasetList,getDatasetById,getDatasetVersionsById,getDatasetVersionIdList,deleteDatasetVersion,addDatasetVersionDetail,exportDataset} from '@/services/dataset/index.js' +import { useParams } from 'react-router-dom' +import {downLoadZip} from '@/utils/downloadfile' +const { Search } = Input; +import moment from 'moment'; +import { getAccessToken } from '@/access'; +const { TabPane } = Tabs; + +const Dataset= React.FC = () => { + const props = { + action: '/api/mmp/dataset/upload', + // headers: { + // 'X-Requested-With': null + // }, + headers: { + Authorization:getAccessToken(), + 'X-Requested-With': null + + }, + onChange({ file, fileList }) { + if (file.status !== 'uploading') { + console.log(file, fileList); + setFormList(fileList.map(item=>{ + return { + ...form.getFieldsValue(), + dataset_id:locationParams.id, + file_name:item.response.data[0].fileName, + file_size:item.response.data[0].fileSize, + url:item.response.data[0].url, + } + })) + } + }, + defaultFileList: [ + ], + }; + const [form] = Form.useForm(); + const [formList,setFormList]=useState([]) + const [dialogTitle, setDialogTitle] = useState('新建版本'); + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetDetailObj,setDatasetDetailObj]=useState({ + }); + const [version,setVersion]=useState('') + const [versionList, setVersionList] = useState([]); + const locationParams =useParams () //新版本获取路由参数接口 + console.log(locationParams); + const [wordList, setWordList] = useState([]); + const getDatasetByDetail=()=>{ + getDatasetById(locationParams.id).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetDetailObj(ret.data) + } + }) + } + const getDatasetVersionList=()=>{ + getDatasetVersionsById(locationParams.id).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data&&ret.data.length>0){ + setVersionList(ret.data.map(item=>{ + return { + 'label':item, + 'value':item + } + })) + } + }) + } + useEffect(()=>{ + getDatasetByDetail() + getDatasetVersionList() + return ()=>{ + + } + },[]) + const showModal = () => { + form.resetFields() + form.setFieldsValue({name:datasetDetailObj.name}) + + setDialogTitle('创建新版本') + setIsModalOpen(true); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const handleExport = async () => { + const hide = message.loading('正在下载'); + hide(); + downLoadZip(`/api/mmp/dataset/downloadAllFiles`,{dataset_id:locationParams.id,version}) + }; + const deleteDataset=()=>{ + Modal.confirm({ + title: '删除', + content: '确定删除数据集版本?', + okText: '确认', + cancelText: '取消', + + onOk: () => { + deleteDatasetVersion({dataset_id:locationParams.id,version}).then(ret=>{ + if(ret.code==200){ + message.success('删除成功') + getDatasetVersions({version,dataset_id:locationParams.id}) + } + else{ + message.error(ret.msg) + } + }); + }, + }); + } + const onFinish = (values) => { + addDatasetVersionDetail(formList).then(ret=>{ + console.log(ret); + getDatasetVersionList() + setIsModalOpen(false); + }) + }; + const getDatasetVersions=(params)=>{ + getDatasetVersionIdList(params).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setWordList(ret.data) + } + }) + } + const handleChange=(value)=>{ + console.log(value); + if(value){ + getDatasetVersions({version:value,dataset_id:locationParams.id}) + setVersion(value) + } + else{ + setVersion(null) + } + } + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + const downloadAlone=(e,record)=>{ + console.log(record); + const hide = message.loading('正在下载'); + hide(); + downLoadZip(`/api/mmp//dataset/download/${record.id}`) + } + const columns = [ + // { + // title: '序号', + // dataIndex: 'index', + // key: 'index', + // width: 80, + // render(text, record, index) { + // return ( + // {(pageOption.current.page - 1) * 10 + index + 1} + // ) + // } + // // render: (text, record, index) => `${((curPage-1)*10)+(index+1)}`, + // }, + { + title: '文件名称', + dataIndex: 'file_name', + key: 'file_name', + render: (text,record) => downloadAlone(e,record)}>{text}, + }, + { + title: '版本号', + dataIndex: 'version', + key: 'version', + }, + { + title: '文件大小', + dataIndex: 'file_size', + key: 'file_size', + }, + { + title: '更新时间', + dataIndex: 'update_time', + key: 'update_time', + render: (text) => {moment(text).format('YYYY-MM-DD HH:mm:ss')}, + }, + ]; + const pageOption = useRef({page: 1,size: 10}) + + // 当前页面切换 + const paginationChange = async (current, size) => { + console.log('page', current, size) + pageOption.current={ + page:current, + size:size + } + // getList() + } + return (
+
+ {datasetDetailObj.name} +
+
{datasetDetailObj.data_tag||'...'}
+
{datasetDetailObj.data_type}
+ {/*
English
*/} +
+
+
+ + +
简介
+
{datasetDetailObj.description}
+
+ +
+
数据集文件列表
+
+
+ 版本号: + + + + + + + + + + + + + +
) +}; +export default Dataset; \ No newline at end of file diff --git a/react-ui/src/pages/Dataset/index.jsx b/react-ui/src/pages/Dataset/index.jsx new file mode 100644 index 00000000..7a8bf2eb --- /dev/null +++ b/react-ui/src/pages/Dataset/index.jsx @@ -0,0 +1,84 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getDatasetList} from '@/services/dataset/index.js' +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +const { TabPane } = Tabs; +import PublicData from './publicData'; +import PersonalData from './personalData' +const leftdataList=[1,2,3] + +const Dataset= React.FC = () => { + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null + }); + const navgite=useNavigate(); + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建数据'); + const getDatasetlist=()=>{ + getDatasetList(queryFlow).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetList(ret.data.content) + setTotal(ret.data.totalElements) + } + }) + } + + const showModal = () => { + form.resetFields() + setDialogTitle('新建数据集') + setIsModalOpen(true); + }; + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const onFinish = (values) => { + + }; + const routeToIntro=(e,record)=>{ + e.stopPropagation() + navgite({pathname:'/dataset/datasetIntro' }); +} + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + + getDatasetlist() + return ()=>{ + + } + },[]) + return (
+
+
+
+ + + + + + + + +
+ +
) +}; +export default Dataset; \ No newline at end of file diff --git a/react-ui/src/pages/Dataset/index.less b/react-ui/src/pages/Dataset/index.less new file mode 100644 index 00000000..a3994d1d --- /dev/null +++ b/react-ui/src/pages/Dataset/index.less @@ -0,0 +1,303 @@ +.datasetTopBox{ + display: flex; + align-items: center; + padding-right: 30px; + width: 100%; + height: 49px; + background-size: 100% 100%; + background-image: url(/assets/images/pipeline-back.png); + padding: 0 30px; +} +.datasetIntroTopBox{ + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; + height: 110px; + background-size: 100% 100%; + background-image: url(/assets/images/dataset-back.png); + margin-bottom: 10px; + padding: 25px 30px; + .smallTagBox{ + display: flex; + align-items: center; + color:#1664ff; + font-size:14px; + .tagItem{ + padding: 4px 10px; + background: rgba(22, 100, 255, 0.1); + border-radius:4px; + margin-right: 20px; + } + } +} +.dataListBox{ + padding: 20px 30px; + background:#ffffff; + border-radius:10px; + box-shadow:0px 2px 12px rgba(180, 182, 191, 0.09); + color:#1d1d20; + font-size:16px; + .dataButtonList{ + display: flex; + justify-content: space-between; + align-items: center; + height: 32px; + margin: 24px 0 30px 0; + color:#575757; + font-size:16px; + } +} +.datasetIntroCneterBox{ + height: 77vh; + padding: 20px 30px; + background:#ffffff; + border-radius:10px; + box-shadow:0px 2px 12px rgba(180, 182, 191, 0.09); +} +.datasetIntroTitle{ + color:#1d1d20; + font-size:15px; + margin: 37px 0 10px 0; +} +.datasetIntroText{ + color:#575757; + font-size:14px; + margin-bottom: 30px; +} +.datasetBox{ + background:#f9fafb; + font-family: 'Alibaba'; + :global{ + .ant-tabs-top >.ant-tabs-nav{ + margin: 0; + } + .ant-pagination{ + text-align: right; + } + + } +} +.datasetAllBox{ + :global{ + .ant-tabs-nav .ant-tabs-nav-wrap{ + margin: -48px 0 0 30px; + } + + } +} +.plusButton{ + margin: 0 18px 0 20px; + background:rgba(22, 100, 255, 0.06); + border:1px solid; + border-color:rgba(22, 100, 255, 0.11); + border-radius:4px; + color:#1d1d20; + font-size:14px; + font-family: 'Alibaba'; +} +.plusButton:hover{ + background:rgba(22, 100, 255, 0.06)!important; + border:1px solid!important; + border-color:rgba(22, 100, 255, 0.11)!important; + color:#1d1d20!important; +} +.datasetCneterBox{ + display: flex; + justify-content: space-between; + height: 85vh; + width: 100%; + :global{ + .ant-btn{ + color:#1d1d20; + font-size:14px; + } + } + .datasetCneterLeftBox{ + width:340px; + height:100%; + background:#ffffff; + box-shadow:0px 3px 6px rgba(146, 146, 146, 0.09); + margin-right: 10px; + padding-top: 15px; + .custTab{ + display: flex; + border-bottom: 1px solid #e0eaff; + height: 32px; + .tabItem{ + width: 52px; + height: 100%; + text-align: center; + color:#808080; + font-size:15px; + cursor: pointer; + } + } + .leftContentBox{ + max-height: 80vh; + overflow-y: auto; + overflow-x: hidden; + padding: 15px 20px; + .itemTitle{ + color:#1d1d20; + font-size:14px; + margin-bottom: 15px; + } + .itemBox{ + width: 110%; + display: flex; + flex-wrap: wrap; + align-content: start; + .messageBox{ + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + cursor: pointer; + width:92px; + height:62px; + border:1px solid; + border-color:rgba(22, 100, 255, 0.05); + border-radius:4px; + margin: 0 12px 20px 0; + padding: 11px 0px 7px 0px; + color:#1d1d20; + font-size:12px; + .ptIcon{ + display: block; + } + .hoverIcon{ + display: none; + } + .messageText{ + width: 65px; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + .messageBox:hover{ + background:rgba(22, 100, 255, 0.03); + border:1px solid; + border-color:#1664ff; + .ptIcon{ + display: none; + } + .hoverIcon{ + display: block; + } + } + .active{ + background:rgba(22, 100, 255, 0.03)!important; + border:1px solid!important; + border-color:#1664ff!important; + .ptIcon{ + display: none!important; + } + .hoverIcon{ + display: block!important; + } + } + } + } + } + + .datasetCneterRightBox{ + display: flex; + flex-direction: column; + padding: 22px 30px 26px 30px; + flex: 1; + height:100%; + background:#ffffff; + box-shadow:0px 3px 6px rgba(146, 146, 146, 0.09); + .dataSource{ + display: flex; + justify-content: space-between; + align-items: center; + height: 32px; + margin-bottom: 30px; + color:rgba(29, 29, 32, 0.8); + font-size:15px; + } + .dataContent{ + width: 100%; + flex: 1; + display: flex; + flex-wrap: wrap; + align-content: flex-start; + .dataItem{ + width: 32%; + margin: 0 15px 18px 0; + height:66px; + position: relative; + background:rgba(128, 128, 128, 0.05); + border-radius:8px; + box-shadow:0px 0px 12px rgba(75, 84, 137, 0.05); + cursor: pointer; + .itemText{ + position: absolute; + left: 20px; + top: 10px; + color:#1d1d20; + font-size:15px; + + } + .itemTime{ + position: absolute; + left: 20px; + bottom: 10px; + color:#808080; + font-size:14px; + } + .itemIcon{ + position: absolute; + right: 20px; + bottom: 10px; + color:#808080; + font-size:14px; + } + } + } + } +} +.modal { + :global { + .ant-modal-content { + background:linear-gradient(180deg,#cfdfff 0%,#d4e2ff 9.77%,#ffffff 40%,#ffffff 100%); + border-radius:21px; + padding: 20px 67px; + width: 825px; + + } + .ant-modal-header{ + background-color: transparent; + margin: 20px 0; + } + .ant-input{ + border-color:#e6e6e6; + height: 40px; + + } + .ant-form-item .ant-form-item-label >label{ + color:rgba(29, 29, 32, 0.8); + } + .ant-modal-footer{ + margin: 40px 0 30px 0; + display: flex; + justify-content: center; + } + .ant-btn{ + width:110px; + height:40px; + font-size:18px; + background:rgba(22, 100, 255, 0.06); + border-radius:10px; + border-color: transparent; + + } + .ant-btn-primary{ + background:#1664ff; + } + } +} \ No newline at end of file diff --git a/react-ui/src/pages/Dataset/personalData.jsx b/react-ui/src/pages/Dataset/personalData.jsx new file mode 100644 index 00000000..5ee5d3c6 --- /dev/null +++ b/react-ui/src/pages/Dataset/personalData.jsx @@ -0,0 +1,342 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,Select,Upload } from 'antd'; +import { PlusOutlined,PlusCircleOutlined,UploadOutlined , DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getDatasetList,addDatesetAndVesion,getAssetIcon} from '@/services/dataset/index.js' +import { getDictSelectOption } from "@/services/system/dict"; +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +import axios from 'axios' +import { getAccessToken } from '@/access'; +const leftdataList=[1,2,3] + +const PublicData= React.FC = () => { + + const props = { + action: '/api/mmp/dataset/upload', + // headers: { + // 'X-Requested-With': null + // }, + headers: { + Authorization:getAccessToken(), + 'X-Requested-With': null + + }, + onChange({ file, fileList }) { + if (file.status !== 'uploading') { + console.log(file, fileList); + form.setFieldsValue({dataset_version_vos:fileList.map(item=>item.response.data[0])}) + } + }, + defaultFileList: [ + ], + }; + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null, + available_range:0, + }); + const [iconParams,setIconParams]=useState({ + name:null, + page:0, + size:10000 + }) + const [activeType,setActiveType]=useState(null) + const [activeTag,setActiveTag]=useState(null) + const [datasetTypeList,setDatasetTypeList]=useState([]) + const [datasetDirectionList,setDatasetDirectionList]=useState([]) + const navgite=useNavigate(); + const [clusterOptions,setClusterOptions]=useState([]) + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建数据'); + const getDatasetlist=(queryFlow)=>{ + getDatasetList(queryFlow).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetList(ret.data.content) + setTotal(ret.data.totalElements) + } + }) + } + + const showModal = () => { + form.resetFields() + setDialogTitle('新建数据集') + setIsModalOpen(true); + }; + const getAssetIconList=(params)=>{ + getAssetIcon(params).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data.content&&ret.data.content.length>0){ + setDatasetTypeList(ret.data.content.filter(item=>item.category_id==1)) + setDatasetDirectionList(ret.data.content.filter(item=>item.category_id==2)) + } + else{ + setDatasetTypeList([]) + setDatasetDirectionList([]) + } + }) + } + const onSearch=(values)=>{ + console.log(values); + getAssetIconList({...iconParams,name:values}) + } + const nameSearch=(values)=>{ + console.log(values); + getDatasetlist({...queryFlow,name:values}) + } + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const chooseDatasetType=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.data_type){ + setActiveType('') + setQueryFlow({...queryFlow,data_type:null}) + getDatasetlist({...queryFlow,data_type:null}) + } + else{ + setActiveType(item.path) + setQueryFlow({...queryFlow,data_type:item.path}) + getDatasetlist({...queryFlow,data_type:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const chooseDatasetTag=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.data_tag){ + setActiveTag('') + setQueryFlow({...queryFlow,data_tag:null}) + getDatasetlist({...queryFlow,data_tag:null}) + } + else{ + setActiveTag(item.path) + setQueryFlow({...queryFlow,data_tag:item.path}) + getDatasetlist({...queryFlow,data_tag:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const onFinish = (values) => { + addDatesetAndVesion(values).then(ret=>{ + console.log(ret); + setIsModalOpen(false); + getDatasetlist(queryFlow) + }) + }; + const routeToIntro=(e,record)=>{ + e.stopPropagation() + console.log(record); + navgite({pathname:`/dataset/datasetIntro/${record.id}` }); +} + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + getDictSelectOption('available_cluster').then((data) => { + + setClusterOptions(data); + }); + getAssetIconList(iconParams) + getDatasetlist(queryFlow) + return ()=>{ + + } + },[]) + return (<> + +
+
+
+ +
分类
+
+ + {datasetTypeList&&datasetTypeList.length>0?datasetTypeList.map(item=>{return
+
{chooseDatasetType(e, item)}} > + + + {item.name} +
+
}):''} +
+
研究方向/应用领域
+
+ + {datasetDirectionList&&datasetDirectionList.length>0?datasetDirectionList.map(item=>{return
+
{chooseDatasetTag(e, item)}}> + + + {item.name} +
+
}):''} +
+
+
+
+
+ 数据总数:{total}个 +
+ + +
+
+
+ {datasetList&&datasetList.length>0?datasetList.map(item=>{return
routeToIntro(e,item)}> +
{item.name}
+
最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
+
1582
+
}):''} + {/* Demo */} +
+ +
+
+ + {dialogTitle} +
} open={isModalOpen} className={Styles.modal} okButtonProps={{ + htmlType: 'submit', + form: 'form', + }} onCancel={handleCancel}> +
+ + + + + + + + {return {value:item.id,label:item.name}})} + /> + + + + + + + 仅自己可见 + 工作空间可见 + + + + + + + +
+ + ) +}; +export default PublicData; \ No newline at end of file diff --git a/react-ui/src/pages/Dataset/publicData.jsx b/react-ui/src/pages/Dataset/publicData.jsx new file mode 100644 index 00000000..ea783ff9 --- /dev/null +++ b/react-ui/src/pages/Dataset/publicData.jsx @@ -0,0 +1,195 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getDatasetList,getAssetIcon} from '@/services/dataset/index.js' +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +const leftdataList=[1,2,3] + +const PublicData= React.FC = () => { + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null, + available_range:1 + }); + const [iconParams,setIconParams]=useState({ + name:null, + page:0, + size:10000 + }) + const navgite=useNavigate(); + const [datasetTypeList,setDatasetTypeList]=useState([]) + const [datasetDirectionList,setDatasetDirectionList]=useState([]) + const [activeType,setActiveType]=useState(null) + const [activeTag,setActiveTag]=useState(null) + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建数据'); + const getDatasetlist=(queryFlow)=>{ + getDatasetList(queryFlow).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetList(ret.data.content) + setTotal(ret.data.totalElements) + } + }) + } + const onSearch=(values)=>{ + console.log(values); + getAssetIconList({...iconParams,name:values}) + } + const getAssetIconList=(params)=>{ + getAssetIcon(params).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data.content&&ret.data.content.length>0){ + setDatasetTypeList(ret.data.content.filter(item=>item.category_id==1)) + setDatasetDirectionList(ret.data.content.filter(item=>item.category_id==2)) + } + else{ + setDatasetTypeList([]) + setDatasetDirectionList([]) + } + }) + } + const nameSearch=(values)=>{ + console.log(values); + getDatasetlist({...queryFlow,name:values}) + } + const showModal = () => { + form.resetFields() + setDialogTitle('新建数据集') + setIsModalOpen(true); + }; + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const chooseDatasetType=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.data_type){ + setActiveType('') + setQueryFlow({...queryFlow,data_type:null}) + getDatasetlist({...queryFlow,data_type:null}) + } + else{ + setActiveType(item.path) + setQueryFlow({...queryFlow,data_type:item.path}) + getDatasetlist({...queryFlow,data_type:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const chooseDatasetTag=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.data_tag){ + setActiveTag('') + setQueryFlow({...queryFlow,data_tag:null}) + getDatasetlist({...queryFlow,data_tag:null}) + } + else{ + setActiveTag(item.path) + setQueryFlow({...queryFlow,data_tag:item.path}) + getDatasetlist({...queryFlow,data_tag:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + + const routeToIntro=(e,record)=>{ + e.stopPropagation() + console.log(record); + navgite({pathname:`/dataset/datasetIntro/${record.id}` }); + } + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + getAssetIconList(iconParams) + getDatasetlist(queryFlow) + return ()=>{ + + } + },[]) + return (<> + +
+
+
+ +
分类
+
+ + {datasetTypeList&&datasetTypeList.length>0?datasetTypeList.map(item=>{return
+
{chooseDatasetType(e, item)}}> + + + {item.name} +
+
}):''} +
+
研究方向/应用领域
+
+ + {datasetDirectionList&&datasetDirectionList.length>0?datasetDirectionList.map(item=>{return
+
{chooseDatasetTag(e, item)}}> + + + {item.name} +
+
}):''} +
+
+
+
+
+ 数据总数:{total}个 +
+ +
+
+
+ {datasetList&&datasetList.length>0?datasetList.map(item=>{return
routeToIntro(e,item)}> +
{item.name}
+
最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
+
1582
+
}):''} + {/* Demo */} +
+ +
+
+ ) +}; +export default PublicData; \ No newline at end of file diff --git a/react-ui/src/pages/Experiment/experimentText/editPipeline.less b/react-ui/src/pages/Experiment/experimentText/editPipeline.less index 6838c151..684b377c 100644 --- a/react-ui/src/pages/Experiment/experimentText/editPipeline.less +++ b/react-ui/src/pages/Experiment/experimentText/editPipeline.less @@ -13,6 +13,7 @@ font-size:15px; font-family: 'Alibaba'; padding: 0 20px; + margin-bottom: 10px; } .centerContainer{ flex: 1; @@ -41,4 +42,20 @@ align-items: center; color:rgba(29, 29, 32, 0.8); font-size:15px; margin-right: 30px; +} +.resultTop{ + border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 0; +} +.resultContent{ + width: 100%; + display: flex; + justify-content: space-between; + + align-items: center; + padding: 0 20px 0 0; + margin-bottom: 10px; } \ No newline at end of file diff --git a/react-ui/src/pages/Experiment/experimentText/index.jsx b/react-ui/src/pages/Experiment/experimentText/index.jsx index 354f349c..51b0f21f 100644 --- a/react-ui/src/pages/Experiment/experimentText/index.jsx +++ b/react-ui/src/pages/Experiment/experimentText/index.jsx @@ -238,7 +238,6 @@ const ExperimentText = React.FC = () => { height: graphRef.current.clientHeight||760, animate: false, groupByTypes: false, - fitView:true, enabledStack: true, modes: { default: [ @@ -345,7 +344,7 @@ const ExperimentText = React.FC = () => { }, }, // linkCenter: true, - fitView: true, + fitView: false, fitViewPadding: [60, 60, 60, 80], }); graph.on('dblclick', handlerClick); diff --git a/react-ui/src/pages/Experiment/experimentText/props.jsx b/react-ui/src/pages/Experiment/experimentText/props.jsx index 2b2fec99..f322cba9 100644 --- a/react-ui/src/pages/Experiment/experimentText/props.jsx +++ b/react-ui/src/pages/Experiment/experimentText/props.jsx @@ -1,13 +1,15 @@ import React, { useState,useImperativeHandle ,forwardRef } from 'react'; -import { Button, Drawer,Form, Input ,Tabs } from 'antd'; +import { Button, Drawer,Form, Input ,Tabs,message } from 'antd'; import Styles from './editPipeline.less' -import{getQueryByExperimentLog}from '@/services/experiment/index.js' +import{getQueryByExperimentLog,getNodeResult}from '@/services/experiment/index.js' import { ProfileOutlined, DatabaseOutlined} from '@ant-design/icons'; +import {downLoadZip} from '@/utils/downloadfile' import momnet from 'moment' const { TextArea } = Input; const Props = forwardRef(({onParentChange}, ref) =>{ const [form] = Form.useForm(); const [stagingItem,setStagingItem]=useState({}) + const [resultObj,setResultObj]=useState([]) const [messageItem,setMessageItem]=useState('') const statusObj={ "Running":'运行中', @@ -29,6 +31,12 @@ const Props = forwardRef(({onParentChange}, ref) =>{ "Skipped":'#8a8a8a', "Omitted":'#8a8a8ae', } + const exportResult=(e,val)=>{ + + const hide = message.loading('正在下载'); + hide(); + downLoadZip(`/api/mmp/minioStorage/download`,{path:val}) + } const timers=(time)=>{ let timer=new Date(time) let hours = timer.getHours(); //转换成时 @@ -196,6 +204,38 @@ const Props = forwardRef(({onParentChange}, ref) =>{ ):''} , }, + { + key: '3', + label: '输出结果', + children:
+ {resultObj&&resultObj.length>0?resultObj.map(item=>
+ +
+ 文件名称 + 文件大小 +
+ {item.value&&item.value.length>0?item.value.map(ele=> +
+ {ele.name} + {ele.size} +
):null} +
):null} + +
, + icon: + }, ]; const [open, setOpen] = useState(false); const afterOpenChange=()=>{ @@ -249,6 +289,8 @@ const Props = forwardRef(({onParentChange}, ref) =>{ } getQueryByExperimentLog(params).then(ret=>{ console.log(ret); + getNodeResult({id,node_id:e.item.getModel().id}).then(res=>{ + setResultObj(res.data) let msg=ret.msg.replace(/\n/g,"
") let newMsg=msg.replace(/\r/g,"
") setMessageItem(newMsg) @@ -256,6 +298,8 @@ const Props = forwardRef(({onParentChange}, ref) =>{ form.setFieldsValue({...e.item.getModel(),in_parameters:JSON.parse(e.item.getModel().in_parameters),out_parameters:JSON.parse(e.item.getModel().out_parameters),control_strategy:JSON.parse(e.item.getModel().control_strategy)}) setStagingItem({...e.item.getModel(),in_parameters:JSON.parse(e.item.getModel().in_parameters),out_parameters:JSON.parse(e.item.getModel().out_parameters),control_strategy:JSON.parse(e.item.getModel().control_strategy)}) setOpen(true); + }) + }) } else{ diff --git a/react-ui/src/pages/Experiment/index.less b/react-ui/src/pages/Experiment/index.less index f1fc5a1f..42a3d6da 100644 --- a/react-ui/src/pages/Experiment/index.less +++ b/react-ui/src/pages/Experiment/index.less @@ -45,6 +45,7 @@ padding: 0 65px 0 40px; } + .statusBox{ display: flex; align-items: center; @@ -87,11 +88,12 @@ justify-content: center; } .ant-btn{ - width:123px; + width:110px; height:40px; font-size:18px; background:rgba(22, 100, 255, 0.06); border-radius:10px; + border-color: transparent; } .ant-btn-primary{ background:#1664ff; diff --git a/react-ui/src/pages/Model/index.jsx b/react-ui/src/pages/Model/index.jsx new file mode 100644 index 00000000..5b93bcec --- /dev/null +++ b/react-ui/src/pages/Model/index.jsx @@ -0,0 +1,83 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +// import {getModelList} from '@/services/dataset/index.js' +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +const { TabPane } = Tabs; +import PublicData from './publicData'; +import PersonalData from './personalData' +const leftdataList=[1,2,3] + +const Dataset= React.FC = () => { + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null + }); + const navgite=useNavigate(); + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建数据'); + // const getModelLists=()=>{ + // getModelList(queryFlow).then(ret=>{ + // console.log(ret); + // if(ret.code==200){ + // setDatasetList(ret.data.content) + // setTotal(ret.data.totalElements) + // } + // }) + // } + + const showModal = () => { + form.resetFields() + setDialogTitle('新建数据集') + setIsModalOpen(true); + }; + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const onFinish = (values) => { + + }; + const routeToIntro=(e,record)=>{ + e.stopPropagation() + navgite({pathname:'/dataset/datasetIntro' }); +} + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + + return ()=>{ + + } + },[]) + return (
+
+
+
+ + + + + + + + +
+ +
) +}; +export default Dataset; \ No newline at end of file diff --git a/react-ui/src/pages/Model/index.less b/react-ui/src/pages/Model/index.less new file mode 100644 index 00000000..ff21467e --- /dev/null +++ b/react-ui/src/pages/Model/index.less @@ -0,0 +1,296 @@ +.datasetTopBox{ + display: flex; + align-items: center; + padding-right: 30px; + width: 100%; + height: 49px; + background-size: 100% 100%; + background-image: url(/assets/images/pipeline-back.png); + padding: 0 30px; +} +.datasetIntroTopBox{ + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; + height: 110px; + background-size: 100% 100%; + background-image: url(/assets/images/dataset-back.png); + margin-bottom: 10px; + padding: 25px 30px; + .smallTagBox{ + display: flex; + align-items: center; + color:#1664ff; + font-size:14px; + .tagItem{ + padding: 4px 10px; + background: rgba(22, 100, 255, 0.1); + border-radius:4px; + margin-right: 20px; + } + } +} +.dataListBox{ + padding: 20px 30px; + background:#ffffff; + border-radius:10px; + box-shadow:0px 2px 12px rgba(180, 182, 191, 0.09); + color:#1d1d20; + font-size:16px; + .dataButtonList{ + display: flex; + justify-content: space-between; + align-items: center; + height: 32px; + margin: 24px 0 30px 0; + color:#575757; + font-size:16px; + } +} +.datasetIntroCneterBox{ + height: 77vh; + padding: 20px 30px; + background:#ffffff; + border-radius:10px; + box-shadow:0px 2px 12px rgba(180, 182, 191, 0.09); +} +.datasetIntroTitle{ + color:#1d1d20; + font-size:15px; + margin: 37px 0 10px 0; +} +.datasetIntroText{ + color:#575757; + font-size:14px; + margin-bottom: 30px; +} +.datasetBox{ + background:#f9fafb; + font-family: 'Alibaba'; + :global{ + .ant-tabs-top >.ant-tabs-nav{ + margin: 0; + } + .ant-pagination{ + text-align: right; + } + } +} +.datasetAllBox{ + :global{ + .ant-tabs-nav .ant-tabs-nav-wrap{ + margin: -48px 0 0 30px; + } + + } +} +.plusButton{ + margin: 0 18px 0 20px; + background:rgba(22, 100, 255, 0.06); + border:1px solid; + border-color:rgba(22, 100, 255, 0.11); + border-radius:4px; + color:#1d1d20; + font-size:14px; + font-family: 'Alibaba'; +} +.plusButton:hover{ + background:rgba(22, 100, 255, 0.06)!important; + border:1px solid!important; + border-color:rgba(22, 100, 255, 0.11)!important; + color:#1d1d20!important; +} +.datasetCneterBox{ + display: flex; + justify-content: space-between; + height: 85vh; + width: 100%; + + .datasetCneterLeftBox{ + width:340px; + height:100%; + background:#ffffff; + box-shadow:0px 3px 6px rgba(146, 146, 146, 0.09); + margin-right: 10px; + padding-top: 15px; + .custTab{ + display: flex; + border-bottom: 1px solid #e0eaff; + height: 32px; + .tabItem{ + width: 52px; + height: 100%; + text-align: center; + color:#808080; + font-size:15px; + cursor: pointer; + } + } + .leftContentBox{ + max-height: 80vh; + overflow-y: auto; + overflow-x: hidden; + padding: 15px 20px; + .itemTitle{ + color:#1d1d20; + font-size:14px; + margin-bottom: 15px; + } + .itemBox{ + width: 110%; + display: flex; + flex-wrap: wrap; + align-content: start; + .messageBox{ + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + cursor: pointer; + width:92px; + height:62px; + border:1px solid; + border-color:rgba(22, 100, 255, 0.05); + border-radius:4px; + margin: 0 12px 20px 0; + padding: 11px 0px 7px 0px; + color:#1d1d20; + font-size:12px; + .ptIcon{ + display: block; + } + .hoverIcon{ + display: none; + } + .messageText{ + width: 65px; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + transition: all 0.2s; + } + } + .messageBox:hover{ + background:rgba(22, 100, 255, 0.03); + border:1px solid; + border-color:#1664ff; + .ptIcon{ + display: none; + } + .hoverIcon{ + display: block; + } + } + .active{ + background:rgba(22, 100, 255, 0.03)!important; + border:1px solid!important; + border-color:#1664ff!important; + .ptIcon{ + display: none!important; + } + .hoverIcon{ + display: block!important; + } + } + } + } + } + .datasetCneterRightBox{ + display: flex; + flex-direction: column; + padding: 22px 30px 26px 30px; + flex: 1; + height:100%; + background:#ffffff; + box-shadow:0px 3px 6px rgba(146, 146, 146, 0.09); + .dataSource{ + display: flex; + justify-content: space-between; + align-items: center; + height: 32px; + margin-bottom: 30px; + color:rgba(29, 29, 32, 0.8); + font-size:15px; + } + .dataContent{ + width: 100%; + flex: 1; + display: flex; + flex-wrap: wrap; + align-content: flex-start; + .dataItem{ + width: 32%; + margin: 0 15px 18px 0; + height:66px; + position: relative; + background:rgba(128, 128, 128, 0.05); + border-radius:8px; + box-shadow:0px 0px 12px rgba(75, 84, 137, 0.05); + cursor: pointer; + .itemText{ + position: absolute; + left: 20px; + top: 10px; + color:#1d1d20; + font-size:15px; + + } + .itemTime{ + position: absolute; + left: 20px; + bottom: 10px; + color:#808080; + font-size:14px; + } + .itemIcon{ + position: absolute; + right: 20px; + bottom: 10px; + color:#808080; + font-size:14px; + } + } + } + } +} +.modal { + :global { + .ant-modal-content { + background:linear-gradient(180deg,#cfdfff 0%,#d4e2ff 9.77%,#ffffff 40%,#ffffff 100%); + border-radius:21px; + padding: 20px 67px; + width: 825px; + + } + .ant-modal-header{ + background-color: transparent; + margin: 20px 0; + } + .ant-input{ + border-color:#e6e6e6; + height: 40px; + + } + .ant-form-item .ant-form-item-label >label{ + color:rgba(29, 29, 32, 0.8); + } + .ant-modal-footer{ + margin: 40px 0 30px 0; + display: flex; + justify-content: center; + } + .ant-btn{ + width:110px; + height:40px; + font-size:18px; + background:rgba(22, 100, 255, 0.06); + border-radius:10px; + border-color: transparent; + } + .ant-btn-primary{ + background:#1664ff; + } + } +} \ No newline at end of file diff --git a/react-ui/src/pages/Model/modelIntro.jsx b/react-ui/src/pages/Model/modelIntro.jsx new file mode 100644 index 00000000..2ade9ffb --- /dev/null +++ b/react-ui/src/pages/Model/modelIntro.jsx @@ -0,0 +1,298 @@ + +import React ,{useEffect,useState,useRef}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,Select,Table,Upload} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined,UploadOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getDatasetList,getModelById,getModelVersionsById,getModelVersionIdList,deleteModelVersion,addModelsVersionDetail} from '@/services/dataset/index.js' +import { useParams } from 'react-router-dom' +import {downLoadZip} from '@/utils/downloadfile' +const { Search } = Input; +import moment from 'moment'; +import { getAccessToken } from '@/access'; +const { TabPane } = Tabs; + +const Dataset= React.FC = () => { + const props = { + action: '/api/mmp/dataset/upload', + // headers: { + // 'X-Requested-With': null + // }, + headers: { + Authorization:getAccessToken(), + 'X-Requested-With': null + + }, + onChange({ file, fileList }) { + if (file.status !== 'uploading') { + console.log(file, fileList); + setFormList(fileList.map(item=>{ + return { + ...form.getFieldsValue(), + models_id:locationParams.id, + file_name:item.response.data[0].fileName, + file_size:item.response.data[0].fileSize, + url:item.response.data[0].url, + } + })) + } + }, + defaultFileList: [ + ], + }; + const [form] = Form.useForm(); + const [formList,setFormList]=useState([]) + const [dialogTitle, setDialogTitle] = useState('新建版本'); + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetDetailObj,setDatasetDetailObj]=useState({ + }); + const [version,setVersion]=useState('') + const [versionList, setVersionList] = useState([]); + const locationParams =useParams () //新版本获取路由参数接口 + console.log(locationParams); + const [wordList, setWordList] = useState([]); + const getModelByDetail=()=>{ + getModelById(locationParams.id).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetDetailObj(ret.data) + } + }) + } + const getModelVersionsList=()=>{ + getModelVersionsById(locationParams.id).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data&&ret.data.length>0){ + setVersionList(ret.data.map(item=>{ + return { + 'label':item, + 'value':item + } + })) + } + }) + } + useEffect(()=>{ + getModelByDetail() + getModelVersionsList() + return ()=>{ + + } + },[]) + const showModal = () => { + form.resetFields() + form.setFieldsValue({name:datasetDetailObj.name}) + + setDialogTitle('创建新版本') + setIsModalOpen(true); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const deleteDataset=()=>{ + Modal.confirm({ + title: '删除', + content: '确定删除模型版本?', + okText: '确认', + cancelText: '取消', + + onOk: () => { + deleteModelVersion({models_id:locationParams.id,version}).then(ret=>{ + if(ret.code==200){ + message.success('删除成功') + getModelVersions({version,models_id:locationParams.id}) + } + else{ + message.error(ret.msg) + } + }); + }, + }); + } + const onFinish = () => { + addModelsVersionDetail(formList).then(ret=>{ + console.log(ret); + getModelVersionsList() + setIsModalOpen(false); + }) + }; + const getModelVersions=(params)=>{ + getModelVersionIdList(params).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setWordList(ret.data) + } + }) + } + const handleExport = async () => { + const hide = message.loading('正在下载'); + hide(); + downLoadZip(`/api/mmp/models/downloadAllFiles`,{models_id:locationParams.id,version}) + }; + const downloadAlone=(e,record)=>{ + console.log(record); + const hide = message.loading('正在下载'); + hide(); + downLoadZip(`/api/mmp/models/download_model/${record.id}`) + } + const handleChange=(value)=>{ + console.log(value); + if(value){ + getModelVersions({version:value,models_id:locationParams.id}) + setVersion(value) + } + else{ + setVersion(null) + } + } + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + const columns = [ + // { + // title: '序号', + // dataIndex: 'index', + // key: 'index', + // width: 80, + // render(text, record, index) { + // return ( + // {(pageOption.current.page - 1) * 10 + index + 1} + // ) + // } + // // render: (text, record, index) => `${((curPage-1)*10)+(index+1)}`, + // }, + { + title: '文件名称', + dataIndex: 'file_name', + key: 'file_name', + render: (text,record) => downloadAlone(e,record)}>{text}, + }, + { + title: '版本号', + dataIndex: 'version', + key: 'version', + }, + { + title: '文件大小', + dataIndex: 'file_size', + key: 'file_size', + }, + { + title: '更新时间', + dataIndex: 'update_time', + key: 'update_time', + render: (text) => {moment(text).format('YYYY-MM-DD HH:mm:ss')}, + }, + ]; + const pageOption = useRef({page: 1,size: 10}) + + // 当前页面切换 + const paginationChange = async (current, size) => { + console.log('page', current, size) + pageOption.current={ + page:current, + size:size + } + // getList() + } + return (
+
+ {datasetDetailObj.name} +
+
{datasetDetailObj.data_tag||'...'}
+
{datasetDetailObj.data_type}
+ {/*
English
*/} +
+
+
+ + +
简介
+
{datasetDetailObj.description}
+
+ +
+
模型列表
+
+
+ 版本号: + + + + + + + + + + + + + +
) +}; +export default Dataset; \ No newline at end of file diff --git a/react-ui/src/pages/Model/personalData.jsx b/react-ui/src/pages/Model/personalData.jsx new file mode 100644 index 00000000..cd3891e4 --- /dev/null +++ b/react-ui/src/pages/Model/personalData.jsx @@ -0,0 +1,315 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,Upload,Select} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, UploadOutlined,DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getModelList,addModel,getAssetIcon} from '@/services/dataset/index.js' +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +import { getAccessToken } from '@/access'; + +const leftdataList=[1,2,3] + +const PublicData= React.FC = () => { + const props = { + action: '/api/mmp/dataset/upload', + // headers: { + // 'X-Requested-With': null + // }, + headers: { + Authorization:getAccessToken(), + 'X-Requested-With': null + + }, + onChange({ file, fileList }) { + if (file.status !== 'uploading') { + console.log(file, fileList); + form.setFieldsValue({dataset_version_vos:fileList.map(item=>item.response.data[0])}) + } + }, + defaultFileList: [ + ], + }; + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null, + available_range:0 + }); + const navgite=useNavigate(); + const [iconParams,setIconParams]=useState({ + name:null, + page:0, + size:10000 + }) + const [activeType,setActiveType]=useState(null) + const [activeTag,setActiveTag]=useState(null) + const [datasetTypeList,setDatasetTypeList]=useState([]) + const [datasetDirectionList,setDatasetDirectionList]=useState([]) + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建模型'); + const getModelLists=(queryFlow)=>{ + getModelList(queryFlow).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetList(ret.data.content) + setTotal(ret.data.totalElements) + } + }) + } + + const showModal = () => { + form.resetFields() + setDialogTitle('新建模型') + setIsModalOpen(true); + }; + const getAssetIconList=(params)=>{ + getAssetIcon(params).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data.content&&ret.data.content.length>0){ + setDatasetTypeList(ret.data.content.filter(item=>item.category_id==3)) + setDatasetDirectionList(ret.data.content.filter(item=>item.category_id==4)) + } + else{ + setDatasetTypeList([]) + setDatasetDirectionList([]) + } + }) + } + const onSearch=(values)=>{ + console.log(values); + getAssetIconList({...iconParams,name:values}) + } + const nameSearch=(values)=>{ + console.log(values); + getModelLists({...queryFlow,name:values}) + } + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const onFinish = (values) => { + addModel(values).then(ret=>{ + console.log(ret); + getModelLists(queryFlow) + setIsModalOpen(false); + }) + }; + + const chooseModelType=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.model_type){ + setActiveType('') + setQueryFlow({...queryFlow,model_type:null}) + getModelLists({...queryFlow,model_type:null}) + } + else{ + setActiveType(item.path) + setQueryFlow({...queryFlow,model_type:item.path}) + getModelLists({...queryFlow,model_type:item.path}) + } + + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const chooseModelTag=(val,item)=>{ + if(item.path==queryFlow.model_tag){ + setActiveTag('') + setQueryFlow({...queryFlow,model_tag:null}) + getModelLists({...queryFlow,model_tag:null}) + } + else{ + setActiveTag(item.path) + setQueryFlow({...queryFlow,model_tag:item.path}) + getModelLists({...queryFlow,model_tag:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const routeToIntro=(e,record)=>{ + e.stopPropagation() + console.log(record); + navgite({pathname:`/dataset/modelIntro/${record.id}` }); +} + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + getAssetIconList(iconParams) + getModelLists(queryFlow) + return ()=>{ + + } + },[]) + return (<> + +
+
+
+ +
模型框架
+
+ + {datasetTypeList&&datasetTypeList.length>0?datasetTypeList.map(item=>{return
+
{chooseModelType(e, item)}}> + + + {chooseModelTag(e, item)}}>{item.name} +
+
}):''} +
+
模型能力
+
+ + {datasetDirectionList&&datasetDirectionList.length>0?datasetDirectionList.map(item=>{return
+
{chooseModelTag(e, item)}}> + + + {item.name} +
+
}):''} +
+ +
+
+
+
+ 数据总数:{total}个 +
+ + +
+
+
+ {datasetList&&datasetList.length>0?datasetList.map(item=>{return
routeToIntro(e,item)}> +
{item.name}
+
最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
+
1582
+
}):''} + {/* Demo */} +
+ +
+
+ + {dialogTitle} +
} open={isModalOpen} className={Styles.modal} okButtonProps={{ + htmlType: 'submit', + form: 'form', + }} onCancel={handleCancel}> +
+ + + + + + + + + + 仅自己可见 + 工作空间可见 + + + + + + + + + + +
+ + ) +}; +export default PublicData; \ No newline at end of file diff --git a/react-ui/src/pages/Model/publicData.jsx b/react-ui/src/pages/Model/publicData.jsx new file mode 100644 index 00000000..68733ce3 --- /dev/null +++ b/react-ui/src/pages/Model/publicData.jsx @@ -0,0 +1,271 @@ + +import React ,{useEffect,useState}from 'react'; +import Styles from './index.less' +import { Input, Space ,Button,Tabs,Pagination,Modal, Form,message, Radio,} from 'antd'; +import { PlusOutlined,PlusCircleOutlined, DeleteOutlined, ExclamationCircleOutlined, DownOutlined, EditOutlined ,CopyOutlined} from '@ant-design/icons'; +import {getModelList,getAssetIcon} from '@/services/dataset/index.js' +const { Search } = Input; +import { useNavigate} from 'react-router-dom'; +import moment from 'moment'; +const leftdataList=[1,2,3] + +const PublicData= React.FC = () => { + const [queryFlow,setQueryFlow]=useState({ + page:0, + size:10, + name:null, + available_range:1 + }); + const [iconParams,setIconParams]=useState({ + name:null, + page:0, + size:10000 + }) + const [activeType,setActiveType]=useState(null) + const [activeTag,setActiveTag]=useState(null) + const [datasetTypeList,setDatasetTypeList]=useState([]) + const [datasetDirectionList,setDatasetDirectionList]=useState([]) + const navgite=useNavigate(); + const [isModalOpen,setIsModalOpen]=useState(false) + const [datasetList,setDatasetList]=useState([]); + const [total,setTotal]=useState(0); + const [form] = Form.useForm(); + const [dialogTitle, setDialogTitle] = useState('新建数据'); + const getModelLists=(queryFlow)=>{ + getModelList(queryFlow).then(ret=>{ + console.log(ret); + if(ret.code==200){ + setDatasetList(ret.data.content) + setTotal(ret.data.totalElements) + } + }) + } + + const showModal = () => { + form.resetFields() + setDialogTitle('新建数据集') + setIsModalOpen(true); + }; + const nameSearch=(values)=>{ + console.log(values); + getModelLists({...queryFlow,name:values}) + } + const getAssetIconList=(params)=>{ + getAssetIcon(params).then(ret=>{ + console.log(ret); + if(ret.code==200&&ret.data.content&&ret.data.content.length>0){ + setDatasetTypeList(ret.data.content.filter(item=>item.category_id==3)) + setDatasetDirectionList(ret.data.content.filter(item=>item.category_id==4)) + } + else{ + setDatasetTypeList([]) + setDatasetDirectionList([]) + } + }) + } + const onSearch=(values)=>{ + console.log(values); + getAssetIconList({...iconParams,name:values}) + } + const handleOk = () => { + console.log(1111); + setIsModalOpen(false); + }; + const handleCancel = () => { + setIsModalOpen(false); + }; + const chooseModelType=(val,item)=>{ + console.log(val,item); + if(item.path==queryFlow.model_type){ + setActiveType('') + setQueryFlow({...queryFlow,model_type:null}) + getModelLists({...queryFlow,model_type:null}) + } + else{ + setActiveType(item.path) + setQueryFlow({...queryFlow,model_type:item.path}) + getModelLists({...queryFlow,model_type:item.path}) + } + + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const chooseModelTag=(val,item)=>{ + if(item.path==queryFlow.model_tag){ + setActiveTag('') + setQueryFlow({...queryFlow,model_tag:null}) + getModelLists({...queryFlow,model_tag:null}) + } + else{ + setActiveTag(item.path) + setQueryFlow({...queryFlow,model_tag:item.path}) + getModelLists({...queryFlow,model_tag:item.path}) + } + // setQueryFlow({...queryFlow,data_type:item.path},()=>{ + // getDatasetlist() + // }) + }; + const onFinish = (values) => { + + }; + const routeToIntro=(e,record)=>{ + e.stopPropagation() + console.log(record); + navgite({pathname:`/dataset/modelIntro/${record.id}` }); + } + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + useEffect(()=>{ + getAssetIconList(iconParams) + getModelLists(queryFlow) + return ()=>{ + + } + },[]) + return (<> + +
+
+
+ +
模型框架
+
+ + {datasetTypeList&&datasetTypeList.length>0?datasetTypeList.map(item=>{return
+
{chooseModelType(e, item)}}> + + + {item.name} +
+
}):''} +
+
模型能力
+
+ + {datasetDirectionList&&datasetDirectionList.length>0?datasetDirectionList.map(item=>{return
+
{chooseModelTag(e, item)}}> + + + {item.name} +
+
}):''} +
+
+
+
+
+ 数据总数:{total}个 +
+ +
+
+
+ {datasetList&&datasetList.length>0?datasetList.map(item=>{return
routeToIntro(e,item)}> +
{item.name}
+
最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
+
1582
+
}):''} + {/* Demo */} +
+ +
+
+ + {dialogTitle} +
} open={isModalOpen} className={Styles.modal} okButtonProps={{ + htmlType: 'submit', + form: 'form', + }} onCancel={handleCancel}> +
+ + + + + + + + + + + + 仅自己可见 + 工作空间可见 + + + + + +
+ + ) +}; +export default PublicData; \ No newline at end of file diff --git a/react-ui/src/pages/Pipeline/editPipeline/editPipeline.less b/react-ui/src/pages/Pipeline/editPipeline/editPipeline.less index 1fd2df8b..284a6b9d 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/editPipeline.less +++ b/react-ui/src/pages/Pipeline/editPipeline/editPipeline.less @@ -9,7 +9,7 @@ width: 100%; height:43px; background:#f8fbff; - + margin-bottom: 10px; color:#1d1d20; font-size:15px; font-family: 'Alibaba'; diff --git a/react-ui/src/pages/Pipeline/editPipeline/index.jsx b/react-ui/src/pages/Pipeline/editPipeline/index.jsx index a34d7bdf..2740b419 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/index.jsx +++ b/react-ui/src/pages/Pipeline/editPipeline/index.jsx @@ -22,7 +22,8 @@ const editPipeline = React.FC = () => { return { display: 'flex', backgroundColor:'#fff', - height:'98vh' + height:'98vh', + position:'relative' }; }); const rightmenu= useEmotionCss(() => { @@ -82,6 +83,7 @@ const editPipeline = React.FC = () => { }); data.nodes[index] = val; graph.changeData(data) + graph.render() } const savePipeline=(val)=>{ const data = graph.save(); @@ -134,6 +136,7 @@ const editPipeline = React.FC = () => { },500) } } + const processParallelEdgesOnAnchorPoint = ( edges, offsetDiff = 15, @@ -316,6 +319,32 @@ const editPipeline = React.FC = () => { console.log(contextMenu); },[]) const initGraph=()=>{ + const fittingString = (str, maxWidth, fontSize) => { + const ellipsis = '...'; + const ellipsisLength = G6.Util.getTextSize(ellipsis, fontSize)[0]; + let currentWidth = 0; + let res = str; + const pattern = new RegExp('[\u4E00-\u9FA5]+'); // distinguish the Chinese charactors and letters + str.split('').forEach((letter, i) => { + if (currentWidth > maxWidth - ellipsisLength) return; + if (pattern.test(letter)) { + // Chinese charactors + currentWidth += fontSize; + } else { + // get the width of single letter according to the fontSize + currentWidth += G6.Util.getLetterWidth(letter, fontSize); + } + if (currentWidth > maxWidth - ellipsisLength) { + res = `${str.substr(0, i)}${ellipsis}`; + } + }); + return res; + }; + // 获取文本的长度 + const getTextSize = (str, maxWidth, fontSize) => { + let width = G6.Util.getTextSize(str, fontSize)[0]; + return width > maxWidth ? maxWidth : width; + } G6.registerNode( 'rect-node', { @@ -329,6 +358,22 @@ const editPipeline = React.FC = () => { ] ); }, + // draw(cfg, group) { + + // let rect=group.addShape('text', { + // attrs: { + // text: fittingString(cfg.label, 110, 15), + // x: 90 - getTextSize(cfg.label, 110, 15), + // y: 0, + // fontSize: 10, + // textAlign: 'center', + // textBaseline: 'middle', + // fill:'#000' + // }, + // name: 'text-shape', + // }); + // return rect; + // }, afterDraw(cfg, group) { // console.log(group, cfg, 12312); const image = group.addShape('image', { @@ -342,19 +387,21 @@ const editPipeline = React.FC = () => { }, draggable: true, }); - // if (cfg.label) { - // group.addShape('text', { - // attrs: { - // x: 0, - // y: cfg.height / 2 - 5, - // textAlign: 'center', - // textBaseline: 'middle', - // text: cfg.label, - // fill: '#fff', - // }, - // draggable: true, - // }); - // } + if (cfg.label) { + group.addShape('text', { + attrs: { + text: fittingString(cfg.label, 70, 10), + x: -20, + y: 0, + fontSize: 10, + textAlign: 'left', + textBaseline: 'middle', + fill:'#000' + }, + name: 'text-shape', + draggable: true, + }); + } const bbox = group.getBBox(); const anchorPoints = this.getAnchorPoints(cfg); // console.log(anchorPoints); @@ -457,10 +504,10 @@ const editPipeline = React.FC = () => { labelCfg: { style: { - fill: '#000', - fontSize: 10, + fill: 'transparent', + fontSize: 0, boxShadow:'0px 0px 12px rgba(75, 84, 137, 0.05)', - + overflow:'hidden', x: -20, y: 0, textAlign: 'left', @@ -472,6 +519,7 @@ const editPipeline = React.FC = () => { stroke: '#fff', cursor: 'pointer', radius:10, + overflow:'hidden', lineWidth:0.5 }, }, @@ -528,7 +576,7 @@ const editPipeline = React.FC = () => { }, }, // linkCenter: true, - fitView: true, + fitView: false, fitViewPadding: [60, 60, 60, 80], }); graph.on('dblclick', (e)=>{ @@ -611,8 +659,8 @@ const editPipeline = React.FC = () => {
- - + +
diff --git a/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx b/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx index a72b7857..626e532c 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx +++ b/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx @@ -34,7 +34,7 @@ const modelMenus = ({onParDragEnd}) => { onParDragEnd({...data,x:e.clientX,y:e.clientY,label:data.component_label,img:`/assets/images/${data.icon_path}.png`}) } const { Panel } = Collapse; - return (
+ return (
.ant-collapse-item >.ant-collapse-header{ background-color: #fff; diff --git a/react-ui/src/pages/Pipeline/editPipeline/props.jsx b/react-ui/src/pages/Pipeline/editPipeline/props.jsx index cd243f48..38eea3a0 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/props.jsx +++ b/react-ui/src/pages/Pipeline/editPipeline/props.jsx @@ -67,7 +67,7 @@ const Props = forwardRef(({onParentChange}, ref) =>{ })); return ( <> - +
{ diff --git a/react-ui/tsconfig.json b/react-ui/tsconfig.json index 3e6ef3ee..206ebcd9 100644 --- a/react-ui/tsconfig.json +++ b/react-ui/tsconfig.json @@ -19,5 +19,5 @@ "@@test/*": ["./src/.umi-test/*"] } }, - "include": ["./**/*.d.ts", "./**/*.ts", "./**/*.tsx", "src/pages/Pipeline/index.jsx"] + "include": ["./**/*.d.ts", "./**/*.ts", "./**/*.tsx", "src/pages/Pipeline/index.jsx", "src/pages/Dataset/index.jsx"] }