From 5adfc94746d4580ed4ba4b6703ead48f4761e9c7 Mon Sep 17 00:00:00 2001 From: 13121765685 Date: Sun, 28 Dec 2025 19:30:09 +0800 Subject: [PATCH] 22 --- apps/frontend/src/components/CanvasEditor.vue | 546 ++++++++++++++++++ apps/frontend/src/components/IPCard/index.vue | 14 +- apps/frontend/src/locales/index.js | 6 +- .../src/views/Project/CreateProject.vue | 77 ++- 4 files changed, 623 insertions(+), 20 deletions(-) create mode 100644 apps/frontend/src/components/CanvasEditor.vue diff --git a/apps/frontend/src/components/CanvasEditor.vue b/apps/frontend/src/components/CanvasEditor.vue new file mode 100644 index 0000000..8921c1a --- /dev/null +++ b/apps/frontend/src/components/CanvasEditor.vue @@ -0,0 +1,546 @@ + + + + + diff --git a/apps/frontend/src/components/IPCard/index.vue b/apps/frontend/src/components/IPCard/index.vue index a1e8ca6..eb88676 100644 --- a/apps/frontend/src/components/IPCard/index.vue +++ b/apps/frontend/src/components/IPCard/index.vue @@ -15,7 +15,7 @@ ref="textInputRef" v-model="textInputValue" class="text-input-area" - placeholder="请输入文本内容..." + :placeholder="t('modelModal.textInputPlaceholder')" rows="4" @keydown.enter.ctrl="handleTextInputConfirm" @keydown.esc="handleTextInputCancel" @@ -74,6 +74,10 @@ + + @@ -91,7 +95,7 @@ import { GiminiServer } from '@deotaland/utils'; // import anTypeImg from '@/assets/sketches/dwww2.png'; // import cz2 from '@/assets/material/cz2.png'; // 引入Element Plus图标库和组件 -import { Cpu, ChatDotRound, CloseBold,Grid,View } from '@element-plus/icons-vue' +import { Cpu, ChatDotRound, CloseBold,Grid,View,EditPen } from '@element-plus/icons-vue' import { ElIcon,ElMessage,ElSkeleton,ElImage } from 'element-plus' const { t } = useI18n(); const formData = ref({ @@ -221,8 +225,10 @@ const props = defineProps({ }); // 定义事件 -const emit = defineEmits(['generate-model-requested', 'create-new-card','create-prompt-card','delete','preview-image','customize-to-home']); - +const emit = defineEmits(['generate-model-requested', 'create-new-card','create-prompt-card','delete','preview-image','customize-to-home','handlePartialEdit']); +const handlePartialEdit = ()=>{ + emit('handlePartialEdit', formData.value.internalImageUrl); +} // 处理图片生成 const handleGenerateImage = async () => { const iscjt = props?.cardData?.diyPromptText&&props?.cardData?.diyPromptText?.indexOf('[CJT_DEOTA]')!=-1; diff --git a/apps/frontend/src/locales/index.js b/apps/frontend/src/locales/index.js index 7660310..dc44f64 100644 --- a/apps/frontend/src/locales/index.js +++ b/apps/frontend/src/locales/index.js @@ -124,7 +124,8 @@ export default { } }, modelModal: { - customizeToHome: '定制到家' + customizeToHome: '定制到家', + textInputPlaceholder: '请输入调整内容,例如:更改角色表情' }, modelCard: { generateModelButton: '生成模型', @@ -1446,7 +1447,8 @@ export default { } }, modelModal: { - customizeToHome: 'Customize to Home' + customizeToHome: 'Customize to Home', + textInputPlaceholder: 'Please enter adjustment content, e.g. change character expression' }, modelCard: { generateModelButton: 'Generate Model', diff --git a/apps/frontend/src/views/Project/CreateProject.vue b/apps/frontend/src/views/Project/CreateProject.vue index 5c522ba..b9c9cab 100644 --- a/apps/frontend/src/views/Project/CreateProject.vue +++ b/apps/frontend/src/views/Project/CreateProject.vue @@ -55,6 +55,8 @@ class="delete-button" @click.stop="handleDeleteCard(index)" @mousedown.stop + @touchstart.stop + @touchend.stop title="删除卡片" > @@ -65,6 +67,7 @@ - +