diff --git a/core/core-backend/src/main/java/io/dataease/ai/service/AiBaseService.java b/core/core-backend/src/main/java/io/dataease/ai/service/AiBaseService.java new file mode 100644 index 0000000000..2e91b96728 --- /dev/null +++ b/core/core-backend/src/main/java/io/dataease/ai/service/AiBaseService.java @@ -0,0 +1,26 @@ +package io.dataease.ai.service; + +import io.dataease.api.ai.AiComponentApi; +import io.dataease.system.manage.SysParameterManage; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author : WangJiaHao + * @date : 2024/3/27 09:47 + */ +@RestController +@RequestMapping("aiBase") +public class AiBaseService implements AiComponentApi { + @Resource + private SysParameterManage sysParameterManage; + + @Override + public Map findTargetUrl() { + Map templateParams = sysParameterManage.groupVal("ai."); + return templateParams; + } +} diff --git a/core/core-frontend/src/api/aiComponent.ts b/core/core-frontend/src/api/aiComponent.ts new file mode 100644 index 0000000000..56751484f2 --- /dev/null +++ b/core/core-frontend/src/api/aiComponent.ts @@ -0,0 +1,3 @@ +import request from '@/config/axios' + +export const findBaseParams = async () => request.get({ url: '/aiBase/findTargetUrl' }) diff --git a/core/core-frontend/src/assets/svg/dv-ai.svg b/core/core-frontend/src/assets/svg/dv-ai.svg new file mode 100644 index 0000000000..7927339542 --- /dev/null +++ b/core/core-frontend/src/assets/svg/dv-ai.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/core/core-frontend/src/layout/components/AiComponent.vue b/core/core-frontend/src/layout/components/AiComponent.vue new file mode 100644 index 0000000000..04b240c7d7 --- /dev/null +++ b/core/core-frontend/src/layout/components/AiComponent.vue @@ -0,0 +1,66 @@ + + + + diff --git a/core/core-frontend/src/layout/components/Header.vue b/core/core-frontend/src/layout/components/Header.vue index 22b89daf86..f05f7b2cba 100644 --- a/core/core-frontend/src/layout/components/Header.vue +++ b/core/core-frontend/src/layout/components/Header.vue @@ -14,15 +14,23 @@ import AccountOperator from '@/layout/components/AccountOperator.vue' import { isDesktop } from '@/utils/ModelUtil' import { XpackComponent } from '@/components/plugin' import { useAppearanceStoreWithOut } from '@/store/modules/appearance' +import AiComponent from '@/layout/components/AiComponent.vue' +import { useEmitt } from '@/hooks/web/useEmitt' +import { findBaseParams } from '@/api/aiComponent' const appearanceStore = useAppearanceStoreWithOut() const { push } = useRouter() const route = useRoute() +const aiBaseUrl = ref(null) const handleIconClick = () => { if (route.path === '/workbranch/index') return push('/workbranch/index') } +const handleAiClick = () => { + useEmitt().emitter.emit('aiComponentChange') +} + const desktop = isDesktop() const activeIndex = computed(() => { if (route.path.includes('system')) { @@ -51,9 +59,19 @@ const initShowToolbox = () => { } const navigateBg = computed(() => appearanceStore.getNavigateBg) const navigate = computed(() => appearanceStore.getNavigate) + +const initAiBase = async () => { + await findBaseParams().then(rsp => { + const params = rsp.data + if (params && params['ai.baseUrl']) { + aiBaseUrl.value = params['ai.baseUrl'] + } + }) +} onMounted(() => { initShowSystem() initShowToolbox() + initAiBase() }) @@ -78,10 +96,14 @@ onMounted(() => {
+ + + +
@@ -182,4 +204,8 @@ onMounted(() => { } } } + +.ai-icon { + font-size: 24px !important; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/ai/AiComponentApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/ai/AiComponentApi.java new file mode 100644 index 0000000000..2bdd24fa4f --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/ai/AiComponentApi.java @@ -0,0 +1,14 @@ +package io.dataease.api.ai; + +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.Map; + +/** + * @author : WangJiaHao + * @date : 2024/3/27 09:44 + */ +public interface AiComponentApi { + @GetMapping("findTargetUrl") + Map findTargetUrl(); +}