黎海 месяцев назад: 2
Родитель
Сommit
34766240d9
2 измененных файлов с 30 добавлено и 12 удалено
  1. 13 6
      src/components/CozeApiSettings.js
  2. 17 6
      src/utils/cozeConfig.js

+ 13 - 6
src/components/CozeApiSettings.js

@@ -1,7 +1,7 @@
1 1
 import React, { useState, useEffect } from 'react';
2 2
 import { Form, Button, Card, Container, Row, Col, Alert, Tab, Tabs, InputGroup, Spinner } from 'react-bootstrap';
3 3
 import { saveCozeApiToken, getCozeApiToken, saveWorkflowIds, getWorkflowIds } from '../utils/storageUtils';
4
-import { WORKFLOW_DISPLAY_NAMES, hasValidToken } from '../utils/cozeConfig';
4
+import { WORKFLOW_DISPLAY_NAMES, WORKFLOW_IDS, DEFAULT_WORKFLOW_IDS, hasValidToken } from '../utils/cozeConfig';
5 5
 import { getLipSyncServer, saveLipSyncServer } from '../utils/lipSyncConfig';
6 6
 import lipSyncService from '../services/lipSyncService';
7 7
 import { toast } from 'react-toastify';
@@ -100,8 +100,15 @@ const CozeApiSettings = ({ onSave, isInModal = true }) => {
100 100
         saveCozeApiToken(apiToken);
101 101
       }
102 102
       
103
-      // 保存工作流ID
104
-      saveWorkflowIds(workflowIds);
103
+      // 保存工作流ID - 仅保存用户实际修改的非空ID
104
+      const nonEmptyWorkflowIds = {};
105
+      Object.entries(workflowIds).forEach(([key, value]) => {
106
+        if (value && value.trim() !== '') {
107
+          nonEmptyWorkflowIds[key] = value.trim();
108
+        }
109
+      });
110
+      
111
+      saveWorkflowIds(nonEmptyWorkflowIds);
105 112
       
106 113
       // 保存对口型服务器配置
107 114
       saveLipSyncServer(lipSyncServerUrl);
@@ -142,11 +149,11 @@ const CozeApiSettings = ({ onSave, isInModal = true }) => {
142 149
         <Form.Control
143 150
           type="text"
144 151
           placeholder={`请输入${WORKFLOW_DISPLAY_NAMES[key]}工作流ID`}
145
-          value={workflowIds[key] || ''}
152
+          value={workflowIds[key] || WORKFLOW_IDS[key] || DEFAULT_WORKFLOW_IDS[key]}
146 153
           onChange={(e) => handleWorkflowIdChange(key, e.target.value)}
147 154
         />
148 155
         <Form.Text className="text-muted">
149
-          {`${WORKFLOW_DISPLAY_NAMES[key]}工作流的唯一标识符。在Coze平台工作流设置中获取。`}
156
+          {`${WORKFLOW_DISPLAY_NAMES[key]}工作流的唯一标识符。在Coze平台工作流设置中获取。默认值: ${WORKFLOW_IDS[key] || DEFAULT_WORKFLOW_IDS[key] || '无'}`}
150 157
         </Form.Text>
151 158
       </Form.Group>
152 159
     ));
@@ -196,7 +203,7 @@ const CozeApiSettings = ({ onSave, isInModal = true }) => {
196 203
         
197 204
         <Tab eventKey="workflows" title="工作流ID">
198 205
           <p className="text-muted mb-3">
199
-            配置各功能对应的工作流ID。如果您没有特定的工作流,可以留空使用默认值
206
+            配置各功能对应的工作流ID。这些ID已有默认值可以直接使用,无需填写。如需使用自定义的工作流,可以在这里修改
200 207
           </p>
201 208
           {renderWorkflowIdInputs()}
202 209
         </Tab>

+ 17 - 6
src/utils/cozeConfig.js

@@ -21,15 +21,26 @@ export const hasValidToken = () => {
21 21
 // 从本地存储获取自定义的工作流ID
22 22
 const storedWorkflowIds = getWorkflowIds() || {};
23 23
 
24
+// 默认工作流ID - 这些值应该始终可用
25
+export const DEFAULT_WORKFLOW_IDS = {
26
+  textToDescription: '7485203690664837121',
27
+  getStyleList: '7485203690664837122',
28
+  generateImage: '7485203690664837123',
29
+  exportJianyingDraft: '7485203690664837120',
30
+};
31
+
24 32
 // 工作流ID映射表
25 33
 // 优先使用本地存储的ID,其次使用环境变量,最后使用默认值
26 34
 export const WORKFLOW_IDS = {
27
-  textToDescription: storedWorkflowIds.textToDescription || '7485203690664837121',
28
-  // 添加画风列表和画图工作流
29
-  getStyleList: storedWorkflowIds.getStyleList || '7485203690664837122',
30
-  generateImage: storedWorkflowIds.generateImage || '7485203690664837123',
31
-  // 添加导出剪映草稿工作流
32
-  exportJianyingDraft: storedWorkflowIds.exportJianyingDraft || '7485203690664837120',
35
+  textToDescription: storedWorkflowIds.textToDescription || process.env.REACT_APP_COZE_WORKFLOW_TEXT_TO_DESC || DEFAULT_WORKFLOW_IDS.textToDescription,
36
+  getStyleList: storedWorkflowIds.getStyleList || process.env.REACT_APP_COZE_WORKFLOW_GET_STYLE_LIST || DEFAULT_WORKFLOW_IDS.getStyleList,
37
+  generateImage: storedWorkflowIds.generateImage || process.env.REACT_APP_COZE_WORKFLOW_GENERATE_IMAGE || DEFAULT_WORKFLOW_IDS.generateImage,
38
+  exportJianyingDraft: storedWorkflowIds.exportJianyingDraft || process.env.REACT_APP_COZE_WORKFLOW_EXPORT_JIANYING_DRAFT || DEFAULT_WORKFLOW_IDS.exportJianyingDraft,
39
+};
40
+
41
+// 获取指定工作流ID,即使本地存储中没有对应的值也会返回默认值
42
+export const getWorkflowId = (key) => {
43
+  return WORKFLOW_IDS[key] || DEFAULT_WORKFLOW_IDS[key];
33 44
 };
34 45
 
35 46
 // 工作流名称到显示名称的映射