From dd325aa187729f0b9e105a23e9d7454c76f823fc Mon Sep 17 00:00:00 2001
From: Flex <q1406482700@163.com>
Date: 星期五, 30 五月 2025 13:50:52 +0800
Subject: [PATCH] Merge branch 'master' of http://yykjgit.sdyyst.com/r/easegen

---
 easegen-front/src/views/chooseTemplate/index.vue                                                                                                                         |   48 +++++------
 easegen-front/src/views/digitalcourse/digitalhumans/LookDigitalHumansForm.vue                                                                                            |   40 +++++-----
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansRespVO.java |    3 
 easegen-front/src/views/dialogue/index.vue                                                                                                                               |   86 ++++++++++++++-------
 easegen-front/src/views/digitalcourse/digitalhumans/index.vue                                                                                                            |   25 ++++--
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java            |    8 +-
 easegen-front/src/views/digitalcourse/template/TemplateForm.vue                                                                                                          |   11 --
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java        |    2 
 8 files changed, 122 insertions(+), 101 deletions(-)

diff --git a/easegen-front/src/views/chooseTemplate/index.vue b/easegen-front/src/views/chooseTemplate/index.vue
index 7a9e7ff..31bfef9 100644
--- a/easegen-front/src/views/chooseTemplate/index.vue
+++ b/easegen-front/src/views/chooseTemplate/index.vue
@@ -474,6 +474,7 @@
               }"
             />
           </div>
+          <el-empty v-if="hostList.length==0" description="鏆傛棤鏁版嵁" />
           <Pagination
             small="true"
             :total="total"
@@ -491,6 +492,10 @@
             class="template-item"
             v-for="(template, index) in templates"
             :key="index"
+            :style="{
+                width: '90%',
+                maxWidth: '90%',
+              }"
             @click="handleTemplateSelection(template)"
           >
             <div class="list-index" :style="template.isActive ? 'background: #409eff' : ''">
@@ -498,10 +503,11 @@
             </div>
             <el-image class="background" :src="template.previewImage" fit="contain" />
           </div>
+          <el-empty v-if="templates.length==0" description="鏆傛棤鏁版嵁" />
         </div>
-        <div class="apply-all">
-          <el-checkbox v-model="applyAllTemplate" :label="t('courseCenter.uploadAudio')" />
-        </div>
+<!--        <div class="apply-all">-->
+<!--          <el-checkbox v-model="applyAllTemplate" :label="t('courseCenter.uploadAudio')" />-->
+<!--        </div>-->
       </div>
       <!-- 鑳屾櫙璁剧疆 -->
       <div class="template-box template-right" v-if="showHeadImageTool">
@@ -780,18 +786,18 @@
     activeUrl: userActive,
     isActive: false
   },
-  {
-    name: t('courseCenter.background'),
-    url: bg,
-    activeUrl: bgActive,
-    isActive: false
-  },
-  {
-    name: t('courseCenter.pictureInPicture'),
-    url: innerPicture,
-    activeUrl: innerPictureActive,
-    isActive: false
-  }
+  // {
+  //   name: t('courseCenter.background'),
+  //   url: bg,
+  //   activeUrl: bgActive,
+  //   isActive: false
+  // },
+  // {
+  //   name: t('courseCenter.pictureInPicture'),
+  //   url: innerPicture,
+  //   activeUrl: innerPictureActive,
+  //   isActive: false
+  // }
 ])
 
 const showHeadImageTool = ref(false)
@@ -1198,16 +1204,6 @@
     queryParams.posture = tabs3ActiveNum.value
     queryParams.status = 0
     let data = await pptTemplateApi.pageList(queryParams)
-    if (data.list.length == 0) {
-      queryParams.type = tabs1ActiveNum.value == '0' ? '1' : '0'
-      tabs1ActiveNum.value = queryParams.type
-      data = await pptTemplateApi.pageList(queryParams)
-      if (data.list.length == 0) {
-        message.error('娌℃湁鏈夋晥鐨勬暟瀛椾汉锛岃鑱旂郴绠$悊鍛�')
-        return
-      }
-    }
-
     data.list.forEach((item) => {
       item.isActive = false
     })
@@ -2328,7 +2324,7 @@
     z-index: 1;
     width: 100%;
     height: 100%;
