From 44d711f64555a424361866bafa145dd0c462d0cd Mon Sep 17 00:00:00 2001
From: du <13220750630.163.com>
Date: 星期二, 22 四月 2025 17:04:28 +0800
Subject: [PATCH] 复制ppt,删除ppt的提示

---
 easegen-front/src/views/chooseTemplate/index.vue |  347 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 191 insertions(+), 156 deletions(-)

diff --git a/easegen-front/src/views/chooseTemplate/index.vue b/easegen-front/src/views/chooseTemplate/index.vue
index 649f5a8..5a3ece2 100644
--- a/easegen-front/src/views/chooseTemplate/index.vue
+++ b/easegen-front/src/views/chooseTemplate/index.vue
@@ -16,7 +16,7 @@
           @blur="saveEdit"
           @keydown.enter="saveEdit"
         />
- 
+
         <!-- 濡傛灉涓嶅湪缂栬緫锛屾樉绀烘枃鏈� -->
         <div
           v-else
@@ -126,7 +126,7 @@
                     <div class="icon-content">
                       <el-icon
                         size="20"
-                        color="#ffffff"
+                        color="#FFA500"
                         style="margin-right: 5px"
                         @click.stop="copyDocument(element, index)"
                       >
@@ -134,7 +134,7 @@
                       </el-icon>
                       <el-icon
                         size="20"
-                        color="#ffffff"
+                        color="#FFA500"
                         style="margin-right: 5px"
                         @click.stop="deleteDocument(element)"
                       >
@@ -254,7 +254,7 @@
                     class="minddle-host-image"
                     :src="selectHost ? selectHost.pictureUrl : ''"
                   />
- 
+
                   <el-icon
                     v-if="PPTpositon.active"
                     size="20"
@@ -295,7 +295,7 @@
                   class="minddle-host-image"
                   :src="selectHost ? selectHost.pictureUrl : ''"
                 />
- 
+
                 <el-icon
                   v-if="PPTpositon.active"
                   size="20"
@@ -558,7 +558,7 @@
       <div class="template-box template-right" v-if="showHeadImageTool">
         <div class="image-setting">
           <!--          涓婁紶鍥剧墖鎴愬姛鍚庯紝灏嗗綋鍓嶅満鏅殑鑳屾櫙淇敼涓轰笂浼犵殑鍥剧墖url-->
- 
+
           <div>{{ t('courseCenter.uploadImage') }}</div>
           <UploadImg v-model="selectPPT.pictureUrl" :limit="1" />
         </div>
@@ -567,7 +567,7 @@
       <div class="template-box template-right" v-if="showInnerPictureTool">
         <div class="image-setting">
           <!--          涓婁紶鍥剧墖鎴愬姛鍚庯紝灏嗗綋鍓嶅満鏅殑鐢讳腑鐢讳慨鏀逛负涓婁紶鐨勫浘鐗噓rl-->
- 
+
           <div>{{ t('courseCenter.uploadImage') }}</div>
           <UploadImg v-model="selectPPT.innerPicture.src" :limit="1" />
         </div>
@@ -628,7 +628,7 @@
 <script lang="ts" setup>
 import { ref, reactive, onMounted } from 'vue'
 import draggable from 'vuedraggable'
- 
+
 import Vue3DraggableResizable from 'vue3-draggable-resizable'
 import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'
 import { config } from '@/config/axios/config'
@@ -698,7 +698,7 @@
 const onDragMove = (evt, data) => {
   console.log(evt)
   console.log(data)
- 
+
   // 闄愬埗鍧愭爣
   if (data.x < -100) {
     data.x = -100; // 鍙互璁剧疆鏈�灏忓潗鏍囦负 -100
@@ -713,7 +713,7 @@
   courseInfo.value.name = editName.value
 }
 let humanId = 0
- 
+
 //璇剧▼鍩烘湰淇℃伅
 const courseInfo = ref({
   id: 0,
@@ -735,7 +735,7 @@
     courseInfo.value.height = newAspect === '16:9' ? 1080 : 1920
   }
 )
- 
+
 const editName = ref(courseInfo.value.name)
 const viewSize = reactive({
   width: 800,
@@ -754,7 +754,7 @@
   width: courseInfo.value.width / viewSize.width, // 1920/800 = 2.4
   height: courseInfo.value.height / viewSize.height // 1080/450 = 2.4
 }))
