赛会赛程

This commit is contained in:
wuyibo
2022-11-12 11:27:33 +08:00
parent 0d5e13affe
commit a8fdd22503
9 changed files with 150 additions and 22 deletions

View File

@@ -53,7 +53,9 @@
</el-tab-pane>
<el-tab-pane label="球队审核" name="competitionTeamApprove"><span slot="label"><i class="el-icon-s-check"></i> 球队审核</span>
<el-table v-loading="loading" :data="competitionOfTeamList" @selection-change="handleSelectionChange">
<el-table
max-height="800"
v-loading="loading" :data="competitionOfTeamList" @selection-change="handleSelectionChange">
<el-table-column label="球队ID" align="center" prop="teamId" />
<el-table-column label="球队名" align="center" prop="teamName" />
<el-table-column label="球队所属的组" align="center" prop="competitionGroup" />
@@ -107,9 +109,10 @@
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="球队分组" name="competitionTeamGroup"> <span slot="label"><i class="el-icon-film"></i> 球队分组</span>
<el-container style="height: 700px; border: 1px solid #eee">
<el-container style="height: 800px; border: 1px solid #eee">
<el-aside width="300px" style="background-color: rgb(238, 241, 246)">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@@ -164,7 +167,48 @@
</el-container>
</el-container>
</el-tab-pane>
<el-tab-pane label="赛程设置" name="competitionVsSet"> <span slot="label"><i class="el-icon-c-scale-to-original"></i> 赛程设置</span> 赛程设置</el-tab-pane>
<el-tab-pane label="赛程设置" name="competitionVsSet"> <span slot="label"><i class="el-icon-c-scale-to-original"></i> 赛程设置</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-time"
@click="handleAdd"
v-hasPermi="['system:competitionOfTeam:add']"
>手动设置赛程</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-bangzhu"
@click="handleUpdate"
v-hasPermi="['system:competitionOfTeam:edit']"
>系统智能设置小组循环赛赛程</el-button>
</el-col>
</el-row>
<el-table
title="赛程列表"
:data="competitionTeamVsTeamList"
:span-method="(...arg)=>objectSpanMethod(...arg,competitionTeamVsTeamList)"
border
max-height="800"
style=" margin-top: 20px">
<el-table-column label="比赛日期" align="center" prop="competitionDate" width="180"/>
<el-table-column label="主队名" align="center" prop="mainTeamName" />
<el-table-column label="主队得分" align="center" prop="mainTeamScore" />
<el-table-column label="比赛时间" align="center" prop="competitionTime" width="180">
<template slot-scope="scope">
<el-tag effect="plain" size="medium" >{{ parseTime(scope.row.competitionTime, '{h}:{i}') }}</el-tag>
</template>
</el-table-column>
<el-table-column label="客队得分" align="center" prop="guestTeamScore" />
<el-table-column label="客队名" align="center" prop="guestTeamName" />
<el-table-column label="球场名称" align="center" prop="buildingName" />
<el-table-column label="比赛类型" align="center" prop="vsType" />
</el-table>
</el-tab-pane>
<el-tab-pane label="赛会推广" name="competitionSpread"> <span slot="label"><i class="el-icon-s-promotion"></i> 赛会推广</span> 赛会推广</el-tab-pane>
</el-tabs>
@@ -269,6 +313,7 @@ import { listCompetition, getCompetition, delCompetition, addCompetition, update
import { listCompetitionOfTeam, batchEditById, intoTeamGroup, removeTeamGroup, updateCompetitionOfTeam } from "@/api/system/competitionOfTeam";
import { listCompetitionMembers, getCompetitionMembers, delCompetitionMembers, addCompetitionMembers, updateCompetitionMembers } from "@/api/system/competitionMembers";
import { listCompetitionTeamGroup, getCompetitionTeamGroup, delCompetitionTeamGroup, addCompetitionTeamGroup, updateCompetitionTeamGroup } from "@/api/system/competitionTeamGroup";
import { listCompetitionTeamVsTeam, getCompetitionTeamVsTeam, delCompetitionTeamVsTeam, addCompetitionTeamVsTeam, updateCompetitionTeamVsTeam } from "@/api/system/competitionTeamVsTeam";
export default {
name: "CompetitionSet",
dicts: ['competition_status'],
@@ -289,6 +334,7 @@ export default {
//已经分组的球队数据
alreadyGroupTeamList: [],
selectTeamList:[],
competitionTeamVsTeamList:[],
// 弹出层标题
title: "",
// 是否显示弹出层
@@ -465,6 +511,41 @@ export default {
// 表单重置
reset() {
},
objectSpanMethod({ row, column, rowIndex, columnIndex },data) {
if (columnIndex === 0) {
if(column.property==='competitionDate') {
var spanArr = this.getSpanArr(data, column.property)
const _row = spanArr[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
}
},
// 处理合并行的数据
getSpanArr: function(data, spanKey) {
var that = this
var spanArr = []
var pos = ''
for (var i = 0; i < data.length; i++) {
if (i === 0) {
spanArr.push(1)
pos = 0
} else {
// 判断当前元素与上一个元素是否相同
if (data[i][spanKey] === data[i - 1][spanKey]) {
spanArr[pos] += 1
spanArr.push(0)
} else {
spanArr.push(1)
pos = i
}
}
}
return spanArr
},
handleCurrentChange(val) {
this.currentGroupRow = val;
@@ -496,7 +577,9 @@ export default {
this.competitionTeamGroupList.push({"competitionGroup":"未分","id":null})
});
}else if(tab.name=='competitionVsSet'){
listCompetitionTeamVsTeam({"orderByColumn":"competition_time","pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => {
this.competitionTeamVsTeamList = response.rows;
});
}else if(tab.name=='competitionSpread'){
}