소스 검색

```
feat(system): 优化比赛模板相关功能及代码健壮性- 为 content 内容添加空值判断,避免 replace 报错- 暂时注释掉文件内容为空的错误提示逻辑
- 机器人数字段在生产环境隐藏显示- gameType 和 signTime 类型由 number 改为 string
- 新增 isProdEnvironment 计算属性用于环境判断- 在编辑模版时主动触发盲注等级加载逻辑
```

fugui001 3 달 전
부모
커밋
45a468cc8e

+ 2 - 2
src/api/system/business/tournamentsTemplate/types.ts

@@ -101,7 +101,7 @@ export interface TournamentsForm extends BaseEntity {
   /**
    * 游戏类型
    */
-  gameType?: number;
+  gameType?: string;
 
   /**
    * 起始记分牌数量
@@ -138,7 +138,7 @@ export interface TournamentsForm extends BaseEntity {
   /**
    * 报名时间
    */
-  signTime?: number;
+  signTime?: string;
 
   /**
    * 道具ID

+ 4 - 2
src/views/system/business/info/index.vue

@@ -343,8 +343,10 @@ const submitForm = () => {
     if (valid) {
       const vals = form.value.content;
       console.log(vals);
-      // 使用正则表达式替换所有的 <p> 标签,添加内联样式
-      const modifiedContent = vals.replace(/<p/g, '<p style="color: rgb(255, 255, 255);"');
+      let modifiedContent = vals;
+      if (vals) {
+        modifiedContent = vals.replace(/<p/g, '<p style="color: rgb(255, 255, 255);"');
+      }
       form.value.content = modifiedContent;
       buttonLoading.value = true;
       if (form.value.id) {

+ 1 - 1
src/views/system/business/structures/index.vue

@@ -314,7 +314,7 @@ const submitForm = () => {
           formData.append('file', fileList.value[0].raw); // 假设后端接收字段名为 'file'
         } else {
           buttonLoading.value = false;
-          return proxy?.$modal.msgError('文件内容为空');
+          //return proxy?.$modal.msgError('文件内容为空');
         }
         // 添加常规字段
         formData.append('name', form.value.name || '');

+ 12 - 4
src/views/system/business/tournamentsTemplate/index.vue

@@ -243,7 +243,7 @@
           <el-input v-model="form.levelDuration" placeholder="请输入级别持续时间" :disabled="dialog.mode === 'view'" />
         </el-form-item>
 
-        <el-form-item label="机器人数" prop="robotCount">
+        <el-form-item label="机器人数" prop="robotCount" v-if="!isProdEnvironment">
           <el-input v-model="form.robotCount" placeholder="请输入机器人数" :disabled="dialog.mode === 'view'" />
         </el-form-item>
 
@@ -758,8 +758,8 @@ const handleUpdate = async (row?: TournamentsVO, mode: 'edit' | 'view' = 'edit')
   const _id = row?.id || ids.value[0];
   const res = await getTournaments(_id);
   // 确保 gameType 是 number 类型
-  const gameType = Number(res.data.gameType);
-  const signTime = Number(res.data.signTime);
+  const gameType = String(res.data.gameType);
+  const signTime = String(res.data.signTime);
   // 设置表单数据
   Object.assign(form.value, res.data);
   form.value.gameType = gameType; // 确保赋值正确
@@ -783,7 +783,10 @@ const handleUpdate = async (row?: TournamentsVO, mode: 'edit' | 'view' = 'edit')
       }
     ];
   }
-
+  // ✅ 主动触发盲注等级加载
+  if (form.value.blindStructureId) {
+    await handleBlindStructureChange(form.value.blindStructureId);
+  }
   dialog.visible = true;
   dialog.title = mode === 'view' ? '查看自动比赛模版' : '编辑自动比赛模版';
   dialog.mode = mode; // 设置模式
@@ -1036,6 +1039,11 @@ const handleGoToStructures = () => {
 const getRewardTooltipContent = (rewards: any[]) => {
   return rewards.map((prize) => `第${prize.ranking}名:${prize.quantity} ${prize.itemsName}`).join('\n');
 };
+// 判断是否为正式环境
+const isProdEnvironment = computed(() => {
+  // 根据实际项目中的环境变量判断是否为正式环境
+  return import.meta.env.MODE === 'production' || import.meta.env.VITE_APP_ENV === 'prod';
+});
 </script>
 <style scoped>
 .more-rewards {