Преглед изворни кода

refactor(system): 优化下拉选项数据处理和错误提示

- 使用类型断言替代 unknown 中间类型进行类型转换
- 通过过滤和映射优化下拉选项数据处理
- 替换 alert 为 ElMessage.error 提供更友好的错误提示
- 优化代码结构和注释
fugui001 пре 4 месеци
родитељ
комит
fa80af4cfb

+ 9 - 9
src/views/system/business/tournaments/index.vue

@@ -526,22 +526,22 @@ const loadItemOptions = async () => {
   try {
     const res = await selectItemsSelList();
     if (res.code === 200) {
-      // 使用 unknown 中间类型进行类型转换
+      // 类型断言
       const data = res.data as unknown as { id: number; name: string }[];
-      const list = [];
-      for (let i = 0; i < data.length; i++) {
-        const item = data[i];
-        list.push({
+
+      // 过滤掉 id === 2 的项,并映射为 { id, label }
+      itemOptions.value = data
+        .filter((item) => item.id !== 2) // ✅ 过滤 id 为 2 的
+        .map((item) => ({
           id: item.id,
           label: item.name
-        });
-      }
-      itemOptions.value = list;
+        }));
     } else {
-      alert('加载失败:' + res.msg);
+      ElMessage.error('加载失败:' + res.msg);
     }
   } catch (error) {
     console.error('请求出错:', error);
+    ElMessage.error('请求失败,请检查网络');
   }
 };
 

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

@@ -63,7 +63,7 @@
             <span v-else></span>
           </template>
         </el-table-column>
-<!--        <el-table-column label="开始时间" align="center" prop="startTime" width="150" sortable="custom"> </el-table-column>
+        <!--        <el-table-column label="开始时间" align="center" prop="startTime" width="150" sortable="custom"> </el-table-column>
         <el-table-column label="结束时间" align="center" prop="endTime" width="150"> </el-table-column>-->
         <el-table-column label="报名要求" align="center">
           <template #default="scope">
@@ -158,7 +158,7 @@
         </el-form-item>
 
         <!-- 开始时间 -->
-<!--        <el-form-item label="开始时间" prop="startTime">
+        <!--        <el-form-item label="开始时间" prop="startTime">
           <el-date-picker
             clearable
             v-model="form.startTime"
@@ -383,30 +383,30 @@ const dialogParams = ref({
 // 下拉选项数据 selectBlingStructuresInfo
 const itemOptions = ref<{ id: number; label: string }[]>([]);
 
-// 加载报名条件选项
 const loadItemOptions = async () => {
   try {
     const res = await selectItemsSelList();
     if (res.code === 200) {
-      // 使用 unknown 中间类型进行类型转换
+      // 类型断言
       const data = res.data as unknown as { id: number; name: string }[];
-      const list = [];
-      for (let i = 0; i < data.length; i++) {
-        const item = data[i];
-        list.push({
+
+      // 过滤掉 id === 2 的项,并映射为 { id, label }
+      itemOptions.value = data
+        .filter((item) => item.id !== 2) // ✅ 过滤 id 为 2 的
+        .map((item) => ({
           id: item.id,
           label: item.name
-        });
-      }
-      itemOptions.value = list;
+        }));
     } else {
-      alert('加载失败:' + res.msg);
+      ElMessage.error('加载失败:' + res.msg);
     }
   } catch (error) {
     console.error('请求出错:', error);
+    ElMessage.error('请求失败,请检查网络');
   }
 };
 
+
 // 下拉选项数据 selectBlingStructuresInfo
 const itemOptionsStructures = ref<{ id: number; label: string }[]>([]);