- 
+
 const PPTpositon = reactive({
   x: viewSize.width - digitalHumanSize.width,
   y: viewSize.height - digitalHumanSize.height,
@@ -763,7 +763,7 @@
   depth: 0,
   active: false
 })
- 
+
 const componentsInfo = reactive({
   width: PPTpositon.w / 5,
   height: PPTpositon.h / 4,
@@ -783,7 +783,7 @@
 const showImageSet = ref(false)
 //鏄惁灏嗘ā鏉垮簲鐢ㄥ埌鎵�鏈夐〉闈�
 const applyAllTemplate = ref(false)
- 
+
 const xScale = viewSize.width / thumViewSize.width
 // const yScale = viewSize.height / thumViewSize.height
 //宸︿晶ppt鏁板瓧浜轰綅缃�
@@ -805,13 +805,13 @@
 const state = reactive({
   dragging: false
 })
- 
+
 //棰勮妯℃澘
 const TEMPLATE_PRESETS = ref([])
 const templates = ref([])
- 
+
 const selectTemplate = ref([])
- 
+
 //鏁板瓧浜簍ab
 const tabs1 = [
   {
@@ -940,12 +940,12 @@
     showInnerPictureTool.value = true
   }
 }
- 
+
 const PPTArr = ref()
 //ppt瑙f瀽杩涘害
 const percentagePPT = ref(0)
 const showLeftList = ref(true)
- 
+
 const selectPPT = ref({
   pictureUrl: '',
   innerPicture: {
@@ -1034,18 +1034,18 @@
   file.uid = genFileId()
   uploadRef.value!.handleStart(file)
 }
- 
+
 // 涓婁紶鐩稿叧鐨勫鐞嗗嚱鏁�
 const handleChange = (files) => {
   // 鑾峰彇鏂囦欢鎵╁睍鍚�
   const extension = files.name.split('.').pop().toLowerCase()
- 
+
   // 璁剧疆鏂囨。绫诲瀷 1:ppt 2:pdf
   uploadFileObj.docType = extension === 'pdf' ? 2 : 1
   uploadFileObj.filename = files.name
   uploadFileObj.size = files.size
 }
- 
+
 const uploadExplainRef = ref()
 const handleSuccess = (rawFile) => {
   message.success('涓婁紶鎴愬姛锛�')
@@ -1053,12 +1053,12 @@
   uploadExplainRef.value.open()
   uploadRef.value!.clearFiles()
 }
- 
+
 const handleError = (err) => {
   message.error('涓婁紶澶辫触锛岃閲嶈瘯')
   console.error('Upload error:', err)
 }
- 
+
 //涓婁紶闊抽
 const uploadAudioRef = ref()
 const handleAudioSuccess = (rawFile) => {
@@ -1201,7 +1201,7 @@
     // 璁$畻鎬诲瓧鏁� - 淇敼涓哄幓闄SML鏍囩鍚庡啀璁$畻闀垮害
     videoText.value = val.reduce((prev, curr) => {
       if (!curr.pptRemark) return prev;
- 
+
       // 鍘婚櫎鎵�鏈塖SML鏍囩,鍙繚鐣欐枃鏈唴瀹�
       const plainText = curr.pptRemark;
       return prev + plainText.length;
@@ -1234,13 +1234,48 @@
   clearInterval(schedulePPTTimer.value)
 }
 const copyDocument = (item, index) => {
-  let copyItem = cloneDeep(item)
-  copyItem.id = generateUUID()
-  copyItem.isActive = false
-  PPTArr.value.splice(index + 1, 0, copyItem)
+  ElMessageBox.confirm(
+    '鏄惁澶嶅埗璇ラ〉闈紵',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍚�',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      let copyItem = cloneDeep(item)
+      copyItem.id = generateUUID()
+      copyItem.isActive = false
+      PPTArr.value.splice(index + 1, 0, copyItem)
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '宸插彇娑堝鍒�',
+      })
+    })
+
 }
 const deleteDocument = (item) => {
-  PPTArr.value = PPTArr.value.filter((child) => child.id !== item.id)
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ラ〉闈紵',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍚�',
+      type: 'warning',
+    }
+  )
+      .then(() => {
+      PPTArr.value = PPTArr.value.filter((child) => child.id !== item.id)
+      }).catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '宸插彇娑堝垹闄�',
+      })
+  })
+
 }
 const deleteDigitalHuman = () => {
   selectPPT.value.showDigitalHuman = false
@@ -1362,7 +1397,7 @@
       scene.selectAudio = data[0]
     })
   }
