cshenfu
2024-05-21 09d8c671d5e6e6045677bfb5218a5fb78c26aa0f
1
{"version":3,"sources":["uni-app:///main.js",null,"webpack:////Users/mac/Desktop/UceEduFront/uni_modules/uce-course/pages/video/startWatchVideo.vue?2dbd","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/uce-course/pages/video/startWatchVideo.vue?a24b","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/uce-course/pages/video/startWatchVideo.vue?34b8","uni-app:///uni_modules/uce-course/pages/video/startWatchVideo.vue","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/uce-course/pages/video/startWatchVideo.vue?33cf","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/uce-course/pages/video/startWatchVideo.vue?7fe8"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page","data","appWebviewVideoUrl","playOptions","video","title","short_description","course","thumb","timer1","chapters","videos","attachs","navTab","isBuy","videoWatchedProgress","comments","commentUsers","videoId","courseId","commentContent","playInfo","playUrl","poster","lastPlaySeconds","isIos","list","name","current","swiperCurrent","duration1","videoContext","playbackRate","rate","danmuList","watchState","cIndex","vIndex","newconfig","player","enabled_bullet_secret","bullet_secret","text","filters","durationForHuman","computed","formattedDuration","isTrySee","isBanDrag","onLoad","that","methods","handleVideoPlay","console","handleVideoPause","startTimer","stopTimer","clearInterval","DPlayerDestroy","getCourse","uni","url","_id","need_user_info","success","res","changeRate","getVideo","course_id","video_id","setTimeout","wv","top","height","clearTimeout","fail","initDPlayer","parseInt","window","container","autoplay","playbackSpeed","pic","try","bulletSecret","enabled","replace","size","color","opacity","ban_drag","last_see_pos","currentTime","dplay","getPlayInfo","icon","watched_at","goVideo","playEnd","watch_seconds","buyCourse","checkPdf","type","tabsChange","transition","animationfinish"],"mappings":";;;;;;;;;;;;;AAAA;AAE2D;AAC3D;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,wBAAI,CAAC,C;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4H;AAC5H;AACmE;AACL;AACc;;;AAG5E;AACmN;AACnN,gBAAgB,iNAAU;AAC1B,EAAE,qFAAM;AACR,EAAE,0FAAM;AACR,EAAE,mGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,8FAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,aAAa,+TAEN;AACP,KAAK;AACL;AACA,aAAa,4NAEN;AACP,KAAK;AACL;AACA,aAAa,4RAEN;AACP,KAAK;AACL;AACA,aAAa,wPAEN;AACP,KAAK;AACL;AACA,aAAa,sRAEN;AACP,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpGA;AAAA;AAAA;AAAA;AAA41B,CAAgB,6yBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;ACkHh3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AAAA,eAEA;EACAC;IACA;MACAC;MACAC;MACAC;QACAC;QACAC;MACA;MACAC;QACAC;MACA;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;QACAC;MACA;QACAA;MACA;QACAA;MACA;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACA;MACAC;MACAC;MACAC;QACAC;UACAC;UACAC;YAAAC;UAAA;QACA;MACA;IACA;EACA;EACAC;IACAC;MACA;IACA;EACA;EACAC;IACAC;MACA;MACA;MACA;MACA;IACA;IACAC;MACA;IACA;IACAC;MACA;IACA;EACA;EACAC;IACAC;IACA;IACA;IACA;IAEA;EACA;EACAC;IACAC;MACAC;MACA;IACA;IACAC;MACAD;MACA;IACA;IACAE;MAAA;MACA;QACA;MACA;IACA;IACAC;MACAH;MACAI;MACA;IACA;IACAC,2CAMA;IACAC;MACAC;QACAC;QACAxD;QACAJ;UACA6D;UACAC;QACA;QACAC;UACA;UACA,kCACAC,+EACA;UAEAf;UACAA;UAEAA;UACAA;QACA;MACA;IACA;IACAgB;MACA;MACA;IACA;IACAC;MAAA;MACAP;QACAvD;MACA;MACAuD;QACAC;QACA5D;UACAmE;UACAC;UACAN;QACA;QACAC;UACAJ;YACAvD;UACA;UACA;UACA,gCACA4D,2EACA;UAEA;UACA;YACA7D,8BACA,KACA,qCACA;UACA;UAEA8C;UACA;YACAA;UACA;YACAA;UACA;UAGA;YACA;YACA;YACA;YACAoB;cACApB;cACAA;YACA;UACA;YACA;YACA;YACA;cACA;cACAG;cACAkB;gBACA;gBACAC;gBACAC;gBACA;AACA;AACA;cACA;;cACAC;YACA;UACA;UAeAd;QACA;QACAe;UACAf;QACA;MACA;IACA;IACAgB;MAAA;QAAA;QAAA;QAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MAEA,uEACA,KACAC;;MAEA;MACA;MACA;MACA;MACA;MACA;;MAEAC;QACAC;QACAC;QACAC;QACA7E;UACAyD;UACA;UACAqB;QACA;QACAC;QACAC;UACAC;UACA3C,+CACA4C,yIACAA,uIACAA;UACAC;UACAC,oDACA;UACAC;QACA;QACAC;QACAC;MACA;;MAEA;MACAb;QACA;QACA,IACA,oBACAc,6CACAA,+CACA;UACAd;QACA;UACA;UACA;QACA;MACA;;MACAA;QACA;QACA,IACA,oBACAA,4DACA;UACAA;UACA;QACA;QACA;QACA;QACA;QACA;QACAA;MACA;MACAA;QACA;MACA;MACA;MACAR;QACA;QACA;QACA;QACA;UACAuB;UACAA;UACAA;QACA;UACAA;UACAA;UACAA;QACA;MACA;IACA;IACAC;MAAA;MACA1F;QACA;UACAwD;YACAmC;YACA1F;UACA;QACA;UACA;UACA;;UAEA;UACA;UAEA,iGACA2F;YACA;YACApC;cACAvD,qFACAD;cACA2F;YACA;UACA;QAEA;MACA;IACA;IAEAE;MACA;MACA;MACA;;MAEA;;MAEA;MACA;MACA;;MAQA;MACA;MACA;IACA;IAEAC;MACA;MACA;MAEAtC;QACAC;QACA5D;UACAmE;UACAC;UACA8B;UACAH;QACA;QACAhC;UACA;UACAd;YACAY;UACA;QACA;MACA;IACA;IACAsC;MACA;MACAxC;QACAC;QACA5D;UACA6D;QACA;QACAE;UACA;UACAJ;QACA;MACA;IACA;IACAyC;MACA;QACA;UACAhG;UACAiG;QACA;QACA;MACA;MACA1C;IACA;IACA;IACA2C;MACA;IACA;IACA;IACAC;MACA;MACA;IACA;IACA;IACA;IACAC;MACA;MACA;MACA;MACA;IACA;EACA;AACA;AAAA,2B;;;;;;;;;;;;;AC3hBA;AAAA;AAAA;AAAA;AAAukD,CAAgB,46CAAG,EAAC,C;;;;;;;;;;;ACA3lD;AACA,OAAO,KAAU,EAAE,kBAKd","file":"uni_modules/uce-course/pages/video/startWatchVideo.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;import '@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js';\nimport Vue from 'vue'\nimport Page from './uni_modules/uce-course/pages/video/startWatchVideo.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./startWatchVideo.vue?vue&type=template&id=24813816&\"\nvar renderjs\nimport script from \"./startWatchVideo.vue?vue&type=script&lang=js&\"\nexport * from \"./startWatchVideo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./startWatchVideo.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null,\n  false,\n  components,\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uce-course/pages/video/startWatchVideo.vue\"\nexport default component.exports","export * from \"-!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./startWatchVideo.vue?vue&type=template&id=24813816&\"","var components\ntry {\n  components = {\n    uTabsSwiper: function () {\n      return import(\n        /* webpackChunkName: \"node-modules/uview-ui/components/u-tabs-swiper/u-tabs-swiper\" */ \"uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue\"\n      )\n    },\n    empty: function () {\n      return import(\n        /* webpackChunkName: \"components/empty/empty\" */ \"@/components/empty/empty.vue\"\n      )\n    },\n    uParse: function () {\n      return import(\n        /* webpackChunkName: \"node-modules/uview-ui/components/u-parse/u-parse\" */ \"uview-ui/components/u-parse/u-parse.vue\"\n      )\n    },\n    uCollapse: function () {\n      return import(\n        /* webpackChunkName: \"node-modules/uview-ui/components/u-collapse/u-collapse\" */ \"uview-ui/components/u-collapse/u-collapse.vue\"\n      )\n    },\n    uCollapseItem: function () {\n      return import(\n        /* webpackChunkName: \"node-modules/uview-ui/components/u-collapse-item/u-collapse-item\" */ \"uview-ui/components/u-collapse-item/u-collapse-item.vue\"\n      )\n    },\n  }\n} catch (e) {\n  if (\n    e.message.indexOf(\"Cannot find module\") !== -1 &&\n    e.message.indexOf(\".vue\") !== -1\n  ) {\n    console.error(e.message)\n    console.error(\"1. 排查组件名称拼写是否正确\")\n    console.error(\n      \"2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom\"\n    )\n    console.error(\n      \"3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件\"\n    )\n  } else {\n    throw e\n  }\n}\nvar render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  var g0 = _vm.vk.pubfn.isNotNull(_vm.chapters)\n  var l1 = g0\n    ? _vm.__map(_vm.chapters, function (chapter, index) {\n        var $orig = _vm.__get_orig(chapter)\n        var l0 = _vm.__map(chapter.videos, function (item, index2) {\n          var $orig = _vm.__get_orig(item)\n          var g1 = !(_vm.video._id == item._id && _vm.isBuy)\n            ? _vm.vk.pubfn.isNotNull(item.watch_info)\n            : null\n          var f0 =\n            !(_vm.video._id == item._id && _vm.isBuy) && !g1\n              ? _vm._f(\"durationForHuman\")(item.duration)\n              : null\n          return {\n            $orig: $orig,\n            g1: g1,\n            f0: f0,\n          }\n        })\n        return {\n          $orig: $orig,\n          l0: l0,\n        }\n      })\n    : null\n  var g2 = _vm.vk.pubfn.isNotNull(_vm.chapters)\n  var l2 = g2\n    ? _vm.__map(_vm.chapters, function (item, index) {\n        var $orig = _vm.__get_orig(item)\n        var g3 = _vm.vk.pubfn.isNotNull(item.word)\n        return {\n          $orig: $orig,\n          g3: g3,\n        }\n      })\n    : null\n  _vm.$mp.data = Object.assign(\n    {},\n    {\n      $root: {\n        g0: g0,\n        l1: l1,\n        g2: g2,\n        l2: l2,\n      },\n    }\n  )\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./startWatchVideo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./startWatchVideo.vue?vue&type=script&lang=js&\"","<template>\r\n\t<view>\r\n\t\t<!-- 视频区 -->\r\n\t\t<view class=\"play-box\">\r\n\t\t\t<block v-if=\"watchState == 1\">\r\n\t\t\t\t<!-- #ifdef H5 -->\r\n\t\t\t\t<view class=\"iframe-player-box\" v-if=\"video.use_type=='bilibili'\" v-html=\"video.url\"></view>\r\n\t\t\t\t<view class=\"player-container\" id=\"player-container\" v-else>\r\n\t\t\t\t</view>\r\n\t\t\t\t<!-- #endif -->\r\n\t\t\t\t<!-- #ifdef APP-PLUS || MP-WEIXIN -->\r\n\t\t\t\t<web-view class=\"iframe-player-box\" v-if=\"video.use_type=='bilibili'\" :src=\"appWebviewVideoUrl\">\r\n\t\t\t\t</web-view>\r\n\t\t\t\t<video id=\"myVideo\" @play=\"handleVideoPlay\" @pause=\"handleVideoPause\" :src=\"video.url\" :poster=\"poster\" :title=\"video.title\" ref=\"video\"\r\n\t\t\t\t\t:poster-for-crawler=\"course.thumb\" @ended=\"playEnd\" object-fit='contain' :enable-danmu=\"true\"\r\n\t\t\t\t\t:danmu-list=\"danmuList\" :auto-pause-if-navigate=\"false\" :auto-pause-if-open-native=\"false\"\r\n\t\t\t\t\tv-else></video>\r\n\t\t\t\t<!-- #endif -->\r\n\t\t\t</block>\r\n\t\t\t<block v-if=\"watchState == 2\">\r\n\t\t\t\t<view class=\"no-auth\" @click=\"buyCourse\">\r\n\t\t\t\t\t<text class=\"btn\">请先报名</text>\r\n\t\t\t\t</view>\r\n\t\t\t</block>\r\n\t\t</view>\r\n\t\t<!-- 课程介绍 -->\r\n\t\t<view class=\"course-info\">\r\n\t\t\t<view class=\"course-title\">\r\n\t\t\t\t{{video.title}}\r\n\t\t\t</view>\r\n\t\t\t<view class=\"course-desc\">\r\n\t\t\t\t简介:{{video.short_description}}\r\n\t\t\t</view>\r\n\t\t\t<view class=\"play-rate\">\r\n\t\t\t\t<text>倍速:</text>\r\n\t\t\t\t<view class=\"rate-item\" :class=\"playbackRate == index ? 'active' : ''\" v-for=\"(item,index) in rate\"\r\n\t\t\t\t\t:key=\"item\" @click=\"changeRate(item,index)\">\r\n\t\t\t\t\t{{item}} X\r\n\t\t\t\t</view>\r\n\t\t\t</view>\n\t\t\t<view class=\"play-rate\">\n\t\t\t\t<text>播放时长:</text>\n\t\t\t</view>\n\t\t\t<view class=\"play-rate\">\n\t\t\t\t<text>循环次数:</text>\n\t\t\t</view>\r\n\t\t</view>\r\n\t\t<view class=\"course-tabs\">\r\n\t\t\t<u-tabs-swiper ref=\"uTabs\" active-color=\"#FF4B4B\" :list=\"list\" :current=\"current\" @change=\"tabsChange\"\r\n\t\t\t\t:is-scroll=\"false\" swiperWidth=\"750\"></u-tabs-swiper>\r\n\t\t</view>\r\n\t\t<swiper duration=\"200\" class=\"swiper-item-box\" :current=\"swiperCurrent\" @transition=\"transition\"\r\n\t\t\t@animationfinish=\"animationfinish\">\r\n\t\t\t<swiper-item class=\"swiper-item\">\r\n\t\t\t\t<scroll-view scroll-y>\r\n\t\t\t\t\t<view class=\"chapters\">\r\n\t\t\t\t\t\t<block v-if=\"vk.pubfn.isNotNull(chapters)\">\r\n\t\t\t\t\t\t\t<view class=\"chapter-item\" v-for=\"(chapter,index) in chapters\" :key=\"chapter._id\">\r\n\t\t\t\t\t\t\t\t<view class=\"chapter-name\">{{chapter.title}}</view>\r\n\t\t\t\t\t\t\t\t<view class=\"video-item\" v-for=\"(item,index2) in chapter.videos\" :key=\"item._id\"\r\n\t\t\t\t\t\t\t\t\t@click=\"goVideo(item._id,index,index2)\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"name\" :class=\"video._id == item._id ? 'active' : ''\">\r\n\t\t\t\t\t\t\t\t\t\t<text class=\"free\">视频</text>\r\n\t\t\t\t\t\t\t\t\t\t<text class=\"free\" v-if=\"item.free_seconds && !isBuy\">试看</text>\r\n\t\t\t\t\t\t\t\t\t\t<text class=\"video-name\">{{item.title}}</text>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"duration\" v-if=\"video._id == item._id && isBuy\">\r\n\t\t\t\t\t\t\t\t\t\t<image src=\"@/static/liveing.gif\" mode=\"widthFix\"></image>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"duration\" v-else>\r\n\t\t\t\t\t\t\t\t\t\t<block v-if=\"vk.pubfn.isNotNull(item.watch_info)\">已看完</block>\r\n\t\t\t\t\t\t\t\t\t\t<block v-else>{{item.duration | durationForHuman}}</block>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t</block>\r\n\t\t\t\t\t\t<empty v-else :tipText=\"'暂未更新课程'\"></empty>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</scroll-view>\r\n\t\t\t</swiper-item>\r\n\t\t\t<swiper-item class=\"swiper-item\">\r\n\t\t\t\t<scroll-view scroll-y>\r\n\t\t\t\t\t<u-parse :html=\"video.render_desc\"></u-parse>\r\n\t\t\t\t</scroll-view>\r\n\t\t\t</swiper-item>\r\n\t\t\t<swiper-item class=\"swiper-item\">\r\n\t\t\t\t<scroll-view scroll-y>\r\n\t\t\t\t\t<view class=\"chapters\">\r\n\t\t\t\t\t\t<block v-if=\"vk.pubfn.isNotNull(chapters)\">\r\n\t\t\t\t\t\t\t<u-collapse event-type=\"close\" :arrow=\"true\" :accordion=\"false\">\r\n\t\t\t\t\t\t\t\t<u-collapse-item :index=\"index\" :title=\"item.title\" v-for=\"(item, index) in chapters\"\r\n\t\t\t\t\t\t\t\t\t:key=\"item._id\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"collapse-item collapse-item-word\" v-if=\"vk.pubfn.isNotNull(item.word)\"\r\n\t\t\t\t\t\t\t\t\t\t@click=\"checkPdf(item.word.url)\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"u-node\"></view>\r\n\t\t\t\t\t\t\t\t\t\t{{item.word.title}}\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"collapse-item\" v-else>\r\n\t\t\t\t\t\t\t\t\t\t暂无讲义\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</u-collapse-item>\r\n\t\t\t\t\t\t\t</u-collapse>\r\n\t\t\t\t\t\t</block>\r\n\t\t\t\t\t\t<empty v-else :tipText=\"'暂未更新讲义'\"></empty>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</scroll-view>\r\n\t\t\t</swiper-item>\r\n\t\t</swiper>\r\n\r\n\r\n\t</view>\r\n</template>\r\n\r\n<script>\r\n\timport util from '@/utils/util'\r\n\tvar that\r\n\tconst app = getApp();\r\n\r\n\texport default {\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tappWebviewVideoUrl: '',\r\n\t\t\t\tplayOptions: [],\r\n\t\t\t\tvideo: {\r\n\t\t\t\t\ttitle: \"\",\r\n\t\t\t\t\tshort_description: \"\"\r\n\t\t\t\t},\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tthumb: null\r\n\t\t\t\t},\n\t\t\t\ttimer1:null,\r\n\t\t\t\tchapters: [],\r\n\t\t\t\tvideos: [],\r\n\t\t\t\tattachs: [],\r\n\t\t\t\tnavTab: 'menu',\r\n\t\t\t\tisBuy: false,\r\n\t\t\t\tvideoWatchedProgress: [],\r\n\t\t\t\tcomments: [],\r\n\t\t\t\tcommentUsers: [],\r\n\t\t\t\tvideoId: 0,\r\n\t\t\t\tcourseId: 0,\r\n\t\t\t\tcommentContent: '',\r\n\t\t\t\tplayInfo: [],\r\n\t\t\t\tplayUrl: '',\r\n\t\t\t\tposter: '',\r\n\t\t\t\tlastPlaySeconds: 0,\r\n\t\t\t\tisIos: util.isIos(),\r\n\t\t\t\tlist: [{\r\n\t\t\t\t\tname: '课程目录'\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: '视频介绍'\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: '讲义目录'\r\n\t\t\t\t}],\r\n\t\t\t\tcurrent: 0,\r\n\t\t\t\tswiperCurrent: 0,\n\t\t\t\tduration1:0,\r\n\t\t\t\tvideoContext: null,\r\n\t\t\t\tplaybackRate: 2,\r\n\t\t\t\trate: [0.5, 0.8, 1.0, 1.25, 1.5],\r\n\t\t\t\tdanmuList: [],\r\n\t\t\t\twatchState: 0,\r\n\t\t\t\t// 记录位置\r\n\t\t\t\tcIndex: 0,\r\n\t\t\t\tvIndex: 0,\r\n\t\t\t\tnewconfig: {\r\n\t\t\t\t\tplayer: {\r\n\t\t\t\t\t\tenabled_bullet_secret: 0,\r\n\t\t\t\t\t\tbullet_secret: { text: '' }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t},\r\n\t\tfilters: {\r\n\t\t\tdurationForHuman(data) {\r\n\t\t\t\treturn util.durationForHuman(data)\r\n\t\t\t}\r\n\t\t},\r\n\t\tcomputed: {\n\t\t\tformattedDuration() {\n\t\t\t\t// 将毫秒转换为分:秒格式  \n\t\t\t\tconst minutes = Math.floor(this.duration1 / 60000);  \n\t\t\t\tconst seconds = Math.floor((this.duration1 % 60000) / 1000);  \n\t\t\t\treturn `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;  \n\t\t\t},\r\n\t\t\tisTrySee() {\r\n\t\t\t\treturn !that.isBuy && this.video.free_seconds > 0\r\n\t\t\t},\r\n\t\t\tisBanDrag() {\r\n\t\t\t\treturn this.video.ban_drag\r\n\t\t\t}\r\n\t\t},\r\n\t\tonLoad: function(options) {\r\n\t\t\tthat = this\r\n\t\t\tthis.courseId = options.course_id\r\n\t\t\tthis.videoId = options.video_id\r\n\t\t\tthis.poster = app.globalData.player_cover\r\n\r\n\t\t\tthis.getCourse();\r\n\t\t},\r\n\t\tmethods: {\n\t\t\thandleVideoPlay() {\n\t\t\t\tconsole.log('视频开始播放');\n\t\t\t\t// 在这里添加你的播放时逻辑\n\t\t\t},\n\t\t\thandleVideoPause() {\n\t\t\t\tconsole.log('视频已暂停');\n\t\t\t\t// 在这里添加你的暂停时逻辑\n\t\t\t},\n\t\t\tstartTimer() {\n\t\t\t\tthis.timer1 = setInterval(() => {  \n\t\t\t\t\tthis.duration1 += 1000;  \n\t\t\t\t}, 1000);  \n\t\t\t},  \n\t\t\tstopTimer() {  \n\t\t\t\tconsole.log('zhanting')\n\t\t\t\tclearInterval(this.timer1);  \n\t\t\t\tthis.timer1 = null;  \n\t\t\t}, \r\n\t\t\tDPlayerDestroy() {\r\n\t\t\t\t// #ifdef H5\r\n\t\t\t\tif (window.player) {\r\n\t\t\t\t\twindow.player.destroy();\r\n\t\t\t\t}\r\n\t\t\t\t// #endif\r\n\t\t\t},\r\n\t\t\tgetCourse() {\r\n\t\t\t\tuni.vk.callFunction({\r\n\t\t\t\t\turl: 'client/course/pub/detail',\r\n\t\t\t\t\ttitle: '获取课程列表',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t_id: this.courseId,\r\n\t\t\t\t\t\tneed_user_info: true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess(res) {\r\n\t\t\t\t\t\t// \t// 富文本图片溢出\r\n\t\t\t\t\t\tif (res.data.courses.render_desc)\r\n\t\t\t\t\t\t\tres.data.courses.render_desc = res.data.courses.render_desc.replace(/\\<img/gi,\r\n\t\t\t\t\t\t\t\t'<img style=\"max-width:100%;height:auto;display:block;\" ');\r\n\r\n\t\t\t\t\t\tthat.course = res.data.courses\r\n\t\t\t\t\t\tthat.chapters = res.data.test\r\n\r\n\t\t\t\t\t\tthat.isBuy = res.data.has_buy\r\n\t\t\t\t\t\tthat.getVideo();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tchangeRate(rate, index) {\r\n\t\t\t\tthis.playbackRate = index\r\n\t\t\t\tthis.videoContext.playbackRate(this.rate[this.playbackRate])\r\n\t\t\t},\r\n\t\t\tgetVideo() {\r\n\t\t\t\tuni.showLoading({\r\n\t\t\t\t\ttitle: \"视频加载中...\"\r\n\t\t\t\t})\r\n\t\t\t\tuni.vk.callFunction({\r\n\t\t\t\t\turl: 'client/course/pub/video_detail',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tcourse_id: this.courseId,\r\n\t\t\t\t\t\tvideo_id: this.videoId,\r\n\t\t\t\t\t\tneed_user_info: true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (res) => {\r\n\t\t\t\t\t\tuni.setNavigationBarTitle({\r\n\t\t\t\t\t\t\ttitle: res.data.video.title,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t// \t// 富文本图片溢出\r\n\t\t\t\t\t\tif (res.data.video.render_desc)\r\n\t\t\t\t\t\t\tres.data.video.render_desc = res.data.video.render_desc.replace(/\\<img/gi,\r\n\t\t\t\t\t\t\t\t'<img style=\"max-width:100%;height:auto\" ');\r\n\r\n\t\t\t\t\t\tlet video = res.data.video\r\n\t\t\t\t\t\tif (video.use_type == 'bilibili' && video.url) {\r\n\t\t\t\t\t\t\tvideo.url = video.url.replace(\r\n\t\t\t\t\t\t\t\t\">\",\r\n\t\t\t\t\t\t\t\t' style=\"width:100%;height:210px\" >'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthat.video = video\r\n\t\t\t\t\t\tif (that.isBuy || video.free_seconds > 0) {\r\n\t\t\t\t\t\t\tthat.watchState = 1\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthat.watchState = 2\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// #ifdef APP-PLUS || MP-WEIXIN\r\n\t\t\t\t\t\tif (video.use_type != 'bilibili') {\r\n\t\t\t\t\t\t\tthis.videoContext = uni.createVideoContext('myVideo', this)\r\n\t\t\t\t\t\t\tthis.playbackRate = 2\r\n\t\t\t\t\t\t\tthis.videoContext.playbackRate(1.0)\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tthat.$forceUpdate()\r\n\t\t\t\t\t\t\t\tthat.videoContext.play()\r\n\t\t\t\t\t\t\t}, 1000)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.appWebviewVideoUrl = this.video.url.match(/\\/\\/[^\"'\\s]*/)[0]\r\n\t\t\t\t\t\t\tlet currentWebview = this.$scope.$getAppWebview(); //获取当前web-view  \r\n\t\t\t\t\t\t\tlet duration_timeout = setTimeout(function() {\r\n\t\t\t\t\t\t\t\tlet wv = currentWebview.children()[0];\r\n\t\t\t\t\t\t\t\tconsole.log(wv);\r\n\t\t\t\t\t\t\t\twv.setStyle({\r\n\t\t\t\t\t\t\t\t\t//设置web-view距离顶部的距离以及自己的高度,单位为px  \r\n\t\t\t\t\t\t\t\t\ttop: uni.getSystemInfoSync().statusBarHeight + 43,\r\n\t\t\t\t\t\t\t\t\theight: 210\r\n\t\t\t\t\t\t\t\t\t/* left: 80,  \r\n\t\t\t\t\t\t\t\t\twidth: 1120,  \r\n\t\t\t\t\t\t\t\t\theight: 630, */\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tclearTimeout(duration_timeout);\r\n\t\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// #endif\r\n\r\n\t\t\t\t\t\t// #ifdef H5\r\n\t\t\t\t\t\tif (video.use_type != 'bilibili') {\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tthat.$forceUpdate()\r\n\t\t\t\t\t\t\t\tthat.initDPlayer({\r\n\t\t\t\t\t\t\t\t\tname: video.title,\r\n\t\t\t\t\t\t\t\t\turl: video.url\r\n\t\t\t\t\t\t\t\t}, res.data.videoBase || {});\r\n\t\t\t\t\t\t\t}, 1000)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// #endif\r\n\r\n\t\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfail(e) {\r\n\t\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tinitDPlayer(playUrls, videoBase) {\r\n\t\t\t\t// 封装DPlayer的播放格式\r\n\t\t\t\t// let dplayerUrls = [];\r\n\t\t\t\t// playUrls.forEach((item) => {\r\n\t\t\t\t// \tdplayerUrls.push({\r\n\t\t\t\t// \t\tname: item.name,\r\n\t\t\t\t// \t\turl: item.url,\r\n\t\t\t\t// \t});\r\n\t\t\t\t// });\r\n\r\n\t\t\t\tlet bulletSecretFontSize = !this.newconfig.player.bullet_secret.size ?\r\n\t\t\t\t\t14 :\r\n\t\t\t\t\tparseInt(this.newconfig.player.bullet_secret.size);\r\n\r\n\t\t\t\t// window.player = new DPlayer({\r\n\t\t\t\t// \tcontainer: document.getElementById('player-container'),\r\n\t\t\t\t// \tvideo: {\r\n\t\t\t\t// \t\turl: playUrls.url,\r\n\t\t\t\t// \t},\r\n\t\t\t\t// });\r\n\r\n\t\t\t\twindow.player = new window.DPlayer({\r\n\t\t\t\t\tcontainer: document.getElementById(\"player-container\"),\r\n\t\t\t\t\tautoplay: false,\r\n\t\t\t\t\tplaybackSpeed: [0.5, 1, 1.5, 2],\r\n\t\t\t\t\tvideo: {\r\n\t\t\t\t\t\turl: playUrls.url,\r\n\t\t\t\t\t\t// defaultQuality: 0,\r\n\t\t\t\t\t\tpic: this.newconfig.player.cover || null,\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttry: this.isTrySee,\r\n\t\t\t\t\tbulletSecret: {\r\n\t\t\t\t\t\tenabled: parseInt(this.newconfig.player.enabled_bullet_secret) === 1,\r\n\t\t\t\t\t\ttext: this.newconfig.player.bullet_secret.text\r\n\t\t\t\t\t\t\t.replace(\"${user.mobile}\", vk.getVuex('$user.userInfo')?.mobile)\r\n\t\t\t\t\t\t\t.replace(\"${mobile}\", vk.getVuex('$user.userInfo')?.mobile)\r\n\t\t\t\t\t\t\t.replace(\"${user.id}\", vk.getVuex('$user.userInfo')?._id),\r\n\t\t\t\t\t\tsize: bulletSecretFontSize + \"px\",\r\n\t\t\t\t\t\tcolor: !this.newconfig.player.bullet_secret.color ?\r\n\t\t\t\t\t\t\t\"red\" : this.newconfig.player.bullet_secret.color,\r\n\t\t\t\t\t\topacity: this.newconfig.player.bullet_secret.opacity,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tban_drag: this.isBanDrag,\r\n\t\t\t\t\tlast_see_pos: 0,\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// 监听播放进度更新evt\r\n\t\t\t\twindow.player.on(\"timeupdate\", () => {\r\n\t\t\t\t\tlet currentTime = parseInt(window.player.video.currentTime);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tthis.isBanDrag &&\r\n\t\t\t\t\t\tcurrentTime - this.lastPlaySeconds >= 2 &&\r\n\t\t\t\t\t\tcurrentTime > parseInt(this.watchedSeconds)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\twindow.player.seek(this.lastPlaySeconds);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.lastPlaySeconds = currentTime;\r\n\t\t\t\t\t\t// this.playTimeUpdate(currentTime);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\twindow.player.on(\"ended\", () => {\r\n\t\t\t\t\tlet currentTime = parseInt(window.player.video.currentTime);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tthis.isBanDrag &&\r\n\t\t\t\t\t\twindow.player.video.duration - this.lastPlaySeconds >= 2\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\twindow.player.seek(this.lastPlaySeconds);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.lastPlaySeconds = 0;\r\n\t\t\t\t\t// this.playTimeUpdate(currentTime, true);\r\n\t\t\t\t\tthis.playEnd()\r\n\t\t\t\t\tthis.playendedStatus = true;\r\n\t\t\t\t\twindow.player.destroy();\r\n\t\t\t\t});\r\n\t\t\t\twindow.player.on(\"sub_course\", () => {\r\n\t\t\t\t\tthis.buyCourse();\r\n\t\t\t\t});\r\n\t\t\t\t// 微信同层播放\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tconst dplay = document.querySelector(\".dplayer-video\");\r\n\t\t\t\t\tconst u = navigator.userAgent;\r\n\t\t\t\t\tlet isAndroid = u.indexOf(\"Android\") > -1 || u.indexOf(\"Adr\") > -1;\r\n\t\t\t\t\tif (isAndroid) {\r\n\t\t\t\t\t\tdplay.setAttribute(\"x5-video-player-type\", \"h5-page\");\r\n\t\t\t\t\t\tdplay.removeAttribute(\"playsinline\");\r\n\t\t\t\t\t\tdplay.removeAttribute(\"webkit-playsinline\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdplay.removeAttribute(\"x5-video-player-type\", \"h5-page\");\r\n\t\t\t\t\t\tdplay.setAttribute(\"playsinline\", \"\");\r\n\t\t\t\t\t\tdplay.setAttribute(\"webkit-playsinline\", \"\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 200);\r\n\t\t\t},\r\n\t\t\tgetPlayInfo() {\r\n\t\t\t\tvideo.playUrl(this.video.id).then(res => {\r\n\t\t\t\t\tif (res.urls.length === 0) {\r\n\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\ticon: 'none',\r\n\t\t\t\t\t\t\ttitle: '播放地址为空',\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.playInfo = res.urls\r\n\t\t\t\t\t\tthis.playUrl = res.urls[0].url\r\n\r\n\t\t\t\t\t\t//记忆播放功能\r\n\t\t\t\t\t\tthis.videoContext.play()\r\n\r\n\t\t\t\t\t\tif (this.videoWatchedProgress[this.video.id] && this.videoWatchedProgress[this.video.id]\r\n\t\t\t\t\t\t\t.watched_at == null) {\r\n\t\t\t\t\t\t\tthis.videoContext.seek(this.videoWatchedProgress[this.video.id].watch_seconds)\r\n\t\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\t\ttitle: \"已为您定位至 \" + util.durationForHuman(this.videoWatchedProgress[this\r\n\t\t\t\t\t\t\t\t\t.video.id].watch_seconds),\r\n\t\t\t\t\t\t\t\ticon: \"none\"\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\tgoVideo(videoId, cIndex, vIndex) {\r\n\t\t\t\t//切换视频\r\n\t\t\t\tthis.videoId = videoId\r\n\t\t\t\tthis.getVideo()\r\n\r\n\t\t\t\t//重置播放器\r\n\t\t\t\t// #ifdef APP-PLUS || MP-WEIXIN\r\n\t\t\t\tthis.playbackRate = 2\r\n\t\t\t\tthis.videoContext.playbackRate(1.0)\r\n\t\t\t\tthis.videoContext.stop()\r\n\t\t\t\t// #endif\r\n\r\n\t\t\t\t// #ifdef H5\r\n\t\t\t\tif (window.player)\r\n\t\t\t\t\twindow.player.destroy();\r\n\t\t\t\t// #endif\r\n\r\n\t\t\t\t// 记录位置\r\n\t\t\t\tthis.cIndex = cIndex\r\n\t\t\t\tthis.vIndex = vIndex\r\n\t\t\t},\r\n\r\n\t\t\tplayEnd(e) {\r\n\t\t\t\t// 没买不存\r\n\t\t\t\tif (!that.isBuy) return\r\n\r\n\t\t\t\tuni.vk.callFunction({\r\n\t\t\t\t\turl: 'client/course/kh/records',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tcourse_id: this.courseId,\r\n\t\t\t\t\t\tvideo_id: this.videoId,\r\n\t\t\t\t\t\twatch_seconds: this.lastPlaySeconds,\r\n\t\t\t\t\t\twatched_at: 1\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function() {\r\n\t\t\t\t\t\t// 状态暂时改为已看完\r\n\t\t\t\t\t\tthat.chapters[that.cIndex].videos[that.vIndex].watch_info = {\r\n\t\t\t\t\t\t\t_id: '123456'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tbuyCourse() {\r\n\t\t\t\t//先创建订单\r\n\t\t\t\tuni.vk.callFunction({\r\n\t\t\t\t\turl: 'client/order/kh/create/course',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t_id: this.courseId\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess(data) {\r\n\t\t\t\t\t\t//再前往支付\r\n\t\t\t\t\t\tuni.vk.navigateTo('/pages/payment/payType?order_id=' + data.order_id)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tcheckPdf(url) {\r\n\t\t\t\tif (!that.isBuy) {\r\n\t\t\t\t\tthis.$refs.uToast.show({\r\n\t\t\t\t\t\ttitle: '购买课程后即可查看',\r\n\t\t\t\t\t\ttype: 'warning',\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tuni.vk.navigateTo(`/uni_modules/uce-course/pages/word/word?url=${url}`)\r\n\t\t\t},\r\n\t\t\t// tabs通知swiper切换\r\n\t\t\ttabsChange(index) {\r\n\t\t\t\tthis.swiperCurrent = index;\r\n\t\t\t},\r\n\t\t\t// swiper-item左右移动,通知tabs的滑块跟随移动\r\n\t\t\ttransition(e) {\r\n\t\t\t\tlet dx = e.detail.dx;\r\n\t\t\t\tthis.$refs.uTabs.setDx(dx);\r\n\t\t\t},\r\n\t\t\t// 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态\r\n\t\t\t// swiper滑动结束,分别设置tabs和swiper的状态\r\n\t\t\tanimationfinish(e) {\r\n\t\t\t\tlet current = e.detail.current;\r\n\t\t\t\tthis.$refs.uTabs.setFinishCurrent(current);\r\n\t\t\t\tthis.swiperCurrent = current;\r\n\t\t\t\tthis.current = current;\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\tpage {\r\n\t\tbackground-color: #f2f2f2;\r\n\t}\r\n\r\n\r\n\t.play-box {\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t\theight: 210px;\r\n\t\tfloat: left;\r\n\t\tbackground-color: rgba(0, 0, 0, 1);\r\n\t}\r\n\r\n\t.xgplayer-mobile {\r\n\t\tpadding-top: 50% !important;\r\n\t}\r\n\r\n\t.xgplayer-skin-default .xgplayer-poster {\r\n\t\theight: 192px !important;\r\n\t\toverflow: hidden;\r\n\t}\r\n\r\n\t.iframe-player-box,\r\n\t.player-container,\r\n\t.video {\r\n\t\twidth: 100%;\r\n\t\theight: 420rpx;\r\n\t}\r\n\r\n\t.play-box>video {\r\n\t\twidth: 100%;\r\n\t\theight: 240px;\r\n\t}\r\n\r\n\t.play-box>.no-auth {\r\n\t\twidth: 100%;\r\n\t\theight: auto;\r\n\t\tbox-sizing: border-box;\r\n\t\tpadding-left: 30px;\r\n\t\tpadding-right: 30px;\r\n\t}\r\n\r\n\t.play-box>.no-auth>.btn {\r\n\t\tdisplay: inline-block;\r\n\t\twidth: 100%;\r\n\t\theight: 42px;\r\n\t\tline-height: 42px;\r\n\t\ttext-align: center;\r\n\t\tbackground-color: rgba(0, 0, 0, .9);\r\n\t\tcolor: #FF4B4B;\r\n\t\tborder: 1px solid #FF4B4B;\r\n\t\tborder-radius: 21px;\r\n\t\tmargin-top: 70px;\r\n\t}\r\n\r\n\t.course-info {\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t\tmin-height: 150rpx;\r\n\t\tbackground: #FFFFFF;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tjustify-content: space-between;\r\n\t\tpadding: 30rpx;\r\n\r\n\t\t.play-rate {\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 60rpx;\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: left;\r\n\t\t\talign-items: center;\r\n\r\n\t\t\ttext {\r\n\t\t\t\tcolor: #333333;\r\n\t\t\t\tline-height: 40rpx;\r\n\t\t\t}\r\n\r\n\t\t\t.rate-item {\r\n\t\t\t\twidth: 90rpx;\r\n\t\t\t\theight: 40rpx;\r\n\t\t\t\tborder-radius: 10rpx;\r\n\t\t\t\tline-height: 38rpx;\r\n\t\t\t\tfont-size: 20rpx;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tborder: 1rpx solid #ACAFC3;\r\n\t\t\t\tcolor: #ACAFC3;\r\n\t\t\t\tmargin-right: 24rpx;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t}\r\n\r\n\t\t\t.active {\r\n\t\t\t\tcolor: #000 !important;\r\n\t\t\t\tbackground-color: #CCDEFF !important;\r\n\t\t\t\tborder: 1rpx solid #CCDEFF;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.course-title {\r\n\t\t\tfont-size: 32rpx;\r\n\t\t\tfont-weight: 800;\r\n\t\t\tcolor: #000000;\r\n\t\t}\r\n\r\n\t\t.course-desc {\r\n\t\t\tmargin: 20rpx 0;\r\n\t\t\tcolor: #555555;\r\n\t\t\tfont-size: 28rpx;\r\n\t\t\ttext-align: justify;\r\n\t\t\toverflow: hidden;\r\n\t\t\tdisplay: -webkit-box;\r\n\t\t\ttext-overflow: ellipsis;\r\n\t\t\t-webkit-box-orient: vertical;\r\n\t\t\t-webkit-line-clamp: 2;\r\n\t\t}\r\n\r\n\t\t.course-other {\r\n\t\t\tcolor: #B7BACA;\r\n\t\t\tfont-size: 25rpx;\r\n\r\n\t\t\ttext {\r\n\t\t\t\tmargin-right: 40rpx;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.course-tabs {\r\n\t\tmargin-top: 10rpx;\r\n\t\tposition: sticky;\r\n\t\ttop: 0;\r\n\t\tbackground: #FFFFFF;\r\n\t\tz-index: 999;\r\n\t}\r\n\r\n\r\n\t.swiper-item-box {\r\n\t\tposition: relative;\r\n\t\theight: 100vh;\r\n\r\n\t\t.swiper-item {\r\n\t\t\tborder-top: 1px solid #efefef;\r\n\t\t\tbackground: #FFFFFF;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\tscroll-view {\r\n\t\t\t\theight: 100% !important;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.course-like {\r\n\t\tposition: absolute;\r\n\t\tbottom: 30rpx;\r\n\t\tright: 40rpx;\r\n\t}\r\n\r\n\t.buy-foot,\r\n\t.comment-bottom-bar {\r\n\t\tposition: fixed;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\theight: 100rpx;\r\n\t\twidth: 750rpx;\r\n\t\tbackground: #FFFFFF;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tpadding: 0 30rpx;\r\n\t\tjustify-content: space-between;\r\n\t\tbox-shadow: 0px 0px 10px #B2B5C6;\r\n\r\n\t\t.charge {\r\n\t\t\tcolor: #F11C1C;\r\n\t\t\tfont-size: 36rpx;\r\n\t\t\tfont-weight: bold;\r\n\t\t}\r\n\r\n\t\t.buy-btn-box {\r\n\t\t\tpadding: 0 20rpx;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\r\n\t\t\t.vip-tip {\r\n\t\t\t\tmargin: 0 20rpx;\r\n\t\t\t\tfont-size: 30rpx;\r\n\t\t\t\tletter-spacing: 2rpx;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tcolor: #FE9521;\r\n\t\t\t}\r\n\r\n\t\t\t.buy-btn {\r\n\t\t\t\twidth: 180rpx;\r\n\t\t\t\theight: 60rpx;\r\n\t\t\t\tline-height: 60rpx;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tborder-radius: 35rpx;\r\n\t\t\t\tbackground-image: linear-gradient(to right, #FF104B, #FF785F);\r\n\t\t\t\tcolor: #FFFFFF;\r\n\t\t\t\tfont-size: 26rpx;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tletter-spacing: 2rpx;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.chapters {\r\n\t\tpadding: 20rpx 30rpx;\r\n\r\n\t\t.chapter-name {\r\n\t\t\twidth: 100%;\r\n\t\t\theight: auto;\r\n\t\t\tfloat: left;\r\n\t\t\tfont-size: 15px;\r\n\t\t\tcolor: #333;\r\n\t\t\tfont-weight: 700;\r\n\t\t\tmargin-bottom: 15px;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.video-item {\r\n\t\t\twidth: 100%;\r\n\t\t\theight: auto;\r\n\t\t\tfloat: left;\r\n\t\t\tdisplay: flex;\r\n\t\t\tmargin-bottom: 20rpx;\r\n\t\t\tline-height: 60rpx;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\tpadding-left: 5px;\r\n\t\t\tborder-bottom: 1rpx dashed #efefef;\r\n\r\n\t\t\t.active {\r\n\t\t\t\tcolor: #FF4B4B !important;\r\n\t\t\t\tfont-weight: bold !important;\r\n\t\t\t}\r\n\r\n\t\t\t.name {\r\n\t\t\t\t-webkit-box-flex: 1;\r\n\t\t\t\t-webkit-flex: 1;\r\n\t\t\t\tflex: 1;\r\n\t\t\t\twhite-space: nowrap;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\tfont-size: 14px;\r\n\t\t\t\tcolor: rgba(51, 51, 51, .8);\r\n\r\n\t\t\t\t.video-name {\r\n\t\t\t\t\tfont-size: 30rpx;\r\n\t\t\t\t\twidth: 490rpx;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.free {\r\n\t\t\t\t\tpadding: 2px 4px;\r\n\t\t\t\t\tbackground-color: #FF4B4B;\r\n\t\t\t\t\t-webkit-border-radius: 3px;\r\n\t\t\t\t\tborder-radius: 3px;\r\n\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t\tfont-size: 12px;\r\n\t\t\t\t\tmargin-right: 5px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.lock-fill {\r\n\t\t\t\t\t&:before {\r\n\t\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.duration {\r\n\t\t\t\twidth: auto;\r\n\t\t\t\theight: auto;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tmargin-left: 10px;\r\n\t\t\t\tcolor: #999;\r\n\r\n\t\t\t\timage {\r\n\t\t\t\t\tposition: relative;\r\n\t\t\t\t\ttop: 10rpx;\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\twidth: 28rpx;\r\n\t\t\t\t\theight: 20rpx;\r\n\t\t\t\t\tmargin-left: 20rpx;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.comment {\r\n\t\tdisplay: flex;\r\n\t\tpadding: 30rpx;\r\n\r\n\t\t.left {\r\n\t\t\timage {\r\n\t\t\t\twidth: 64rpx;\r\n\t\t\t\theight: 64rpx;\r\n\t\t\t\tborder-radius: 50%;\r\n\t\t\t\tbackground-color: #f2f2f2;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.right {\r\n\t\t\tflex: 1;\r\n\t\t\tpadding-left: 20rpx;\r\n\t\t\tfont-size: 30rpx;\r\n\r\n\t\t\t.top {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tjustify-content: space-between;\r\n\t\t\t\talign-items: center;\r\n\t\t\t\tmargin-bottom: 10rpx;\r\n\r\n\t\t\t\t.name {\r\n\t\t\t\t\tcolor: #000000;\r\n\t\t\t\t\tfont-weight: 500;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.content {\r\n\t\t\t\tmargin-bottom: 10rpx;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t.comment-bottom-bar>.input {\r\n\t\tflex: 1;\r\n\t}\r\n\r\n\t.comment-bottom-bar>.input>input {\r\n\t\twidth: 100%;\r\n\t\theight: 30px;\r\n\t\tfloat: left;\r\n\t\tbackground: rgba(238, 238, 238, 1);\r\n\t\tborder-radius: 18px;\r\n\t\tborder: 0;\r\n\t\tbox-sizing: border-box;\r\n\t\tpadding: 3px 15px;\r\n\t\tfont-size: 12px;\r\n\t}\r\n\r\n\t.comment-bottom-bar>.send-button {\r\n\t\tmargin-left: 15px;\r\n\t\tfont-size: 13px;\r\n\t\tfont-weight: 400;\r\n\t\tcolor: rgba(204, 204, 204, 1);\r\n\t\tline-height: 30px;\r\n\t}\r\n\r\n\t.comment-bottom-bar>.send-button.active {\r\n\t\tcolor: rgba(23, 132, 237, 1);\r\n\t\tfont-weight: bold;\r\n\t}\r\n\r\n\t.chapters {\r\n\t\tpadding: 20rpx 30rpx;\r\n\r\n\t\t.collapse-item {\r\n\t\t\tpadding: 10rpx 40rpx 0;\r\n\r\n\t\t\t.u-node {\r\n\t\t\t\twidth: 20rpx;\r\n\t\t\t\theight: 20rpx;\r\n\t\t\t\tbackground: #FFFFFF;\r\n\t\t\t\tborder: 2rpx solid #FDD303;\r\n\t\t\t\tborder-radius: 50%;\r\n\t\t\t}\r\n\r\n\t\t\t.study_status {\r\n\t\t\t\twidth: 120rpx;\r\n\t\t\t\tborder: 2rpx solid #333333;\r\n\t\t\t\tborder-radius: 26rpx;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tfont-size: 24rpx;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tline-height: 38rpx;\r\n\t\t\t\tcolor: #333333;\r\n\t\t\t\ttop: 28rpx;\r\n\t\t\t\tright: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.collapse-item-word {\r\n\t\t\tpadding: 30rpx 40rpx;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\r\n\t\t\t.u-node {\r\n\t\t\t\tmargin-right: 10rpx;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\n","import mod from \"-!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./startWatchVideo.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./startWatchVideo.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n    if(module.hot) {\n      // 1712136461677\n      var cssReload = require(\"/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n      module.hot.dispose(cssReload);\n      module.hot.accept(undefined, cssReload);\n    }\n  "],"sourceRoot":""}