{"version":3,"file":"grade.eb40008d.mjs","sources":["../../../../pages/account/grade.vue"],"sourcesContent":["<template>\n    <NuxtLayout name=\"account\">\n      <div class=\"page-account-class\">\n        <el-tabs v-model=\"activeTab\" class=\"demo-tabs\" @tab-change=\"handleClick\">\n          <el-tab-pane v-for=\"(item, index) in data.tabsList\" :key=\"index\" :label=\"item.name\" :name=\"item.type\"></el-tab-pane>\n        </el-tabs>\n        <div class=\"list\">\n          <div class=\"item\" v-for=\"(item, index) in data.list\" :key=\"index\">\n            <div class=\"pic\">\n              <img :src=\"item.coverUrl\" alt=\"\" />\n              <div class=\"label\">班级</div>\n            </div>\n            <div class=\"rt\">\n              <div class=\"name tx-ov-2\">{{ item.classroomName }}</div>\n              <div class=\"have\" v-if=\"item.courseCount > 0 || item.examCount > 0 || item.taskCount > 0 || item.certCount > 0\">\n                包含内容：\n                <span class=\"have_item\" v-if=\"item.courseCount > 0\">课程数：{{ item.courseCount }}个</span>\n                <span class=\"have_item\" v-if=\"item.examCount > 0\">考试数：{{ item.examCount }}场</span>\n                <span class=\"have_item\" v-if=\"item.taskCount > 0\">作业数：{{ item.taskCount }}个</span>\n                <span class=\"have_item\" v-if=\"item.certCount > 0\">证书：{{ item.certCount }}张</span>\n              </div>\n              <div class=\"time\">有效期：{{ item.validityType === 1 ? '永久有效' : '至' + item.endTime }}</div>\n              <div class=\"bottom\">\n                <div class=\"propress cgray\"></div>\n                <el-button class=\"btn\" type=\"primary\" @click=\"toGrade(item.id)\">进入班级</el-button>\n              </div>\n            </div>\n          </div>\n        </div>\n        <client-only>\n          <el-pagination\n            class=\"pagination\"\n            v-model:currentPage=\"data.current\"\n            layout=\"total, prev, pager, next, jumper\"\n            :total=\"data.totalCount\"\n            @current-change=\"handleCurrentChange\"\n          >\n          </el-pagination>\n        </client-only>\n      </div>\n    </NuxtLayout>\n</template>\n\n<script setup>\nuseHead({\n  title:'我的班级'\n});\nimport { userGradePage } from \"~/api/user\";\nconst router = useRouter()\nconst activeTab = ref('3')\nconst chargeType = ref('')\nconst data = reactive({\n  tabsList: [\n    {\n      name: '全部',\n      type: '3',\n    },\n    {\n      name: '付费班',\n      type: '1',\n    },\n    {\n      name: '免费班',\n      type: '0',\n    },\n  ],\n  list: [],\n  pages: 0,\n  current: 1,\n  totalCount: 0,\n})\n\nonMounted(() => {\n  getData()\n})\n\nconst handleClick = (paneName) => {\n  if (paneName === '3') {\n    chargeType.value = ''\n  } else {\n    chargeType.value = paneName\n  }\n  getData()\n}\n\nconst toGrade = (id) => {\n  router.push('/grade/view?id=' + id)\n}\n\nconst handleCurrentChange = (val) => {\n  getData(val)\n  document.querySelector('#app').scrollTop = 150\n}\n\nconst getData = (page = 1) => {\n  userGradePage({\n    chargeType: chargeType.value,\n    pageCurrent: page,\n    pageSize: 10,\n  }).then((res) => {\n    if (res) {\n      data.list = res.list\n      data.pages = res.totalPage\n      data.current = res.pageCurrent\n      data.totalCount = res.totalCount\n    }\n  })\n}\n</script>\n\n<style lang=\"scss\">\n.page-account-class {\n  .el-tabs__header {\n    margin: 0;\n  }\n  .el-tabs__nav-wrap {\n    padding: 0 30px;\n  }\n  .el-tabs__nav {\n    padding: 10px 0;\n  }\n}\n</style>\n<style lang=\"scss\" scoped>\n.list {\n  padding: 0 30px;\n  .item {\n    padding: 30px 0;\n    border-bottom: 1px solid #ebeef5;\n    display: flex;\n    flex-wrap: wrap;\n    .pic {\n      width: 180px;\n      height: 100px;\n      border-radius: 5px;\n      overflow: hidden;\n      position: relative;\n      color: #333;\n      img {\n        width: 100%;\n        height: 100%;\n      }\n      .label {\n        position: absolute;\n        left: 5px;\n        bottom: 5px;\n        background: rgba(0, 0, 0, 0.5);\n        border-radius: 5px;\n        color: #fff;\n        padding: 2px 5px;\n        font-size: 10px;\n      }\n    }\n    .rt {\n      display: flex;\n      flex-direction: column;\n      flex: 1;\n      margin-left: 20px;\n      position: relative;\n      .name {\n        width: 460px;\n        font-size: 16px;\n        display: -webkit-box;\n        text-overflow: ellipsis;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n      .time {\n        color: #999;\n        margin-top: 5px;\n      }\n      .bottom {\n        position: absolute;\n        left: 0;\n        bottom: 0;\n        width: 100%;\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-end;\n        .btn {\n          width: 100px;\n          height: 40px;\n        }\n      }\n      .cgray {\n        color: #999;\n      }\n      .cred {\n        color: #f61818;\n      }\n    }\n  }\n}\n.have {\n  color: #999;\n  margin-top: 5px;\n}\n.have_item {\n  padding-right: 12px;\n}\n.have_item + .have_item {\n  padding-left: 10px;\n  position: relative;\n}\n.have_item + .have_item:before {\n  width: 0;\n  height: 10px;\n  padding-left: 1px;\n  background-color: #becadb;\n  content: '';\n  position: absolute;\n  left: 0;\n  top: 25%;\n}\n</style>\n"],"names":["useHead","title","router","useRouter","activeTab","ref","chargeType","data","reactive","tabsList","name","type","list","pages","current","totalCount","onMounted","getData","handleClick","paneName","value","handleCurrentChange","val","document","querySelector","scrollTop","page","userGradePage","pageCurrent","pageSize","then","res","totalPage","id","push"],"mappings":"8pBA4CAA,EAAA,CACAC,MAAA,SAGA,MAAAC,EAAAC,IACAC,EAAAC,EAAA,KACAC,EAAAD,EAAA,IACAE,EAAAC,EAAA,CACAC,SAAA,CACA,CACAC,KAAA,KACAC,KAAA,KAEA,CACAD,KAAA,MACAC,KAAA,KAEA,CACAD,KAAA,MACAC,KAAA,MAGAC,KAAA,GACAC,MAAA,EACAC,QAAA,EACAC,WAAA,IAGAC,GAAA,KACAC,GAAA,IAGA,MAAAC,EAAAC,IAEAb,EAAAc,MADA,MAAAD,EACA,GAEAA,EAEAF,GAAA,EAOAI,EAAAC,IACAL,EAAAK,GACAC,SAAAC,cAAA,QAAAC,UAAA,GAAA,EAGAR,EAAA,CAAAS,EAAA,KACAC,EAAA,CACArB,WAAAA,EAAAc,MACAQ,YAAAF,EACAG,SAAA,KACAC,MAAAC,IACAA,IACAxB,EAAAK,KAAAmB,EAAAnB,KACAL,EAAAM,MAAAkB,EAAAC,UACAzB,EAAAO,QAAAiB,EAAAH,YACArB,EAAAQ,WAAAgB,EAAAhB,WACA,GACA,2kCArBAkB,YACA/B,EAAAgC,KAAA,kBAAAD,GADA,IAAAA"}