-    background-color: #f0f1fa;
+    //background-color: #f0f1fa;
   }
 
   .template-tool {
diff --git a/easegen-front/src/views/dialogue/index.vue b/easegen-front/src/views/dialogue/index.vue
index e9cc1e1..2299f01 100644
--- a/easegen-front/src/views/dialogue/index.vue
+++ b/easegen-front/src/views/dialogue/index.vue
@@ -1,43 +1,69 @@
 <template>
-<div>
-  <div class="remote-container"></div>
-</div>
+  <div>
+    <div class="remote-container" classNamev>
+    </div>
+  </div>
 </template>
 
 <script>
-import DUIX from 'duix-guiji-light'
-import {getDuixSign} from "../../api/dialogue";
-import * as pptTemplateApi from "../../api/pptTemplate";
-
+import DUIX from 'duix-guiji-light';
+import {getDuixSign} from "../../api/dialogue/index.ts";
 export default {
-  name: "index"
-}
-const tempConversationId ='dev-'+ Math.random().toString(36).substring(2, 11);
-const duix = new DUIX()
+  name: "index",
+  mounted() {
+    this.$nextTick(() => {
+      this.initDuix();
+    });
+  },
+  methods: {
 
-  getDuixSign().then(res => {
-    if (res.code === 200) {
-      duix.init({
-        sign: res.data.sign,
-        containerLable: '.remote-container',
-        conversationId: tempConversationId,
-      })
-    }
-  })
-duix.on('getDuixSign', () => {
-  // start session
-  duix.start({
-    conversationId: tempConversationId,
-    openAsr: true
-  }).then(res => {
-    console.info(res)
-  })
-})
+    async initDuix() {
+      // 1. 妫�鏌ュ鍣ㄦ槸鍚﹀瓨鍦�
+      const container = document.querySelector('.remote-container');
+      if (!container) {
+        console.error("閿欒锛氭湭鎵惧埌 .remote-container 鍏冪礌");
+        return;
+      }
+
+      // 2. 鑾峰彇 Token
+      let token;
+      try {
+        const res = await getDuixSign();
+        token = res.data?.sign || res.sign || res;
+        if (!token) throw new Error("Token 涓虹┖");
+      } catch (err) {
+        console.error("鑾峰彇绛惧悕澶辫触:", err);
+        return;
+      }
+
+      // 3. 鍒濆鍖� DUIX
+      const duix = new DUIX();
+      const conversationId = 'dev-'+ Math.random().toString(36).substring(2, 11);;
+
+      try {
+        await duix.init({
+          sign: token,
+          containerLable: '.remote-container', // 娉ㄦ剰锛氬彲鑳芥槸 containerLabel锛堟鏌ユ嫾鍐欙級
+          conversationId: conversationId,
+        });
+        // 4. 鐩戝惉浜嬩欢
+        duix.on('getDuixSign', () => {
+          duix.start({conversationId, openAsr: true})
+            .then(() => console.log("DUIX 鍚姩鎴愬姛"))
+            .catch(err => console.error("DUIX 鍚姩澶辫触:", err));
+        });
+      } catch (initErr) {
+        console.error("DUIX 鍒濆鍖栧け璐�:", initErr);
+      }
+    },
+  },
+};
 </script>
 
 <style scoped>