- 
+
 }
 //鐢熸垚璇剧▼id
 const coursesCreate = () => {
@@ -1376,7 +1411,7 @@
     }
   })
 }
- 
+
 //鑾峰彇淇濆瓨鏃堕棿
 const saveTime = ref()
 const getSaveTime = () => {
@@ -1396,7 +1431,7 @@
   return h + ':' + m + ':' + s
 }
 const warningDialog = ref()
- 
+
 // 璇�� 闊抽噺
 const voiceData = reactive({
   show: false,
@@ -1420,14 +1455,14 @@
   const doc = parser.parseFromString(html, 'text/html');
   return doc.body.textContent || "";
 }
- 
+
 const saveSubmit = async (type) => {
   // 妫�鏌ュ満鏅槸鍚︿负绌�
   if (!PPTArr.value || PPTArr.value.length === 0) {
     message.warning('鍦烘櫙涓虹┖锛岃鍏堜笂浼燩PT锛�')
     return false
   }
- 
+
   //淇濆瓨璇剧▼
   let saveSubmitForm = {
     accountId: courseInfo.value.accountId,
@@ -1450,7 +1485,7 @@
   // }else{
   //   Reflect.set(saveSubmitForm, "courseMediaId", courseInfo.value.id);
   // }
- 
+
   //缁勮鏁版嵁
   const scenes: any = []
   const pageInfo = {
@@ -1482,7 +1517,7 @@
     matting: 1,
     marker: 1
   }
- 
+
   let pageNum = 1
   if (PPTArr.value && PPTArr.value.length > 0) {
     console.log('寮�濮嬪鐞哖PTArr鏁版嵁')
@@ -1495,7 +1530,7 @@
           pageNum++
         }
         console.log(item)
- 
+
         const innerPictureCom = item.innerPicture
         console.log('innerPictureCom:', JSON.stringify(innerPictureCom))
         console.log(item.pptRemark)
@@ -1574,7 +1609,7 @@
   }
   console.log('pageInfo:', JSON.stringify(pageInfo))
   console.log('thumbnail:', thumbnail)
- 
+
   try {
     saveSubmitForm.pageInfo = JSON.stringify(pageInfo)
     saveSubmitForm.thumbnail = thumbnail
@@ -1583,7 +1618,7 @@
   } catch (error) {
     console.error('淇濆瓨琛ㄥ崟鏁版嵁鏃跺嚭閿�:', error)
   }
- 
+
   if (type == 'save') {
     try {
       const res = await pptTemplateApi.coursesSave(stringifySafely(saveSubmitForm))
@@ -1606,7 +1641,7 @@
         message.error('淇濆瓨澶辫触锛岃閲嶈瘯鍚庡啀鍚堟垚瑙嗛')
         return
       }
- 
+
       // 鏍¢獙鍦烘櫙鏁版嵁
       let warningStrArr: any = []
       for (let i = 0; i < PPTArr.value.length; i++) {
@@ -1635,12 +1670,12 @@
           }
         }
       }
- 
+
       if (warningStrArr.length > 0) {
         warningDialog.value.open(warningStrArr.map((warning) => `<div>${warning}</div>`).join(''))
         return
       }
- 
+
       // 鍚堟垚瑙嗛
       try {
         const res = await pptTemplateApi.megerMedia(saveSubmitForm)
@@ -1691,7 +1726,7 @@
   message.warning('鏈�澶氫笂浼犱竴涓0闊抽┍鍔ㄦ枃浠讹紒')
 }
 const currentAudio = ref()
- 
+
 const handlePptRemarkSelection = () => {
   if (textareaRef.value) {
     const textarea = textareaRef.value.$el.querySelector('textarea')
@@ -1776,13 +1811,13 @@
 const createAudio = async () => {
   // 鑾峰彇缂栬緫鍣ㄦ枃鏈唴瀹�
   const text = editorRef.value.getText();
- 
+
   // 妫�鏌ユ枃鏈槸鍚︿负绌�
   if (!text) {
     message.warning('璇疯緭鍏ラ渶瑕佽瘯鍚枃鏈殑鍐呭鈥�');
     return false;
   }
- 
+
   // 鎴彇鏂囨湰闀垮害涓嶈秴杩� 100
   const truncatedText = text.length > 100 ? text.substring(0, 100) : text;
   console.log(audioSelectData.value)
@@ -1795,26 +1830,26 @@
     try {
       // 鏄剧ず闊抽鎾斁鍔犺浇鐘舵��
       showAudioPlay1.value = true;
- 
+
       // 璋冪敤 API 鍒涘缓闊抽
       const res = await pptTemplateApi.createAudio(params);
- 
+
       // 妫�鏌ュ搷搴旀槸鍚︽湁鏁堜笖鏃犻敊璇�
       if (res && !res.error) {
         console.log(res);
         // 闅愯棌鍔犺浇鐘舵�侊紝鏄剧ず闊抽鎾斁鐘舵��
         showAudioPlay1.value = false;
         showAudioPlay.value = true;
- 
+
         // 鍒濆鍖� Audio 瀵硅薄
         currentAudio.value = new Audio(res);
- 
+
         // 娣诲姞鎾斁缁撴潫浜嬩欢鐩戝惉鍣�
         currentAudio.value.addEventListener('ended', () => {
           showAudioPlay.value = false;
           currentAudio.value = null;
         });
- 
+
         // 鎾斁闊抽
         currentAudio.value.play();
       } else {
@@ -1835,26 +1870,26 @@
     try {
       // 鏄剧ず闊抽鎾斁鍔犺浇鐘舵��
       showAudioPlay1.value = true;
- 
+
       // 璋冪敤 API 鍒涘缓闊抽
       const res = await pptTemplateApi.createAudio(params);
- 
+
       // 妫�鏌ュ搷搴旀槸鍚︽湁鏁堜笖鏃犻敊璇�
       if (res && !res.error) {
         console.log(res);
         // 闅愯棌鍔犺浇鐘舵�侊紝鏄剧ず闊抽鎾斁鐘舵��
         showAudioPlay1.value = false;
         showAudioPlay.value = true;
- 
+
         // 鍒濆鍖� Audio 瀵硅薄
         currentAudio.value = new Audio(res);
- 
+
         // 娣诲姞鎾斁缁撴潫浜嬩欢鐩戝惉鍣�
         currentAudio.value.addEventListener('ended', () => {
           showAudioPlay.value = false;
           currentAudio.value = null;
         });
- 
+
         // 鎾斁闊抽
         currentAudio.value.play();
       } else {
@@ -1868,9 +1903,9 @@
     }
   }
   // 鏋勫缓璇锋眰鍙傛暟
- 
- 
- 
+
+
+
 }
 //鍙栨秷璇曞惉
 const pauseAudio = () => {
@@ -1892,16 +1927,16 @@
     currentAudioFile.value.pause()
     currentAudioFile.value.currentTime = 0 // 閲嶇疆鎾斁浣嶇疆
   }
- 
+
   // 鍒涘缓鏂扮殑 Audio 瀹炰緥
   const audio = new Audio(file.response.data)
   currentAudioFile.value = audio
- 
+
   // 鐩戝惉鎾斁缁撴潫浜嬩欢
   audio.addEventListener('ended', () => {
     cancelAudio()
   })
- 
+
   // 寮�濮嬫挱鏀�
   startAudioPlay.value = true
   audio.play()
@@ -1985,26 +2020,26 @@
         const hostInfo = res.scenes[0].components.find((component) => component.category === 2)
         // 鍏堝湪褰撳墠鏁板瓧浜哄垪琛ㄤ腑鏌ユ壘
         let foundHost = hostList.value.find(item => item.code === hostInfo.entityId)
- 
+
         // 濡傛灉鍦ㄥ綋鍓嶅垪琛ㄤ腑娌℃壘鍒�,涓斿綋鍓嶆槸鍏叡鏁板瓧浜哄垪琛�,鍒欏垏鎹㈠埌鎴戠殑鏁板瓧浜哄垪琛ㄩ噸鏂拌幏鍙�
         if (!foundHost && tabs1ActiveNum.value === '0') {
           // 淇濆瓨鍏叡鏁板瓧浜哄垪琛ㄧ殑绗竴涓暟瀛椾汉浣滀负榛樿鍊�
           const defaultPublicHost = hostList.value[0]
- 
+
           // 鍒囨崲鍒�"鎴戠殑"鏁板瓧浜�
           tabs1ActiveNum.value = '1'
           // 閲嶆柊鑾峰彇鏁板瓧浜哄垪琛�
           getList().then(() => {
             // 鍦ㄦ柊鍒楄〃涓煡鎵�
             foundHost = hostList.value.find(item => item.code === hostInfo.entityId)
- 
+
             // 濡傛灉鍦�"鎴戠殑"鏁板瓧浜轰腑涔熸病鎵惧埌,鍒欎娇鐢ㄩ粯璁ゅ叕鍏辨暟瀛椾汉
             if (!foundHost) {
               tabs1ActiveNum.value = '0' // 鍒囧洖鍏叡鏁板瓧浜簍ab
               foundHost = defaultPublicHost // 浣跨敤涔嬪墠淇濆瓨鐨勯粯璁ゅ叕鍏辨暟瀛椾汉
               message.warning('鏈壘鍒板師鏁板瓧浜�,宸蹭娇鐢ㄩ粯璁ゅ叕鍏辨暟瀛椾汉鏇夸唬')
             }
- 
+
             // 璁剧疆閫変腑鐨勬暟瀛椾汉
             selectHost.value = foundHost || hostList.value[0]
           })
@@ -2012,7 +2047,7 @@
           // 璁剧疆閫変腑鐨勬暟瀛椾汉
           selectHost.value = foundHost || hostList.value[0]
         }
- 
+
         // 璁剧疆閫変腑鐨勬暟瀛椾汉
         selectHost.value = foundHost || hostList.value[0]
         if (hostInfo) {
@@ -2051,7 +2086,7 @@
       const pageInfo = res.pageInfo ? JSON.parse(res.pageInfo) : ''
       uploadFileObj.filename = pageInfo ? pageInfo.docInfo.fileName : ''
       uploadFileObj.size = pageInfo ? pageInfo.docInfo.fileSize : ''
- 
+
       //搴旂敤妯℃澘 杩欓噷鐢ㄦ埛鍙兘宸茬粡璋冩暣浜嗘ā鏉匡紝鎵�浠ヨ繖閲屼笉搴旂敤妯℃澘
       // applyTemplate()
     }
@@ -2068,11 +2103,11 @@
   currTemplate.isActive = true
   applyTemplate()
 }
- 
+
 const applyTemplate = (ppt = null) => {
   const template = selectTemplate.value
   const pptList = applyAllTemplate.value ? PPTArr.value : [selectPPT.value]
- 
+
   // 鏁板瓧浜烘槸缁熶竴鐢熸晥鐨勶紝鍏堝鐞�
   console.log(template)
   pptList.forEach((item) => {
@@ -2104,7 +2139,7 @@
       item.pictureUrl = originalPPT
       item.innerPicture.src = ''
     }
- 
+
     item.showDigitalHuman = template.showDigitalHuman
     // 娣诲姞鍚屾瀹介珮鐨勯�昏緫
     const targetTemplate = selectTemplate.value
@@ -2116,26 +2151,26 @@
       }
     })
   })
- 
+
   // 鏁板瓧浜轰綅缃篃闇�瑕佺缉鏀�
   PPTpositon.w = selectTemplate.value.humanW
   PPTpositon.h = selectTemplate.value.humanH
   PPTpositon.x = selectTemplate.value.humanX
   PPTpositon.y = selectTemplate.value.humanY
 }
