88 </label >
99 <input
1010 type =" text"
11- v-model =" newPrompt.text "
11+ v-model =" newPrompt.inputText "
1212 class =" input input-bordered w-full"
1313 placeholder =" 输入原始提示词文本"
1414 />
@@ -128,13 +128,13 @@ import { PromptsAPI } from '../api/prompts';
128128import type { PromptLibraryItem , CreatePromptLibraryItemParams } from ' ../api/prompts' ;
129129import { useDebounce } from ' ../utils/debounce' ;
130130
131- // 新提示词数据结构
131+ // 提示词数据结构
132132interface NewPromptData {
133- text : string ; // 提示词文本
134- translated: string ; // 翻译结果
135- category: string ; // 一级分类
136- subCategory: string ; // 二级分类
137- isEnglish: boolean ; // 是否为英文
133+ inputText : string ; // 输入文本
134+ translated: string ; // 翻译结果
135+ category: string ; // 一级分类
136+ subCategory: string ; // 二级分类
137+ isEnglish: boolean ; // 是否为英文
138138}
139139
140140// 简单的中英文映射字典
@@ -213,7 +213,7 @@ export default defineComponent({
213213
214214 // 新提示词数据
215215 const newPrompt = ref <NewPromptData >({
216- text : ' ' ,
216+ inputText : ' ' ,
217217 translated: ' ' ,
218218 category: ' ' ,
219219 subCategory: ' ' ,
@@ -259,7 +259,7 @@ export default defineComponent({
259259 // 是否可以保存到提示词库
260260 const canSaveToLibrary = computed (() => {
261261 return (
262- newPrompt .value .text .trim () !== ' ' &&
262+ newPrompt .value .inputText .trim () !== ' ' &&
263263 newPrompt .value .translated .trim () !== ' ' &&
264264 newPrompt .value .category .trim () !== ' ' &&
265265 ! isSaving .value
@@ -269,7 +269,7 @@ export default defineComponent({
269269 // 重置新提示词表单
270270 const resetNewPromptForm = () => {
271271 newPrompt .value = {
272- text : ' ' ,
272+ inputText : ' ' ,
273273 translated: ' ' ,
274274 category: ' ' ,
275275 subCategory: ' ' ,
@@ -328,7 +328,7 @@ export default defineComponent({
328328
329329 // 实际执行翻译的方法
330330 async function watchNewPromptText() {
331- const text = newPrompt .value .text .trim ();
331+ const text = newPrompt .value .inputText .trim ();
332332 if (! text ) return ;
333333
334334 // 检测是否为英文
@@ -345,9 +345,12 @@ export default defineComponent({
345345 }
346346
347347 // 检查是否已存在于提示词库中
348- const existingPrompt = props .promptLibraryData .find (p => p .text === text );
348+ const existingPrompt = props .promptLibraryData .find (p =>
349+ (p .english === text && newPrompt .value .isEnglish ) ||
350+ (p .chinese === text && ! newPrompt .value .isEnglish )
351+ );
349352 if (existingPrompt ) {
350- newPrompt .value .translated = isEnglish ? existingPrompt .chinese : existingPrompt .english ;
353+ newPrompt .value .translated = newPrompt . value . isEnglish ? existingPrompt .chinese : existingPrompt .english ;
351354 return ;
352355 }
353356
@@ -377,11 +380,11 @@ export default defineComponent({
377380 watch (() => props .selectedPrompt , (selected ) => {
378381 if (selected ) {
379382 // 判断是否为英文
380- const isEnglish = / ^ [a-zA-Z0-9 \s \-_ ,. ] + $ / .test (selected .text );
383+ const isEnglish = / ^ [a-zA-Z0-9 \s \-_ ,. ] + $ / .test (selected .english );
381384
382385 // 如果有选中的提示词,填充到表单
383386 newPrompt .value = {
384- text: selected .text ,
387+ inputText: isEnglish ? selected .english : selected . chinese ,
385388 translated: isEnglish ? selected .chinese : selected .english ,
386389 category: selected .category ,
387390 subCategory: selected .subCategory ,
@@ -399,9 +402,8 @@ export default defineComponent({
399402 errorMessage .value = ' ' ;
400403
401404 const newItem: CreatePromptLibraryItemParams = {
402- text: newPrompt .value .text .trim (),
403- chinese: newPrompt .value .isEnglish ? newPrompt .value .translated : newPrompt .value .text ,
404- english: newPrompt .value .isEnglish ? newPrompt .value .text : newPrompt .value .translated ,
405+ chinese: newPrompt .value .isEnglish ? newPrompt .value .translated : newPrompt .value .inputText ,
406+ english: newPrompt .value .isEnglish ? newPrompt .value .inputText : newPrompt .value .translated ,
405407 category: newPrompt .value .category ,
406408 subCategory: newPrompt .value .subCategory || ' 默认' // 未选择时使用默认分类
407409 };
@@ -433,8 +435,8 @@ export default defineComponent({
433435 // 组件挂载后初始化
434436 onMounted (() => {
435437 // 监听新提示词文本变化
436- watch (() => newPrompt .value .text , () => {
437- if (newPrompt .value .text .trim ()) {
438+ watch (() => newPrompt .value .inputText , () => {
439+ if (newPrompt .value .inputText .trim ()) {
438440 translateDebounce .triggerDebounce ();
439441 }
440442 });
0 commit comments