소스 검색

feat(checkRecord): 新增查询参数支持和路由跳转功能

- 添加 flagType 和 itemId 查询参数支持
- 实现从路由获取时间筛选参数并设置查询条件- 添加对路由查询参数变化的监听以动态更新列表
- 在 staticTop 页面中增加赛事状态显示列
- 修改 index.vue 中的路由跳转逻辑以传递更多查询参数
- 更新 checkRecord 类型定义以包含 flagType 字段
fugui001 2 달 전
부모
커밋
ece511d625

+ 1 - 0
src/api/system/business/checkRecord/types.ts

@@ -132,6 +132,7 @@ export interface CheckRecordQuery extends PageQuery {
   loginTimeRange?: string;
   beginTime?: string;
   endTime?: string;
+  flagType?: string;
 }
 
 export interface UserItemVO {

+ 11 - 1
src/views/index.vue

@@ -302,7 +302,6 @@ const navigateToStaticTop = (cardType: string) => {
       });
       break;
     case 'qualificationIssued':
-    case 'qualificationUsed':
       proxy?.$router.push({
         path: '/service/toolsTop',
         query: {
@@ -313,6 +312,17 @@ const navigateToStaticTop = (cardType: string) => {
         }
       });
       break;
+    case 'qualificationUsed':
+      proxy?.$router.push({
+        path: '/service/checkRecord',
+        query: {
+          cardType: cardType,
+          timeFilter: timeFilter.value,
+          startTime: startTime.value,
+          endTime: endTime.value
+        }
+      });
+      break;
     default:
       // 默认跳转到 tournamentTop 页面
       proxy?.$router.push({

+ 43 - 3
src/views/system/business/checkRecord/index.vue

@@ -208,6 +208,8 @@ const handleQuery = () => {
     data.queryParams.beginTime = null;
     data.queryParams.endTime = null;
   }
+  queryParams.value.itemId = null;
+  queryParams.value.flagType = null;
   getList();
 };
 
@@ -266,12 +268,50 @@ const handleDelete = async (row?: CheckRecordVO) => {
   await getList();
 };
 
-
-
+import { useRoute } from 'vue-router';
+const route = useRoute();
 onMounted(() => {
+  const flagType = route.query.timeFilter;
+  const startTime = route.query.startTime;
+  const endTime = route.query.endTime;
+  // 根据参数设置查询条件
+  if (startTime) {
+    data.queryParams.beginTime = startTime as string; // 直接赋值字符串;
+  } else {
+  }
+  // 处理结束时间(如果需要)
+  if (endTime) {
+    data.queryParams.endTime = endTime as string;
+  }
+  if (flagType) {
+    queryParams.value.itemId = 1001;
+    queryParams.value.flagType = flagType as string;
+  }
   getList();
 });
-
+watch(
+  () => route.query,
+  (newQuery, oldQuery) => {
+    const flagType = route.query.timeFilter;
+    const startTime = route.query.startTime;
+    const endTime = route.query.endTime;
+    // 根据参数设置查询条件
+    if (startTime) {
+      data.queryParams.beginTime = startTime as string; // 直接赋值字符串;
+    } else {
+    }
+    // 处理结束时间(如果需要)
+    if (endTime) {
+      data.queryParams.endTime = endTime as string;
+    }
+    if (flagType) {
+      queryParams.value.itemId = 1001;
+      queryParams.value.flagType = flagType as string;
+    }
+    getList();
+  },
+  { immediate: true } // 立即执行一次,确保初始参数被处理
+);
 // 类型定义(建议补充)
 interface LeftSideForm {
   selectedItem: '1001'; // 👈 设置默认选中 '1001'(即“三湘杯资格卡”)

+ 11 - 0
src/views/system/business/staticTop/index.vue

@@ -45,6 +45,17 @@
         </el-table-column>
         <el-table-column label="赛事ID" align="center" prop="id" v-if="true" />
         <el-table-column label="赛事名称" align="center" prop="name" />
+        <el-table-column label="状态" align="center">
+          <template #default="scope">
+            <span
+              :style="{
+                color: scope.row.isDelete ? 'red' : ''
+              }"
+            >
+              {{ scope.row.isDelete ? '已删除' : scope.row.statusText || '' }}
+            </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="endTime" width="150"> </el-table-column>
         <el-table-column label="报名人数" align="center" prop="signNum" />