diff --git a/src/apis/server.ts b/src/apis/server.ts index 4d41086f829ede4abe9b3369f24d5843ecb5aa8f..544581b6f89eb35cc84ec77cd5bd046fbae7f068 100644 --- a/src/apis/server.ts +++ b/src/apis/server.ts @@ -63,6 +63,10 @@ server.interceptors.response.use( return Promise.resolve(response); }, async (error: AxiosError) => { + //防止初始化时出现太多报错 + if(error.config?.url === '/api/app/recent') { + return + } ElMessage({ showClose: true, message: error?.response?.data?.message || error.message, diff --git a/src/views/dialogue/components/AppInitalPreview.vue b/src/views/dialogue/components/AppInitalPreview.vue new file mode 100644 index 0000000000000000000000000000000000000000..02bc7b67bf10afd53839fcd9f4d9a9ea119d767f --- /dev/null +++ b/src/views/dialogue/components/AppInitalPreview.vue @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/dialogue/components/DialogueAside.vue b/src/views/dialogue/components/DialogueAside.vue index 5ad58898bb78e9982fda755e71c0df0c4368c675..420f5899d44992a7cb03093cf5d02cced20299e1 100644 --- a/src/views/dialogue/components/DialogueAside.vue +++ b/src/views/dialogue/components/DialogueAside.vue @@ -20,7 +20,6 @@ import { successMsg } from 'src/components/Message'; import i18n from 'src/i18n'; import appIcon from '@/assets/images/app.png' import { IconChevronUp } from '@computing/opendesign-icons'; -import { onMounted } from 'vue'; const { user_selected_app } = storeToRefs(useHistorySessionStore()); interface HistorySession { @@ -217,12 +216,16 @@ const toggleCollapse = () => { isCollapsed.value = !isCollapsed.value; }; -const selectApp = id => { +const selectApp = (id) => { if(selectedAppId.value === id) { selectedAppId.value = ""; + user_selected_app.value = ['']; + app.value.selectedAppId = ''; }else{ selectedAppId.value = id; user_selected_app.value =[id]; + // app.value.appId = id; + app.value.selectedAppId = id; } }; function ensureAppAtFirstPosition() { @@ -241,24 +244,6 @@ function ensureAppAtFirstPosition() { user_selected_app.value = [app.value.appId]; } -onMounted(async() => { - //获取 top5 list - // const [_, res] = await api.getTopFiveApp(5); - // if (res?.result) { - // appList.value = res.result.applications; - // apps.value = res.result.applications; - // } - // // if(_ && res){ - // // appList.value = res.result.applications; - // // apps.value = res.result.applications; - // // } - // // else { - // // appList.value = apps.value; - // // } - // if(app.value.appId){ - // selectedAppId.value = app.value.appId; - // } -}); const getAppsValue = async () => { //获取 top5 list @@ -276,8 +261,8 @@ const [_, res] = await api.getTopFiveApp(5); // } if(app.value.appId){ selectedAppId.value = app.value.appId; + app.value.selectedAppId = app.value.appId; } - ensureAppAtFirstPosition(); } @@ -290,6 +275,7 @@ watch( immediate: true, }, ); + @@ -311,12 +297,12 @@ watch( - {{ app.name }} + {{ apps.name }} diff --git a/src/views/dialogue/components/DialogueSession.vue b/src/views/dialogue/components/DialogueSession.vue index 31b48dd4b705c8f924f39311d4ff759771fe83f4..1a059abe10f9f6aedcefec10ef6203634a58edad 100644 --- a/src/views/dialogue/components/DialogueSession.vue +++ b/src/views/dialogue/components/DialogueSession.vue @@ -24,18 +24,18 @@ export interface DialogueSession { } const props = withDefaults(defineProps(), {}); -// const props = withDefaults(defineProps<{ -// createAppForm: any, -// }>(), {}); + enum SupportMap { support = 1, against = 0, } -// const dialogueRef = ref(); -const { pausedStream} = useSessionStore(); +const Form = ref(props.createAppForm); +const AppForm = ref(props.createAppForm); +const { pausedStream } = useSessionStore(); const themeStore = useChangeThemeStore(); const isCreateApp = ref(props?.isCreateApp); // const isCreateApp = ref(true); +const { app } = storeToRefs(useSessionStore()); const questions = [ { groupId: 0, @@ -578,16 +578,12 @@ const clearSuggestion = (index: number): void => { }; onMounted(() => { - // 全局数据初始化 - // getMode(); - // isCreateApp.value = props.isCreateApp; + // 数据初始化 + AppForm.value = props.createAppForm; if (!inputRef.value) return; inputRef.value.focus(); }); -watch(() => props.createAppForm, () => { -}, {deep: true, immediate: true}) - watch(selectMode, (newValue, oldValue) => { user_selected_app.value = []; let first = true; @@ -642,7 +638,7 @@ watch(selectMode, (newValue, oldValue) => { }); const selectQuestion = (val: any) => { dialogueInput.value = val; -} +}; /** * 暂停和重新生成问答 */ @@ -650,6 +646,59 @@ const handlePauseAndReGenerate = (cid?: number) => { // 停止生成handlePauseAndReGenerate pausedStream(cid); }; + +const getappMode = (appId: string) => { + api + .querySingleAppData({ + id: appId as string, + }) + .then(res => { + const appInfo = res?.[1]?.result; + if (appInfo) { + Form.value = { + icon: appInfo?.icon, + name: appInfo?.name, + description: appInfo?.description, + links: appInfo?.links?.map(item => item.url), + recommendedQuestions: appInfo?.recommendedQuestions, + dialogRounds: appInfo?.dialogRounds, + permission: { + visibility: appInfo?.permission?.visibility, + authorizedUsers: appInfo?.permission?.authorizedUsers, + }, + }; + } + }); +}; + +watch( + () => user_selected_app, + val => { + if (user_selected_app.value[0] && !isCreateApp.value) { + getappMode(user_selected_app.value[0]); + } + if (!isCreateApp.value) { + Form.value = props.createAppForm; + } + }, + { + immediate: true, + deep: true, + }, +); + +watch( + () => isCreateApp, + val => { + if (isCreateApp.value === true) { + AppForm.value = props.createAppForm; + } + }, + { + immediate: true, + deep: true, + }, +); @@ -685,12 +734,12 @@ const handlePauseAndReGenerate = (cid?: number) => { @handleSendMessage="handleSendMessage" @clearSuggestion="clearSuggestion(index)" /> - + - - - + + + @@ -706,27 +755,6 @@ const handlePauseAndReGenerate = (cid?: number) => { {{ $t('feedback.stop') }} - - diff --git a/src/views/dialogue/components/InterPreview.vue b/src/views/dialogue/components/InterPreview.vue index 5944c56846ccf965b09330e3d55cbc6c94eda06f..32014cf3db624d880d095244d118d93f2c1eb6d6 100644 --- a/src/views/dialogue/components/InterPreview.vue +++ b/src/views/dialogue/components/InterPreview.vue @@ -19,11 +19,11 @@ > - 你好,我是 - + 你好,我是 + {{ interPreviewInfo.name }} - - ,很高兴为你服务 + + ,很高兴为你服务
{{ interPreviewInfo.name }} -