Files
2026-09-08 19:49:21 +08:00

151 lines
6.2 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">活动项目:</div>
<div class="search-item-option">
<el-select v-model="pageForm.events" placeholder="请选择活动项目" filterable clearable
style="width: 100%">
<el-option
v-for="item in events"
:key="item.id"
:label="item.allName"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="pageData">搜索</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="活动信息" :app="this"></table-tool>
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
:label="column.label"
:prop="column.prop"
:sortable="column.sortable">
<template v-if="column.prop=='identity'" scope="{row}">
<span v-if="row.identity===1">运动员</span>
<span v-if="row.identity===2">教练</span>
<span v-if="row.identity===3">领队</span>
</template>
<template v-else-if="column.prop=='events'" scope="{row}">
<span>{{row.allName}}</span>
</template>
<template v-else-if="column.prop=='gameStyle'" scope="{row}">
<span>{{activity.school.gameStyle[row.gameStyle]}}</span>
</template>
<template v-else-if="column.prop=='startTime'" scope="{row}">
{{moment(row.startTime).format('YYYY-MM-DD')}} -
{{moment(row.endTime).format('YYYY-MM-DD')}}
</template>
<template v-else-if="column.prop=='state'"
scope="{row:{close,applyStartTime,applyEndTime,startTime,endTime}}">
<div v-html="activity.school.getStatus(close,applyStartTime,applyEndTime,startTime,endTime)"></div>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="150px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button size="mini" :loading="row.loading">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type:'pass',row}">
通过
</el-dropdown-item>
<el-dropdown-item :command="{type:'fail',row}">
不通过
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
events: [],
tableColumns: [
{prop: 'loginname', label: '申请人工号'},
{prop: 'username', label: '申请人姓名'},
{prop: 'mobile', label: '申请人电话'},
{prop: 'identity', label: '申请角色'},
{prop: 'allName', label: '活动项目'},
{prop: 'startTime', label: '活动日期'},
{prop: 'state', label: '活动状态'},
]
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
},
methods: {
dropdownCommand(command) {
const {type, row} = command
if (type === 'pass') {
this.doPassFail(row, 2)
} else if (type === 'fail') {
this.doPassFail(row, 3)
}
},
async doPassFail(row, status) {
const resp = await $.post(loc() + "/doPassFail", {id: row.id, status: status})
if(resp.code===0){
this.pageData()
}else{
this.notifyWarning(resp.msg)
}
},
},
async created() {
this.pageData()
this.events = await activity.getEvents()
}
})
</script>
<!--#
}
#-->