diff --git a/frontend/crawlab-ui/src/assets/svg/icons/ai-assistant.svg b/frontend/crawlab-ui/src/assets/svg/icons/ai-assistant.svg
new file mode 100644
index 00000000..836e21b2
--- /dev/null
+++ b/frontend/crawlab-ui/src/assets/svg/icons/ai-assistant.svg
@@ -0,0 +1,8 @@
+
diff --git a/frontend/crawlab-ui/src/components/ui/icon/Icon.vue b/frontend/crawlab-ui/src/components/ui/icon/Icon.vue
index 52525bd5..2ee68a29 100644
--- a/frontend/crawlab-ui/src/components/ui/icon/Icon.vue
+++ b/frontend/crawlab-ui/src/components/ui/icon/Icon.vue
@@ -44,9 +44,9 @@ const updateIconSvgSrc = async () => {
if (isSvg.value) {
const { icon } = props;
if (!Array.isArray(icon) || !icon[1]) return;
- const res = await import(`@/assets/svg/icons/${icon[1]}.svg?url`);
+ const res = await import(`@/assets/svg/icons/${icon[1]}.svg`);
if (res) {
- iconSvgSrc.value = res.default;
+ iconSvgSrc.value = decodeURIComponent(res.default).replace('data:image/svg+xml,', '');
}
}
};
@@ -72,13 +72,7 @@ defineOptions({ name: 'ClIcon' });
/>
- emit('click', event)"
- />
+
diff --git a/frontend/crawlab-ui/src/layouts/components/Header.vue b/frontend/crawlab-ui/src/layouts/components/Header.vue
index 4ae2812e..44a137f4 100644
--- a/frontend/crawlab-ui/src/layouts/components/Header.vue
+++ b/frontend/crawlab-ui/src/layouts/components/Header.vue
@@ -12,6 +12,7 @@ import {
isAllowedRoutePath,
} from '@/utils';
import { getUserFullName } from '@/utils/user';
+import ClIconButton from '@/components/ui/button/IconButton.vue';
// i18n
const { t, locale } = useI18n();
@@ -153,6 +154,13 @@ defineOptions({ name: 'ClHeader' });
+