{"version":3,"file":"single.fc7d5cab.mjs","sources":["../../../../pages/course/single.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-video-pane @update=\"getInfo\" v-if=\"opts.info.courseType ===2\" @share=\"handleShare\" :query=\"route.query\" :info=\"opts.info\" :type=\"opts.PeriodTypeEnum\" :userInfo=\"userInfo\"></course-video-pane>\n          <course-audio-pane @update=\"getInfo\" v-if=\"opts.info.courseType ===3\" @share=\"handleShare\" :query=\"route.query\" :info=\"opts.info\" :type=\"opts.PeriodTypeEnum\" :userInfo=\"userInfo\"></course-audio-pane>\n          <course-live-pane @update=\"getInfo\" v-if=\"opts.info.courseType ===1\" @share=\"handleShare\" :query=\"route.query\" :info=\"opts.info\" :type=\"opts.PeriodTypeEnum\" :userInfo=\"userInfo\"></course-live-pane>\n          <course-graphic-pane @update=\"getInfo\" v-if=\"opts.info.courseType ===4\" @share=\"handleShare\" :query=\"route.query\" :info=\"opts.info\" :type=\"opts.PeriodTypeEnum\" :userInfo=\"userInfo\"></course-graphic-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>\nimport {useUserStore} from \"../../stores/user\";\nimport { courseViewImageTextApi, getAuthCourseView, getCourseView} from \"../../api/course\";\nimport { forbidCopy } from \"@/utils\"\nimport cookie from '@/utils/cookies'\n\nconst route = useRoute()\nlet cookieData = cookie.getShop()\n\nconst { data: courseInfo } = await useAsyncData(\"single\"+route.query.id, async (ctx) => {\n  // console.log(ctx,'ctx')\n  return await getCourseView({id:route.query.id});\n});\n// console.log(courseInfo.value,'courseInfo')\nuseHead({\n  title: computed(() => `${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})\nconst opts = reactive({\n  errorNum:0,\n  info:{},\n  PeriodTypeEnum:{},\n  infoTimer:null\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  superiorResourceId:[]\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          nextTick(() => {\n            if(opts.info && opts.info.enableForbidContentCopy) {\n              forbidCopy('.video_content')\n            }\n          })\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 (res.courseType === 4 && !res.buyStatus && res.price === 0) {\n        courseViewImageTextApi({id: map.id}).then(res => {\n          opts.info.courseContent = res.courseContent\n          nextTick(() => {\n            if(opts.info && opts.info.enableForbidContentCopy) {\n              forbidCopy('.video_content')\n            }\n          })\n        })\n      }\n      if(opts.infoTimer){\n        clearInterval(opts.infoTimer)\n        opts.infoTimer = null\n      }\n    }).catch(()=>{\n      ctrl.loading = false\n    })\n  }\n}\nonMounted(() => {\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.superiorResourceId){\n    map.superiorResourceId = route.query.superiorResourceId\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","computed","value","courseName","shopName","meta","hid","name","content","courseDesc","opts","reactive","errorNum","info","PeriodTypeEnum","infoTimer","getEnumList","getToken","userView","useUserStore","userInfo","token","map","superiorResourceId","ctrl","share","loading","handleShare","getInfo","getAuthCourseView","then","res","courseIntro","replace","nextTick","enableForbidContentCopy","forbidCopy","catch","setInterval","clearInterval","courseType","buyStatus","price","courseViewImageTextApi","courseContent","onMounted"],"mappings":"gXAsBA,MAAAA,EAAAC,IACA,IAAAC,EAAAC,EAAAC,UAEA,MAAAC,KAAAC,4DAEAC,EAAA,CAAAC,GAAAR,EAAAS,MAAAD,MACA,kCAEAE,EAAA,CACAC,MAAAC,GAAA,IAAA,IAAAN,EAAAO,MAAAC,WAAAR,EAAAO,MAAAC,WAAA,IAAAZ,EAAAa,SAAA,UACAC,KAAA,CAAA,CACAC,IAAA,WACAC,KAAA,WACAC,QAAAb,EAAAO,MAAAC,YAEA,CACAG,IAAA,cACAC,KAAA,cACAC,QAAAb,EAAAO,MAAAO,WAAAd,EAAAO,MAAAO,WAAAd,EAAAO,MAAAC,eAGA,MAAAO,EAAAC,EAAA,CACAC,SAAA,EACAC,KAAA,CAAA,EACAC,eAAA,CAAA,EACAC,UAAA,QAEAC,YAAAA,EAAAC,SAAAA,EAAAC,SAAAA,GAAAC,IACAC,EAAAnB,GAAA,IACAiB,IAEAG,EAAApB,GAAA,IACAgB,MAEAK,EAAAX,EAAA,CACAd,GAAA,GACA0B,mBAAA,KAEAC,EAAAb,EAAA,CACAc,OAAA,EACAC,SAAA,IAEAC,EAAA,KACAH,EAAAC,OAAA,CAAA,EAEAG,EAAA,KACAP,EAAAnB,MACA2B,EAAAP,GAAAQ,MAAAC,IACAP,EAAAE,SAAA,EACAhB,EAAAG,KAAAkB,EAEArB,EAAAG,KAAAmB,YAAAtB,EAAAG,KAAAmB,YAAAC,QAAA,kGAAA,mGAAAA,QAAA,QAAA,2BACAC,GAAA,KACAxB,EAAAG,MAAAH,EAAAG,KAAAsB,yBACAC,EAAA,iBACA,GACA,IACAC,OAAA,KACAb,EAAAE,SAAA,EACAhB,EAAAE,WACAF,EAAAK,YACAL,EAAAK,UAAAuB,YAAAV,EAAA,MAEAlB,EAAAE,SAAA,GACAF,EAAAK,YACAwB,cAAA7B,EAAAK,WACAL,EAAAK,UAAA,KAEA,IAGAnB,EAAA0B,GAAAQ,MAAAC,IACAP,EAAAE,SAAA,EACAhB,EAAAG,KAAAkB,EAEArB,EAAAG,KAAAmB,YAAAtB,EAAAG,KAAAmB,YAAAC,QAAA,kGAAA,mGAAAA,QAAA,QAAA,2BACA,IAAAF,EAAAS,YAAAT,EAAAU,WAAA,IAAAV,EAAAW,OACAC,EAAA,CAAA9C,GAAAyB,EAAAzB,KAAAiC,MAAAC,IACArB,EAAAG,KAAA+B,cAAAb,EAAAa,cACAV,GAAA,KACAxB,EAAAG,MAAAH,EAAAG,KAAAsB,yBACAC,EAAA,iBACA,GACA,IAGA1B,EAAAK,YACAwB,cAAA7B,EAAAK,WACAL,EAAAK,UAAA,KACA,IACAsB,OAAA,KACAb,EAAAE,SAAA,CAAA,GAEA,SAEAmB,GAAA,KACA7B,EAAA,iBAAA,OAAAc,MAAAC,IACArB,EAAAI,eAAAiB,CAAA,IAEA1C,EAAAS,MAAAD,KACAyB,EAAAzB,GAAAR,EAAAS,MAAAD,IAEAR,EAAAS,MAAAyB,qBACAD,EAAAC,mBAAAlC,EAAAS,MAAAyB,oBAEAK,GAAA"}