zs il y a 4 mois
Parent
commit
e88c6faadf

+ 2 - 1
src/router/index.js

@@ -33,7 +33,8 @@ router.beforeEach(async (to, from, next) => {
   document.title = get(to, 'meta.title', '产学研用协同创新数字化平台')
   const routeCheck = isInCenter(to)
   // 进入个人中心,检查是否有token,没有token直接返回login
-  const token = localStorage.getItem('token')
+  let token = localStorage.getItem('webToken')
+  if (!token) token = localStorage.getItem('token')
   if (token) {
     const res = await axios.request({
       method: 'get',

+ 11 - 0
src/store/api/platform/matchExt.js

@@ -88,6 +88,11 @@ export const MatchExtStore = defineStore('matchExt', () => {
     const res = await axios.$post(`${url}/step5/order/${id}`, payload)
     return res
   }
+  const step5Name = async (payload) => {
+    const id = get(payload, 'match_id', get(payload, 'match_id'))
+    const res = await axios.$get(`${url}/step5/list/${id}`, payload)
+    return res
+  }
   const step6 = async (payload) => {
     const res = await axios.$post(`${url}/step6`, payload)
     return res
@@ -105,6 +110,10 @@ export const MatchExtStore = defineStore('matchExt', () => {
     const res = await axios.$post(`${url}/step8`, payload)
     return res
   }
+  const lastList = async (payload) => {
+    const res = await axios.$post(`${url}/lastList/${payload}`)
+    return res
+  }
   return {
     query,
     fetch,
@@ -123,10 +132,12 @@ export const MatchExtStore = defineStore('matchExt', () => {
     step5Sms,
     step5Sup,
     step5Order,
+    step5Name,
     step6,
     step7,
     step7Score,
     step8,
+    lastList,
     del
   }
 })

+ 2 - 1
src/store/api/platform/matchReg.js

@@ -31,7 +31,8 @@ export const MatchRegStore = defineStore('matchReg', () => {
     return res
   }
   const exportReg = async (payload) => {
-    const res = await axios.$get(`${url}/export/${payload}`)
+    const id = get(payload, 'id', get(payload, '_id'))
+    const res = await axios.$post(`${url}/export/${id}`, payload)
     return res
   }
   return {

+ 1 - 0
src/store/user.js

@@ -15,6 +15,7 @@ export const UserStore = defineStore('user', () => {
   const logOut = () => {
     user.value = {}
     menus.value = null
+    localStorage.removeItem('webToken')
     localStorage.removeItem('token')
   }
   const setMenus = (payload) => {

+ 2 - 1
src/utils/axios-wrapper.js

@@ -108,7 +108,8 @@ export class AxiosWrapper {
         withCredentials: true
       })
       // if (util.token && util.token !== null) axios.defaults.headers.common.Authorization = util.token;
-      const token = localStorage.getItem('token')
+      let token = localStorage.getItem('webToken')
+      if (!token) token = localStorage.getItem('token')
       const apiToken = localStorage.getItem('apiToken')
       if (token) axios.defaults.headers.common['token'] = token
       if (apiToken) axios.defaults.headers.common['api-token'] = apiToken

+ 2 - 1
src/utils/file.js

@@ -11,7 +11,8 @@ export async function uploadFileApi(file) {
     baseURL: '/files',
     withCredentials: true
   })
-  const token = localStorage.getItem('token')
+  let token = localStorage.getItem('webToken')
+  if (!token) token = localStorage.getItem('token')
   const apiToken = localStorage.getItem('apiToken')
   if (token) axios.defaults.headers.common['token'] = token
   if (apiToken) axios.defaults.headers.common['api-token'] = apiToken

+ 46 - 8
src/views/home/index.vue

@@ -27,9 +27,24 @@
           </el-steps>
         </div>
         <div class="content">
-          <one v-if="info.ext_status == '0'" :info="info" @toExamtion="toExamtion" @toExport="toExport"></one>
-          <two v-if="info.ext_status == '1' || info.ext_status == '2' || info.ext_status == '3' || info.ext_status == '4'" :info="info" @toStep2="toStep2" @stepFill="stepFill" @toStep3="toStep3" @toStep4="toStep4" @toExport="toExport" @step4Score="step4Score" @toStep5="toStep5" @toFinals="toFinals"></two>
-          <thr v-if="info.ext_status == '5' || info.ext_status == '6' || info.ext_status == '7' || info.ext_status == '8'" :info="info" @toExport="toExport" @step5Time="step5Time" @step5Order="step5Order" @toMessage="toMessage" @toStep6="toStep6" @toPerson="toPerson" @toStep7="toStep7" @toStep8="toStep8" @step7Score="step7Score" @totalScore="totalScore" @LastOrder="LastOrder"></thr>
+          <one v-if="info.ext_status == '0' || info.ext_status == '1'" :info="info" @toExamtion="toExamtion" @toExport="toExport" @toStep2="toStep2"></one>
+          <two v-if="info.ext_status == '2' || info.ext_status == '3' || info.ext_status == '4'" :info="info" @stepFill="stepFill" @toStep3="toStep3" @toStep4="toStep4" @toExport="toExport" @step4Score="step4Score" @toStep5="toStep5" @toFinals="toFinals"></two>
+          <thr
+            v-if="info.ext_status == '5' || info.ext_status == '6' || info.ext_status == '7' || info.ext_status == '8'"
+            :info="info"
+            @toExport="toExport"
+            @step5Time="step5Time"
+            @step5Order="step5Order"
+            @toMessage="toMessage"
+            @toStep6="toStep6"
+            @toPerson="toPerson"
+            @toStep7="toStep7"
+            @toStep8="toStep8"
+            @step7Score="step7Score"
+            @totalScore="totalScore"
+            @LastOrder="LastOrder"
+            @onStatus="onStatus"
+          ></thr>
         </div>
       </div>
     </div>
@@ -186,7 +201,7 @@ const toStep4 = () => {
 }
 // 导出
 const toExport = async () => {
-  const res = await matchRegStore.exportReg(route.query.id)
+  const res = await matchRegStore.exportReg({ id: route.query.id, ext_status: info.value.ext_status })
   if ($checkRes(res, true)) {
     window.open(res.data)
   }
@@ -261,10 +276,18 @@ const toMessage = () => {
 }
 // 排序
 const step5Order = async (data) => {
-  const res = await matchExtStore.step5Order(data)
-  if ($checkRes(res, true)) {
-    search()
-  }
+  ElMessageBox.confirm('是否确定进行排序完成后将重新进行排序?', '排序', {
+    confirmButtonText: '确认',
+    cancelButtonText: '取消',
+    type: 'warning'
+  })
+    .then(async () => {
+      const res = await matchExtStore.step5Order(data)
+      if ($checkRes(res, true)) {
+        search()
+      }
+    })
+    .catch(() => {})
 }
 // 进入决赛名单公示阶段
 const toStep6 = () => {
@@ -355,6 +378,21 @@ const LastOrder = (data) => {
     })
     .catch(() => {})
 }
+// 修改报名状态
+const onStatus = (data) => {
+  ElMessageBox.confirm('是否确定修改报名状态?', '报名状态', {
+    confirmButtonText: '确认',
+    cancelButtonText: '取消',
+    type: 'warning'
+  })
+    .then(async () => {
+      const res = await matchRegStore.update(data)
+      if ($checkRes(res, true)) {
+        search()
+      }
+    })
+    .catch(() => {})
+}
 provide('extList', extList)
 provide('isUseList', isUseList)
 </script>

+ 24 - 8
src/views/match/one.vue

@@ -36,12 +36,22 @@
     <el-col :span="24" class="thr">
       <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" v-if="info.ext_status == '1'" @click="toStep2">进入初审组织初审阶段</el-button>
+    </el-col>
     <el-dialog v-model="dialog.show" :title="dialog.title" :destroy-on-close="false" @close="toClose">
-      <el-descriptions title="" :column="1" border>
+      <el-descriptions title="参赛结果信息" :column="2" border>
         <template #extra v-if="!is_look">
           <el-button type="primary" @click="toExam('1')">通过申请</el-button>
           <el-button type="danger" @click="toExam('2')">退回申请</el-button>
         </template>
+        <el-descriptions-item label="编号">{{ form.no }}</el-descriptions-item>
+        <el-descriptions-item label="用户名称">{{ form.user_name }}</el-descriptions-item>
+        <el-descriptions-item label="赛事名称">{{ form.match_name }}</el-descriptions-item>
+        <el-descriptions-item label="报名时间">{{ form.time }}</el-descriptions-item>
+        <el-descriptions-item label="流程状态">{{ getDict(form.ext_status, 'ext_status') || '暂无' }}</el-descriptions-item>
+      </el-descriptions>
+      <el-descriptions style="margin: 10px 0 0 0" title="项目详情信息" :column="1" border>
         <el-descriptions-item v-for="(item, index) in extInfo" :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>
@@ -66,12 +76,6 @@
             </div>
           </div>
         </el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="初审时间">{{ form.start_time }}</el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="初审分数">{{ form.score }}</el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="是否进入决赛">{{ getDict(form.final_confirm, 'final_confirm') || '暂无' }}</el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="决赛时间">{{ form.final_start_time }}</el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="决赛分数">{{ form.final_score }}</el-descriptions-item>
-        <el-descriptions-item v-if="is_look" label="流程状态">{{ getDict(form.ext_status, 'ext_status') || '暂无' }}</el-descriptions-item>
       </el-descriptions>
     </el-dialog>
   </div>
@@ -115,7 +119,7 @@ const isUseList = inject('isUseList')
 const selectionList = ref([])
 const is_look = ref(false)
 
-const emits = defineEmits(['toExamtion', 'toExport'])
+const emits = defineEmits(['toExamtion', 'toExport', 'toStep2'])
 
 const search = async (query = { skip, limit }) => {
   skip = query.skip
@@ -186,6 +190,10 @@ const sizeChange = (limits) => {
   currentPage.value = 1
   search({ skip: 0, limit: limit })
 }
+// 组织初审
+const toStep2 = () => {
+  emits('toStep2')
+}
 // 导出
 const toExport = () => {
   emits('toExport')
@@ -238,6 +246,14 @@ watch(
     justify-content: center;
     margin: 20px 0 0 0;
   }
+  .button {
+    margin: 20px 0 0 0;
+    text-align: center;
+    button {
+      width: 400px;
+      height: 40px;
+    }
+  }
   .type {
     .image {
       width: 100%;

+ 75 - 31
src/views/match/thr.vue

@@ -44,10 +44,18 @@
           </template>
         </el-table-column>
         <el-table-column prop="final_order_no" align="center" label="排序"> </el-table-column>
-        <el-table-column prop="last_order_no" align="center" label="最后名称"> </el-table-column>
+        <el-table-column prop="last_order_no" align="center" label="最后名次"> </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 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 == '5' && row.status == '2'" type="primary" size="mini" @click="toStatus(row)" style="margin-right: 10px">修改报名状态</el-link>
             <el-link :underline="false" v-if="info.ext_status == '5' && row.final_confirm == '0'" type="primary" size="mini" @click="toLink(row)" style="margin-right: 10px">排序</el-link>
             <el-link :underline="false" v-if="info.ext_status == '7'" type="primary" size="mini" @click="toScore(row)" style="margin-right: 10px">上传决赛分数</el-link>
             <el-link :underline="false" v-if="info.ext_status == '7'" type="primary" size="mini" @click="toTotalScore(row)" style="margin-right: 10px">总分</el-link>
@@ -56,13 +64,11 @@
         </el-table-column>
       </el-table>
     </el-col>
-    <el-col :span="24" class="thr">
-      <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" 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-button type="primary" @click="toStep9" v-if="info.ext_status == '8'">查看大屏显示</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'">
@@ -137,8 +143,8 @@
       </div>
       <div v-else-if="dialog.type == '4'">
         <el-form ref="orderFormRef" :model="orderForm" :rules="orderRules" label-width="auto" class="form" label-position="left">
-          <el-form-item label="顺序" prop="order_no">
-            <el-input v-model="orderForm.order_no" type="number" placeholder="请输入顺序" />
+          <el-form-item label="顺序" prop="final_order_no">
+            <el-input-number v-model="orderForm.final_order_no" :max="max"></el-input-number>
           </el-form-item>
           <div style="text-align: center">
             <el-button type="primary" @click="onsubmitOrder(orderFormRef)">保存</el-button>
@@ -165,6 +171,18 @@
           </div>
         </el-form>
       </div>
+      <div v-else-if="dialog.type == '7'">
+        <el-form ref="statusFormRef" :model="statusForm" :rules="statusRules" label-width="auto" class="form" label-position="left">
+          <el-form-item label="状态" prop="status">
+            <el-select v-model="statusForm.status" placeholder="请选择状态" style="width: 100%">
+              <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
+          </el-form-item>
+          <div style="text-align: center">
+            <el-button type="primary" @click="onSSubmit(statusFormRef)">保存</el-button>
+          </div>
+        </el-form>
+      </div>
     </el-dialog>
     <el-dialog v-model="dialogVisible" title="分数信息填写" width="800" :destroy-on-close="false" @close="toSclose">
       <el-form ref="scoreFormRef" :model="scoreForm" :rules="scoreRules" label-width="auto" class="form" label-position="left">
@@ -211,9 +229,12 @@ const match = computed({
 // 接口
 import { MatchRegStore } from '@/store/api/platform/matchReg'
 const store = MatchRegStore()
+import { MatchExtStore } from '@/store/api/platform/matchExt'
+const matchExtStore = MatchExtStore()
 
 // 加载中
 const loading = ref(false)
+const router = useRouter()
 
 const timeForm = ref({})
 // 表单
@@ -223,10 +244,6 @@ const rules = reactive({
 })
 // 列表
 const list = ref([])
-let skip = 0
-let limit = inject('limit')
-const total = ref(0)
-const currentPage = ref(1)
 
 const extInfo = ref([])
 
@@ -273,27 +290,39 @@ const lastFormRef = ref()
 const lastRules = reactive({
   last_order_no: [{ required: true, message: '请输入最终排名', trigger: 'blur' }]
 })
+// 最大排序数量
+const max = ref(1)
+
+// 报名状态修改
+const statusForm = ref({})
+// 表单
+const statusFormRef = ref()
+const statusRules = reactive({
+  status: [{ required: true, message: '请选择状态', trigger: 'blur' }]
+})
+// 状态
+const statusList = ref([
+  { value: '0', label: '待审核' },
+  { value: '1', label: '已通过' },
+  { value: '2', label: '已退回' }
+])
 // 补充人员列表
 const supplementList = ref([])
 
 // 分数设置
 const detailsList = ref([])
 
-const emits = defineEmits(['step5Time', 'toExport', 'toMessage', 'toStep6', 'toPerson', 'toStep7', 'toStep8', 'step7Score', 'totalScore', 'LastOrder'])
+const emits = defineEmits(['step5Time', 'toExport', 'toMessage', 'toStep6', 'toPerson', 'toStep7', 'toStep8', 'step7Score', 'totalScore', 'LastOrder', 'onStatus'])
 
-const search = async (query = { skip, limit }) => {
-  skip = query.skip
-  limit = query.limit
+const search = async () => {
   const data = {
-    skip: query.skip,
-    limit: query.limit,
     match_id: id.value,
-    status: '0'
+    ext_status: match.value.ext_status
   }
-  const res = await store.query(data)
+  if (match.value.ext_status != '5') data.final_confirm = '0'
+  const res = await matchExtStore.step5Name(data)
   if (res.errcode == '0') {
     list.value = res.data
-    total.value = res.total
   }
 }
 // 字典数据转换
@@ -332,7 +361,7 @@ const onsubmitOrder = async (formEl) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
       const data = {
-        order_no: orderForm.value.order_no,
+        order_no: orderForm.value.final_order_no,
         match_id: id.value,
         id: orderForm.value.id
       }
@@ -356,9 +385,16 @@ const getUrl = (e) => {
 }
 // 排序
 const toLink = (data) => {
+  const arr = list.value.filter((i) => i.final_order_no != null)
+  max.value = arr.length
   orderForm.value = data
   dialog.value = { type: '4', show: true, title: '排序' }
 }
+// 修改报名状态
+const toStatus = (data) => {
+  statusForm.value = data
+  dialog.value = { type: '7', show: true, title: '报名状态' }
+}
 // 总分
 const toTotalScore = (data) => {
   totalForm.value = data
@@ -422,15 +458,18 @@ const onLSubmit = async (formEl) => {
     }
   })
 }
-
-// 分页
-const changePage = (page = currentPage.value) => {
-  search({ skip: (page - 1) * limit, limit: limit })
-}
-const sizeChange = (limits) => {
-  limit = limits
-  currentPage.value = 1
-  search({ skip: 0, limit: limit })
+// 修改报名状态
+const onSSubmit = async (formEl) => {
+  if (!formEl) return
+  await formEl.validate((valid, fields) => {
+    if (valid) {
+      const data = cloneDeep(statusForm.value)
+      emits('onStatus', { id: statusForm.value.id, status: data.status })
+      toClose()
+    } else {
+      console.log('error submit!', fields)
+    }
+  })
 }
 // 导出
 const toExport = () => {
@@ -452,6 +491,10 @@ const toStep7 = () => {
 const toStep8 = () => {
   emits('toStep8')
 }
+// 查看大屏显示
+const toStep9 = () => {
+  router.push({ path: '/screen', query: { id: id.value } })
+}
 // 补充决赛人员
 const toSupplement = async () => {
   const res = await store.query({ match_id: id.value, ext_status: '4' })
@@ -469,8 +512,9 @@ const toClose = async () => {
   is_look.value = false
   form.value = {}
   totalForm.value = {}
+  detailsList.value = []
   dialog.value = { show: false }
-  await search({ skip, limit })
+  await search()
 }
 const toSclose = async () => {
   scoreForm.value = { details: [] }
@@ -500,7 +544,7 @@ watch(
     if (item.id) {
       id.value = item.id
       loading.value = true
-      await search({ skip, limit })
+      await search()
       loading.value = false
     }
   },

+ 3 - 7
src/views/match/two.vue

@@ -28,8 +28,8 @@
         <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" v-if="info.ext_status !== '0' || info.ext_status == '1'" label="初审时间"> </el-table-column>
-        <el-table-column prop="score" align="center" label="初审分数" v-if="info.ext_status !== '0' || info.ext_status == '1' || info.ext_status == '2' || info.ext_status == '3'"> </el-table-column>
+        <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="ext_status" align="center" label="流程状态">
           <template #default="scope">
             {{ getDict(scope.row.ext_status, 'ext_status') || '暂无' }}
@@ -47,7 +47,6 @@
       <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" v-if="info.ext_status == '1'" @click="toStep2">进入组织初审阶段</el-button>
       <el-button type="primary" v-if="info.ext_status == '2'" @click="toStep3">进入初审公示名单阶段</el-button>
       <el-button type="primary" v-if="info.ext_status == '3'" @click="toStep4">进入初审赛事进行阶段</el-button>
       <el-button type="primary" v-if="info.ext_status == '4'" @click="toStep5">进入决赛组织决赛阶段</el-button>
@@ -215,10 +214,7 @@ const toScore = (data) => {
 const getUrl = (e) => {
   if (e) return `${import.meta.env.VITE_APP_HOST}${get(e, 'uri')}`
 }
-// 组织初审
-const toStep2 = () => {
-  emits('toStep2')
-}
+
 // 公示公告
 const toStep3 = () => {
   emits('toStep3')

+ 29 - 26
src/views/screen/index.vue

@@ -13,23 +13,23 @@
       </div>
       <div class="boxnav nav03">
         <div class="listhead listhead1">
-          <span>字段名称</span>
-          <span>字段名称</span>
-          <span>字段名称</span>
-          <span>字段名称</span>
-          <span>字段名称</span>
-          <span>字段名称</span>
+          <span>编号</span>
+          <span>项目名称</span>
+          <span>用户名称</span>
+          <span>初审时间</span>
+          <span>决赛时间</span>
+          <span>名次</span>
         </div>
         <Vue3SeamlessScroll class="scroll" :limitScrollNum="9" :list="list" :hover="true" :step="0.4" :wheel="true" :isWatch="true">
           <div class="listnav listnav1 scrollDiv">
             <ul>
               <li v-for="(item, index) in list" :key="index">
-                <span>{{ item.num1 }}</span>
-                <span>{{ item.num2 }}</span>
-                <span>{{ item.num3 }}</span>
-                <span>{{ item.num4 }}</span>
-                <span>{{ item.num5 }}</span>
-                <span class="text-green">{{ item.num6 }}</span>
+                <span>{{ item.no }}</span>
+                <span>{{ item.name }}</span>
+                <span>{{ item.user_name }}</span>
+                <span>{{ item.start_time }}</span>
+                <span>{{ item.final_start_time }}</span>
+                <span class="text-green">{{ item.last_order_no }}</span>
               </li>
             </ul>
           </div>
@@ -41,28 +41,31 @@
 
 <script setup>
 import { Vue3SeamlessScroll } from 'vue3-seamless-scroll'
+
+import { MatchExtStore } from '@/store/api/platform/matchExt'
+const matchExtStore = MatchExtStore()
+// 路由
+const route = useRoute()
 // 图片引入
 import bg_1 from '/images/顶图.png'
 const info = ref({ name: '赛事名称' })
 // 时间
 const formattedTime = ref('')
-const list = ref([
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' },
-  { num1: '201910-01', num2: '2658/2658', num3: '2658/2658', num4: '2658/2658', num5: '2658/2658', num6: '100%' }
-])
+const list = ref([])
 // 请求
 onMounted(async () => {
+  await search()
   await updateTime()
 })
+const search = async () => {
+  let id = route.query.id
+  if (id) {
+    let res = await matchExtStore.lastList(id)
+    if (res.errcode == '0') {
+      list.value = res.data
+    }
+  }
+}
 // 创建一个函数来格式化时间并更新状态
 const updateTime = () => {
   const now = new Date()
@@ -171,7 +174,7 @@ onMounted(() => {
   }
   .nav03 {
     height: calc(100% - 5rem);
-    padding-top: 2rem;
+    padding: 1rem 1rem 0;
     .scroll {
       overflow: hidden;
     }