|
|
@ -8,8 +8,12 @@ |
|
|
|
<div class="single-choice"> |
|
|
|
<div class="single-choice"> |
|
|
|
<dl> |
|
|
|
<dl> |
|
|
|
<dd> |
|
|
|
<dd> |
|
|
|
<el-radio-group v-model="form.month" @change="changeType"> |
|
|
|
<el-radio-group v-model="form.month" |
|
|
|
<el-radio v-for="(item,index) in dateList" :key="index" :label="item.id" border>{{ item.name }}</el-radio> |
|
|
|
@change="changeType"> |
|
|
|
|
|
|
|
<el-radio v-for="(item,index) in dateList" |
|
|
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
:label="item.id" |
|
|
|
|
|
|
|
border>{{ item.name }}</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-radio-group> |
|
|
|
</dd> |
|
|
|
</dd> |
|
|
|
</dl> |
|
|
|
</dl> |
|
|
@ -17,11 +21,22 @@ |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<li> |
|
|
|
<label>创建区间:</label> |
|
|
|
<label>创建区间:</label> |
|
|
|
<el-date-picker v-model="date" align="right" unlink-panels type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" clearable></el-date-picker> |
|
|
|
<el-date-picker v-model="date" |
|
|
|
|
|
|
|
align="right" |
|
|
|
|
|
|
|
unlink-panels |
|
|
|
|
|
|
|
type="daterange" |
|
|
|
|
|
|
|
start-placeholder="开始日期" |
|
|
|
|
|
|
|
end-placeholder="结束日期" |
|
|
|
|
|
|
|
format="yyyy-MM-dd" |
|
|
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
|
|
clearable></el-date-picker> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<li> |
|
|
|
<label>搜索:</label> |
|
|
|
<label>搜索:</label> |
|
|
|
<el-input placeholder="请输入竞赛名称/创建人" suffix-icon="el-icon-search" v-model="keyword" clearable></el-input> |
|
|
|
<el-input placeholder="请输入竞赛名称/创建人" |
|
|
|
|
|
|
|
suffix-icon="el-icon-search" |
|
|
|
|
|
|
|
v-model="keyword" |
|
|
|
|
|
|
|
clearable></el-input> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -31,81 +46,144 @@ |
|
|
|
<label>状态:</label> |
|
|
|
<label>状态:</label> |
|
|
|
<dl> |
|
|
|
<dl> |
|
|
|
<dd> |
|
|
|
<dd> |
|
|
|
<el-radio-group v-model="form.publishStatus" @change="changeType"> |
|
|
|
<el-radio-group v-model="form.publishStatus" |
|
|
|
<el-radio v-for="(item,index) in statuses" :key="index" :label="item.id" border>{{ item.name }}</el-radio> |
|
|
|
@change="changeType"> |
|
|
|
|
|
|
|
<el-radio v-for="(item,index) in statuses" |
|
|
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
:label="item.id" |
|
|
|
|
|
|
|
border>{{ item.name }}</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-radio-group> |
|
|
|
</dd> |
|
|
|
</dd> |
|
|
|
</dl> |
|
|
|
</dl> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" round @click="add" v-auth>创建竞赛</el-button> |
|
|
|
<el-button type="primary" |
|
|
|
<el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button> |
|
|
|
round |
|
|
|
|
|
|
|
@click="add" |
|
|
|
|
|
|
|
v-auth>创建竞赛</el-button> |
|
|
|
|
|
|
|
<el-button type="primary" |
|
|
|
|
|
|
|
round |
|
|
|
|
|
|
|
@click="delAllSelection" |
|
|
|
|
|
|
|
v-auth>批量删除</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<el-table ref="table" :data="matchData" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> |
|
|
|
<el-table ref="table" |
|
|
|
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> |
|
|
|
:data="matchData" |
|
|
|
<el-table-column type="index" width="60" label="序号" align="center"> |
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
|
|
|
|
row-key="id"> |
|
|
|
|
|
|
|
<el-table-column type="selection" |
|
|
|
|
|
|
|
width="55" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
:reserve-selection="true"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column type="index" |
|
|
|
|
|
|
|
width="60" |
|
|
|
|
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.$index + (page - 1) * pageSize + 1 }} |
|
|
|
{{ scope.$index + (page - 1) * pageSize + 1 }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="competitionName" label="竞赛名称" align="center"></el-table-column> |
|
|
|
<el-table-column prop="competitionName" |
|
|
|
<el-table-column prop="applicantNum" label="报名人数" align="center" width="150"></el-table-column> |
|
|
|
label="竞赛名称" |
|
|
|
<el-table-column prop="status" label="状态" align="center" width="90"> |
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="applicantNum" |
|
|
|
|
|
|
|
label="报名人数" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="150"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="status" |
|
|
|
|
|
|
|
label="状态" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="90"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.publishStatus ? '已发布' : '未发布' }} |
|
|
|
{{ scope.row.publishStatus ? '已发布' : '未发布' }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="time" label="竞赛时间" align="center" width="300"> |
|
|
|
<el-table-column prop="time" |
|
|
|
|
|
|
|
label="竞赛时间" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="300"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.playStartTime }} ~ {{ scope.row.playEndTime }} |
|
|
|
{{ scope.row.playStartTime }} ~ {{ scope.row.playEndTime }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="createTime" label="创建时间" align="center" width="160"></el-table-column> |
|
|
|
<el-table-column prop="createTime" |
|
|
|
<el-table-column prop="founderName" label="创建人" align="center" width="130"> |
|
|
|
label="创建时间" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="160"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="founderName" |
|
|
|
|
|
|
|
label="创建人" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="130"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.founderName || '学校超管' }} |
|
|
|
{{ scope.row.founderName || '学校超管' }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" align="center" width="170"> |
|
|
|
<el-table-column label="操作" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="170"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button v-if="scope.row.playingStages && scope.row.playingStages.length" type="text" @click="editEndTime(scope.row)" v-auth>修改结束时间</el-button> |
|
|
|
<el-button v-if="scope.row.playingStages && scope.row.playingStages.length" |
|
|
|
<el-button v-auth type="text" @click="manage(scope.row)">管理</el-button> |
|
|
|
type="text" |
|
|
|
<el-button v-auth type="text" @click="delData(scope.row)">删除</el-button> |
|
|
|
@click="editEndTime(scope.row)" |
|
|
|
|
|
|
|
v-auth>修改结束时间</el-button> |
|
|
|
|
|
|
|
<el-button v-auth |
|
|
|
|
|
|
|
type="text" |
|
|
|
|
|
|
|
@click="manage(scope.row)">管理</el-button> |
|
|
|
|
|
|
|
<el-button v-auth |
|
|
|
|
|
|
|
type="text" |
|
|
|
|
|
|
|
@click="delData(scope.row)">删除</el-button> |
|
|
|
<!-- 列表展示中台的禁启用依据zt_open展示,职站的禁启用依据is_open展示 --> |
|
|
|
<!-- 列表展示中台的禁启用依据zt_open展示,职站的禁启用依据is_open展示 --> |
|
|
|
<!-- 中台禁用了这个学校发布的学校这边还能看到,但是学校这边不能启用。 --> |
|
|
|
<!-- 中台禁用了这个学校发布的学校这边还能看到,但是学校这边不能启用。 --> |
|
|
|
<el-switch |
|
|
|
<el-switch v-if="scope.row.publishStatus" |
|
|
|
v-if="scope.row.publishStatus" |
|
|
|
|
|
|
|
v-auth="'禁用'" |
|
|
|
v-auth="'禁用'" |
|
|
|
v-model="scope.row.isOpen" |
|
|
|
v-model="scope.row.isOpen" |
|
|
|
:active-value="0" |
|
|
|
:active-value="0" |
|
|
|
:inactive-value="1" |
|
|
|
:inactive-value="1" |
|
|
|
style="margin: 0 10px 0 5px" |
|
|
|
style="margin: 0 10px 0 5px" |
|
|
|
:active-text="scope.row.isOpen ? '关' : '开'" |
|
|
|
:active-text="scope.row.isOpen ? '关' : '开'" |
|
|
|
@change="switchOff($event,scope.row,scope.$index)" |
|
|
|
@change="switchOff($event,scope.row,scope.$index)"></el-switch> |
|
|
|
></el-switch> |
|
|
|
|
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-table> |
|
|
|
<div class="pagination"> |
|
|
|
<div class="pagination"> |
|
|
|
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> |
|
|
|
<el-pagination background |
|
|
|
|
|
|
|
layout="total, prev, pager, next" |
|
|
|
|
|
|
|
:total="total" |
|
|
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
|
|
:current-page="page"> |
|
|
|
</el-pagination> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog title="修改当前阶段结束时间" :visible.sync="modifyVisible" width="900px" :close-on-click-modal="false"> |
|
|
|
<el-dialog title="修改当前阶段结束时间" |
|
|
|
<el-table :data="curRow.playingStages" class="table" ref="table" stripe header-align="center"> |
|
|
|
:visible.sync="modifyVisible" |
|
|
|
<el-table-column prop="stageName" label="阶段名称" min-width="100" align="center"></el-table-column> |
|
|
|
width="900px" |
|
|
|
<el-table-column label="竞赛起止时间" width="300" align="center"> |
|
|
|
:close-on-click-modal="false"> |
|
|
|
|
|
|
|
<el-table :data="curRow.playingStages" |
|
|
|
|
|
|
|
class="table" |
|
|
|
|
|
|
|
ref="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center"> |
|
|
|
|
|
|
|
<el-table-column prop="stageName" |
|
|
|
|
|
|
|
label="阶段名称" |
|
|
|
|
|
|
|
min-width="100" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="竞赛起止时间" |
|
|
|
|
|
|
|
width="300" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.startTime + ' ~ ' + scope.row.endTime }} |
|
|
|
{{ scope.row.startTime + ' ~ ' + scope.row.endTime }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="结束时间调整为" align="center" width="280"> |
|
|
|
<el-table-column label="结束时间调整为" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="280"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-date-picker |
|
|
|
<el-date-picker popper-class="no-atTheMoment" |
|
|
|
popper-class="no-atTheMoment" |
|
|
|
|
|
|
|
v-model="scope.row.newEndTime" |
|
|
|
v-model="scope.row.newEndTime" |
|
|
|
placeholder="请选择结束时间" |
|
|
|
placeholder="请选择结束时间" |
|
|
|
type="datetime" |
|
|
|
type="datetime" |
|
|
@ -114,9 +192,13 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-table> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" |
|
|
|
<el-button size="small" @click="modifyVisible = false">取 消</el-button> |
|
|
|
class="dialog-footer"> |
|
|
|
<el-button size="small" type="primary" @click="modifySubmit">确 定</el-button> |
|
|
|
<el-button size="small" |
|
|
|
|
|
|
|
@click="modifyVisible = false">取 消</el-button> |
|
|
|
|
|
|
|
<el-button size="small" |
|
|
|
|
|
|
|
type="primary" |
|
|
|
|
|
|
|
@click="modifySubmit">确 定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -299,10 +381,10 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
getData () { |
|
|
|
getData () { |
|
|
|
this.getList() |
|
|
|
this.getList() |
|
|
|
// if (!Setting.isDev) { |
|
|
|
if (!Setting.isDev) { |
|
|
|
clearInterval(this.redisTimer) |
|
|
|
clearInterval(this.redisTimer) |
|
|
|
this.redisTimer = setInterval(this.getRedis, 1000) |
|
|
|
this.redisTimer = setInterval(this.getRedis, 1000) |
|
|
|
// } |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
add () { |
|
|
|
add () { |
|
|
|
this.$router.push("/match/add"); |
|
|
|
this.$router.push("/match/add"); |
|
|
|