{"version":3,"file":"combine.c204d985.mjs","sources":["../../../../pages/course/combine.vue"],"sourcesContent":["<template>\n    <NuxtLayout name=\"course\">\n      <div class=\"app_container\" v-loading=\"ctrl.loading\">\n        <div class=\"single_content\" v-if=\"opts.info.id\">\n          <course-subject-pane :topicId=\"map.topicCourseId\" @update=\"getInfo\" :period-id=\"map.periodId\" @share=\"handleShare\" :query=\"route.query\" :info=\"opts.info\" :type=\"opts.PeriodTypeEnum\"></course-subject-pane>\n         </div>\n        <client-only>\n          <course-share :info=\"opts.info\" v-model=\"ctrl.share\"></course-share>\n        </client-only>\n      </div>\n    </NuxtLayout>\n</template>\n\n<script setup>\n\nimport {useUserStore} from \"../../stores/user\";\nimport {getAuthCourseView, getCourseView} from \"../../api/course\";\nimport cookie from '@/utils/cookies'\nconst route = useRoute()\nlet cookieData = cookie.getShop()\nconst { data: courseInfo } = await useAsyncData(\"combine\"+route.query.id, async (ctx) => {\n  // console.log(ctx,'ctx')\n  return await getCourseView({id:route.query.id});\n});\n// console.log(cookieData,'courseInfo')\nuseHead({\n  title: `${courseInfo.value.courseName?courseInfo.value.courseName+'-'+ cookieData.shopName:'组合课观看'}`,\n  meta:[{\n    hid: 'keywords',\n    name: 'keywords',\n    content: courseInfo.value.courseName\n  },\n    {\n      hid: 'description',\n      name: 'description',\n      content: courseInfo.value.courseDesc ? courseInfo.value.courseDesc : courseInfo.value.courseName\n    }]\n})\n\nconst opts = reactive({\n  errorNum:0,\n  info:{},\n  PeriodTypeEnum:{},\n  lastLearn:{}\n})\nconst {getEnumList,getToken,userView} = useUserStore()\nconst userInfo = computed(()=>{\n  return userView\n})\nconst token = computed(()=>{\n  return getToken()\n})\nconst map = reactive({\n  id:'',\n  topicCourseId:'',\n  superiorResourceId:[],\n  periodId:''\n})\nconst ctrl = reactive({\n  share:false,\n  loading:false\n})\nconst handleShare = () => {\n  ctrl.share = true\n}\nconst getInfo = () => {\n  if(token.value) {\n    getAuthCourseView(map).then(res => {\n      ctrl.loading = false\n      opts.info = res\n      // route.meta.title = opts.info.courseName\n      opts.info.courseIntro = opts.info.courseIntro.replace(/<a style=\"position: relative; width: 144px; height: 80px; margin:  10px; display: inline-block;/,'<a style=\"position: relative; width: 144px; height: auto; margin:  10px; display: inline-block;').replace(/<img/g,'<img style=\"width:100%\"')\n    }).catch(() => {\n      ctrl.loading = false\n      opts.errorNum++\n      if (!opts.infoTimer) {\n        opts.infoTimer = setInterval(getInfo, 3000)\n      }\n      if(opts.errorNum > 5){\n        if (opts.infoTimer) {\n          clearInterval(opts.infoTimer)\n          opts.infoTimer = null\n        }\n      }\n    })\n  }else{\n    getCourseView(map).then(res=>{\n      ctrl.loading = false\n      opts.info = res\n      // route.meta.title = opts.info.courseName\n      opts.info.courseIntro = opts.info.courseIntro.replace(/<a style=\"position: relative; width: 144px; height: 80px; margin:  10px; display: inline-block;/,'<a style=\"position: relative; width: 144px; height: auto; margin:  10px; display: inline-block;').replace(/<img/g,'<img style=\"width:100%\"')\n      if(opts.infoTimer){\n        clearInterval(opts.infoTimer)\n        opts.infoTimer = null\n      }\n    }).catch(()=>{\n      ctrl.loading = false\n    })\n  }\n}\nonMounted(() => {\n  console.log('onMounted')\n  getEnumList(\"CourseTypeEnum\", \"obj\").then((res) => {\n    opts.PeriodTypeEnum = res;\n  });\n  if(route.query.id){\n    map.id = route.query.id\n  }\n  if(route.query.topicId){\n    map.topicCourseId = route.query.topicId\n  }\n  if(route.query.superiorResourceId){\n    map.superiorResourceId = route.query.superiorResourceId\n  }\n  if(route.query.periodId){\n    map.periodId = route.query.periodId\n  }\n  getInfo()\n})\n</script>\n\n<style scoped>\n.app_container{\n  padding-bottom: 0;\n}\n</style>\n"],"names":["route","useRoute","cookieData","cookie","getShop","data","courseInfo","getCourseView","id","query","useHead","title","value","courseName","shopName","meta","hid","name","content","courseDesc","opts","reactive","errorNum","info","PeriodTypeEnum","lastLearn","getEnumList","getToken","userView","useUserStore","computed","token","map","topicCourseId","superiorResourceId","periodId","ctrl","share","loading","handleShare","getInfo","getAuthCourseView","then","res","courseIntro","replace","catch","infoTimer","setInterval","clearInterval","onMounted","topicId"],"mappings":"4TAkBA,MAAAA,EAAAC,IACA,IAAAC,EAAAC,EAAAC,UACA,MAAAC,KAAAC,6DAEAC,EAAA,CAAAC,GAAAR,EAAAS,MAAAD,MACA,kCAEAE,EAAA,CACAC,MAAA,IAAAL,EAAAM,MAAAC,WAAAP,EAAAM,MAAAC,WAAA,IAAAX,EAAAY,SAAA,SACAC,KAAA,CAAA,CACAC,IAAA,WACAC,KAAA,WACAC,QAAAZ,EAAAM,MAAAC,YAEA,CACAG,IAAA,cACAC,KAAA,cACAC,QAAAZ,EAAAM,MAAAO,WAAAb,EAAAM,MAAAO,WAAAb,EAAAM,MAAAC,eAIA,MAAAO,EAAAC,EAAA,CACAC,SAAA,EACAC,KAAA,CAAA,EACAC,eAAA,CAAA,EACAC,UAAA,CAAA,KAEAC,YAAAA,EAAAC,SAAAA,EAAAC,SAAAA,GAAAC,IACAC,GAAA,IACAF,IAEA,MAAAG,EAAAD,GAAA,IACAH,MAEAK,EAAAX,EAAA,CACAb,GAAA,GACAyB,cAAA,GACAC,mBAAA,GACAC,SAAA,KAEAC,EAAAf,EAAA,CACAgB,OAAA,EACAC,SAAA,IAEAC,EAAA,KACAH,EAAAC,OAAA,CAAA,EAEAG,EAAA,KACAT,EAAAnB,MACA6B,EAAAT,GAAAU,MAAAC,IACAP,EAAAE,SAAA,EACAlB,EAAAG,KAAAoB,EAEAvB,EAAAG,KAAAqB,YAAAxB,EAAAG,KAAAqB,YAAAC,QAAA,kGAAA,mGAAAA,QAAA,QAAA,0BAAA,IACAC,OAAA,KACAV,EAAAE,SAAA,EACAlB,EAAAE,WACAF,EAAA2B,YACA3B,EAAA2B,UAAAC,YAAAR,EAAA,MAEApB,EAAAE,SAAA,GACAF,EAAA2B,YACAE,cAAA7B,EAAA2B,WACA3B,EAAA2B,UAAA,KAEA,IAGAxC,EAAAyB,GAAAU,MAAAC,IACAP,EAAAE,SAAA,EACAlB,EAAAG,KAAAoB,EAEAvB,EAAAG,KAAAqB,YAAAxB,EAAAG,KAAAqB,YAAAC,QAAA,kGAAA,mGAAAA,QAAA,QAAA,2BACAzB,EAAA2B,YACAE,cAAA7B,EAAA2B,WACA3B,EAAA2B,UAAA,KACA,IACAD,OAAA,KACAV,EAAAE,SAAA,CAAA,GAEA,SAEAY,GAAA,KAEAxB,EAAA,iBAAA,OAAAgB,MAAAC,IACAvB,EAAAI,eAAAmB,CAAA,IAEA3C,EAAAS,MAAAD,KACAwB,EAAAxB,GAAAR,EAAAS,MAAAD,IAEAR,EAAAS,MAAA0C,UACAnB,EAAAC,cAAAjC,EAAAS,MAAA0C,SAEAnD,EAAAS,MAAAyB,qBACAF,EAAAE,mBAAAlC,EAAAS,MAAAyB,oBAEAlC,EAAAS,MAAA0B,WACAH,EAAAG,SAAAnC,EAAAS,MAAA0B,UAEAK,GAAA"}