2 Incheckningar d5661ef162 ... 79f20caf5a

Upphovsman SHA1 Meddelande Datum
  zhou 79f20caf5a feat(system): 添加赛事项目报名人数限制功能 2 veckor sedan
  zhou 7fc569f692 fix(gameTeam): 修正导出文件名显示错误 2 veckor sedan

+ 39 - 0
src/api/system/gameEventProject/types.ts

@@ -157,6 +157,19 @@ export interface GameEventProjectVO {
    * 成绩数量
    */
   scoreCount: number;
+
+  /**
+   * 限报男生人数(个人项目总计/团体项目每队)
+   */
+  limitMale?: number;
+  /**
+   * 限报女生人数(个人项目总计/团体项目每队)
+   */
+  limitFemale?: number;
+  /**
+   * 团体项目限报队伍数
+   */
+  limitTeam?: number;
 }
 
 export interface GameEventProjectForm extends BaseEntity {
@@ -299,6 +312,19 @@ export interface GameEventProjectForm extends BaseEntity {
    * 成绩数量
    */
   scoreCount?: number;
+
+  /**
+   * 限报男生人数(个人项目总计/团体项目每队)
+   */
+  limitMale?: number;
+  /**
+   * 限报女生人数(个人项目总计/团体项目每队)
+   */
+  limitFemale?: number;
+  /**
+   * 团体项目限报队伍数
+   */
+  limitTeam?: number;
 }
 
 export interface GameEventProjectQuery extends PageQuery {
@@ -347,6 +373,19 @@ export interface GameEventProjectQuery extends PageQuery {
    */
   status?: string;
 
+  /**
+   * 限报男生人数(个人项目总计/团体项目每队)
+   */
+  limitMale?: number;
+  /**
+   * 限报女生人数(个人项目总计/团体项目每队)
+   */
+  limitFemale?: number;
+  /**
+   * 团体项目限报队伍数
+   */
+  limitTeam?: number;
+
   /**
    * 日期范围参数
    */

+ 40 - 1
src/views/system/gameEventProject/index.vue

@@ -381,6 +381,42 @@
             </el-form-item>
           </el-col>
         </el-row>
+
+        <el-divider content-position="left">
+          <el-icon style="vertical-align: middle; margin-right: 5px;"><User /></el-icon>
+          <span style="vertical-align: middle; font-weight: bold;">报名限制</span>
+        </el-divider>
+        <el-row :gutter="20">
+          <template v-if="form.classification === '0'">
+            <el-col :span="12">
+              <el-form-item label="限报男" prop="limitMale">
+                <el-input-number v-model="form.limitMale" :min="0" style="width: 100%" placeholder="限报男生人数" controls-position="right" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="限报女" prop="limitFemale">
+                <el-input-number v-model="form.limitFemale" :min="0" style="width: 100%" placeholder="限报女生人数" controls-position="right" />
+              </el-form-item>
+            </el-col>
+          </template>
+          <template v-else-if="form.classification === '1'">
+            <el-col :span="8">
+              <el-form-item label="限报队数" prop="limitTeam">
+                <el-input-number v-model="form.limitTeam" :min="0" style="width: 100%" placeholder="限报队伍数" controls-position="right" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="每队限男" prop="limitMale">
+                <el-input-number v-model="form.limitMale" :min="0" style="width: 100%" placeholder="每队限报男生" controls-position="right" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="每队限女" prop="limitFemale">
+                <el-input-number v-model="form.limitFemale" :min="0" style="width: 100%" placeholder="每队限报女生" controls-position="right" />
+              </el-form-item>
+            </el-col>
+          </template>
+        </el-row>
         
         <el-divider content-position="left">
           <el-icon style="vertical-align: middle; margin-right: 5px;"><EditPen /></el-icon>
@@ -523,7 +559,10 @@ const initFormData: GameEventProjectForm = {
   timingFormat: '0',
   distanceMode: '0',
   countUnit: '个',
-  scoreCount: 1
+  scoreCount: 1,
+  limitMale: 0,
+  limitFemale: 0,
+  limitTeam: 0
 };
 const data = reactive<PageData<GameEventProjectForm, GameEventProjectQuery>>({
   form: { ...initFormData },

+ 1 - 1
src/views/system/gameTeam/index.vue

@@ -444,7 +444,7 @@ const handleExport = () => {
     {
       ...queryParams.value
     },
-    `${gameEventStore.defaultEventInfo?.eventCode || ''}_队伍详情.xlsx`
+    `${gameEventStore.defaultEventInfo?.eventCode || ''}_队伍列表.xlsx`
   );
 };