Flex
2025-06-12 b00c9d83f57f24178bf63a257a221face060b936
easegen-front/src/assets/imgs/2.png

easegen-front/src/views/chooseTemplate/index.vue
@@ -1808,6 +1808,11 @@
const saveSubmit = async (type) => {
  console.log('是否删除', DeleteD.value)
  if ( selectLanguage.value?.value === undefined || selectLanguage.value.value === 'all_Language' ) {
    message.error('请先选择语种与声音类型')
    return
  }
  if (ChangeSoundTypeList.value.value === 2) {
    //此时为通用
    if (selectList.value === undefined || selectList.value === null) {
@@ -1986,8 +1991,7 @@
    try {
      if (
        ChangeSoundTypeList.value?.value === undefined ||
        selectLanguage.value?.value === undefined ||
        selectLanguage.value?.value === 'all_Language'
        selectLanguage.value?.value === undefined
      ) {
        message.error('请先选择语种与声音类型')
        return
@@ -2049,9 +2053,19 @@
  pptList.forEach((item) => {
    const originalPPT = item.innerPicture?.src || item.pictureUrl
    if (template.showBackground) {
    console.log(template)
      item.pictureUrl = template.bgImage
      item.digitalHuman.show = template.showDigitalHuman
      item.digitalHuman.w = template.humanW
      item.digitalHuman.h = template.humanH
      item.digitalHuman.x = template.humanX
      item.digitalHuman.y = template.humanY
      PPTArr.value.forEach((otherItem) => {
        if (otherItem.templateId === item.templateId) {
          otherItem.width = item.width
          otherItem.height = item.height
        }
      })
      if (template.showPpt) {
        item.innerPicture = {
          name: '画中画',
@@ -2071,23 +2085,6 @@
          templateId: template.id
        }
      }
    } else {
      item.pictureUrl = originalPPT
      item.innerPicture.src = ''
    }
    item.digitalHuman.show = template.showDigitalHuman
    item.digitalHuman.w = template.humanW
    item.digitalHuman.h = template.humanH
    item.digitalHuman.x = template.humanX
    item.digitalHuman.y = template.humanY
    PPTArr.value.forEach((otherItem) => {
      if (otherItem.templateId === item.templateId) {
        otherItem.width = item.width
        otherItem.height = item.height
      }
    })
  })
}
@@ -2387,7 +2384,6 @@
    selectTemplate.value = cloneDeep(templates.value[0])
  }
}
onMounted(async () => {
  let data = await TemplateApi.getTemplatePage(queryParams1)
  TEMPLATE_PRESETS.value = data.list.map((item) => ({
easegen-front/src/views/digitalcourse/template/TemplateForm.vue
@@ -4,9 +4,9 @@
      ref="formRef"
      :model="formData"
      :rules="formRules"
      label-width="200px"
      label-width="80px"
      v-loading="formLoading">
      <el-row>
      <el-row :gutter="40">
        <el-col :span="12">
          <el-form-item label="模板名称" prop="templateName">
            <el-input v-model="formData.templateName" maxlength="50" placeholder="请输入模板名称" />
@@ -28,15 +28,15 @@
            >
              <el-button type="primary">上传图片</el-button>
              <template #tip>
                <div class="el-upload__tip">
                  只能上传jpg/png文件
                </div>
                <span class="el-upload__tip" style="display: inline-block;margin-left: 20px">
                  上传jpg/png文件
                </span>
              </template>
            </el-upload>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-if="ishasAdminRole==true">
      <el-row v-if="ishasAdminRole==true" :gutter="40">
        <el-col :span="12">
          <el-form-item label="模板类型" prop="zg">
            <el-select v-model="formData.zg">
@@ -172,7 +172,7 @@
    ElMessage.error('图片大小不能超过2MB!');
    return false;
  }
  return true;
};
async function updataImage(formData1) {
@@ -405,13 +405,13 @@
}
.checkbox-image {
  width: 230px;
  width: 93%;
  height: 150px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid #ddd;
  transition: all 0.3s;
  margin-left: 20px;
  margin-left: 10px;
  margin-top: 20px;
}
@@ -447,4 +447,7 @@
.checkbox-input:checked ~ .checkbox-image {
  border: 1px solid #ddd; /* 选中时保持灰色1px边框 */
}
.upload-demo{
  margin-top: -7px;
}
</style>
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/digitalhumans/DigitalHumansMapper.java
@@ -37,7 +37,6 @@
                        digitalHumansDOLambdaQueryWrapper.gt(DigitalHumansDO::getExpireDate, reqVO.getExpireDate()).or().isNull(DigitalHumansDO::getExpireDate);
                    }
                })
                .apply(loginUserId != 1, "creator = {0} or type = 0", loginUserId)
                .orderByDesc(DigitalHumansDO::getId));
    }
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/template/TemplateMapper.java
@@ -59,7 +59,8 @@
                }
                wrapper.orderByAsc(TemplateDO::getId);
                wrapper.orderByDesc(TemplateDO::getCreateTime);
        return selectPage(reqVO, wrapper);
    }
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
@@ -137,9 +137,11 @@
    }
    @Override
    public PageResult<DigitalHumansDO> getDigitalHumansPage(DigitalHumansPageReqVO pageReqVO) {
        if(pageReqVO.getType() != null && pageReqVO.getType()==1){
            //查询非公共数字人,只能查询自己的,公共数字人,可以查询所有的
            if (WebFrameworkUtils.getLoginUserId() != 1) pageReqVO.setCreator(String.valueOf(WebFrameworkUtils.getLoginUserId()));
        if (pageReqVO.getType() == 1){
            Long loginUserId = WebFrameworkUtils.getLoginUserId();
            pageReqVO.setCreator(String.valueOf(loginUserId));
        }else if (pageReqVO.getType() == 0){
            pageReqVO.setCreator(null);
        }
        return digitalHumansMapper.selectPage(pageReqVO);
    }
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java
@@ -184,6 +184,12 @@
                // 处理业务逻辑错误,更新状态和错误信息
                String referenceAudioText = responseJson.getString("reference_audio_text");
                String asrFormatAudioUrl = responseJson.getString("asr_format_audio_url");
                if (referenceAudioText == null || asrFormatAudioUrl == null) {
                    // 如果没有返回正确的文本或音频 URL,认为训练失败
                    digitalHumansMapper.update(new UpdateWrapper<DigitalHumansDO>().lambda().eq(DigitalHumansDO::getCode, digitalHumansTrailVo.getCode()).set(DigitalHumansDO::getStatus, ERROR_STATUS));
                    log.error("训练失败:->>>>>>>>> 没有返回正确的文本或音频 URL");
                    return;
                }
                // 如果成功,获取一帧当图片
                String picFileName = modelFileName.replace(extname, ".png");
                String pngPath = configApi.getConfigValueByKey(EASEGEN_URL) + "\\human_picture";