Browse Source

feat(tournaments): 添加赛事发布功能和备注字段

- 新增 publishToTournament API 接口用于发布赛事
- 在赛事列表页面添加发布按钮和相关操作逻辑
- 隐藏盲注表和最小参赛人数显示列
- 添加赛事备注字段到表单和数据类型定义
- 修复复制赛事时状态字段的处理逻辑
fugui001 3 ngày trước cách đây
mục cha
commit
f7252da56e

+ 6 - 0
src/api/system/business/tournaments/index.ts

@@ -158,3 +158,9 @@ export const deleteRelationTournament = (id: string | number | Array<string | nu
     method: 'delete'
   });
 };
+export const publishToTournament = (id: string | number | Array<string | number>) => {
+  return request({
+    url: '/business/tournaments/publishToTournament/' + id,
+    method: 'get'
+  });
+};

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

@@ -181,6 +181,7 @@ export interface TournamentsForm extends BaseEntity {
   isDelay?: number;
   rebuy?: number;
   delayShow?: number;
+  remark?: string;
 }
 
 export interface ItemsPrize {

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

@@ -185,6 +185,7 @@ export interface TournamentsForm extends BaseEntity {
   rebuyLimit?: number;
   tagId?: number[];
   categoryId?: number[];
+  remark?: string;
 }
 
 export interface ItemsPrize {

+ 18 - 4
src/views/system/business/tournaments/index.vue

@@ -157,7 +157,7 @@
         </el-table-column>
 
         <el-table-column label="截止盲注等级" align="center" prop="lateRegistrationLevel" />
-        <el-table-column label="盲注表" align="center" prop="blindStructuresName" />
+        <!--        <el-table-column label="盲注表" align="center" prop="blindStructuresName" />-->
 
         <el-table-column label="奖励" align="center">
           <template #default="scope">
@@ -175,7 +175,7 @@
             <span v-else>—</span>
           </template>
         </el-table-column>
-        <el-table-column label="最小参赛人数" align="center" prop="minPlayers" />
+        <!--        <el-table-column label="最小参赛人数" align="center" prop="minPlayers" />-->
         <el-table-column label="状态" align="center">
           <template #default="scope">
             <span
@@ -249,6 +249,9 @@
               <el-tooltip content="关闭" v-if="scope.row.status === 1" placement="top" v-hasPermi="['business:tournaments:query']">
                 <el-button link type="primary" icon="Close" @click="closeSendTournamentOperate(scope.row)">关闭</el-button>
               </el-tooltip>
+              <el-tooltip content="发布" v-if="scope.row.status === -1" placement="top" v-hasPermi="['business:tournaments:query']">
+                <el-button link type="primary" icon="DocumentChecked" @click="publishToTournament2(scope.row)">发布</el-button>
+              </el-tooltip>
             </div>
           </template>
         </el-table-column>
@@ -606,6 +609,9 @@
             <el-button type="primary" @click="removeReward(index)" v-if="index !== 0 && dialog.mode !== 'view'">-</el-button>
           </div>
         </el-form-item>
+        <el-form-item label="赛事备注" prop="remark">
+          <el-input v-model="form.remark" placeholder="请输入赛事备注" :disabled="dialog.mode === 'view'" type="textarea" :rows="4" />
+        </el-form-item>
       </el-form>
 
       <template #footer>
@@ -779,7 +785,8 @@ import {
   uploadTournament,
   closeSendTournament,
   recoverTournament,
-  deleteRelationTournament
+  deleteRelationTournament,
+  publishToTournament
 } from '@/api/system/business/tournaments';
 import { selectTagSelList, selectCategorySelList } from '@/api/system/business/tag';
 import { selectItemsSelList } from '@/api/system/business/items';
@@ -1429,7 +1436,13 @@ const deleteAllData = async (row?: TournamentsVO) => {
   proxy?.$modal.msgSuccess('删除成功');
   await getList();
 };
-
+const publishToTournament2 = async (row?: TournamentsVO) => {
+  const _ids = row?.id || ids.value;
+  await proxy?.$modal.confirm('是否发布比赛ID为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
+  await publishToTournament(_ids);
+  proxy?.$modal.msgSuccess('发布成功');
+  await getList();
+};
 /** 删除按钮操作 */
 const closeSendTournamentOperate = async (row?: TournamentsVO) => {
   // 1. 获取要关闭的 ID 列表
@@ -1887,6 +1900,7 @@ const handleCopy = async (row?: TournamentsVO) => {
   const res = await getTournaments(_id);
   // 设置表单数据
   res.data.id = null;
+  res.data.status = null;
   Object.assign(form.value, res.data);
   form.value.signTime = String(res.data.signTime);
   form.value.gameVariant = String(res.data.gameVariant);

+ 3 - 0
src/views/system/business/tournamentsTemplate/index.vue

@@ -448,6 +448,9 @@
             <el-button type="primary" @click="removeReward(index)" v-if="index !== 0 && dialog.mode !== 'view'">-</el-button>
           </div>
         </el-form-item>
+        <el-form-item label="赛事备注" prop="remark">
+          <el-input v-model="form.remark" placeholder="请输入赛事备注" :disabled="dialog.mode === 'view'" type="textarea" :rows="4" />
+        </el-form-item>
       </el-form>
 
       <template #footer>