{"version":3,"file":"list.e234ea22.mjs","sources":["../../../../pages/article/list.vue"],"sourcesContent":["<template>\n  <NuxtLayout>\n    <div class=\"app_container w\">\n    <div class=\"block\" v-loading=\"ctrl.loading1\">\n      <el-carousel height=\"455px\" arrow=\"never\" class=\"carousel\" v-if=\"map.advList.length > 0\">\n        <el-carousel-item v-for=\"(i,index) in map.advList\" :key=\"index\">\n          <custom-link :to=\"handleNavigate(i)\" :targetType=\"i.targetType\">\n            <img class=\"article_img\" :src=\"i.imageUrl\" :alt=\"i.advName\">\n          </custom-link>\n        </el-carousel-item>\n      </el-carousel>\n      <div class=\"hot\">\n        <p class=\"recommend\">热门推荐</p>\n        <template v-if=\"map.hotList.length > 0\">\n          <div v-for=\"(i,index) in map.hotList\" :key=\"index\" class=\"item\" @click=\"viewDetail(i.id)\">\n            <p class=\"title\">{{i.title}}</p>\n            <p class=\"c_999 tx-ov flex-item\">{{i.readCount}}人已浏览</p>\n          </div>\n        </template>\n        <div class=\"no_data\" v-else>暂无数据</div>\n      </div>\n    </div>\n      <teacher-category-list :list=\"map.categorys\" name=\"categoryName\" @change=\"changeCategory\" :style=\"2\" :default-id=\"map.categoryId\"></teacher-category-list>\n      <div v-loading=\"ctrl.loading2\">\n        <article-list :list=\"map.articleList\"></article-list>\n      </div>\n      <div class=\"pagination\" v-if=\"page.totalPage > 1\">\n        <el-pagination\n          background layout=\"total, prev, pager, next, jumper\"\n          :total=\"page.totalCount\"\n          v-model:currentPage=\"page.pageCurrent\"\n          v-model:pageSize=\"page.pageSize\"\n          @current-change=\"handleCurrentChange\"\n        >\n        </el-pagination>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n\n<script setup>\nimport {articleCategory, articleAdvList, articleHot, articlePage} from '../../api/article.js'\nimport {onMounted, nextTick} from 'vue'\nimport cookie from '@/utils/cookies'\nimport {teacherPage, teacherRankList} from \"../../api/teacher\";\nimport { parseTime } from '@/utils/index.js';\n\nlet cookieData = cookie.getShop()\nuseHead({\n  title: computed(() => `资讯中心-${ cookieData.shopName}`),\n  meta:[{\n    hid: 'keywords',\n    name: 'keywords',\n    content: '资讯中心'\n  },\n    {\n      hid: 'description',\n      name: 'description',\n      content: '资讯中心'\n    }]\n})\nconst route = useRoute()\nconst map = reactive({\n  advList: [],\n  categorys: [],\n  categoryId: route.query.categoryId || '',\n  hotList: [],\n  articleList: []\n})\nconst page = reactive({\n  totalCount: 0,\n  pageCurrent: 1,\n  pageSize: 20,\n  totalPage: 1\n})\nconst ctrl = reactive({\n  loading1: false,\n  loading2: false\n})\nconst router = useRouter()\nconst changeCategory = (id) => {\n  let query = route.query\n  router.push({\n    query: Object.assign({...query}, {categoryId: id},\n      () => {})\n  })\n  map.categoryId = id\n  getArticleList()\n}\n\nconst viewDetail = (id) => {\n  router.push({\n    path:'/article/view',\n    query:{\n      id\n    }\n  })\n}\nconst handleCurrentChange = (v) => {\n  page.pageCurrent = v\n  document.querySelector('#app').scrollTop = 0\n  getArticleList()\n}\nconst getArticleList = () => {\n  ctrl.loading2 = true\n  articlePage({\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    categoryId: map.categoryId\n  }).then(res => {\n    if(res) {\n      map.articleList = res.list || []\n      page.pageCurrent = res.pageCurrent;\n      page.totalCount = res.totalCount;\n      page.totalPage = res.totalPage;\n    }\n    ctrl.loading2 = false\n  })\n}\nconst getAdvList = () => {\n  ctrl.loading1 = true\n  articleAdvList().then(res => {\n    if(res) {\n      if(res.length === 0) {\n        map.advList = [\n          {\n            imageUrl: 'https://static.roncoos.com/edu/pc/carousel.png',\n            targetType: 99,\n            advName: ''\n          }\n        ]\n      } else {\n        map.advList = res\n      }\n    }\n    ctrl.loading1 = false\n  })\n}\nconst nowDay = new Date().getTime()\nconst beginTime = parseTime(nowDay - 30 * 24 * 60 * 60 *1000 )\nconst getHotList = () => {\n  ctrl.loading1 = true\n  articleHot({size:10,beginTime}).then(res => {\n    map.hotList = res || []\n    ctrl.loading1 = false\n  })\n}\nconst { data, pending, error } = await useAsyncData('ArticleListPage', () => {\n  return new Promise(async (resolve) => {\n    if(route.query) {\n      map.categoryId = route.query.categoryId\n    }\n    Promise.allSettled([\n      articleAdvList(),\n      articleCategory(),\n      articleHot({size:10,beginTime}),\n      articlePage({\n        pageCurrent: page.pageCurrent,\n        pageSize: page.pageSize,\n        categoryId: map.categoryId\n      })\n    ]).then(([adList, category,hotList,article ])=>{\n      let data = {};\n      if(adList.status === 'fulfilled') {\n        data.adList = adList.value\n      } else {\n        data.adList = {}\n      }\n      if(category.status === 'fulfilled') {\n        data.category = category.value\n      } else {\n        data.category = []\n      }\n      if(hotList.status === 'fulfilled') {\n        data.hotList = hotList.value\n      } else {\n        data.hotList = []\n      }\n      if(article.status === 'fulfilled') {\n        data.article = article.value\n      } else {\n        data.article = []\n      }\n      resolve(data)\n    })\n  })\n},{initialCache:false})\n\n\nif (!pending.value && data.value) {\n  const d = data.value\n  if(d.adList.length === 0) {\n    map.advList = [\n      {\n        imageUrl: 'https://static.roncoos.com/edu/pc/carousel.png',\n        targetType: 99,\n        advName: ''\n      }\n    ]\n  } else {\n    map.advList = d.adList\n  }\n  map.categorys = d.category.concat([]);\n  map.categorys.unshift({\n    categoryName: '全部',\n    id: ''\n  })\n  map.hotList = d.hotList || []\n  map.articleList = d.article.list || []\n  page.pageCurrent = d.article.pageCurrent;\n  page.totalCount = d.article.totalCount;\n  page.totalPage = d.article.totalPage;\n}\n\n\n</script>\n<style lang=\"scss\">\n.carousel {\n  width: 820px;\n  .article_img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n  .el-carousel__indicators {\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 15px;\n    bottom: 20px;\n    padding: 0px 12px;\n    padding-right: 6px;\n    padding-bottom: 4px;\n  }\n  .el-carousel__button {\n    width: 9px;\n    height: 6px;\n    border-radius: 15px;\n    margin-right: 7px;\n  }\n  .is-active {\n    .el-carousel__button {\n      width: 15px;\n    }\n  }\n  .el-carousel__indicator--horizontal {\n    padding: 0;\n  }\n}\n</style>\n<style lang=\"scss\" scoped>\n.content_page {\n  width: 1200px;\n  margin: 20px auto;\n}\n.block {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  display: flex;\n  justify-content: space-between;\n}\n.hot {\n  width: 360px;\n  background: #FFFFFF;\n  border-radius: 5px;\n  box-sizing: border-box;\n  padding: 12px 15px 0 15px;\n  .recommend {\n    font-size: 20px;\n    margin-bottom: 15px;\n  }\n  .no_data {\n    color: #999;\n    text-align: center;\n    line-height: 353px;\n  }\n  .item {\n    display: flex;\n    justify-content: space-between;\n    margin-bottom: 19px;\n    cursor: pointer;\n    .title {\n      width: 230px;\n      overflow: hidden;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n      word-break: break-all;\n    }\n    &:last-child {\n      margin-bottom: 0px;\n    }\n    &:hover p{\n      color: #2256F6;\n    }\n  }\n}\n.pagination {\n  text-align: center;\n}\n</style>\n"],"names":["cookieData","cookie","getShop","useHead","title","computed","shopName","meta","hid","name","content","route","useRoute","map","reactive","advList","categorys","categoryId","query","hotList","articleList","page","totalCount","pageCurrent","pageSize","totalPage","ctrl","loading1","loading2","router","useRouter","changeCategory","id","push","Object","assign","getArticleList","handleCurrentChange","v","document","querySelector","scrollTop","articlePage","then","res","list","nowDay","Date","getTime","beginTime","parseTime","data","pending","error","__temp","__restore","_withAsyncContext","useAsyncData","Promise","async","resolve","allSettled","articleAdvList","articleCategory","articleHot","size","adList","category","article","status","value","initialCache","d","length","imageUrl","targetType","advName","concat","unshift","categoryName","path"],"mappings":"unBA+CAA,EAAAC,EAAAC,UACAC,EAAA,CACAC,MAAAC,GAAA,IAAA,QAAAL,EAAAM,aACAC,KAAA,CAAA,CACAC,IAAA,WACAC,KAAA,WACAC,QAAA,QAEA,CACAF,IAAA,cACAC,KAAA,cACAC,QAAA,WAGA,MAAAC,EAAAC,IACAC,EAAAC,EAAA,CACAC,QAAA,GACAC,UAAA,GACAC,WAAAN,EAAAO,MAAAD,YAAA,GACAE,QAAA,GACAC,YAAA,KAEAC,EAAAP,EAAA,CACAQ,WAAA,EACAC,YAAA,EACAC,SAAA,GACAC,UAAA,IAEAC,EAAAZ,EAAA,CACAa,UAAA,EACAC,UAAA,IAEAC,EAAAC,IACAC,EAAAC,IACA,IAAAd,EAAAP,EAAAO,MACAW,EAAAI,KAAA,CACAf,MAAAgB,OAAAC,OAAA,IAAAjB,GAAA,CAAAD,WAAAe,IACA,WAEAnB,EAAAI,WAAAe,EACAI,GAAA,EAWAC,EAAAC,IACAjB,EAAAE,YAAAe,EACAC,SAAAC,cAAA,QAAAC,UAAA,EACAL,GAAA,EAEAA,EAAA,KACAV,EAAAE,UAAA,EACAc,EAAA,CACAnB,YAAAF,EAAAE,YACAC,SAAAH,EAAAG,SACAP,WAAAJ,EAAAI,aACA0B,MAAAC,IACAA,IACA/B,EAAAO,YAAAwB,EAAAC,MAAA,GACAxB,EAAAE,YAAAqB,EAAArB,YACAF,EAAAC,WAAAsB,EAAAtB,WACAD,EAAAI,UAAAmB,EAAAnB,WAEAC,EAAAE,UAAA,CAAA,GACA,EAqBAkB,GAAA,IAAAC,MAAAC,UACAC,EAAAC,EAAAJ,EAAA,SAQAK,KAAAA,GAAAC,QAAAA,GAAAC,MAAAA,MAAuCC,EAAAC,GAAAC,GAAA,IAAAC,EAAA,mBAAA,IACvC,IAAAC,SAAAC,MAAAC,IACAjD,EAAAO,QACAL,EAAAI,WAAAN,EAAAO,MAAAD,YAEAyC,QAAAG,WAAA,CACAC,IACAC,IACAC,EAAA,CAAAC,KAAA,GAAAhB,cACAP,EAAA,CACAnB,YAAAF,EAAAE,YACAC,SAAAH,EAAAG,SACAP,WAAAJ,EAAAI,eAEA0B,MAAA,EAAAuB,EAAAC,EAAAhD,EAAAiD,MACA,IAAAjB,EAAA,CAAA,EACA,cAAAe,EAAAG,OACAlB,EAAAe,OAAAA,EAAAI,MAEAnB,EAAAe,OAAA,CAAA,EAEA,cAAAC,EAAAE,OACAlB,EAAAgB,SAAAA,EAAAG,MAEAnB,EAAAgB,SAAA,GAEA,cAAAhD,EAAAkD,OACAlB,EAAAhC,QAAAA,EAAAmD,MAEAnB,EAAAhC,QAAA,GAEA,cAAAiD,EAAAC,OACAlB,EAAAiB,QAAAA,EAAAE,MAEAnB,EAAAiB,QAAA,GAEAR,EAAAT,EAAA,GACA,KAEA,CAAAoB,cAAA,GAAA,kCAGA,IAAAnB,GAAAkB,OAAAnB,GAAAmB,MAAA,CACA,MAAAE,EAAArB,GAAAmB,MACA,IAAAE,EAAAN,OAAAO,OACA5D,EAAAE,QAAA,CACA,CACA2D,SAAA,iDACAC,WAAA,GACAC,QAAA,KAIA/D,EAAAE,QAAAyD,EAAAN,OAEArD,EAAAG,UAAAwD,EAAAL,SAAAU,OAAA,IACAhE,EAAAG,UAAA8D,QAAA,CACAC,aAAA,KACA/C,GAAA,KAEAnB,EAAAM,QAAAqD,EAAArD,SAAA,GACAN,EAAAO,YAAAoD,EAAAJ,QAAAvB,MAAA,GACAxB,EAAAE,YAAAiD,EAAAJ,QAAA7C,YACAF,EAAAC,WAAAkD,EAAAJ,QAAA9C,WACAD,EAAAI,UAAA+C,EAAAJ,QAAA3C,SACA,irBA1HAO,YACAH,EAAAI,KAAA,CACA+C,KAAA,gBACA9D,MAAA,CACAc,QAJA,IAAAA"}