{"version":3,"file":"detail.6fa23e82.mjs","sources":["../../../../components/event/entryInfo.vue","../../../../pages/account/deputy/detail.vue"],"sourcesContent":["<template>\r\n  <el-dialog \r\n    :model-value=\"modelValue\"\r\n    :before-close=\"handleClose\"\r\n    custom-class=\"footer_border_dialog\"\r\n    title=\"参赛人信息\"\r\n    width=\"550px\"\r\n  >\r\n    <template v-if=\"form\">\r\n      <el-form\r\n        :model=\"form\"\r\n        label-width=\"140px\"\r\n        size=\"default\"\r\n        class=\"form\"\r\n      >\r\n        <el-form-item label=\"真实姓名：\">\r\n          <span>{{ form.realName }}</span>\r\n        </el-form-item>\r\n        <el-form-item label=\"身份证号：\" prop=\"categoryId\">\r\n          {{ form.idCard }}\r\n        </el-form-item>\r\n        <el-form-item label=\"手机号：\" prop=\"phone\">\r\n          <span>{{ form.phone }}</span>\r\n        </el-form-item>\r\n        <el-form-item label=\"组别：\">\r\n          <span>{{ form.grade }}</span>\r\n        </el-form-item>\r\n        <el-form-item label=\"地址：\" prop=\"address\">\r\n          <span>{{ form.province }} {{ form.city }} {{ form.address }}</span>\r\n        </el-form-item>\r\n        <el-form-item label=\"学校：\" prop=\"school\">\r\n          <span>{{ form.school }}</span>\r\n        </el-form-item>\r\n        <el-form-item label=\"指导老师姓名：\" prop=\"tutorName\">\r\n          {{ form.tutorName }}\r\n        </el-form-item>\r\n        <el-form-item label=\"指导老师手机号：\" prop=\"tutorPhone\">\r\n          {{ form.tutorPhone }}\r\n        </el-form-item>\r\n      </el-form>\r\n    </template>\r\n    <template #footer>\r\n      <div class=\"footer_btn\">\r\n        <el-button plain @click=\"handleClose\">知道了</el-button>\r\n      </div>\r\n    </template>\r\n  </el-dialog>\r\n</template>\r\n\r\n<script setup>\r\nimport {reactive, ref, onMounted} from \"vue\";\r\n\r\nconst props = defineProps({\r\n  modelValue: {\r\n    type: Boolean,\r\n    default: false\r\n  },\r\n  eventInfo: {\r\n    type: Object,\r\n    default: function () {\r\n      return {}\r\n    }\r\n  }\r\n})\r\nconst { eventInfo } = props\r\nconst form = reactive({\r\n  country: '中国',\r\n  province: '',\r\n  eventType: 1\r\n})\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nonMounted(() => {\r\n  Object.assign(form, eventInfo)\r\n})\r\nconst handleClose = () => { // 关闭\r\n  emit('update:modelValue', false)\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.footer_btn {\r\n  text-align: center;\r\n\r\n  .el-button {\r\n    width: 80px;\r\n    height: 32px;\r\n    border-radius: 4px;\r\n  }\r\n}\r\n</style>\r\n","<template>\r\n  <NuxtLayout name=\"account\">\r\n    <div class=\"detail_header course_info_wrapper\">\r\n      <div>\r\n        <el-button class=\"font14\" style=\"padding: 0\" type=\"text\" @click=\"back\">\r\n          <el-icon><ArrowLeft /></el-icon>\r\n          返回\r\n        </el-button>\r\n      </div>\r\n      <div class=\"course_info\">\r\n        <div class=\"course_info_detail\">\r\n          <div class=\"row title\">\r\n            <span class=\"tx-ov\">{{ data.eventInfo.eventAreaName }}</span>\r\n          </div>\r\n          <div class=\"\">\r\n            <div class=\"row c_999\">\r\n              <span class=\"label\">级别</span>：\r\n              <span class=\"inner tx-ov\">{{ data.eventInfo.eventLevel === 1 ? '市赛' : '省赛' }}</span>\r\n            </div>\r\n            <div class=\"row c_999\">\r\n              <span class=\"label\">比赛时间</span>：\r\n              <span class=\"inner tx-ov\">{{ data.eventInfo.beginTime }} ~ {{ data.eventInfo.endTime }}</span>\r\n            </div>\r\n            <div class=\"row c_999\">\r\n              <span class=\"label\">报名截止时间</span>：\r\n              <span class=\"inner\">{{ data.eventInfo.deadlineTime }}</span>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"placeholder\"></div>\r\n     <div class=\"page-account-course\">\r\n       <el-tabs v-model=\"entryType\" class=\"demo-tabs\">\r\n         <el-tab-pane\r\n           v-for=\"(item, index) in data.tabsList\"\r\n           :key=\"index\"\r\n           :label=\"item.desc\"\r\n           :name=\"item.code\"\r\n         ></el-tab-pane>\r\n       </el-tabs>\r\n       <div class=\"list\" v-if=\"data.list.length\">\r\n        <el-table :data=\"data.list\" row-key=\"id\" size=\"large\">\r\n          <el-table-column label=\"真实姓名\" prop=\"realName\" width=\"100\" align=\"center\" />\r\n          <el-table-column label=\"学校\" prop=\"school\" min-width=\"180\" align=\"center\" />\r\n          <el-table-column label=\"手机号\" prop=\"phone\" width=\"180\" align=\"center\" />\r\n          <el-table-column label=\"作答时长\" prop=\"answerTime\" width=\"180\" align=\"center\">\r\n            <template #default=\"scope\">\r\n            {{ formatDuring(scope.row.answerTime * 1000) }}\r\n          </template>\r\n          </el-table-column>\r\n          <el-table-column label=\"考试成绩\" prop=\"userScore\" width=\"100\" align=\"center\">\r\n            <template #default=\"scope\">\r\n              <span>{{ scope.row.userSocre ? scope.row.userSocre : '-' }}</span>\r\n            </template>\r\n          </el-table-column>\r\n          <el-table-column label=\"指导老师\" prop=\"tutorName\" width=\"100\" align=\"center\" />\r\n          <el-table-column label=\"报名时间\" prop=\"gmtCreate\" min-width=\"180\" align=\"center\" />\r\n          <el-table-column  label=\"操作\" min-width=\"100\" align=\"center\">\r\n            <template #default=\"scope\">\r\n              <el-button type=\"text\" @click=\"openDetail(scope.row)\">详情</el-button>\r\n            </template>\r\n          </el-table-column>\r\n        </el-table>\r\n       </div>\r\n       <client-only v-if=\"data.pages > 1\">\r\n         <el-pagination\r\n           class=\"pagination\"\r\n           v-model:currentPage=\"data.current\"\r\n           layout=\"prev, pager, next, jumper\"\r\n           :total=\"data.totalCount\"\r\n           background\r\n           @current-change=\"handleCurrentChange\"\r\n         >\r\n         </el-pagination>\r\n       </client-only>\r\n       <event-entry-info v-if=\"ctrl.entry\" v-model=\"ctrl.entry\" :event-info=\"ctrl.info\" @callback=\"getData\" />\r\n     </div>\r\n  </NuxtLayout>\r\n</template>\r\n\r\n<script setup>\r\nimport { formatDuring } from '@/utils/utils'\r\nimport { ArrowLeft } from '@element-plus/icons-vue';\r\nimport { deputyEntryPage, eventDetail } from \"~/api/event\";\r\nuseHead({\r\ntitle:'我的赛事'\r\n});\r\nconst router = useRouter();\r\nconst entryType = ref(\"\")\r\nconst eventId = ref(\"\");\r\nconst data = reactive({\r\ntabsList: [{code: '', desc: '报名列表'}],\r\nlist: [],\r\npages: 0,\r\ncurrent: 1,\r\ntotalCount: 0,\r\neventInfo: {}\r\n});\r\nconst ctrl = reactive({\r\n  entry: false,\r\n  info: {}\r\n})\r\nconst route = useRoute()\r\nonMounted(() => {\r\nif(route.query.id){\r\n  eventId.value = route.query.id\r\n}\r\ngetData();\r\n})\r\nconst back = () => {\r\n  router.back()\r\n}\r\nconst openDetail = (row) => {\r\n  ctrl.info = row\r\n  ctrl.entry = true\r\n}\r\n\r\nconst handleCurrentChange = (val) => {\r\ngetData(val);\r\ndocument.querySelector('#app').scrollTop = 150\r\n};\r\n\r\nconst getData = (page = 1) => {\r\n  deputyEntryPage({\r\n    pageSize: 10,\r\n    pageCurrent: page,\r\n    eventId: eventId.value\r\n  }).then((res) => {\r\n  console.log('res', res)\r\n  if (res) {\r\n    data.list = res.list;\r\n    data.pages = res.totalPage;\r\n    data.current = res.pageCurrent;\r\n    data.totalCount = res.totalCount\r\n  }\r\n  })\r\n  eventDetail(eventId.value).then(res => {\r\n    data.eventInfo = res\r\n  })\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.page-account-course {\r\n.el-tabs__header {\r\n margin: 0;\r\n}\r\n.el-tabs__nav-wrap {\r\n padding: 0 30px;\r\n}\r\n.el-tabs__nav {\r\n padding: 10px 0;\r\n}\r\n}\r\n</style>\r\n<style lang=\"scss\" scoped>\r\n.course_info_wrapper {\r\n  padding: 20px;\r\n  min-height: 125px;\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: space-between;\r\n  .course_info {\r\n    margin-top: 10px;\r\n    position: relative;\r\n    display: flex;\r\n  }\r\n  .course_info_img {\r\n    position: relative;\r\n    overflow: hidden;\r\n    height: 125px;\r\n    width: 225px;\r\n    border-radius: 7px;\r\n    img {\r\n      width: 100%;\r\n      height: 100%;\r\n      object-fit: cover;\r\n    }\r\n    .course_type {\r\n      position: absolute;\r\n      left: 8px;\r\n      bottom: 8px;\r\n      width: 50px;\r\n      height: 23px;\r\n      background: rgba(0, 0, 0, 0.5);\r\n      font-size: 10px;\r\n      line-height: 23px;\r\n      text-align: center;\r\n      color: #ffffff;\r\n      border-radius: 5px;\r\n    }\r\n  }\r\n  .course_info_detail {\r\n    color: #999999;\r\n    .title {\r\n      font-size: 16px;\r\n      line-height: 21px;\r\n      color: #333333;\r\n      width: 500px;\r\n    }\r\n  }\r\n  .row {\r\n    margin-bottom: 8px;\r\n    display: flex;\r\n    font-size: 14px;\r\n    line-height: 18px;\r\n    margin-right: 40px;\r\n  }\r\n  .row:last-child {\r\n    margin-bottom: 0;\r\n  }\r\n  .label {\r\n    height: 18px;\r\n    min-width: 60px;\r\n    max-width: 100px;\r\n    text-align: justify;\r\n  }\r\n\r\n  .label::after {\r\n    content: '.';\r\n    width: 100%;\r\n    display: inline-block;\r\n    overflow: hidden;\r\n    height: 0;\r\n  }\r\n}\r\n.detail_header {\r\n  padding: 20px;\r\n}\r\n.placeholder {\r\n  background-color: #f6f8fb;\r\n  height: 10px;\r\n}\r\n.list {\r\npadding: 30px;\r\n.item {\r\n padding: 30px 0;\r\n border-bottom: 1px solid #EBEEF5;\r\n display: flex;\r\n flex-wrap: wrap;\r\n .pic {\r\n   width: 180px;\r\n   height: 100px;\r\n   border-radius: 5px;\r\n   overflow: hidden;\r\n   position: relative;\r\n   color: #333;\r\n   cursor: pointer;\r\n   img {\r\n     width: 100%;\r\n     height: 100%;\r\n     object-fit: cover;\r\n   }\r\n   .label {\r\n     position: absolute;\r\n     left: 5px;\r\n     bottom: 5px;\r\n     background: rgba(0, 0, 0, 0.5);\r\n     border-radius: 5px;\r\n     color: #fff;\r\n     padding: 2px 5px;\r\n     font-style: normal;\r\n     font-weight: 400;\r\n     font-size: 10px;\r\n   }\r\n }\r\n .rt {\r\n   display: flex;\r\n   flex: 1;\r\n   position: relative;\r\n   .flex-sub {\r\n     flex: 1;\r\n   }\r\n   .name {\r\n     width: 460px;\r\n     font-size: 16px;\r\n     overflow: hidden;\r\n     text-overflow: ellipsis;\r\n     white-space: nowrap;\r\n   }\r\n   .desc {\r\n      color: #999;\r\n      font-size: 14px;\r\n      overflow: hidden;\r\n      -webkit-line-clamp: 3;\r\n      text-overflow: ellipsis;\r\n      display: -webkit-box;\r\n      -webkit-box-orient: vertical;\r\n   }\r\n   .time,.have {\r\n     color: #999;\r\n     margin-top: 5px;\r\n     font-size: 14px;\r\n   }\r\n   .red{\r\n     color: #F23C3C;\r\n   }\r\n   .have_item{\r\n     padding-right: 12px;\r\n   }\r\n   .have_item+.have_item{\r\n     padding-left: 10px;\r\n     position: relative;\r\n   }\r\n   .have_item+.have_item:before{\r\n     width: 0;\r\n     height: 10px;\r\n     padding-left: 1px;\r\n     background-color: #BECADB;\r\n     content: '';\r\n     position: absolute;\r\n     left: 0;\r\n     top: 25%;\r\n   }\r\n   .bottom {\r\n     display: flex;\r\n     justify-content: space-between;\r\n     align-items: flex-end;\r\n     .btn {\r\n       width: 100px;\r\n       height: 40px;\r\n       border-radius: 5px;\r\n     }\r\n   }\r\n   .cgray {\r\n     color: #999;\r\n\r\n     width: 161px;\r\n\r\n   }\r\n   .cred {\r\n     color: #999999;\r\n   }\r\n }\r\n}\r\n}\r\n.cgray :deep(.el-progress__text span){\r\nfont-size: 12px;\r\nmargin-left: 10px;\r\ncolor: #999999;\r\n}\r\n.cgray :deep(.el-progress){\r\nalign-items: center;\r\n}\r\n.bottom .btn:hover {\r\nbackground: #2256F6;\r\ncolor: #FFFFFF;\r\n}\r\n.success_progress{\r\ncolor: #6FCF97;\r\n}\r\n</style>\r\n"],"names":["eventInfo","props","form","reactive","country","province","eventType","onMounted","Object","assign","handleClose","emit","useHead","title","router","useRouter","entryType","ref","eventId","data","tabsList","code","desc","list","pages","current","totalCount","ctrl","entry","info","route","useRoute","query","id","value","back","handleCurrentChange","val","getData","document","querySelector","scrollTop","page","deputyEntryPage","pageSize","pageCurrent","then","res","totalPage","eventDetail","row"],"mappings":"ubAgEAA,UAAAA,GAAAC,EACAC,EAAAC,EAAA,CACAC,QAAA,KACAC,SAAA,GACAC,UAAA,IAIAC,GAAA,KACAC,OAAAC,OAAAP,EAAAF,EAAA,IAEA,MAAAU,EAAA,KACAC,EAAA,qBAAA,EAAA,s0DCSAC,EAAA,CACAC,MAAA,SAEA,MAAAC,EAAAC,IACAC,EAAAC,EAAA,IACAC,EAAAD,EAAA,IACAE,EAAAhB,EAAA,CACAiB,SAAA,CAAA,CAAAC,KAAA,GAAAC,KAAA,SACAC,KAAA,GACAC,MAAA,EACAC,QAAA,EACAC,WAAA,EACA1B,UAAA,CAAA,IAEA2B,EAAAxB,EAAA,CACAyB,OAAA,EACAC,KAAA,CAAA,IAEAC,GAAAC,IACAxB,GAAA,KACAuB,GAAAE,MAAAC,KACAf,EAAAgB,MAAAJ,GAAAE,MAAAC,YAIA,MAAAE,GAAA,KACArB,EAAAqB,MAAA,EAOAC,GAAAC,IACAC,GAAAD,GACAE,SAAAC,cAAA,QAAAC,UAAA,GAAA,EAGAH,GAAA,CAAAI,EAAA,KACAC,EAAA,CACAC,SAAA,GACAC,YAAAH,EACAxB,QAAAA,EAAAgB,QACAY,MAAAC,IAEAA,IACA5B,EAAAI,KAAAwB,EAAAxB,KACAJ,EAAAK,MAAAuB,EAAAC,UACA7B,EAAAM,QAAAsB,EAAAF,YACA1B,EAAAO,WAAAqB,EAAArB,WACA,IAEAuB,EAAA/B,EAAAgB,OAAAY,MAAAC,IACA5B,EAAAnB,UAAA+C,CAAA,GACA,isDA1BAG,QACAvB,EAAAE,KAAAqB,OACAvB,EAAAC,OAAA,GAFA,IAAAsB"}