From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/api/ai/write/index.ts |   85 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/src/api/ai/write/index.ts b/src/api/ai/write/index.ts
new file mode 100644
index 0000000..013f998
--- /dev/null
+++ b/src/api/ai/write/index.ts
@@ -0,0 +1,85 @@
+import { fetchEventSource } from '@microsoft/fetch-event-source'
+
+import { getAccessToken } from '@/utils/auth'
+import { config } from '@/config/axios/config'
+import { AiWriteTypeEnum } from '@/views/ai/utils/constants'
+import request from '@/config/axios'
+
+export interface WriteVO {
+  type: AiWriteTypeEnum.WRITING | AiWriteTypeEnum.REPLY // 1:鎾板啓 2:鍥炲
+  prompt: string // 鍐欎綔鍐呭鎻愮ず 1銆傛挵鍐� 2鍥炲
+  originalContent: string // 鍘熸枃
+  length: number // 闀垮害
+  format: number // 鏍煎紡
+  tone: number // 璇皵
+  language: number // 璇█
+  userId?: number // 鐢ㄦ埛缂栧彿
+  platform?: string // 骞冲彴
+  model?: string // 妯″瀷
+  generatedContent?: string // 鐢熸垚鐨勫唴瀹�
+  errorMessage?: string // 閿欒淇℃伅
+  createTime?: Date // 鍒涘缓鏃堕棿
+}
+
+export interface AiWritePageReqVO extends PageParam {
+  userId?: number // 鐢ㄦ埛缂栧彿
+  type?: AiWriteTypeEnum //  鍐欎綔绫诲瀷
+  platform?: string // 骞冲彴
+  createTime?: [string, string] // 鍒涘缓鏃堕棿
+}
+
+export interface AiWriteRespVo {
+  id: number
+  userId: number
+  type: number
+  platform: string
+  model: string
+  prompt: string
+  generatedContent: string
+  originalContent: string
+  length: number
+  format: number
+  tone: number
+  language: number
+  errorMessage: string
+  createTime: string
+}
+
+export const WriteApi = {
+  writeStream: ({
+    data,
+    onClose,
+    onMessage,
+    onError,
+    ctrl
+  }: {
+    data: WriteVO
+    onMessage?: (res: any) => void
+    onError?: (...args: any[]) => void
+    onClose?: (...args: any[]) => void
+    ctrl: AbortController
+  }) => {
+    const token = getAccessToken()
+    return fetchEventSource(`${config.base_url}/ai/write/generate-stream`, {
+      method: 'post',
+      headers: {
+        'Content-Type': 'application/json',
+        Authorization: `Bearer ${token}`
+      },
+      openWhenHidden: true,
+      body: JSON.stringify(data),
+      onmessage: onMessage,
+      onerror: onError,
+      onclose: onClose,
+      signal: ctrl.signal
+    })
+  },
+  // 鑾峰彇鍐欎綔鍒楄〃
+  getWritePage: (params: AiWritePageReqVO) => {
+    return request.get<PageResult<AiWriteRespVo[]>>({ url: `/ai/write/page`, params })
+  },
+  // 鍒犻櫎鍐欎綔
+  deleteWrite(id: number) {
+    return request.delete({ url: `/ai/write/delete`, params: { id } })
+  }
+}

--
Gitblit v1.8.0