-.remote-container{
+.remote-container {
   width: 500px;
   height: 500px;
+  border: 1px solid red; /* 璋冭瘯鏃堕珮浜鍣� */
 }
 </style>
diff --git a/easegen-front/src/views/digitalcourse/digitalhumans/LookDigitalHumansForm.vue b/easegen-front/src/views/digitalcourse/digitalhumans/LookDigitalHumansForm.vue
index 8064faf..fb86cd6 100644
--- a/easegen-front/src/views/digitalcourse/digitalhumans/LookDigitalHumansForm.vue
+++ b/easegen-front/src/views/digitalcourse/digitalhumans/LookDigitalHumansForm.vue
@@ -35,15 +35,15 @@
         </el-form-item>
         <el-form-item label="鑳屾櫙鏍峰紡" prop="isTransparent">
           <el-select v-model="formData.isTransparent" placeholder="璇烽�夋嫨鏄惁鍘婚櫎鑳屾櫙">
-            <el-option value="1" label="閫忔槑鑳屾櫙"/>
-            <el-option value="2" label="缁垮箷鑳屾櫙"/>
+            <el-option :value="1" label="閫忔槑鑳屾櫙"/>
+            <el-option :value="2" label="缁垮箷鑳屾櫙"/>
           </el-select>
         </el-form-item>
         <el-form-item v-if="formData.useModel == 1" :label="t('digitalhumans.picture')" prop="pictureUrl">
           <UploadImg v-if="formData" v-model="formData.fixPictureUrl" />
           <UploadImg v-else v-model="formData.pictureUrl" />
         </el-form-item>
-  
+
         <!-- <el-form-item v-if="formData.useModel == 2" :label="t('digitalhumans.video')" prop="videoUrl"> -->
         <el-form-item v-if="false" :label="t('digitalhumans.video')" prop="videoUrl">
           <!-- 鍘熸湰鑷甫鐨勮棰戜笂浼� -->
@@ -85,8 +85,9 @@
         </el-form-item>
       </el-form>
       <template #footer>
-        <el-button @click="submitForm" type="primary" :disabled="formLoading" :loading="isUploading" >{{t('common.ok')}}</el-button>
-        <el-button @click="dialogVisible = false">{{t('common.cancel')}}</el-button>
+        <el-button @click="submitForm" type="primary" :disabled="formLoading" :loading="isUploading" v-if="formType=='updata'">{{t('common.ok')}}</el-button>
+        <el-button @click="dialogVisible = false" v-if="formType=='updata'">{{t('common.cancel')}}</el-button>
+        <el-button @click="dialogVisible = false" v-if="formType=='detail'">鍏抽棴</el-button>
       </template>
     </Dialog>
   </template>
@@ -100,10 +101,10 @@
   import { useUpload } from '@/components/UploadFile/src/useUpload'
   import { el } from 'element-plus/es/locale';
   import { any } from 'vue-types';
-  
+
   const { t } = useI18n() // 鍥介檯鍖�
   const message = useMessage() // 娑堟伅寮圭獥
-  
+
   const { uploadUrl, httpRequest } = useUpload() //涓婁紶鏂规硶
   const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀�
   const dialogTitle = ref('') // 寮圭獥鐨勬爣棰�
@@ -128,10 +129,10 @@
     status: undefined,
     isTransparent: undefined,
   })
-  
+
   // 褰撳墠鏄惁姝e湪涓婁紶瑙嗛
   const isUploading = ref(false)
-  
+
   const videoProperty = {
     videoUrl: '',
     posterUrl: '',
@@ -143,7 +144,7 @@
       height: 300
     }
   } as DiyComponent<VideoPlayerProperty>
-  
+
   watch(()=> formData.value.videoUrl,(newVal,oldValue)=>{
     if (newVal && newVal.length > 0){
       videoProperty.videoUrl = formData.value.fixVideoUrl || newVal
@@ -164,12 +165,12 @@
     videoUrl: [{ required: true, message: '瑙嗛涓嶈兘涓虹┖', trigger: 'blur' }]
   })
   const formRef = ref() // 琛ㄥ崟 Ref
-  
+
   const StartCes = () => {
     console.log( " ----- 寮�濮� ----- " )
     isUploading.value = true
   }
-  
+
   const End = (res)=>{
     const FileObject = {
       file:res
@@ -180,9 +181,9 @@
     } ).finally( res => {
       isUploading.value = false
     } )
-  
+
   }
-  
+
   /** 鎵撳紑寮圭獥 */
   const open = async (type: string, id?: number) => {
     dialogVisible.value = true
@@ -202,7 +203,7 @@
     }
   }
   defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥
-  
+
   /** 鎻愪氦琛ㄥ崟 */
   const emit = defineEmits(['success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋�
   const submitForm = async () => {
@@ -226,7 +227,7 @@
       formLoading.value = false
     }
   }
-  
+
   /** 閲嶇疆琛ㄥ崟 */
   const resetForm = () => {
     formData.value = {
@@ -254,9 +255,9 @@
       formData.value.videoUrl = response.data;
     }
   };
-  
+
   // 淇敼榛樿鐨勬暟瀛椾汉瑙嗛妯″紡涓鸿棰�
-  
+
   const InitHumMODEL = ()=>{
     let ModelList = getIntDictOptions( DICT_TYPE.USE_MODEL )
     for (let index = 0; index < ModelList.length; index++) {
@@ -266,6 +267,5 @@
       }
     }
   }
-  
+
   </script>
-  
\ No newline at end of file
diff --git a/easegen-front/src/views/digitalcourse/digitalhumans/index.vue b/easegen-front/src/views/digitalcourse/digitalhumans/index.vue
index ac070a6..98bd833 100644
--- a/easegen-front/src/views/digitalcourse/digitalhumans/index.vue
+++ b/easegen-front/src/views/digitalcourse/digitalhumans/index.vue
@@ -161,6 +161,23 @@
           >
             {{t('digitalhumans.handle')}}
           </el-button>
