Explorar o código

fix(CollapsibleToolbar): 修复AI网页编辑时重复创建的问题

新增编辑状态标识isEdit,在编辑模式下更新已有网页框架而非重复创建
lsc hai 1 semana
pai
achega
289751431e
Modificáronse 1 ficheiros con 18 adicións e 2 borrados
  1. 18 2
      src/components/CollapsibleToolbar/index2.vue

+ 18 - 2
src/components/CollapsibleToolbar/index2.vue

@@ -1360,6 +1360,7 @@ const handleUploadCode = async () => {
 const create_app_loading = ref(false)
 const webId = ref('')
 const showAiWebModal = ref(false)
+const isEdit = ref(false)
 
 const handle_add_aiWeb = _.throttle(async () => {
   create_app_loading.value = true
@@ -1372,6 +1373,7 @@ const handle_add_aiWeb = _.throttle(async () => {
       webId.value = existingWebElement.webId
       create_app_loading.value = false
       showAiWebModal.value = true
+      isEdit.value = true
       return
     }
 
@@ -1402,11 +1404,25 @@ const addAiWeb = async (code: string) => {
   const file = new File([code], 'index.html', { type: 'text/html' })
   isLoading.value = true
   const url = await uploadFileToS3(file)
-  createSlide()
-  createFrameElement(url, 73, webId.value)
+  if (isEdit.value) {
+    const elements = currentSlide.value?.elements || []
+    const frameElement = elements.find((el: any) => el.type === 'frame' && (el.toolType === 73))
+    if (frameElement) {
+      slidesStore.updateElement({
+        id: frameElement.id,
+        props: { url: url }
+      })
+    }
+  }
+  else {
+    createSlide()
+    createFrameElement(url, 73, webId.value)
+  }
+  
   isLoading.value = false
   showAiWebModal.value = false
   webId.value = ''
+  isEdit.value = false
 }
 </script>