diff --git a/yudao-module-chain/yudao-module-chain-api/src/main/java/cn/iocoder/yudao/module/chain/enums/OperateDetailTypeEnum.java b/yudao-module-chain/yudao-module-chain-api/src/main/java/cn/iocoder/yudao/module/chain/enums/OperateDetailTypeEnum.java
index 26bd3c3..8f663ec 100644
--- a/yudao-module-chain/yudao-module-chain-api/src/main/java/cn/iocoder/yudao/module/chain/enums/OperateDetailTypeEnum.java
+++ b/yudao-module-chain/yudao-module-chain-api/src/main/java/cn/iocoder/yudao/module/chain/enums/OperateDetailTypeEnum.java
@@ -22,6 +22,12 @@ public enum OperateDetailTypeEnum implements IntArrayValuable {
     MAP(7, "地图"),
     BIG_IMAGE(8, "大图"),
     PDF(9, "PDF"),
+    POINT_MAP(10, "地图坐标"),
+    NO_TITLE_IMAGE(11, "无标图片"),
+    NO_TITLE_BIG_IMAGE(12, "无标大图"),
+    NO_TITLE_VIDEO(13, "无标视频"),
+    NO_TITLE_MAP(14, "无标地图"),
+    NO_TITLE_POINT_MAP(15, "无标地图坐标"),
     ;
 
     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(OperateDetailTypeEnum::getType).toArray();
diff --git a/yudao-module-configure/yudao-module-configure-biz/src/main/java/cn/iocoder/yudao/module/configure/service/unitemplate/UniTemplateServiceImpl.java b/yudao-module-configure/yudao-module-configure-biz/src/main/java/cn/iocoder/yudao/module/configure/service/unitemplate/UniTemplateServiceImpl.java
index e51bd9e..ad56676 100644
--- a/yudao-module-configure/yudao-module-configure-biz/src/main/java/cn/iocoder/yudao/module/configure/service/unitemplate/UniTemplateServiceImpl.java
+++ b/yudao-module-configure/yudao-module-configure-biz/src/main/java/cn/iocoder/yudao/module/configure/service/unitemplate/UniTemplateServiceImpl.java
@@ -171,7 +171,9 @@ public class UniTemplateServiceImpl implements UniTemplateService {
             templateDO.setScanRecordIconUrl("");
         }
 
-        if (templateDO.getShowChangeLanguage() && StringUtils.isBlank(templateDO.getChangeLanguageIconUrl())) {
+        if (templateDO.getShowChangeLanguage() && StringUtils.isBlank(templateDO.getChangeLanguageIconUrl())
+                && templateDO.getTemplateType().equals(UniTemplateTypeEnum.CUSTOMIZE.getType())) {
+            // 如果显示切换语言并且未上传语言图标并且类型为自定义模板时,报错
             throw exception(ErrorCodeConstants.UNI_TEMPLATE_LANGUAGE_ICON_NOT_BE_NULL);
         } else if (!templateDO.getShowChangeLanguage() || templateDO.getTemplateType().equals(UniTemplateTypeEnum.STANDARD.getType())) {
             templateDO.setChangeLanguageIconUrl("");
diff --git a/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java b/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java
index 2a1a135..43ba8e4 100644
--- a/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java
+++ b/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java
@@ -38,6 +38,7 @@ import cn.iocoder.yudao.module.system.api.languagetype.LanguageTypeApi;
 import cn.iocoder.yudao.module.system.api.languagetype.dto.LanguageTypeRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.seata.spring.annotation.GlobalTransactional;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -637,7 +638,14 @@ public class HarvestBatchServiceImpl implements HarvestBatchService {
     private void verifyFieldAndSetOperateDetail(OperateDetailSaveReqVO detail, OperateDetailSaveReqDTO operateDetail) {
         // 校验标题内容
         if(!detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_TEXT.getType()) && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_LONG_TEXT.getType())
-                && !detail.getType().equals(OperateDetailTypeEnum.BIG_IMAGE.getType()) && (detail.getTitle() == null || detail.getTitle().isEmpty())) {
+                && !detail.getType().equals(OperateDetailTypeEnum.BIG_IMAGE.getType())
+                && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_IMAGE.getType())
+                && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_BIG_IMAGE.getType())
+                && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_VIDEO.getType())
+                && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_MAP.getType())
+                && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_POINT_MAP.getType())
+                && StringUtils.isBlank(detail.getTitle())
+        ) {
             throw ServiceExceptionUtil.exception(ErrorCodeConstants.OPERATE_TITLE_CAN_NOT_BE_NULL);
         }
         if(!detail.getType().equals(OperateDetailTypeEnum.TEXT.getType()) && !detail.getType().equals(OperateDetailTypeEnum.NO_TITLE_TEXT.getType())) {