zs 3 bulan lalu
induk
melakukan
80ab6e456c

+ 0 - 6
src/views/center/parts/preliminaryMatch.vue

@@ -12,12 +12,6 @@
         <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="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_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="status" align="center" label="状态" width="100">
           <template #default="scope">
             <el-tag v-if="scope.row.status == '0'" type="primary">待审核</el-tag>

+ 34 - 13
src/views/center/parts/preliminaryUser.vue

@@ -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')}`

+ 10 - 0
src/views/center/sign.vue

@@ -114,6 +114,8 @@ const rules = reactive({
 const statusList = ref([])
 const cardTypeList = ref([])
 const signTypeList = ref([])
+const extList = ref([])
+const isUseList = ref([])
 // 请求
 onMounted(async () => {
   loading.value = true
@@ -147,6 +149,12 @@ const searchOther = async () => {
   // 报名类型
   result = await dictDataStore.query({ code: 'signType', is_use: '0' })
   if ($checkRes(result)) signTypeList.value = result.data
+  // 流程状态
+  result = await dictDataStore.query({ code: 'extStatus', is_use: '0' })
+  if ($checkRes(result)) extList.value = result.data
+  // 是否使用
+  result = await dictDataStore.query({ code: 'isUse', is_use: '0' })
+  if ($checkRes(result)) isUseList.value = result.data
 }
 // 字典数据转换
 const getDict = (data, model) => {
@@ -207,6 +215,8 @@ provide('rules', rules)
 provide('ruleFormRef', ruleFormRef)
 provide('cardTypeList', cardTypeList)
 provide('signTypeList', signTypeList)
+provide('extList', extList)
+provide('isUseList', isUseList)
 provide('submitForm', submitForm)
 </script>
 <style scoped lang="scss">