|
@@ -4,7 +4,7 @@
|
|
|
<el-col :span="10">
|
|
|
<el-form ref="ruleFormRef" :model="timeForm" :rules="rules" label-width="auto" class="form" label-position="left">
|
|
|
<el-form-item label="设置决赛时间" prop="start_time">
|
|
|
- <el-date-picker format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="timeForm.start_time" type="datetime" placeholder="请选择决赛时间" style="width: 50%" />
|
|
|
+ <el-date-picker format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="timeForm.start_time" type="datetime" placeholder="请选择决赛时间" style="width: 90%" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-col>
|
|
@@ -17,7 +17,8 @@
|
|
|
</el-row>
|
|
|
<el-col :span="14" class="export">
|
|
|
<div class="one_left" @click="toExport">导出</div>
|
|
|
- <div class="one_left" @click="toMessage">对已经设置决赛时间的报名用户发送消息提示</div>
|
|
|
+ <div class="one_left" @click="toMessage" v-if="info.ext_status == '5'">发送消息提示</div>
|
|
|
+ <div class="one_left" @click="toSupplement" v-if="info.ext_status == '5'">补充决赛人员</div>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="two">
|
|
|
<el-table :data="list" style="width: 100%" size="large" :header-cell-style="{ backgroundColor: '#edf3ff' }" @selection-change="handleSelectionChange">
|
|
@@ -41,16 +42,11 @@
|
|
|
{{ getDict(scope.row.final_confirm, 'final_confirm') || '暂无' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="status" align="center" label="状态" width="100">
|
|
|
- <template #default="scope">
|
|
|
- <el-tag v-if="scope.row.status == '0'" type="primary">待审核</el-tag>
|
|
|
- <el-tag v-else-if="scope.row.status == '1'" type="success">已通过</el-tag>
|
|
|
- <el-tag v-else type="info">已退回</el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column prop="order_no" align="center" label="排序"> </el-table-column>
|
|
|
<el-table-column align="center" label="操作" width="160">
|
|
|
<template #default="{ row }">
|
|
|
<el-link :underline="false" type="primary" size="mini" @click="toView(row, true)" style="margin-right: 10px">查看</el-link>
|
|
|
+ <el-link :underline="false" v-if="info.ext_status == '7'" type="primary" size="mini" @click="toScore(row)">上传决赛分数</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -59,7 +55,9 @@
|
|
|
<el-pagination background layout="prev, pager, next" :total="total" :page-size="limit" v-model:current-page="currentPage" @current-change="changePage" @size-change="sizeChange" />
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="button">
|
|
|
- <el-button type="primary" @click="toStep6">进入决赛名单公示阶段</el-button>
|
|
|
+ <el-button type="primary" @click="toStep6" v-if="info.ext_status == '5'">进入决赛名单公示阶段</el-button>
|
|
|
+ <el-button type="primary" @click="toStep7" v-if="info.ext_status == '6'">进入决赛赛事进行阶段</el-button>
|
|
|
+ <el-button type="primary" @click="toStep8" v-if="info.ext_status == '7'">决赛赛事结束</el-button>
|
|
|
</el-col>
|
|
|
<el-dialog v-model="dialog.show" :title="dialog.title" :destroy-on-close="false" @close="toClose">
|
|
|
<div v-if="dialog.type == '1'">
|
|
@@ -106,6 +104,26 @@
|
|
|
</div>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
+ <div v-else-if="dialog.type == '3'">
|
|
|
+ <el-table :data="supplementList" style="width: 100%" size="large" :header-cell-style="{ backgroundColor: '#edf3ff' }">
|
|
|
+ <template #empty>
|
|
|
+ <el-empty description="暂无数据" />
|
|
|
+ </template>
|
|
|
+ <el-table-column prop="no" align="center" label="编号" width="100"> </el-table-column>
|
|
|
+ <el-table-column prop="user_name" align="center" label="用户"> </el-table-column>
|
|
|
+ <el-table-column prop="time" align="center" label="报名时间" />
|
|
|
+ <el-table-column prop="ext_status" align="center" label="流程状态">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ getDict(scope.row.ext_status, 'ext_status') || '暂无' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" label="操作" width="160">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-link :underline="false" type="primary" size="mini" @click="toPerson(row)" style="margin-right: 10px">确定补充</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -160,8 +178,10 @@ const scoreFormRef = ref()
|
|
|
const scoreRules = reactive({
|
|
|
score: [{ required: true, message: '请输入初审分数', trigger: 'blur' }]
|
|
|
})
|
|
|
+// 补充人员列表
|
|
|
+const supplementList = ref([])
|
|
|
|
|
|
-const emits = defineEmits(['step5Time', 'toExport', 'toMessage'])
|
|
|
+const emits = defineEmits(['step5Time', 'toExport', 'toMessage', 'toStep6', 'toPerson', 'toStep7', 'toStep8'])
|
|
|
|
|
|
const search = async (query = { skip, limit }) => {
|
|
|
skip = query.skip
|
|
@@ -215,17 +235,16 @@ const toView = (data, is_no) => {
|
|
|
extInfo.value = data.info
|
|
|
dialog.value = { type: '1', show: true, title: '报名信息' }
|
|
|
}
|
|
|
+// 图片处理
|
|
|
+const getUrl = (e) => {
|
|
|
+ if (e) return `${import.meta.env.VITE_APP_HOST}${get(e, 'uri')}`
|
|
|
+}
|
|
|
// 上传决赛分数
|
|
|
const toScore = (data) => {
|
|
|
scoreForm.value = data
|
|
|
dialog.value = { type: '2', show: true, title: '上传决赛分数' }
|
|
|
}
|
|
|
-// 图片处理
|
|
|
-const getUrl = (e) => {
|
|
|
- if (e) return `${import.meta.env.VITE_APP_HOST}${get(e, 'uri')}`
|
|
|
-}
|
|
|
-
|
|
|
-// 保存初审分数
|
|
|
+// 保存决赛分数
|
|
|
const onSubmit = async (formEl) => {
|
|
|
if (!formEl) return
|
|
|
await formEl.validate((valid, fields) => {
|
|
@@ -249,19 +268,37 @@ const sizeChange = (limits) => {
|
|
|
}
|
|
|
// 导出
|
|
|
const toExport = () => {
|
|
|
- if (selectionList.value && selectionList.value.length > 0) {
|
|
|
- emits('toExport', selectionList)
|
|
|
- } else {
|
|
|
- ElMessage({
|
|
|
- message: '请选择要导出的数据!',
|
|
|
- type: 'warning'
|
|
|
- })
|
|
|
- }
|
|
|
+ emits('toExport')
|
|
|
}
|
|
|
// 发送短信提醒
|
|
|
const toMessage = () => {
|
|
|
emits('toMessage')
|
|
|
}
|
|
|
+// 进入决赛名单公示阶段
|
|
|
+const toStep6 = () => {
|
|
|
+ emits('toStep6')
|
|
|
+}
|
|
|
+// 进入决赛名单赛事进行
|
|
|
+const toStep7 = () => {
|
|
|
+ emits('toStep7')
|
|
|
+}
|
|
|
+// 进入决赛赛事结束
|
|
|
+const toStep8 = () => {
|
|
|
+ emits('toStep8')
|
|
|
+}
|
|
|
+// 补充决赛人员
|
|
|
+const toSupplement = async () => {
|
|
|
+ const res = await store.query({ match_id: id.value, ext_status: '4' })
|
|
|
+ if (res.errcode == '0') {
|
|
|
+ supplementList.value = res.data
|
|
|
+ dialog.value = { type: '3', show: true, title: '补充决赛人员' }
|
|
|
+ }
|
|
|
+}
|
|
|
+// 补充决赛人员
|
|
|
+const toPerson = (data) => {
|
|
|
+ emits('toPerson', data)
|
|
|
+ toClose()
|
|
|
+}
|
|
|
const toClose = async () => {
|
|
|
is_look.value = false
|
|
|
form.value = {}
|