|
@@ -10,10 +10,18 @@
|
|
|
<el-table-column prop="time" align="center" label="报名时间" />
|
|
|
<el-table-column prop="start_time" align="center" label="初审时间"> </el-table-column>
|
|
|
<el-table-column prop="score" align="center" label="初审分数"> </el-table-column>
|
|
|
- <el-table-column prop="final_confirm" align="center" label="是否进入决赛"> </el-table-column>
|
|
|
+ <el-table-column prop="final_confirm" align="center" label="是否进入决赛">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ getDict(scope.row.final_confirm, 'final_confirm') || '暂无' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="final_start_time" align="center" label="决赛时间"> </el-table-column>
|
|
|
<el-table-column prop="final_score" align="center" label="决赛分数"> </el-table-column>
|
|
|
- <el-table-column prop="ext_status" align="center" label="流程状态" width="100"> </el-table-column>
|
|
|
+ <el-table-column prop="ext_status" align="center" label="流程状态" width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ getDict(scope.row.ext_status, 'ext_status') || '暂无' }}
|
|
|
+ </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>
|
|
@@ -25,7 +33,7 @@
|
|
|
<template #default="{ row }">
|
|
|
<el-link :underline="false" type="primary" size="mini" @click="toView(row)" style="margin-right: 10px">查看</el-link>
|
|
|
<el-link v-if="row.status == '-1'" :underline="false" type="warning" size="mini" @click="toEdit(row)" style="margin-right: 10px">重新提交</el-link>
|
|
|
- <el-link :underline="false" type="primary" size="mini" @click="toFinals(row)">决赛时间确认</el-link>
|
|
|
+ <el-link v-if="row.ext_status == '5'" :underline="false" type="primary" size="mini" @click="toFinals(row)">决赛时间确认</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -33,7 +41,7 @@
|
|
|
<el-col :span="24" class="two">
|
|
|
<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-dialog v-model="dialog.show" :title="dialog.title" :destroy-on-close="false" @close="toClose">
|
|
|
+ <el-dialog v-model="dialog.show" :title="dialog.title" :destroy-on-close="false" @close="toClose" width="80%">
|
|
|
<div v-if="dialog.type == '1'">
|
|
|
<div class="list" v-for="(item, index) in investigate" :key="index">
|
|
|
<div class="problem">
|
|
@@ -102,13 +110,11 @@
|
|
|
</div>
|
|
|
<div v-if="dialog.type == '2'">
|
|
|
<div class="status">
|
|
|
- <el-steps :active="active" align-center finish-status="success">
|
|
|
- <el-step title="报名" />
|
|
|
- <el-step title="初审" />
|
|
|
- <el-step title="决赛" />
|
|
|
+ <el-steps :active="parseInt(form.ext_status)" align-center finish-status="success">
|
|
|
+ <el-step v-for="(item, index) in extList" :key="index" :title="item.label" />
|
|
|
</el-steps>
|
|
|
</div>
|
|
|
- <el-descriptions title="" :column="1" border>
|
|
|
+ <el-descriptions title="" :column="2" border>
|
|
|
<el-descriptions-item v-for="(item, index) in form.info" :key="index" :label="item.problem">
|
|
|
<div class="type" v-if="item.type == '0' || item.type == '2' || item.type == '3' || item.type == '4' || item.type == '5'">{{ item.reply || '暂无内容' }}</div>
|
|
|
<div class="type" v-if="item.type == '1' && item.reply">{{ item.reply.join(',') }}</div>
|
|
@@ -133,10 +139,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="初审时间">{{ form.start_time }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="初审分数">{{ form.score }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="是否进入决赛">{{ getDict(form.final_confirm, 'final_confirm') || '暂无' }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="决赛时间">{{ form.final_start_time }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="决赛分数">{{ form.final_score }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
</div>
|
|
|
<div v-if="dialog.type == '3'">
|
|
|
- <el-descriptions :column="2" :size="size" border>
|
|
|
+ <el-descriptions :column="1" :size="size" border>
|
|
|
<el-descriptions-item label="参加决赛时间"> kooriookami </el-descriptions-item>
|
|
|
<el-descriptions-item label="操作">
|
|
|
<el-button type="primary" @click="toSign('0')">确认参加</el-button>
|
|
@@ -178,14 +189,15 @@ const investigate = ref([])
|
|
|
const file = ref([])
|
|
|
const checkbox = ref([])
|
|
|
|
|
|
+// 流程状态字典表
|
|
|
+const extList = inject('extList')
|
|
|
+const isUseList = inject('isUseList')
|
|
|
+
|
|
|
const form = ref({})
|
|
|
const dialog = ref({ type: '1', show: false, title: '报名信息' })
|
|
|
|
|
|
const is_look = ref(false)
|
|
|
|
|
|
-// 当前流程
|
|
|
-const active = ref(1)
|
|
|
-
|
|
|
const search = async (query = { skip, limit }) => {
|
|
|
skip = query.skip
|
|
|
limit = query.limit
|
|
@@ -221,6 +233,15 @@ const toEdit = (data) => {
|
|
|
}
|
|
|
dialog.value = { type: '1', show: true, title: '报名信息' }
|
|
|
}
|
|
|
+// 字典数据转换
|
|
|
+const getDict = (data, model) => {
|
|
|
+ if (data) {
|
|
|
+ let res
|
|
|
+ if (model == 'ext_status') res = extList.value.find((f) => f.value == data)
|
|
|
+ if (model == 'final_confirm') res = isUseList.value.find((f) => f.value == data)
|
|
|
+ return get(res, 'label')
|
|
|
+ }
|
|
|
+}
|
|
|
// 图片处理
|
|
|
const getUrl = (e) => {
|
|
|
if (e) return `${import.meta.env.VITE_APP_HOST}${get(e, 'uri')}`
|