- 
+
 const replaceDialog = ref(null)
- 
+
 // 鎵撳紑寮瑰嚭妗�
 const openReplaceDialog = () => {
   replaceDialog.value.open()
 }
- 
+
 // 澶勭悊鎻愪氦鐨勬浛鎹㈣鍒�
 const escapeRegExp = (string) => {
   return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // 杞箟姝e垯涓殑鐗规畩瀛楃
 }
- 
+
 const handleReplacement = (replacements) => {
   PPTArr.value.forEach((item) => {
     if (item.pptRemark) {
@@ -2148,7 +2183,7 @@
   })
   message.success('鎵归噺鏇挎崲鎴愬姛锛�')
 }
- 
+
 onMounted(async () => {
   let data = await TemplateApi.getTemplatePage(queryParams)
   TEMPLATE_PRESETS.value = data.list.map((item) => {
@@ -2187,13 +2222,13 @@
   height: 100%;
   background-color: #f5f7fa;
 }
- 
+
 .minddle-host-image {
   z-index: 5;
   width: 100%;
   height: 100%;
 }
- 
+
 .template-top {
   display: flex;
   height: 60px;
@@ -2203,50 +2238,50 @@
   border: 1px solid #ebeef5;
   box-shadow: 0 3px 6px rgb(175 175 175 / 16%);
   justify-content: space-between;
- 
+
   .top-left {
     display: flex;
     align-items: center;
- 
+
     .top-icon {
       display: flex;
       align-items: center;
     }
- 
+
     .back-text {
       margin-right: 20px;
       margin-left: 10px;
       cursor: pointer;
     }
- 
+
     span {
       margin: 0 25px;
     }
   }
- 
+
   .top-right {
     span {
       margin: 0 20px;
     }
   }
 }
- 
+
 .template-main {
   display: flex;
   height: calc(100% - 82px);
   padding: 10px;
   justify-content: space-around;
- 
+
   .template-left {
     position: relative;
     width: 180px;
     background-color: #fff;
     border: 1px solid #ebeef5;
     box-shadow: 0 3px 6px rgb(175 175 175 / 16%);
- 
+
     .page {
       margin: 0;
- 
+
       div {
         // height: 30px;
         padding: 5px 10px;
@@ -2254,7 +2289,7 @@
         line-height: 30px;
         border-bottom: 1px solid #ebeef5;
       }
- 
+
       .line {
         width: 30px;
         height: 3px;
@@ -2262,12 +2297,12 @@
         margin: 0;
         background-color: aqua;
       }
- 
+
       .upload-demo {
         text-align: center;
       }
     }
- 
+
     .left-upload-setting {
       display: flex;
       height: calc(100% - 86px);
@@ -2276,32 +2311,32 @@
       flex-direction: column;
       justify-content: center;
       align-items: center;
- 
+
       div {
         line-height: 40px;
       }
- 
+
       ::v-deep(.el-progress-bar) {
         width: 180px;
       }
- 
+
       .el-button {
         margin: 20px 0;
       }
     }
- 
+
     .image-list {
       height: calc(100% - 70px);
       padding: 10px;
       overflow: hidden auto;
       border-bottom: 1px solid #ebeef5;
- 
+
       .list {
         position: relative;
         height: calc(152px * 9 / 16); // 浣跨敤缂╃暐鍥剧殑鍥哄畾楂樺害
         margin: 20px 0;
         box-sizing: content-box;
- 
+
         .list-index {
           position: absolute;
           top: 10px;
@@ -2315,7 +2350,7 @@
           background: #122121;
           border-radius: 5px;
         }
- 
+
         // 纭繚鑳屾櫙鍥剧墖濉厖鏁翠釜瀹瑰櫒
         .background {
           position: absolute;
@@ -2328,18 +2363,18 @@
           height: 100%;
           background-color: rgba(0, 0, 0, 0);
         }
- 
+
         .ppt-bg {
           z-index: 2;
           // width: 152px;
           // height: 100%;
         }
- 
+
         .host {
           position: absolute;
           z-index: 3;
         }
- 
+
         .icon-content {
           position: absolute;
           top: 0;
@@ -2351,7 +2386,7 @@
         }
       }
     }
- 
+
     .page-btn {
       position: absolute;
       bottom: 10px;
@@ -2359,7 +2394,7 @@
       padding: 0 10px;
     }
   }
- 
+
   .template-middle {
     display: flex;
     width: 56%;
@@ -2368,17 +2403,17 @@
     flex-grow: 1; // 纭繚涓棿鍖哄煙鍙互鑷�傚簲楂樺害
     flex-direction: column;
     justify-content: flex-start;
- 
+
     .middle-top {
       padding: 5px 20px;
     }
- 
+
     .main-box {
       display: flex;
       padding: 10px 20px;
       border: 1px solid #ebeef5;
       justify-content: center;
- 
+
       .main-image-box {
         position: relative;
         // width: 760px;
@@ -2386,20 +2421,20 @@
         border: 1px solid #ebeef5;
         box-sizing: content-box;
       }
- 
+
       .list {
         position: relative;
         display: flex;
         width: 95%;
         justify-content: center;
       }
- 
+
       .ppt-bg {
         z-index: 2;
         width: 100%;
         height: 100%;
       }
- 
+
       .host {
         position: absolute;
         right: 0;
@@ -2407,12 +2442,12 @@
         width: 300px;
       }
     }
- 
+
     .voice-main {
       display: flex;
       justify-content: space-between;
       padding: 10px;
- 
+
       .voice-item {
         width: 180px;
         height: 30px;
@@ -2420,7 +2455,7 @@
         cursor: pointer;
         background-color: #c9c9c9;
         border-radius: 12px;
- 
+
         span {
           display: inline-block;
           width: 50%;
@@ -2428,17 +2463,17 @@
           line-height: 30px;
           text-align: center;
         }
- 
+
         .active-item {
           color: #fff;
           background-color: #409eff;
         }
       }
- 
+
       .media-box {
         display: flex;
         align-items: center;
- 
+
         .mic {
           display: flex;
           align-items: center;
@@ -2448,30 +2483,30 @@
         }
       }
     }
- 
+
     .audio-upload {
       display: flex;
       align-items: center;
       justify-content: center;
       height: 200px;
     }
- 
+
     .middle-textarea {
       padding: 5px 20px;
     }
- 
+
     .tool-box {
       display: flex;
       padding: 10px;
       border-top: 1px solid #ebeef5;
       justify-content: space-between;
- 
+
       .tool-btn {
         display: flex;
         align-items: center;
       }
     }
- 
+
     .audio-play {
       position: absolute;
       top: 0;
@@ -2488,25 +2523,25 @@
       flex-direction: column;
     }
   }
- 
+
   .template-right {
     position: relative;
     width: 20%;
     background-color: #fff;
     box-shadow: 0 3px 6px rgb(175 175 175 / 16%);
- 
+
     .tabs-1 {
       display: flex;
       justify-content: space-around;
       padding: 10px 30px;
       border-bottom: 1px solid #ebeef5;
- 
+
       .tabs-item {
         width: 30px;
         font-size: 14px;
         text-align: center;
         cursor: pointer;
- 
+
         span {
           display: block;
           width: 30px;
@@ -2516,12 +2551,12 @@
         }
       }
     }
- 
+
     .tabs-2 {
       display: flex;
       padding: 10px;
       justify-content: space-around;
- 
+
       div {
         width: 60px;
         height: 30px;
@@ -2530,13 +2565,13 @@
         cursor: pointer;
         border-radius: 5px;
       }
- 
+
       .tabs-active {
         color: #fff !important;
         background-color: #409eff;
       }
     }
- 
+
     .apply-all {
       position: absolute;
       bottom: 80px;
@@ -2544,12 +2579,12 @@
       width: 100%;
       justify-content: center;
     }
- 
+
     .host-list {
       height: 80%;
       overflow-y: auto;
       border-top: 1px solid #ebeef5;
- 
+
       .host-item {
         position: relative;
         display: inline-block;
@@ -2558,7 +2593,7 @@
         margin: 5px 0;
         margin-left: 10px;
         cursor: pointer;
- 
+
         .background {
           position: absolute;
           top: 0;
@@ -2568,7 +2603,7 @@
           height: 100%;
           background-color: #f0f1fa; /* 璁剧疆搴曡壊 */
         }
- 
+
         .host-name {
           position: absolute;
           bottom: 10px;
@@ -2582,7 +2617,7 @@
           background: rgb(225 225 225 / 70%);
           border-radius: 5px;
         }
- 
+
         .ppt-bg {
           z-index: 2; /* 鍥剧墖鍦ㄨ儗鏅箣涓� */
           width: 100%;
@@ -2591,31 +2626,31 @@
       }
     }
   }
- 
+
   .image-setting {
     padding: 10px 20px;
- 
+
     .img-setting {
       display: flex;
       align-items: center;
       line-height: 40px;
- 
+
       .setting-label {
         width: 120px;
       }
- 
+
       ::v-deep(.el-input) {
         width: 170px;
         margin-left: 10px;
       }
     }
   }
- 
+
   .template-list {
     height: 90%;
     overflow-y: auto;
     border-top: 1px solid #ebeef5;
- 
+
     .template-item {
       position: relative;
       display: inline-block;
@@ -2641,14 +2676,14 @@
         position: absolute;
         z-index: 2; /* 鍥剧墖鍦ㄨ儗鏅箣涓� */
       }
- 
+
       .human-image {
         position: absolute;
         z-index: 3; /* 鍥剧墖鍦ㄨ儗鏅箣涓� */
       }
     }
   }
- 
+
   .background {
     position: absolute;
     top: 0;
@@ -2658,25 +2693,25 @@
     height: 100%;
     background-color: #f0f1fa; /* 璁剧疆搴曡壊 */
   }
- 
+
   .template-tool {
     width: 60px;
     padding: 10px;
     background-color: #fff;
     box-shadow: 0 3px 6px rgb(175 175 175 / 16%);
- 
+
     .tool-item {
       display: flex;
       padding: 10px 20px;
       cursor: pointer;
       flex-direction: column;
       align-items: center;
- 
+
       img {
         width: 32px;
         height: 32px;
       }
- 
+
       .tool-name {
         width: 60px;
         margin-top: 6px;
@@ -2687,50 +2722,50 @@
     }
   }
 }
- 
+
 ::v-deep(.el-pagination) {
   position: absolute;
   bottom: 0;
 }
- 
+
 /* 婊氬姩鏉℃牱寮� */
 ::-webkit-scrollbar {
   width: 4px;
 }
- 
+
 /* 婊戝潡鏍峰紡 */
 ::-webkit-scrollbar-thumb {
   background-color: #888;
   border-radius: 6px;
 }
- 
+
 /* 婊氬姩鏉¤建閬撴牱寮� */
 ::-webkit-scrollbar-track {
   background-color: #f2f2f2;
   border-radius: 6px;
 }
- 
+
 .voice-card {
   z-index: 1000 !important; // 娣诲姞鏇撮珮鐨剒-index纭繚鍦ㄦ渶椤跺眰
 }
- 
+
 .voice-card :deep(.el-card__body) {
   padding: 0;
 }
- 
+
 .speech-slider {
   &:deep(.el-slider__bar) {
     display: none;
   }
- 
+
   &:deep(.el-slider__runway) {
     height: 2px;
   }
- 
+
   &:deep(.el-slider__button-wrapper) {
     top: -17px;
   }
- 
+
   &:deep(.el-slider__marks-stop) {
     top: -5px;
     width: 12px;
@@ -2738,4 +2773,4 @@
     background-color: #1989fa;
   }
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3