From 7d762aada2b2b25476c51a6de1d36b8208c6238d Mon Sep 17 00:00:00 2001 From: Kven <2955163637@qq.com> Date: Tue, 10 Jun 2025 22:37:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(@vben/web-antd):=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=8A=A8=E6=80=81=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/core/chatflow.ts | 4 +- apps/web-antd/src/api/core/server.ts | 10 +- apps/web-antd/src/api/core/workflow.ts | 4 +- .../views/ppt/components/ppt-list-view.vue | 29 ++++-- .../src/views/ppt/components/ppt-preview.vue | 4 +- .../views/ppt/components/ppt-work-view.vue | 49 ++++------ apps/web-antd/src/views/ppt/index.vue | 38 +++++--- apps/web-antd/src/views/ppt/typing.ts | 6 +- .../spider/components/spider-list-view.vue | 65 ++++++------- apps/web-antd/src/views/spider/index.vue | 56 ++++++----- apps/web-antd/src/views/spider/typing.ts | 3 +- .../views/word/components/word-list-view.vue | 37 ++++---- .../views/word/components/word-preview.vue | 4 +- .../views/word/components/word-work-view.vue | 94 ++++++++++--------- apps/web-antd/src/views/word/index.vue | 40 +++++--- apps/web-antd/src/views/word/typing.ts | 6 +- apps/web-antd/vite.config.mts | 6 +- 17 files changed, 251 insertions(+), 204 deletions(-) diff --git a/apps/web-antd/src/api/core/chatflow.ts b/apps/web-antd/src/api/core/chatflow.ts index 47e628f..e26edd1 100644 --- a/apps/web-antd/src/api/core/chatflow.ts +++ b/apps/web-antd/src/api/core/chatflow.ts @@ -58,8 +58,8 @@ export async function sendChatflow( } // word -export async function sendWord(data: ChatflowApi.CompletionsBody) { - return requestClient.post(`word/completions`, data); +export async function sendWord(appId: any, data: ChatflowApi.CompletionsBody) { + return requestClient.post(`word/completions/${appId}`, data); } export async function getChatList( diff --git a/apps/web-antd/src/api/core/server.ts b/apps/web-antd/src/api/core/server.ts index 162b14a..7e169e3 100644 --- a/apps/web-antd/src/api/core/server.ts +++ b/apps/web-antd/src/api/core/server.ts @@ -1,5 +1,3 @@ -import type { SpiderItem } from '@vben/common-ui'; - import { requestClient } from '#/api/request'; export namespace RepositoryApi { @@ -10,7 +8,13 @@ export namespace RepositoryApi { } export async function getAppList(params: RepositoryApi.AppListParams) { - return requestClient.get(`/v1/server/apps`, { params }); + return requestClient.get(`/v1/server/apps`, { params }); +} + +export async function getAppListByType(appType: any) { + return requestClient.get(`/v1/server/apps/type`, { + params: { appType }, + }); } // export const getAppDetail = (id) => { diff --git a/apps/web-antd/src/api/core/workflow.ts b/apps/web-antd/src/api/core/workflow.ts index ac965cd..c0c719e 100644 --- a/apps/web-antd/src/api/core/workflow.ts +++ b/apps/web-antd/src/api/core/workflow.ts @@ -36,8 +36,8 @@ export function sendWorkflow( return requestClient.post(`/v1/workflow/run/${params.appid}`, data); } -export function sendPpt(data: WorkflowApi.WorkflowRunBody) { - return requestClient.post(`/ppt/run`, data); +export function sendPpt(appId: any, data: WorkflowApi.WorkflowRunBody) { + return requestClient.post(`/ppt/run/${appId}`, data); } export function getWorkflowInfo(data: WorkflowApi.WorkflowLogParams) { diff --git a/apps/web-antd/src/views/ppt/components/ppt-list-view.vue b/apps/web-antd/src/views/ppt/components/ppt-list-view.vue index 1c10b93..76c471b 100644 --- a/apps/web-antd/src/views/ppt/components/ppt-list-view.vue +++ b/apps/web-antd/src/views/ppt/components/ppt-list-view.vue @@ -3,7 +3,7 @@ import type { ConversationsProps } from 'ant-design-x-vue'; import type { Props } from '../typing'; -import { computed, ref } from 'vue'; +import { computed, ref, watch } from 'vue'; import { Menu } from 'ant-design-vue'; import { Conversations } from 'ant-design-x-vue'; @@ -14,6 +14,7 @@ defineOptions({ const props = withDefaults(defineProps(), { items: () => [], + temp: () => [], }); const emit = defineEmits(['click', 'clickMode']); const defaultConversationsItems = computed(() => { @@ -27,13 +28,16 @@ const defaultConversationsItems = computed(() => { const conversationsItems = ref(defaultConversationsItems); const activeKey = ref(defaultConversationsItems.value[0]?.key); -const itemsData = ref([ - { - key: 'baca08c1-e92b-4dc9-a445-3584803f54d4', - label: '海南职创申报书生成', - title: '海南职创申报书生成', - }, -]); +// 将 props.items 映射为 key=id, label=name, title=name 的结构 +const transformItems = computed(() => { + return props.temp.map((item) => ({ + key: item.id, + label: item.name, + title: item.name, + })); +}); + +const itemsData = ref([]); const handleMenuClick = (item: { key: string }) => { const selectedItem = itemsData.value.find((i) => i.key === item.key); @@ -60,6 +64,15 @@ const onConversationClick: ConversationsProps['onActiveChange'] = (key) => { const selectedKeys = ref([]); const openKeys = ref([]); + +// 监听 transformItems 变化,更新 itemsData +watch( + () => transformItems.value, + (newVal) => { + itemsData.value = newVal; + }, + { immediate: true }, +);