From 5a99893706569294354547e1fca226357460be07 Mon Sep 17 00:00:00 2001 From: zttProjectSpace Date: Wed, 5 Feb 2025 09:41:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=B8=AD=E5=BF=83=EF=BC=8C?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=BC=96=E8=BE=91=EF=BC=8C=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E7=BC=96=E6=8E=92=E6=8E=A5=E5=8F=A3=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/appCenter/appCenterService.ts | 6 +- src/apis/appCenter/type.ts | 4 +- src/apis/server.ts | 43 +++-- src/apis/workFlow/workFlowService.ts | 5 +- src/assets/styles/element/index.scss | 26 +++ .../dialoguePanel/DialoguePanel.vue | 3 +- src/store/conversation.ts | 1 - src/views/api/style.scss | 5 + src/views/app/index.vue | 166 +++++++++++++++--- src/views/app/style.scss | 10 ++ src/views/createapp/components/appConfig.vue | 116 +++++++----- .../components/codeMirror/mirrorTextArea.vue | 12 +- src/views/createapp/components/workFlow.vue | 133 ++++++++++---- .../components/workFlowConfig/CustomNode.vue | 28 ++- .../workFlowConfig/CustomSaENode.vue | 6 +- .../components/workFlowConfig/useDnD.js | 4 +- .../components/workFlowConfig/useLayout.js | 1 - .../workFlowConfig/yamlEditDrawer.vue | 21 ++- src/views/createapp/index.vue | 75 +++++++- src/views/dialogue/Copilot.vue | 9 +- .../dialogue/components/DialogueAside.vue | 7 +- src/views/dialogue/components/InitalPanel.vue | 69 ++++++-- .../dialogue/components/InterPreview.vue | 24 +-- src/views/styles/createApp.scss | 1 + 24 files changed, 581 insertions(+), 194 deletions(-) diff --git a/src/apis/appCenter/appCenterService.ts b/src/apis/appCenter/appCenterService.ts index d719d5b0..00e30c36 100644 --- a/src/apis/appCenter/appCenterService.ts +++ b/src/apis/appCenter/appCenterService.ts @@ -28,7 +28,7 @@ export const createOrUpdateApp = ( * @returns */ export const querySingleAppData = (params: { id: string }): Promise<[any, FcResponse | undefined]> => { - return get(`/api/app/${params.id}`, params); + return get(`/api/app/${params.id}`); }; /** @@ -54,8 +54,8 @@ export const releaseSingleAppData = (params: { id: string }): Promise<[any, FcRe * @param params * @returns */ -export const changeSingleAppCollect = (params: { id: string }): Promise<[any, FcResponse | undefined]> => { - return put(`/api/app/${params.id}`, params); +export const changeSingleAppCollect = (params: { id: string,favorited:boolean }): Promise<[any, FcResponse | undefined]> => { + return put(`/api/app/${params.id}`, {favorited:params.favorited}); }; diff --git a/src/apis/appCenter/type.ts b/src/apis/appCenter/type.ts index e29d1277..0b348bb8 100644 --- a/src/apis/appCenter/type.ts +++ b/src/apis/appCenter/type.ts @@ -47,7 +47,7 @@ export interface CreateOrUpdateAppParamsType { /** * 应用简介 */ - description: string; + description?: string; /** * 对话轮次(1~10) */ @@ -63,7 +63,7 @@ export interface CreateOrUpdateAppParamsType { /** * 应用名称 */ - name: string; + name?: string; /** * 权限配置 */ diff --git a/src/apis/server.ts b/src/apis/server.ts index f09729e0..4d41086f 100644 --- a/src/apis/server.ts +++ b/src/apis/server.ts @@ -7,10 +7,11 @@ // IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR // PURPOSE. // See the Mulan PSL v2 for more details. -import axios from "axios"; - -import { handleChangeRequestHeader, handleStatusError } from "./tools"; -import type { AxiosResponse, InternalAxiosRequestConfig, AxiosError, AxiosHeaders } from "axios"; +import axios from 'axios'; +import { IconError } from '@computing/opendesign-icons'; +import { handleChangeRequestHeader, handleStatusError } from './tools'; +import type { AxiosResponse, InternalAxiosRequestConfig, AxiosError, AxiosHeaders } from 'axios'; +import { ElMessage } from 'element-plus'; export interface FcResponse { error: string; @@ -37,27 +38,40 @@ export const server = axios.create({ // request interceptor server.interceptors.request.use( ( - config: InternalAxiosRequestConfig + config: InternalAxiosRequestConfig, ): InternalAxiosRequestConfig | Promise> => { return handleChangeRequestHeader(config); }, - (error) => { + error => { return Promise.reject(error); - } + }, ); // response interceptor server.interceptors.response.use( (response: AxiosResponse): AxiosResponse | Promise => { if (response.status !== 200) { + ElMessage({ + showClose: true, + message: response.statusText, + icon: IconError, + customClass: 'o-message--error', + duration: 3000, + }); return Promise.reject(new Error(response.statusText)); } - return Promise.resolve(response); }, async (error: AxiosError) => { + ElMessage({ + showClose: true, + message: error?.response?.data?.message || error.message, + icon: IconError, + customClass: 'o-message--error', + duration: 3000, + }); return await handleStatusError(error); - } + }, ); /** @@ -66,10 +80,7 @@ server.interceptors.response.use( * @param params * @constructor */ -export const get = async ( - url: string, - params: IAnyObj = {} -): Promise<[IError, FcResponse | undefined]> => { +export const get = async (url: string, params: IAnyObj = {}): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.get(url, { params: params }); return [null, result.data as FcResponse]; @@ -89,7 +100,7 @@ export const post = async ( url: string, data: IAnyObj = {}, params: IAnyObj = {}, - headers: IAnyObj = {} + headers: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.post(url, data, { params: params, headers: headers as AxiosHeaders }); @@ -109,7 +120,7 @@ export const post = async ( export const put = async ( url: string, data: IAnyObj = {}, - params: IAnyObj = {} + params: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.put(url, data, { params: params }); @@ -128,7 +139,7 @@ export const put = async ( export const del = async ( url: string, data: IAnyObj = {}, - params: IAnyObj = {} + params: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.delete(url, { data: data, params: params }); diff --git a/src/apis/workFlow/workFlowService.ts b/src/apis/workFlow/workFlowService.ts index 7935f549..6afc3c32 100644 --- a/src/apis/workFlow/workFlowService.ts +++ b/src/apis/workFlow/workFlowService.ts @@ -10,7 +10,6 @@ import { CreateOrUpdateFlowParamsType, CreateOrUpdataFlowBodyType } from './type export const queryAllFlowService = (params: { page: number; pageSize: number; - user_sub:string; }): Promise<[any, FcResponse | undefined]> => { return get('/api/flow/service', params); }; @@ -32,8 +31,8 @@ export const querySingleFlowServiceNode = (params: { * @returns */ export const querySingleFlowTopology = (params: { - appId: number; - flowId: number; + appId: string; + flowId: string; }): Promise<[any, FcResponse | undefined]> => { return get('/api/flow', params); }; diff --git a/src/assets/styles/element/index.scss b/src/assets/styles/element/index.scss index c6b7bd8c..25b93d1e 100644 --- a/src/assets/styles/element/index.scss +++ b/src/assets/styles/element/index.scss @@ -74,4 +74,30 @@ .exit-button{ margin-left: 0px !important; +} + +.o-message--error { + width: 544px; + background-color: var(--o-message-bg-color_error) !important; + border-color: var(--o-message-border-color_error) !important; + .el-message__content { + flex: 1; + } + .el-icon { + position: relative !important; + top: unset !important; + } +} + +.o-message--success { + width: 544px; + background-color: #c2e7c7 !important; + border-color: #24ab36 !important; + .el-message__content { + flex: 1; + } + .el-icon { + position: relative !important; + top: unset !important; + } } \ No newline at end of file diff --git a/src/components/dialoguePanel/DialoguePanel.vue b/src/components/dialoguePanel/DialoguePanel.vue index 91eb9fd2..0e56b550 100644 --- a/src/components/dialoguePanel/DialoguePanel.vue +++ b/src/components/dialoguePanel/DialoguePanel.vue @@ -248,11 +248,10 @@ const contentAfterMark = computed(() => { str = str.slice(0, tableStart) + '
' + str.slice(tableStart, str.indexOf('') + ''.length).replace('', '
') + str.slice(str.indexOf('') + ''.length); } //将table提取出来中加一个
父节点控制溢出 - return str; + return `
${str}
`; //xxs将大于号转为html实体以防歧义;将< >替换为正常字符; }); - const prePageHandle = (cid: number) => { prePage(cid); if (index.value === 0) { diff --git a/src/store/conversation.ts b/src/store/conversation.ts index ef4c3ebd..1825f866 100644 --- a/src/store/conversation.ts +++ b/src/store/conversation.ts @@ -459,7 +459,6 @@ export const useSessionStore = defineStore('conversation', () => { user_selected_flow?: string, params?: any, ): Promise => { - console.log(`sendQyuestion`); const { updateSessionTitle, currentSelectedSession } = useHistorySessionStore(); if (conversationList.value.length === 0) { // 如果当前还没有对话记录,将第一个问题的questtion作为对话标题 diff --git a/src/views/api/style.scss b/src/views/api/style.scss index 361a71c0..b8fd4b73 100644 --- a/src/views/api/style.scss +++ b/src/views/api/style.scss @@ -106,6 +106,11 @@ fill: var(--o-text-color-tertiary); } } + .appFavorite { + path { + fill: rgb(99, 149, 253); + } + } } } .appCenterCardContentDes { diff --git a/src/views/app/index.vue b/src/views/app/index.vue index 8bcd9eef..27022add 100644 --- a/src/views/app/index.vue +++ b/src/views/app/index.vue @@ -3,22 +3,36 @@
应用中心
- + 创建应用
-
我的应用
-
我的创建
-
我的收藏
+
+ 全部应用 +
+
+ 我的创建 +
+
+ 我的收藏 +
@@ -36,24 +50,22 @@
-
智能助手
-
- +
{{ appItem.name }}
+
+ +
- +
-
@zhang
+
@{{ appItem.author }}
- 编辑 - 删除 + 编辑 + 删除
@@ -65,7 +77,7 @@ v-model:page-size="currentPageSize" :page-sizes="pagination.pageSizes" :layout="pagination.layout" - :total="appInfoList.length" + :total="totalCount" popper-class="appPagination" @change="handleChangePage" /> @@ -75,14 +87,16 @@ diff --git a/src/views/createapp/components/workFlowConfig/CustomSaENode.vue b/src/views/createapp/components/workFlowConfig/CustomSaENode.vue index 57a01c2a..da2529b3 100644 --- a/src/views/createapp/components/workFlowConfig/CustomSaENode.vue +++ b/src/views/createapp/components/workFlowConfig/CustomSaENode.vue @@ -42,13 +42,13 @@ watch( diff --git a/src/views/createapp/components/workFlowConfig/useDnD.js b/src/views/createapp/components/workFlowConfig/useDnD.js index 7602f97c..41b7a395 100644 --- a/src/views/createapp/components/workFlowConfig/useDnD.js +++ b/src/views/createapp/components/workFlowConfig/useDnD.js @@ -1,13 +1,13 @@ import { useVueFlow } from '@vue-flow/core'; import { ref, watch } from 'vue'; -let id = 0; +let id = 3; /** * @returns {string} - A unique id. */ function getId() { - return `dnode_${id++}`; + return `node${id++}`; } /** diff --git a/src/views/createapp/components/workFlowConfig/useLayout.js b/src/views/createapp/components/workFlowConfig/useLayout.js index 9827bf73..cd5b987d 100644 --- a/src/views/createapp/components/workFlowConfig/useLayout.js +++ b/src/views/createapp/components/workFlowConfig/useLayout.js @@ -48,7 +48,6 @@ export function useLayout() { // set nodes with updated positions return nodes.map(node => { const nodeWithPosition = dagreGraph.node(node.id); - console.log(nodeWithPosition,'nodeWithPosition',node); let position = { x: nodeWithPosition.x, y: nodeWithPosition.y } if(['1','2'].includes(node.id)){ diff --git a/src/views/createapp/components/workFlowConfig/yamlEditDrawer.vue b/src/views/createapp/components/workFlowConfig/yamlEditDrawer.vue index 6cb5ab16..4b51b343 100644 --- a/src/views/createapp/components/workFlowConfig/yamlEditDrawer.vue +++ b/src/views/createapp/components/workFlowConfig/yamlEditDrawer.vue @@ -9,11 +9,11 @@ :before-close="closeDrawer" > diff --git a/src/views/dialogue/Copilot.vue b/src/views/dialogue/Copilot.vue index 4ae5e7b3..485e5081 100644 --- a/src/views/dialogue/Copilot.vue +++ b/src/views/dialogue/Copilot.vue @@ -51,13 +51,13 @@ const initCopilot = async (): Promise => { } userinfo.value.organization = type; const currRoute = router.currentRoute; - if (currRoute.value.path === '/') { + if ( ['/copilot','/'].includes(currRoute.value?.path)) { const isLogin = await getUserInfo(); - if (isLogin) { - await api.getRecognitionMode(); + if (!isLogin) { + // await api.getRecognitionMode(); await api.stopGeneration(); await getHistorySession(); - setApps(); + // setApps(); } return; } else if (currRoute.value.query.id) { @@ -121,6 +121,7 @@ onMounted(async() => { watch( () => route.path, () => { + console.log(111) initCopilot(); }, { diff --git a/src/views/dialogue/components/DialogueAside.vue b/src/views/dialogue/components/DialogueAside.vue index 25f39209..73d8b16d 100644 --- a/src/views/dialogue/components/DialogueAside.vue +++ b/src/views/dialogue/components/DialogueAside.vue @@ -50,11 +50,7 @@ const isCollapsed = ref(false); const selectedAppId = ref(null); // const apps = ref([ - { id: "1", name: '应用 1' }, - { id: "2", name: '应用 2' }, - { id: "3", name: '应用 3' }, - { id: "4", name: '应用 4' }, - { id: "5", name: '应用 5' }, + { id: "1", name: 'CVE热修复助手' }, ]); const filteredHistorySessions = computed(() => { @@ -255,7 +251,6 @@ onMounted(async() => { } if(app.value.id){ selectedAppId.value = app.value.id; - console.log(selectedAppId.value); } }); diff --git a/src/views/dialogue/components/InitalPanel.vue b/src/views/dialogue/components/InitalPanel.vue index a25e3600..92360568 100644 --- a/src/views/dialogue/components/InitalPanel.vue +++ b/src/views/dialogue/components/InitalPanel.vue @@ -1,10 +1,15 @@