+
+          <el-button
+            link
+            type="primary"
+            @click="OpenLookformRef('detail', scope.row.id)"
+            v-hasPermi="['digitalcourse:digital-humans:delete']"
+          >
+            {{t('digitalhumans.view')}}
+          </el-button>
+          <el-button
+            link
+            type="primary"
+            @click="OpenLookformRef('updata', scope.row.id)"
+            v-hasPermi="['digitalcourse:digital-humans:delete']"
+          >
+            淇敼
+          </el-button>
           <el-button
             :disabled="scope.row.status == 3 || scope.row.status == 6"
             link
@@ -169,14 +186,6 @@
             v-hasPermi="['digitalcourse:digital-humans:delete']"
           >
             {{ t('action.del') }}
-          </el-button>
-          <el-button
-            link
-            type="primary"
-            @click="OpenLookformRef('detail', scope.row.id)"
-            v-hasPermi="['digitalcourse:digital-humans:delete']"
-          >
-            {{t('digitalhumans.view')}}
           </el-button>
         </template>
       </el-table-column>
diff --git a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
index 6181c87..fa62336 100644
--- a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
+++ b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
@@ -96,7 +96,6 @@
         </el-col>
       </el-row>
       <el-row>
-
         <el-col :span="12">
           <el-form-item :label="t('template.digitalPeopleWidth')" prop="humanW">
             <el-input type="number" disabled v-model="formData.humanW" :placeholder="t('common.inputText') + t('template.digitalPeopleWidth')" />
@@ -119,8 +118,6 @@
             <el-input type="number" v-model="formData.humanY" :placeholder="t('common.inputText') + t('template.leftPositionDigitalPeople')" />
           </el-form-item>
         </el-col>
-
-
       </el-row>
       <el-row>
         <el-col :span="12">
@@ -134,14 +131,6 @@
           </el-form-item>
         </el-col>
       </el-row>
-
-
-
-
-
-
-
-
     </el-form>
     <template #footer>
       <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansRespVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansRespVO.java
index 7f59a97..bf272be 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansRespVO.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansRespVO.java
@@ -104,4 +104,5 @@
     //杩囨湡鏃堕棿
     private Date expireDate;
 
-}
\ No newline at end of file
+    private Integer isTransparent;
+}
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
index 86b308f..cdeb917 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
@@ -170,10 +170,10 @@
                 // 褰撴病鏈変汉鍍忔椂锛岃棰戞斁鍦� cover 鐨勪笅灞�
                 builder = new ProcessBuilder(
                         "ffmpeg",
-                        "-i", cover1,     // 鑳屾櫙鍥� 1
-                        "-i", substring1, // 瑙嗛锛堝惈闊抽锛�
-                        "-i", cover1,     // 鑳屾櫙鍥� 2
-                        "-i", cover,      // PPT 鍐呭
+                        "-loop", "1", "-i", cover1,     // 鑳屾櫙鍥�1锛堝姩鎬佹寔缁級
+                        "-i", substring1,               // 瑙嗛锛堝惈闊抽锛�
+                        "-loop", "1", "-i", cover1,     // 鑳屾櫙鍥�2锛堝姩鎬佹寔缁級
+                        "-loop", "1", "-i", cover,      // PPT 鍐呭锛堝姩鎬佹寔缁級
                         "-filter_complex",
                         "[0:v]scale=" + Math.round(scene.getBackground().getWidth()) + ":" + Math.round(scene.getBackground().getHeight()) + "[bg1];" +
                                 "[1:v]scale=" + Math.round(scene.getComponents().get(0).getWidth()) + ":" + Math.round(scene.getComponents().get(0).getHeight()) + "[v1];" +
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
index ab1358c..582cdf2 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
@@ -137,7 +137,7 @@
     }
     @Override
     public PageResult<DigitalHumansDO> getDigitalHumansPage(DigitalHumansPageReqVO pageReqVO) {
-        if(pageReqVO.getType()==1){
+        if(pageReqVO.getType() != null && pageReqVO.getType()==1){
             //鏌ヨ闈炲叕鍏辨暟瀛椾汉锛屽彧鑳芥煡璇㈣嚜宸辩殑锛屽叕鍏辨暟瀛椾汉锛屽彲浠ユ煡璇㈡墍鏈夌殑
             if (WebFrameworkUtils.getLoginUserId() != 1) pageReqVO.setCreator(String.valueOf(WebFrameworkUtils.getLoginUserId()));
         }

--
Gitblit v1.9.3