diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index 098939bdf5..d16a7b9660 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -106,7 +106,7 @@ jobs:
name: ${{ matrix.case.name }}
needs: build
runs-on: ubuntu-latest
- timeout-minutes: 30
+ timeout-minutes: 180
strategy:
matrix:
case:
diff --git a/streampark-console/streampark-console-webapp/src/api/system/user.ts b/streampark-console/streampark-console-webapp/src/api/system/user.ts
index 015c94f492..4c47db9c89 100644
--- a/streampark-console/streampark-console-webapp/src/api/system/user.ts
+++ b/streampark-console/streampark-console-webapp/src/api/system/user.ts
@@ -28,6 +28,7 @@ enum Api {
UserList = '/user/list',
NoTokenUsers = '/user/getNoTokenUser',
UserUpdate = '/user/update',
+ UserDelete = '/user/delete',
UserAdd = '/user/post',
ResetPassword = '/user/password/reset',
Password = '/user/password',
@@ -62,6 +63,10 @@ export function updateUser(data: Recordable) {
return defHttp.put({ url: Api.UserUpdate, data });
}
+export function deleteUser(data) {
+ return defHttp.delete({ url: Api.UserDelete, data });
+}
+
export function addUser(data: Recordable) {
return defHttp.post({ url: Api.UserAdd, data });
}
diff --git a/streampark-console/streampark-console-webapp/src/assets/icons/spark.svg b/streampark-console/streampark-console-webapp/src/assets/icons/spark.svg
index b186ed2fdc..a0e5b94438 100644
--- a/streampark-console/streampark-console-webapp/src/assets/icons/spark.svg
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/spark.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/streampark-console/streampark-console-webapp/src/components/Application/src/AppLogo.vue b/streampark-console/streampark-console-webapp/src/components/Application/src/AppLogo.vue
index 059adc7580..cf595b84ce 100644
--- a/streampark-console/streampark-console-webapp/src/components/Application/src/AppLogo.vue
+++ b/streampark-console/streampark-console-webapp/src/components/Application/src/AppLogo.vue
@@ -61,10 +61,10 @@
display: flex;
align-items: center;
justify-content: center;
- margin-top: 8px;
padding-left: 7px;
cursor: pointer;
transition: all 0.2s ease;
+ border-bottom: 1px solid rgba(192, 192, 192, 0.1);
&.light {
border-bottom: 1px solid @border-color-base;
diff --git a/streampark-console/streampark-console-webapp/src/components/Button/src/PopConfirmButton.vue b/streampark-console/streampark-console-webapp/src/components/Button/src/PopConfirmButton.vue
index e22d851a9d..7a0742bb67 100644
--- a/streampark-console/streampark-console-webapp/src/components/Button/src/PopConfirmButton.vue
+++ b/streampark-console/streampark-console-webapp/src/components/Button/src/PopConfirmButton.vue
@@ -38,6 +38,7 @@
return () => {
const bindValues = omit(unref(getBindValues), 'icon');
+ const filterClass = omit(unref(bindValues), 'class');
const btnBind = omit(bindValues, 'title') as Recordable;
if (btnBind.disabled) btnBind.color = '';
const Button = h(BasicButton, btnBind, extendSlots(slots));
@@ -46,7 +47,7 @@
if (!props.enable) {
return Button;
}
- return h(Popconfirm, bindValues, { default: () => Button });
+ return h(Popconfirm, filterClass, { default: () => Button });
};
},
});
diff --git a/streampark-console/streampark-console-webapp/src/components/Drawer/src/BasicDrawer.vue b/streampark-console/streampark-console-webapp/src/components/Drawer/src/BasicDrawer.vue
index 640639b1f0..e98493e3b8 100644
--- a/streampark-console/streampark-console-webapp/src/components/Drawer/src/BasicDrawer.vue
+++ b/streampark-console/streampark-console-webapp/src/components/Drawer/src/BasicDrawer.vue
@@ -214,7 +214,6 @@
background-color: @component-background;
.scrollbar__wrap {
- padding: 16px !important;
margin-bottom: 0 !important;
}
diff --git a/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleSubMenu.vue b/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleSubMenu.vue
index b69ed6bc15..389fb6db11 100644
--- a/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleSubMenu.vue
+++ b/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleSubMenu.vue
@@ -83,7 +83,7 @@
);
const getI18nName = computed(() => t(props.item?.name));
const getMenuItemName = computed(() => {
- return 'menu-item-' + props.item?.path.substring(1).replaceAll('/','_')
+ return 'menu-item-' + props.item?.path.substring(1).replaceAll('/', '_');
});
const getShowSubTitle = computed(() => !props.collapse || !props.parent);
const getIsCollapseParent = computed(() => !!props.collapse && !!props.parent);
diff --git a/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue b/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
index 1d4722c9ba..cfded6e12f 100644
--- a/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
+++ b/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
@@ -397,14 +397,11 @@
}
&-form-container {
- padding: 16px;
-
.ant-form {
- padding: 12px 10px 6px;
- margin-bottom: 16px;
+ padding: 20px 10px 0;
+ margin-bottom: 0;
background-color: @component-background;
border: none;
- border-radius: 4px;
}
}
@@ -415,8 +412,6 @@
.ant-table-wrapper {
padding: 10px;
background-color: @component-background;
- border-radius: 4px !important;
-
.ant-table-title {
min-height: 40px;
padding: 0 0 8px !important;
diff --git a/streampark-console/streampark-console-webapp/src/design/index.less b/streampark-console/streampark-console-webapp/src/design/index.less
index ac3e23a64b..6cfb2301b2 100644
--- a/streampark-console/streampark-console-webapp/src/design/index.less
+++ b/streampark-console/streampark-console-webapp/src/design/index.less
@@ -102,6 +102,7 @@ span {
.ant-modal-content,
.ant-tree-checkbox-inner,
.ant-table,
+.ant-card,
.ant-alert,
.bold-tag,
.bold-tag > .ant-tag,
@@ -109,6 +110,20 @@ span {
.ant-btn-group,
textarea.ant-input,
.ant-select-selector,
+.streampark-page-wrapper,
+.streampark-page-wrapper-content,
.ant-upload.ant-upload-drag {
- border-radius: 0 !important;
+ border-radius: 1px !important;
+}
+
+.pop-tip {
+ display: inline-block;
+ margin-top: 5px;
+ color: darkgrey;
+}
+
+[data-theme='dark'] {
+ .pop-tip {
+ color: #666;
+ }
}
diff --git a/streampark-console/streampark-console-webapp/src/design/var/index.less b/streampark-console/streampark-console-webapp/src/design/var/index.less
index 4dbb4af320..35608c2b61 100644
--- a/streampark-console/streampark-console-webapp/src/design/var/index.less
+++ b/streampark-console/streampark-console-webapp/src/design/var/index.less
@@ -8,10 +8,10 @@
@multiple-height: 30px;
// headers
-@header-height: 50px;
+@header-height: 64px;
// logo width
-@logo-width: 48px;
+@logo-width: 64px;
//
@side-drag-z-index: 200;
diff --git a/streampark-console/streampark-console-webapp/src/layouts/default/header/MultipleHeader.vue b/streampark-console/streampark-console-webapp/src/layouts/default/header/MultipleHeader.vue
index c852b7ee74..dbbc333bac 100644
--- a/streampark-console/streampark-console-webapp/src/layouts/default/header/MultipleHeader.vue
+++ b/streampark-console/streampark-console-webapp/src/layouts/default/header/MultipleHeader.vue
@@ -19,7 +19,7 @@
import { useDesign } from '/@/hooks/web/useDesign';
import { useLayoutHeight } from '../content/useContentViewHeight';
- const HEADER_HEIGHT = 48;
+ const HEADER_HEIGHT = 64;
const TABS_HEIGHT = 32;
export default defineComponent({
diff --git a/streampark-console/streampark-console-webapp/src/layouts/default/sider/LayoutSider.vue b/streampark-console/streampark-console-webapp/src/layouts/default/sider/LayoutSider.vue
index 266db614be..65b33f42a1 100644
--- a/streampark-console/streampark-console-webapp/src/layouts/default/sider/LayoutSider.vue
+++ b/streampark-console/streampark-console-webapp/src/layouts/default/sider/LayoutSider.vue
@@ -24,7 +24,7 @@