Commit f9204201 by wangshuo

打包

parent d15d1903
......@@ -40,8 +40,8 @@
"coupons.js": "/static/js/coupons.aab15c32.chunk.js",
"coupons.js.map": "/static/js/coupons.aab15c32.chunk.js.map",
"detail.css": "/static/css/detail.1eb8b1b7.chunk.css",
"detail.js": "/static/js/detail.248f596e.chunk.js",
"detail.js.map": "/static/js/detail.248f596e.chunk.js.map",
"detail.js": "/static/js/detail.786a258a.chunk.js",
"detail.js.map": "/static/js/detail.786a258a.chunk.js.map",
"main.css": "/static/css/main.95f34d95.chunk.css",
"main.js": "/static/js/main.282db4ba.chunk.js",
"main.js.map": "/static/js/main.282db4ba.chunk.js.map",
......@@ -51,8 +51,8 @@
"purchased.css": "/static/css/purchased.a14c858f.chunk.css",
"purchased.js": "/static/js/purchased.0cbad572.chunk.js",
"purchased.js.map": "/static/js/purchased.0cbad572.chunk.js.map",
"runtime~main.js": "/static/js/runtime~main.fee6af94.js",
"runtime~main.js.map": "/static/js/runtime~main.fee6af94.js.map",
"runtime~main.js": "/static/js/runtime~main.a73d0f35.js",
"runtime~main.js.map": "/static/js/runtime~main.a73d0f35.js.map",
"search.css": "/static/css/search.85280180.chunk.css",
"search.js": "/static/js/search.abdfa4bd.chunk.js",
"search.js.map": "/static/js/search.abdfa4bd.chunk.js.map",
......@@ -66,8 +66,8 @@
"togroup.js": "/static/js/togroup.10c61ec4.chunk.js",
"togroup.js.map": "/static/js/togroup.10c61ec4.chunk.js.map",
"video.css": "/static/css/video.918e8086.chunk.css",
"video.js": "/static/js/video.18b646ba.chunk.js",
"video.js.map": "/static/js/video.18b646ba.chunk.js.map",
"video.js": "/static/js/video.ae591593.chunk.js",
"video.js.map": "/static/js/video.ae591593.chunk.js.map",
"static/css/24.3f950fe8.chunk.css": "/static/css/24.3f950fe8.chunk.css",
"static/js/24.2ff74995.chunk.js": "/static/js/24.2ff74995.chunk.js",
"static/js/24.2ff74995.chunk.js.map": "/static/js/24.2ff74995.chunk.js.map",
......@@ -91,7 +91,7 @@
"static/js/31.72e5165d.chunk.js": "/static/js/31.72e5165d.chunk.js",
"static/js/31.72e5165d.chunk.js.map": "/static/js/31.72e5165d.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.c47a95f970f4778215b744072baa213f.js": "/precache-manifest.c47a95f970f4778215b744072baa213f.js",
"precache-manifest.b51c66a0521dd998f12a1026207ca6b4.js": "/precache-manifest.b51c66a0521dd998f12a1026207ca6b4.js",
"service-worker.js": "/service-worker.js",
"static/css/24.3f950fe8.chunk.css.map": "/static/css/24.3f950fe8.chunk.css.map",
"static/css/26.2833f269.chunk.css.map": "/static/css/26.2833f269.chunk.css.map",
......
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,user-scalable=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>七月在线 - 国内领先的人工智能教育平台</title><link href="/static/css/24.3f950fe8.chunk.css" rel="stylesheet"><link href="/static/css/main.95f34d95.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/api.js"></script><script>!function(d){function e(e){for(var r,t,n=e[0],a=e[1],o=e[2],c=0,i=[];c<n.length;c++)t=n[c],l[t]&&i.push(l[t][0]),l[t]=0;for(r in a)Object.prototype.hasOwnProperty.call(a,r)&&(d[r]=a[r]);for(b&&b(e);i.length;)i.shift()();return f.push.apply(f,o||[]),u()}function u(){for(var e,r=0;r<f.length;r++){for(var t=f[r],n=!0,a=1;a<t.length;a++){var o=t[a];0!==l[o]&&(n=!1)}n&&(f.splice(r--,1),e=p(p.s=t[0]))}return e}var t={},s={18:0},l={18:0},f=[];function p(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return d[e].call(r.exports,r,r.exports,p),r.l=!0,r.exports}p.e=function(f){var e=[];s[f]?e.push(s[f]):0!==s[f]&&{0:1,1:1,2:1,3:1,4:1,6:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,16:1,17:1,19:1,20:1,21:1,22:1,23:1,26:1,28:1,29:1,30:1,31:1}[f]&&e.push(s[f]=new Promise(function(e,n){for(var r="static/css/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[f]||f)+"."+{0:"f15334d9",1:"6f1b147b",2:"2444c6c2",3:"58508f31",4:"02475a25",5:"31d6cfe0",6:"5199031c",7:"31d6cfe0",8:"4a91788c",9:"aced1689",10:"bbdc2bc7",11:"f39ca42e",12:"01bc9663",13:"c48c0144",14:"1eb8b1b7",16:"1dbd49e2",17:"a14c858f",19:"85280180",20:"0fd3f9ac",21:"f3c372c1",22:"acc61e40",23:"918e8086",25:"31d6cfe0",26:"2833f269",27:"31d6cfe0",28:"415f421f",29:"fd1b61f1",30:"44620a41",31:"ffbe0560"}[f]+".chunk.css",a=p.p+r,t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var c=(d=t[o]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(c===r||c===a))return e()}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var d;if((c=(d=i[o]).getAttribute("data-href"))===r||c===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var r=e&&e.target&&e.target.src||a,t=new Error("Loading CSS chunk "+f+" failed.\n("+r+")");t.request=r,delete s[f],u.parentNode.removeChild(u),n(t)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){s[f]=0}));var t=l[f];if(0!==t)if(t)e.push(t[2]);else{var r=new Promise(function(e,r){t=l[f]=[e,r]});e.push(t[2]=r);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,p.nc&&o.setAttribute("nonce",p.nc),o.src=p.p+"static/js/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[f]||f)+"."+{0:"64349d6e",1:"a2e3809e",2:"24d4ca20",3:"7725e9ac",4:"402592d7",5:"f1f89766",6:"6c2e64c9",7:"896f1700",8:"3835dc37",9:"20f4a86e",10:"e9a33ef6",11:"e203121e",12:"6dafbb9b",13:"aab15c32",14:"248f596e",16:"76eb2d0c",17:"0cbad572",19:"abdfa4bd",20:"3b56bacd",21:"9e580b38",22:"10c61ec4",23:"18b646ba",25:"29681c9e",26:"b6c73fb7",27:"4dd08449",28:"7a55bbab",29:"d2142bb3",30:"93aecb2d",31:"72e5165d"}[f]+".chunk.js",n=function(e){o.onerror=o.onload=null,clearTimeout(c);var r=l[f];if(0!==r){if(r){var t=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+f+" failed.\n("+t+": "+n+")");a.type=t,a.request=n,r[1](a)}l[f]=void 0}};var c=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(e)},p.m=d,p.c=t,p.d=function(e,r,t){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(r,e){if(1&e&&(r=p(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)p.d(t,n,function(e){return r[e]}.bind(null,n));return t},p.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(r,"a",r),r},p.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},p.p="/",p.oe=function(e){throw console.error(e),e};var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var a=0;a<r.length;a++)e(r[a]);var b=n;u()}([])</script><script src="/static/js/24.2ff74995.chunk.js"></script><script src="/static/js/main.282db4ba.chunk.js"></script></body></html>
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,user-scalable=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>七月在线 - 国内领先的人工智能教育平台</title><link href="/static/css/24.3f950fe8.chunk.css" rel="stylesheet"><link href="/static/css/main.95f34d95.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/api.js"></script><script>!function(d){function e(e){for(var r,t,n=e[0],a=e[1],o=e[2],c=0,i=[];c<n.length;c++)t=n[c],l[t]&&i.push(l[t][0]),l[t]=0;for(r in a)Object.prototype.hasOwnProperty.call(a,r)&&(d[r]=a[r]);for(b&&b(e);i.length;)i.shift()();return f.push.apply(f,o||[]),u()}function u(){for(var e,r=0;r<f.length;r++){for(var t=f[r],n=!0,a=1;a<t.length;a++){var o=t[a];0!==l[o]&&(n=!1)}n&&(f.splice(r--,1),e=p(p.s=t[0]))}return e}var t={},s={18:0},l={18:0},f=[];function p(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return d[e].call(r.exports,r,r.exports,p),r.l=!0,r.exports}p.e=function(f){var e=[];s[f]?e.push(s[f]):0!==s[f]&&{0:1,1:1,2:1,3:1,4:1,6:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,16:1,17:1,19:1,20:1,21:1,22:1,23:1,26:1,28:1,29:1,30:1,31:1}[f]&&e.push(s[f]=new Promise(function(e,n){for(var r="static/css/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[f]||f)+"."+{0:"f15334d9",1:"6f1b147b",2:"2444c6c2",3:"58508f31",4:"02475a25",5:"31d6cfe0",6:"5199031c",7:"31d6cfe0",8:"4a91788c",9:"aced1689",10:"bbdc2bc7",11:"f39ca42e",12:"01bc9663",13:"c48c0144",14:"1eb8b1b7",16:"1dbd49e2",17:"a14c858f",19:"85280180",20:"0fd3f9ac",21:"f3c372c1",22:"acc61e40",23:"918e8086",25:"31d6cfe0",26:"2833f269",27:"31d6cfe0",28:"415f421f",29:"fd1b61f1",30:"44620a41",31:"ffbe0560"}[f]+".chunk.css",a=p.p+r,t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var c=(d=t[o]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(c===r||c===a))return e()}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var d;if((c=(d=i[o]).getAttribute("data-href"))===r||c===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var r=e&&e.target&&e.target.src||a,t=new Error("Loading CSS chunk "+f+" failed.\n("+r+")");t.request=r,delete s[f],u.parentNode.removeChild(u),n(t)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){s[f]=0}));var t=l[f];if(0!==t)if(t)e.push(t[2]);else{var r=new Promise(function(e,r){t=l[f]=[e,r]});e.push(t[2]=r);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,p.nc&&o.setAttribute("nonce",p.nc),o.src=p.p+"static/js/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[f]||f)+"."+{0:"64349d6e",1:"a2e3809e",2:"24d4ca20",3:"7725e9ac",4:"402592d7",5:"f1f89766",6:"6c2e64c9",7:"896f1700",8:"3835dc37",9:"20f4a86e",10:"e9a33ef6",11:"e203121e",12:"6dafbb9b",13:"aab15c32",14:"786a258a",16:"76eb2d0c",17:"0cbad572",19:"abdfa4bd",20:"3b56bacd",21:"9e580b38",22:"10c61ec4",23:"ae591593",25:"29681c9e",26:"b6c73fb7",27:"4dd08449",28:"7a55bbab",29:"d2142bb3",30:"93aecb2d",31:"72e5165d"}[f]+".chunk.js",n=function(e){o.onerror=o.onload=null,clearTimeout(c);var r=l[f];if(0!==r){if(r){var t=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+f+" failed.\n("+t+": "+n+")");a.type=t,a.request=n,r[1](a)}l[f]=void 0}};var c=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(e)},p.m=d,p.c=t,p.d=function(e,r,t){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(r,e){if(1&e&&(r=p(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)p.d(t,n,function(e){return r[e]}.bind(null,n));return t},p.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(r,"a",r),r},p.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},p.p="/",p.oe=function(e){throw console.error(e),e};var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var a=0;a<r.length;a++)e(r[a]);var b=n;u()}([])</script><script src="/static/js/24.2ff74995.chunk.js"></script><script src="/static/js/main.282db4ba.chunk.js"></script></body></html>
\ No newline at end of file
......@@ -104,12 +104,12 @@ self.__precacheManifest = [
"url": "/static/js/coupons.aab15c32.chunk.js"
},
{
"revision": "42e52a89ead8b5d8d65c",
"revision": "e93df37249ff0da2de5b",
"url": "/static/css/detail.1eb8b1b7.chunk.css"
},
{
"revision": "42e52a89ead8b5d8d65c",
"url": "/static/js/detail.248f596e.chunk.js"
"revision": "e93df37249ff0da2de5b",
"url": "/static/js/detail.786a258a.chunk.js"
},
{
"revision": "079aa08de9f860d5c0dc",
......@@ -136,8 +136,8 @@ self.__precacheManifest = [
"url": "/static/js/BargainMiddlePage.64349d6e.chunk.js"
},
{
"revision": "889619dfe277577402cc",
"url": "/static/js/runtime~main.fee6af94.js"
"revision": "8065366f1ef698a5193f",
"url": "/static/js/runtime~main.a73d0f35.js"
},
{
"revision": "b08ad07df690834e3490",
......@@ -172,12 +172,12 @@ self.__precacheManifest = [
"url": "/static/js/togroup.10c61ec4.chunk.js"
},
{
"revision": "02eca4a056cd719bcb7c",
"revision": "64641b51c50e77bbeb2f",
"url": "/static/css/video.918e8086.chunk.css"
},
{
"revision": "02eca4a056cd719bcb7c",
"url": "/static/js/video.18b646ba.chunk.js"
"revision": "64641b51c50e77bbeb2f",
"url": "/static/js/video.ae591593.chunk.js"
},
{
"revision": "80011994e30adf599e5f47fcc81bc06d",
......@@ -260,7 +260,7 @@ self.__precacheManifest = [
"url": "/static/css/24.3f950fe8.chunk.css"
},
{
"revision": "ec9a2a1b15845a6f557096f6cc97fa19",
"revision": "736c5a4a7bd8cf5c856be041774c876a",
"url": "/index.html"
}
];
\ No newline at end of file
......@@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js");
importScripts(
"/precache-manifest.c47a95f970f4778215b744072baa213f.js"
"/precache-manifest.b51c66a0521dd998f12a1026207ca6b4.js"
);
workbox.clientsClaim();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){function r(r){for(var n,a,i=r[0],u=r[1],d=r[2],f=0,l=[];f<i.length;f++)a=i[f],o[a]&&l.push(o[a][0]),o[a]=0;for(n in u)Object.prototype.hasOwnProperty.call(u,n)&&(e[n]=u[n]);for(s&&s(r);l.length;)l.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,a=1;a<t.length;a++){var u=t[a];0!==o[u]&&(n=!1)}n&&(c.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},a={18:0},o={18:0},c=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[];a[e]?r.push(a[e]):0!==a[e]&&{0:1,1:1,2:1,3:1,4:1,6:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,16:1,17:1,19:1,20:1,21:1,22:1,23:1,26:1,28:1,29:1,30:1,31:1}[e]&&r.push(a[e]=new Promise(function(r,t){for(var n="static/css/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[e]||e)+"."+{0:"f15334d9",1:"6f1b147b",2:"2444c6c2",3:"58508f31",4:"02475a25",5:"31d6cfe0",6:"5199031c",7:"31d6cfe0",8:"4a91788c",9:"aced1689",10:"bbdc2bc7",11:"f39ca42e",12:"01bc9663",13:"c48c0144",14:"1eb8b1b7",16:"1dbd49e2",17:"a14c858f",19:"85280180",20:"0fd3f9ac",21:"f3c372c1",22:"acc61e40",23:"918e8086",25:"31d6cfe0",26:"2833f269",27:"31d6cfe0",28:"415f421f",29:"fd1b61f1",30:"44620a41",31:"ffbe0560"}[e]+".chunk.css",o=i.p+n,c=document.getElementsByTagName("link"),u=0;u<c.length;u++){var d=(s=c[u]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(d===n||d===o))return r()}var f=document.getElementsByTagName("style");for(u=0;u<f.length;u++){var s;if((d=(s=f[u]).getAttribute("data-href"))===n||d===o)return r()}var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.onload=r,l.onerror=function(r){var n=r&&r.target&&r.target.src||o,c=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");c.request=n,delete a[e],l.parentNode.removeChild(l),t(c)},l.href=o,document.getElementsByTagName("head")[0].appendChild(l)}).then(function(){a[e]=0}));var t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise(function(r,n){t=o[e]=[r,n]});r.push(t[2]=n);var c,u=document.createElement("script");u.charset="utf-8",u.timeout=120,i.nc&&u.setAttribute("nonce",i.nc),u.src=function(e){return i.p+"static/js/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[e]||e)+"."+{0:"64349d6e",1:"a2e3809e",2:"24d4ca20",3:"7725e9ac",4:"402592d7",5:"f1f89766",6:"6c2e64c9",7:"896f1700",8:"3835dc37",9:"20f4a86e",10:"e9a33ef6",11:"e203121e",12:"6dafbb9b",13:"aab15c32",14:"248f596e",16:"76eb2d0c",17:"0cbad572",19:"abdfa4bd",20:"3b56bacd",21:"9e580b38",22:"10c61ec4",23:"18b646ba",25:"29681c9e",26:"b6c73fb7",27:"4dd08449",28:"7a55bbab",29:"d2142bb3",30:"93aecb2d",31:"72e5165d"}[e]+".chunk.js"}(e),c=function(r){u.onerror=u.onload=null,clearTimeout(d);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src,c=new Error("Loading chunk "+e+" failed.\n("+n+": "+a+")");c.type=n,c.request=a,t[1](c)}o[e]=void 0}};var d=setTimeout(function(){c({type:"timeout",target:u})},12e4);u.onerror=u.onload=c,document.head.appendChild(u)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var u=window.webpackJsonp=window.webpackJsonp||[],d=u.push.bind(u);u.push=r,u=u.slice();for(var f=0;f<u.length;f++)r(u[f]);var s=d;t()}([]);
//# sourceMappingURL=runtime~main.fee6af94.js.map
\ No newline at end of file
!function(e){function r(r){for(var n,a,i=r[0],u=r[1],d=r[2],f=0,l=[];f<i.length;f++)a=i[f],o[a]&&l.push(o[a][0]),o[a]=0;for(n in u)Object.prototype.hasOwnProperty.call(u,n)&&(e[n]=u[n]);for(s&&s(r);l.length;)l.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,a=1;a<t.length;a++){var u=t[a];0!==o[u]&&(n=!1)}n&&(c.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},a={18:0},o={18:0},c=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[];a[e]?r.push(a[e]):0!==a[e]&&{0:1,1:1,2:1,3:1,4:1,6:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,16:1,17:1,19:1,20:1,21:1,22:1,23:1,26:1,28:1,29:1,30:1,31:1}[e]&&r.push(a[e]=new Promise(function(r,t){for(var n="static/css/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[e]||e)+"."+{0:"f15334d9",1:"6f1b147b",2:"2444c6c2",3:"58508f31",4:"02475a25",5:"31d6cfe0",6:"5199031c",7:"31d6cfe0",8:"4a91788c",9:"aced1689",10:"bbdc2bc7",11:"f39ca42e",12:"01bc9663",13:"c48c0144",14:"1eb8b1b7",16:"1dbd49e2",17:"a14c858f",19:"85280180",20:"0fd3f9ac",21:"f3c372c1",22:"acc61e40",23:"918e8086",25:"31d6cfe0",26:"2833f269",27:"31d6cfe0",28:"415f421f",29:"fd1b61f1",30:"44620a41",31:"ffbe0560"}[e]+".chunk.css",o=i.p+n,c=document.getElementsByTagName("link"),u=0;u<c.length;u++){var d=(s=c[u]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(d===n||d===o))return r()}var f=document.getElementsByTagName("style");for(u=0;u<f.length;u++){var s;if((d=(s=f[u]).getAttribute("data-href"))===n||d===o)return r()}var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.onload=r,l.onerror=function(r){var n=r&&r.target&&r.target.src||o,c=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");c.request=n,delete a[e],l.parentNode.removeChild(l),t(c)},l.href=o,document.getElementsByTagName("head")[0].appendChild(l)}).then(function(){a[e]=0}));var t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise(function(r,n){t=o[e]=[r,n]});r.push(t[2]=n);var c,u=document.createElement("script");u.charset="utf-8",u.timeout=120,i.nc&&u.setAttribute("nonce",i.nc),u.src=function(e){return i.p+"static/js/"+({0:"BargainMiddlePage",1:"Classify",2:"CourseList",3:"DrawDocument",4:"Examination",5:"MyEdit",6:"Order",7:"Orderinfo",8:"PayOrder",9:"Preferential",10:"SearchResult",11:"ShopCart",12:"aist-share",13:"coupons",14:"detail",16:"myorders",17:"purchased",19:"search",20:"shareposter",21:"study",22:"togroup",23:"video"}[e]||e)+"."+{0:"64349d6e",1:"a2e3809e",2:"24d4ca20",3:"7725e9ac",4:"402592d7",5:"f1f89766",6:"6c2e64c9",7:"896f1700",8:"3835dc37",9:"20f4a86e",10:"e9a33ef6",11:"e203121e",12:"6dafbb9b",13:"aab15c32",14:"786a258a",16:"76eb2d0c",17:"0cbad572",19:"abdfa4bd",20:"3b56bacd",21:"9e580b38",22:"10c61ec4",23:"ae591593",25:"29681c9e",26:"b6c73fb7",27:"4dd08449",28:"7a55bbab",29:"d2142bb3",30:"93aecb2d",31:"72e5165d"}[e]+".chunk.js"}(e),c=function(r){u.onerror=u.onload=null,clearTimeout(d);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src,c=new Error("Loading chunk "+e+" failed.\n("+n+": "+a+")");c.type=n,c.request=a,t[1](c)}o[e]=void 0}};var d=setTimeout(function(){c({type:"timeout",target:u})},12e4);u.onerror=u.onload=c,document.head.appendChild(u)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var u=window.webpackJsonp=window.webpackJsonp||[],d=u.push.bind(u);u.push=r,u=u.slice();for(var f=0;f<u.length;f++)r(u[f]);var s=d;t()}([]);
//# sourceMappingURL=runtime~main.a73d0f35.js.map
\ No newline at end of file
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","18","exports","module","l","e","promises","0","1","2","3","4","6","8","9","10","11","12","13","14","16","17","19","20","21","22","23","26","28","29","30","31","Promise","resolve","reject","href","5","7","25","27","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","clearTimeout","chunk","errorType","realSrc","error","undefined","setTimeout","head","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime~main.fee6af94.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t18: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t18: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({\"0\":\"BargainMiddlePage\",\"1\":\"Classify\",\"2\":\"CourseList\",\"3\":\"DrawDocument\",\"4\":\"Examination\",\"5\":\"MyEdit\",\"6\":\"Order\",\"7\":\"Orderinfo\",\"8\":\"PayOrder\",\"9\":\"Preferential\",\"10\":\"SearchResult\",\"11\":\"ShopCart\",\"12\":\"aist-share\",\"13\":\"coupons\",\"14\":\"detail\",\"16\":\"myorders\",\"17\":\"purchased\",\"19\":\"search\",\"20\":\"shareposter\",\"21\":\"study\",\"22\":\"togroup\",\"23\":\"video\"}[chunkId]||chunkId) + \".\" + {\"0\":\"64349d6e\",\"1\":\"a2e3809e\",\"2\":\"24d4ca20\",\"3\":\"7725e9ac\",\"4\":\"402592d7\",\"5\":\"f1f89766\",\"6\":\"6c2e64c9\",\"7\":\"896f1700\",\"8\":\"3835dc37\",\"9\":\"20f4a86e\",\"10\":\"e9a33ef6\",\"11\":\"e203121e\",\"12\":\"6dafbb9b\",\"13\":\"aab15c32\",\"14\":\"248f596e\",\"16\":\"76eb2d0c\",\"17\":\"0cbad572\",\"19\":\"abdfa4bd\",\"20\":\"3b56bacd\",\"21\":\"9e580b38\",\"22\":\"10c61ec4\",\"23\":\"18b646ba\",\"25\":\"29681c9e\",\"26\":\"b6c73fb7\",\"27\":\"4dd08449\",\"28\":\"7a55bbab\",\"29\":\"d2142bb3\",\"30\":\"93aecb2d\",\"31\":\"72e5165d\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"6\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"16\":1,\"17\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"26\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"static/css/\" + ({\"0\":\"BargainMiddlePage\",\"1\":\"Classify\",\"2\":\"CourseList\",\"3\":\"DrawDocument\",\"4\":\"Examination\",\"5\":\"MyEdit\",\"6\":\"Order\",\"7\":\"Orderinfo\",\"8\":\"PayOrder\",\"9\":\"Preferential\",\"10\":\"SearchResult\",\"11\":\"ShopCart\",\"12\":\"aist-share\",\"13\":\"coupons\",\"14\":\"detail\",\"16\":\"myorders\",\"17\":\"purchased\",\"19\":\"search\",\"20\":\"shareposter\",\"21\":\"study\",\"22\":\"togroup\",\"23\":\"video\"}[chunkId]||chunkId) + \".\" + {\"0\":\"f15334d9\",\"1\":\"6f1b147b\",\"2\":\"2444c6c2\",\"3\":\"58508f31\",\"4\":\"02475a25\",\"5\":\"31d6cfe0\",\"6\":\"5199031c\",\"7\":\"31d6cfe0\",\"8\":\"4a91788c\",\"9\":\"aced1689\",\"10\":\"bbdc2bc7\",\"11\":\"f39ca42e\",\"12\":\"01bc9663\",\"13\":\"c48c0144\",\"14\":\"1eb8b1b7\",\"16\":\"1dbd49e2\",\"17\":\"a14c858f\",\"19\":\"85280180\",\"20\":\"0fd3f9ac\",\"21\":\"f3c372c1\",\"22\":\"acc61e40\",\"23\":\"918e8086\",\"25\":\"31d6cfe0\",\"26\":\"2833f269\",\"27\":\"31d6cfe0\",\"28\":\"415f421f\",\"29\":\"fd1b61f1\",\"30\":\"44620a41\",\"31\":\"ffbe0560\"}[chunkId] + \".chunk.css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","18","exports","module","l","e","promises","0","1","2","3","4","6","8","9","10","11","12","13","14","16","17","19","20","21","22","23","26","28","29","30","31","Promise","resolve","reject","href","5","7","25","27","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","clearTimeout","chunk","errorType","realSrc","error","undefined","setTimeout","head","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime~main.a73d0f35.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t18: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t18: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({\"0\":\"BargainMiddlePage\",\"1\":\"Classify\",\"2\":\"CourseList\",\"3\":\"DrawDocument\",\"4\":\"Examination\",\"5\":\"MyEdit\",\"6\":\"Order\",\"7\":\"Orderinfo\",\"8\":\"PayOrder\",\"9\":\"Preferential\",\"10\":\"SearchResult\",\"11\":\"ShopCart\",\"12\":\"aist-share\",\"13\":\"coupons\",\"14\":\"detail\",\"16\":\"myorders\",\"17\":\"purchased\",\"19\":\"search\",\"20\":\"shareposter\",\"21\":\"study\",\"22\":\"togroup\",\"23\":\"video\"}[chunkId]||chunkId) + \".\" + {\"0\":\"64349d6e\",\"1\":\"a2e3809e\",\"2\":\"24d4ca20\",\"3\":\"7725e9ac\",\"4\":\"402592d7\",\"5\":\"f1f89766\",\"6\":\"6c2e64c9\",\"7\":\"896f1700\",\"8\":\"3835dc37\",\"9\":\"20f4a86e\",\"10\":\"e9a33ef6\",\"11\":\"e203121e\",\"12\":\"6dafbb9b\",\"13\":\"aab15c32\",\"14\":\"786a258a\",\"16\":\"76eb2d0c\",\"17\":\"0cbad572\",\"19\":\"abdfa4bd\",\"20\":\"3b56bacd\",\"21\":\"9e580b38\",\"22\":\"10c61ec4\",\"23\":\"ae591593\",\"25\":\"29681c9e\",\"26\":\"b6c73fb7\",\"27\":\"4dd08449\",\"28\":\"7a55bbab\",\"29\":\"d2142bb3\",\"30\":\"93aecb2d\",\"31\":\"72e5165d\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"6\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"16\":1,\"17\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"26\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"static/css/\" + ({\"0\":\"BargainMiddlePage\",\"1\":\"Classify\",\"2\":\"CourseList\",\"3\":\"DrawDocument\",\"4\":\"Examination\",\"5\":\"MyEdit\",\"6\":\"Order\",\"7\":\"Orderinfo\",\"8\":\"PayOrder\",\"9\":\"Preferential\",\"10\":\"SearchResult\",\"11\":\"ShopCart\",\"12\":\"aist-share\",\"13\":\"coupons\",\"14\":\"detail\",\"16\":\"myorders\",\"17\":\"purchased\",\"19\":\"search\",\"20\":\"shareposter\",\"21\":\"study\",\"22\":\"togroup\",\"23\":\"video\"}[chunkId]||chunkId) + \".\" + {\"0\":\"f15334d9\",\"1\":\"6f1b147b\",\"2\":\"2444c6c2\",\"3\":\"58508f31\",\"4\":\"02475a25\",\"5\":\"31d6cfe0\",\"6\":\"5199031c\",\"7\":\"31d6cfe0\",\"8\":\"4a91788c\",\"9\":\"aced1689\",\"10\":\"bbdc2bc7\",\"11\":\"f39ca42e\",\"12\":\"01bc9663\",\"13\":\"c48c0144\",\"14\":\"1eb8b1b7\",\"16\":\"1dbd49e2\",\"17\":\"a14c858f\",\"19\":\"85280180\",\"20\":\"0fd3f9ac\",\"21\":\"f3c372c1\",\"22\":\"acc61e40\",\"23\":\"918e8086\",\"25\":\"31d6cfe0\",\"26\":\"2833f269\",\"27\":\"31d6cfe0\",\"28\":\"415f421f\",\"29\":\"fd1b61f1\",\"30\":\"44620a41\",\"31\":\"ffbe0560\"}[chunkId] + \".chunk.css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["components/video/recommendation/index.js","components/video/video-catalog/index.js","components/video/datum-catalog/index.js","components/video/CustomPlayButton/index.js","components/video/index.js","common/v-list-base/index.js","components/detail/single/index.js","components/detail/single/singleSuccess.js"],"names":["Bottom","_ref","item","react_default","a","createElement","className","price1","price0","Recommendation","connect","state","num","list","courseId","getRecommendation","http","get","concat","API","home","_this","props","vCourseId","then","res","data","code","setState","Array","isArray","toast_default","info","msg","toCourseDetail","id","_this$props","dispatch","history","push","this","_this2","length","map","Info","course_title","simpledescription","recommendation_Bottom","v_list_base","key","course_id","img","image_name","handleClick","PureComponent","VideoCatalog","i","selectVideo","videoCatalog","index","classnames","active","activeIndex","onClick","bind","name","duration","video_auth","practice","qid","react_router_dom","to","pathname","search","title","is_tested","Component","DatumCatalog","datum","accordion_default","Panel","header","dir_name","files","file_id","file_name","defaultProps","videojs","getComponent","Button","CustomPlayButtonCover","Object","getPrototypeOf","prototype","call","el_","CustomPlayButton","player","options","classCallCheck","possibleConstructorReturn","on","tap","type","player_","play","off","registerComponent","options_","children","alert","modal_default","ProgressShareModal","isShow","learn_day_count","parseFloat","action_power","style","display","href","url","closeShareModal","Video","previousPlaybackRate","currentPlaybackRate","reconnect","videoList","currentVideoSrc","isAuth","course","salePrice","isLoading","isShowShareModal","shareData","singleBox","singMess","singleType","nowPrice","laterPrice","tobuy","getParam","errno","simple","toSingleset","boxHide","val","payCallback","assertThisInitialized","intervalPayStatus","setInterval","clearInterval","Number","now_price","three_day_later_price","isweixinPay","weixin_code","onBridgeReady","WeixinJSBridge","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","document","addEventListener","attachEvent","check","oid","setupRecord","recordSocket","io","record","transports","forceNew","time","currentTime","recordTimer","sendRecord","emit","recordUserInfo","uid","user","courseID","video_id","video_time","parseInt","plat","setupWS","ws","WebSocket","setTimeout","timer","e","JSON","parse","sendMessage","message","send","stringify","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this2$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","window","HELP_IMPROVE_VIDEOJS","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","addChild","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getLastVideoIndex","lastIndex","findIndex","getVideoList","playSetup","is_aist","last_video_id","lessonAvailable","Promise","resolve","playWithAuth","getCoursePrice","text","onPress","src","_this2$state2","location","protocol","_this$props$location$","browser","isWeixin","jsCookie","getDatumCatalog","replace","slice","dispose","close","_this3","_this4","match","_this$state","HeaderBar","arrow","common","ref","el","activeClassName","single","vcourseId","videoId","course_tile","singleSuccess","react_router","exact","from","path","render","video_video_catalog","assign","video_datum_catalog","video_recommendation","VList","react__WEBPACK_IMPORTED_MODULE_0___default","status","alt","tab","Single","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","payType","toBuy","orderId","order_id","alipayPay","weixinPay","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","encodeURIComponent","toLowerCase","localStorage","setItem","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__","showSingleBox","toBuyAll","zerobuyReceive","success","colse","zerogroupBuy","getOrderId","groupOrderId","getOrderStatus","getTime","pdd_order_id","endTime","end_time","toGroup","hour","min","nextProps","nextContext","_this5","date","now","Date","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","react__WEBPACK_IMPORTED_MODULE_8___default","class_price","compose","withRouter","console","log","react__WEBPACK_IMPORTED_MODULE_7___default","react_router_dom__WEBPACK_IMPORTED_MODULE_10__","onclick","avatar","String","padStart"],"mappings":"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","file":"static/js/video.18b646ba.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\nimport {connect} from 'react-redux';\nimport {getCourses} from './../../detail/actions';\nimport './recommendation.scss'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport VList from '@/common/v-list-base';\n\n\nconst Bottom = ({item}) => {\n return (\n <div className='bottom'>\n <span className='price'>¥{item.price1}</span>\n <span className='stale-price'>¥{item.price0}</span>\n </div>\n )\n}\n\n@connect()\nclass Recommendation extends PureComponent {\n state = {\n num: 10,\n list: [],\n courseId: null\n }\n\n componentDidMount() {\n this.getRecommendation()\n }\n\n getRecommendation = () => {\n http.get(`${API.home}/m/play/recommend_course/${this.props.vCourseId}?num=${this.state.num}`)\n .then(res => {\n const data = res.data\n if(data.code === 200){\n\n this.setState({\n list: Array.isArray(data.data) ? data.data : []\n })\n\n }else {\n Toast.info(data.msg)\n }\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n // dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n // }));\n }\n\n render() {\n return (\n this.state.list.length\n ?\n <div className='recommendation'>\n <div className={'title'}>相关推荐</div>\n <ul>\n {\n this.state.list.map(item => {\n const Info = (\n <div className=\"info\">\n <p className='title text-overflow-1'>{item.course_title}</p>\n <p className='des text-overflow-2'>{item.simpledescription}</p>\n <Bottom\n item={item}\n />\n </div>\n )\n\n return (\n <VList\n key={item.course_id}\n img={item.image_name}\n handleClick={this.toCourseDetail}\n info={Info}\n id={item.course_id}\n />\n )\n })\n }\n </ul>\n </div>\n : null\n );\n }\n}\n\nexport default Recommendation;","import React, { Component } from 'react'\nimport './video-catalog.scss'\nimport { Link } from \"react-router-dom\";\nimport classnames from 'classnames'\n\n\nclass VideoCatalog extends Component {\n\n handleClick = (i) => {\n this.props.selectVideo(i)\n }\n\n render() {\n return (\n <div className='video-catalog'>\n <ul>\n {\n this.props.videoCatalog.map((item, index) => {\n return (\n <li key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div className=\"video-title\" onClick={this.handleClick.bind(this, index)}>\n <span className=\"title\">{item.name}</span>\n <span className='duration'>{item.duration}</span>\n <i className={classnames(`iconfont`,\n [item.video_auth === 0\n ? 'iconiconfront-74'\n : 'iconplay_hovericon'],\n )}/>\n </div>\n {\n (item.practice && item.practice.qid)\n ? <Link to={{\n pathname: '/campTest',\n search: `?keshi_id=${item.id}&qid=${item.practice.qid}`\n }}>\n <div className=\"exercise\">\n 课后练习:{item.practice.title}\n <i className={classnames('iconfont',!item.video_auth ? 'iconiconfront-74' : item.practice.is_tested ? 'iconiconfront-3' : '')}/>\n </div>\n </Link>\n : null\n }\n </li>\n )\n })\n }\n </ul>\n </div>\n );\n }\n}\n\nexport default VideoCatalog;","import React, { Component } from 'react';\nimport './datum-catalog.scss'\nimport { Accordion } from \"antd-mobile\";\n\n\nclass DatumCatalog extends Component {\n\n static defaultProps = {\n datum: [{\n dir_name: '',\n files: [{\n file_name: '',\n file_id: 0\n }]\n }]\n }\n\n render() {\n const {datum} = this.props\n return (\n <div className='datum-catalog'>\n <p className='prompt'>课程资料请到PC端播放页下载</p>\n <Accordion>\n {\n datum && datum.length && datum.map((item, index) => {\n return (\n <Accordion.Panel header={item.dir_name} key={index}>\n {\n item.files.map(item => {\n return (\n <div key={item.file_id} className='file-name'>\n {item.file_name}\n </div>\n )\n })\n }\n </Accordion.Panel>\n )\n })\n }\n </Accordion>\n </div>\n );\n }\n}\n\nexport default DatumCatalog;","import videojs from 'video.js'\n\nconst Component = videojs.getComponent('Component')\nconst Button = videojs.getComponent('Button')\n\nclass CustomPlayButtonCover extends Component {\n createEl() {\n return super.createEl('div', {\n className: 'vjs-custom-play-button-cover'\n })\n }\n\n dispose() {\n this.el_ && (this.el_ = null)\n }\n}\n\nclass CustomPlayButton extends Button {\n constructor(player, options) {\n super(player, options)\n this.on('tap', this.tap)\n }\n\n createEl() {\n return super.createEl('button', {\n className: 'vjs-custom-play-button'\n }, {\n type: 'button'\n })\n }\n\n tap() {\n this.player_.play()\n }\n\n dispose() {\n if (this.el_) {\n this.off('tap', this.tap)\n this.el_ = null\n }\n }\n}\n\n\nComponent.registerComponent('CustomPlayButton', CustomPlayButton)\n\nCustomPlayButtonCover.prototype.options_ = {\n children: [\n 'CustomPlayButton'\n ]\n}\n\nComponent.registerComponent('CustomPlayButtonCover', CustomPlayButtonCover)","import React, { Component } from 'react'\nimport HeaderBar from '@/common/HeaderBar'\nimport './video.scss'\nimport {NavLink, Route, Redirect, Switch, Link} from 'react-router-dom'\nimport {http, getParam, browser} from '@/utils'\nimport Recommendation from './recommendation'\nimport VideoCatalog from './video-catalog'\nimport DatumCatalog from './datum-catalog'\nimport { Toast } from 'antd-mobile'\nimport videojs from 'video.js'\nimport 'video.js/dist/video-js.min.css'\nimport { Modal } from \"antd-mobile\"\nimport { Loading } from '@/common'\nimport { connect } from \"react-redux\"\nimport jsCookie from 'js-cookie'\nimport io from 'socket.io-client'\nimport Single from \"@/components/detail/single\";\nimport SingleSuccess from \"../detail/single/singleSuccess\";\nimport './CustomPlayButton'\n\nlet alert = Modal.alert\n\nfunction ProgressShareModal(props) {\n return (\n props.isShow &&\n <div className='progress-share-modal-wrapper'>\n <div className=\"progress-share-modal\">\n <div className=\"title\">每日打卡</div>\n <ul className=\"progress-container\">\n <li>\n <div className=\"title\">累计学习</div>\n <div className=\"number\"><span className='num'>{props.data.learn_day_count}</span>天</div>\n </li>\n <li>\n <div className=\"title\">行动力超过</div>\n <div className=\"number\"><span className='num'>{parseFloat(props.data.action_power)}</span>%\n </div>\n </li>\n </ul>\n <div className=\"share-container\">\n <div className=\"title\">分享到</div>\n <ul>\n <li className='share-icon'>\n <a style={{display: 'block'}} href={props.data.url}>\n <div className=\"icon\"><i className='iconfont iconweixinzhifu'/></div>\n <div className='text'>微信好友</div>\n </a>\n </li>\n <li className='share-icon'>\n <a style={{display: 'block'}} href={props.data.url}>\n <div className=\"icon\"><i className='iconfont iconpengyouquaniconx'/></div>\n <div className='text'>朋友圈</div>\n </a>\n </li>\n </ul>\n </div>\n <i className=\"iconfont iconiconfront-2 close\" onClick={props.closeShareModal}/>\n </div>\n </div>\n )\n}\n\nclass Video extends Component {\n\n video //video element\n player //video player instance\n\n courseID\n\n ws //websocket instance\n timer\n token\n count\n watchSec\n previousPlaybackRate = 1\n currentPlaybackRate = 1\n reconnect = true\n\n recordSocket\n recordTimer\n\n\n state = {\n title: '',\n courseId: null,\n videoList: [],\n datum: [],\n currentVideoSrc: '',\n activeIndex: 0,\n isAuth: true,\n course: null,\n salePrice: null,\n vCourseId: null,\n isLoading: true,\n isShowShareModal: false,\n shareData: {},\n singleBox: false,\n singMess: '',\n singleType: 1,// 单集购买需要\n nowPrice: 0,// 单集购买需要\n laterPrice: 0,// 单集购买需要\n }\n\n\n componentDidMount() {\n const location = window.location;\n if (location.protocol === 'https:') {\n location.replace('http' + location.href.slice(5))\n return\n }\n\n this.courseID = getParam('id')\n if (!this.courseID) {\n this.props.history.replace('/')\n return\n }\n this.setState({\n courseId: this.courseID\n })\n const { location: { state = {} } } = this.props;\n if(state.oid) {\n this.check(state.oid);\n }\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (browser.isWeixin) {\n this.isweixinPay()\n }\n this.token = jsCookie.get('token')\n this.getVideoList()\n this.getDatumCatalog()\n this.setupRecord()\n }\n\n // 直接购买\n tobuy = () => {\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${getParam('id')}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${getParam('id')}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n this.setState({\n singleBox: true,\n singMess: item\n })\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val})\n }\n\n // 单集购买 H5支付成功后回调\n payCallback =() => {\n const _this = this;\n if(!getParam('oid')) {\n return;\n }else{\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n _this.setState({\n singleType: 6,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n _this.setState({\n singleType: 4,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n _this.setState({\n singleType: 3,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n _this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n }\n };\n // 单集购买 微信内支付成功后回调\n isweixinPay =()=> {\n let _this = this;\n let weixin_code = getParam('code');\n if (weixin_code) {\n if (!getParam('oid')) {\n return\n } else {\n // this.props.weixinPay(weixin_code)\n http.get(`${API['base-api']}/pay/wxpay/pub_charge/oid/${getParam('oid')}/code/${weixin_code}`).then((res) => {\n if (res.data.errno === 0) {\n const data = res.data.data;\n function onBridgeReady() {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest', {\n \"appId\": data.appId, //公众号名称,由商户传入\n \"timeStamp\": data.timeStamp, //时间戳,自1970年以来的秒数\n \"nonceStr\": data.nonceStr, //随机串\n \"package\": data.package,\n \"signType\": data.signType, //微信签名方式:\n \"paySign\": data.paySign //微信签名\n },\n function (res) {\n if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n Toast.info('支付成功', 2);\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n _this.setState({\n singleType: 6,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n _this.setState({\n singleType: 4,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n _this.setState({\n singleType: 3,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n _this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n } else {\n alert('支付失败')\n }\n }\n )\n }\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)\n }\n } else {\n onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n };\n // 判断支付是否成功\n check = (oid) => {\n http.get(`${API['base-api']}/class_order_status/${oid}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n singleType: 6,\n\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n singleType: 4,\n\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n singleType: 3,\n\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n\n setupRecord = () => {\n this.recordSocket = io(API.record, {\n transports: ['websocket'],\n forceNew: true\n })\n // this.recordSocket = io(API.record)\n this.recordSocket.on('seek', time => {\n this.player.currentTime(time)\n })\n\n this.recordTimer = setInterval(() => {\n this.sendRecord()\n }, 5000)\n }\n\n sendRecord = () => {\n if (this.recordSocket && this.player) {\n this.recordSocket.emit('addRecord', this.recordUserInfo())\n }\n }\n\n recordUserInfo = () => {\n let {uid} = this.props.user.data\n return {\n uid,\n course_id: this.courseID,\n video_id: this.state.videoList[this.state.activeIndex]['id'],\n video_time: parseInt(this.player.currentTime()),\n plat: 5\n }\n }\n\n setupWS = () => {\n this.ws = new WebSocket(API[\"process-api\"]);\n this.ws.addEventListener('error', () => {\n this.ws = null\n /*setTimeout(() => {\n this.setupWS();\n }, 1000)*/\n })\n this.ws.addEventListener('close', () => {\n if (this.reconnect) {\n this.ws = null\n setTimeout(() => {\n this.setupWS();\n }, 1000)\n }\n clearInterval(this.timer)\n })\n this.ws.addEventListener('message', e => {\n const data = JSON.parse(e.data);\n data.code == 4040 && (this.reconnect = false)\n })\n }\n\n sendMessage = message => {\n this.ws && this.ws.send(JSON.stringify(message))\n }\n\n //视频结束请求接口\n getShareProgressInfo = () => {\n http.get(`${API['base-api']}/m/aist/share_data/${this.courseID}/${this.state.videoList[this.state.activeIndex]['id']}`)\n .then(res => {\n const {data} = res\n if (data.errno == 200) {\n this.setState({shareData: data.data, isShowShareModal: true})\n }\n })\n }\n\n //告诉服务端切换视频\n countSchedule = () => {\n this.sendMessage({\n mtype: 'count_schedule',\n uid: this.props.user.data.uid,\n token: this.token,\n platform: 5\n })\n }\n\n sendWatchTime = (sec, rate) => {\n const {videoList, activeIndex, vCourseId} = this.state\n\n this.sendMessage({\n mtype: 'watch_time',\n rate,\n time: sec,\n video_id: videoList[activeIndex]['id'],\n course_id: this.courseID,\n v_course_id: vCourseId,\n uid: this.props.user.data.uid,\n token: this.token,\n platform: 0\n })\n }\n\n setupTimer = () => {\n this.count = 0\n this.watchSec = 0\n clearInterval(this.timer)\n this.timer = setInterval(() => {\n if (this.player && this.player.player()) {\n if (this.count === 5) {\n this.sendWatchTime(this.watchSec, this.currentPlaybackRate)\n this.count = this.watchSec = 0\n } else {\n !this.player.paused() && this.watchSec++\n this.count++\n }\n }\n }, 1000)\n\n }\n\n initializePlayer = () => {\n window.HELP_IMPROVE_VIDEOJS = false;\n this.player = videojs(this.video, {\n controls: true,\n preload: 'auto',\n bigPlayButton: false,\n textTrackDisplay: false,\n posterImage: false,\n errorDisplay: false,\n playbackRates: ['0.75', '1', '1.5', '2'],\n controlBar: {\n pictureInPictureToggle: false\n }\n })\n this.player.addChild('CustomPlayButtonCover')\n this.player.on('ready', () => {\n this.recordSocket.emit('load', this.recordUserInfo())\n })\n this.player.on('ratechange', () => {\n this.currentPlaybackRate = this.player.playbackRate()\n this.sendWatchTime(this.watchSec, this.previousPlaybackRate)\n this.count = this.watchSec = 0\n this.previousPlaybackRate = this.currentPlaybackRate\n })\n this.player.on('ended', () => {\n this.sendWatchTime(this.watchSec, this.currentPlaybackRate)\n this.getShareProgressInfo()\n clearInterval(this.timer)\n })\n this.player.on('seeked', () => {\n this.sendRecord()\n })\n }\n\n sendLastRecord = () => {\n http.post(`${API.home}/m/course/record_last_video`, {\n v_course_id: this.state.course['v_course_id'],\n video_id: this.state.videoList[this.state.activeIndex].id\n })\n }\n\n componentWillUnmount() {\n this.player && this.player.dispose()\n\n clearInterval(this.timer)\n this.ws && this.ws.close()\n this.ws = null\n\n clearInterval(this.recordTimer)\n this.recordSocket && this.recordSocket.close()\n this.recordSocket = null\n }\n\n selectVideo = index => {\n if (index === this.state.activeIndex) {\n return\n }\n\n this.countSchedule()\n\n this.setState({\n activeIndex: index\n },\n () => {\n if (this.hasAuth(this.state.activeIndex)) {\n this.setPlayerSrc(this.state.videoList[index]['play_url'])\n this.sendLastRecord()\n this.playVideo()\n }\n\n\n }\n )\n }\n\n getLastVideoIndex = lastIndex => {\n return this.state.videoList.findIndex(item => item.id == lastIndex)\n }\n\n getVideoList = () => {\n let url = ''\n\n if (getParam('video_id')) {\n url = `${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`\n } else {\n url = `${API.home}/m/course/play/${this.courseID}`\n }\n http.get(url)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState(\n state => ({\n videoList: data.data['lessons'],\n currentVideoSrc: data.data['lessons'][state.activeIndex]['play_url'],\n course: data.data.course,\n courseId: data.data.course['course_id'],\n vCourseId: data.data.course['v_course_id'],\n title: data.data.course['course_title'],\n isLoading: false\n }),\n this.playSetup\n )\n } else {\n Toast.info(data.msg)\n }\n })\n }\n\n playSetup = () => {\n if (this.state.course.is_aist) {\n this.setupWS()\n this.setupTimer()\n }\n let index = this.getLastVideoIndex(this.state.course.last_video_id)\n index = index >= 0 ? index : 0\n this.setState({\n activeIndex: index\n }, () => {\n if (this.lessonAvailable(index)) {\n if (this.hasAuth(index)) {\n Promise.resolve().then(() => {\n this.initializePlayer()\n this.playWithAuth()\n })\n } else {\n this.getCoursePrice();\n }\n } else {\n alert('暂无视频', '', [{\n text: 'OK',\n onPress: () => {\n this.props.history.push('/')\n }\n }])\n }\n })\n\n }\n\n setPlayerSrc = src => {\n if (!this.player) {\n this.initializePlayer()\n }\n this.player.src({\n src,\n type: 'application/x-mpegURL'\n })\n }\n\n playVideo = () => {\n this.player.play()\n }\n\n\n getDatumCatalog() {\n http.get(`${API.home}/m/course/data/${this.courseID}`)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState({\n datum: data.data\n })\n\n } else {\n Toast.info(data.msg)\n }\n })\n }\n\n lessonAvailable = index => {\n return this.state.videoList[index]['video_size'] !== 0\n }\n\n getCoursePrice = () => {\n http.get(`${API.home}/sys/course/price/${getParam('id')}`)\n .then(res => {\n const {data} = res\n if (data.code === 200) {\n this.setState({\n salePrice: data.data['sale_price']\n })\n }\n })\n }\n\n playWithAuth = () => {\n const {videoList, activeIndex} = this.state\n\n if (this.hasAuth(activeIndex)) {\n this.setPlayerSrc(videoList[activeIndex]['play_url'])\n }\n }\n\n hasAuth = index => {\n const {videoList} = this.state\n\n let lesson = videoList[index]\n\n if (lesson['video_auth']) {\n this.setState({\n isAuth: true\n })\n return true\n } else {\n this.setState({\n isAuth: false\n })\n return false\n\n }\n }\n\n\n render() {\n let {match, location} = this.props\n const {videoList, activeIndex, isAuth, salePrice, course, singleBox, singleType} = this.state\n return (\n <div className='play'>\n <HeaderBar title={this.state.title} arrow={true}/>\n <Loading isLoading={this.state.isLoading}>\n <div className=\"video\">\n <video className={'video-js'} ref={el => this.video = el}>\n <source src={'/'} type='application/x-mpegURL'/>\n </video>\n {\n !isAuth && !!videoList[activeIndex]['is_class'] && (\n <div className=\"purchase-box\">\n <div className='hint'>您尚未购买该课时,请购买后学习。</div>\n <div className='btns'>\n <button type='button'\n onClick={this.tobuy}\n className='purchase-class'>¥{salePrice} 购买课程\n </button>\n <button type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'>¥{videoList.length && videoList[activeIndex]['class_price']} 购买单集\n </button>\n </div>\n </div>\n )\n }\n {\n !isAuth && !!course.is_aist && (\n <div className=\"is-aist-box\">\n <i className={'iconfont iconiconfront-21'}></i>\n <p className={'time'}>{videoList[activeIndex]['aist_start_time']}</p>\n <p className={'time'}>请耐心等待...</p>\n </div>\n )\n }\n </div>\n <div className='tab'>\n <div>\n <NavLink to={{pathname: `${match.url}/video`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >视频</NavLink>\n </div>\n <div>\n <NavLink to={{pathname: `${match.url}/datum`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >资料</NavLink>\n </div>\n </div>\n\n {/*单集购买*/}\n {\n singleBox &&\n <Single singleBox={this.state.singleBox} boxHide={this.boxHide} data={this.state.singMess}\n singleType={this.state.singleType}\n vcourseId={course.v_course_id}\n videoId={this.state.singMess.video_id}\n check={this.check}\n title={this.state.singMess.course_tile}/>\n }\n {/* 单集购买成功 */}\n {\n singleType !== 1 &&\n <SingleSuccess\n boxHide={this.boxHide}\n data={this.state.singMess}\n singleType={singleType}\n videoId={this.state.singMess.video_id}\n nowPrice={this.state.nowPrice}\n laterPrice={this.state.laterPrice}\n />\n }\n\n </Loading>\n <Switch>\n <Redirect exact from={'/play'} to={{\n pathname: '/play/video',\n search: location.search\n }}/>\n <Route path={`${match.path}/video`} render={props => {\n return <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}/>\n }}/>\n <Route path={`${match.path}/datum`} render={props => {\n return <DatumCatalog {...props} datum={this.state.datum}/>\n }}/>\n </Switch>\n <Route render={props => {\n return this.state.vCourseId ? <Recommendation {...props} vCourseId={this.state.vCourseId}/>\n : null\n }}/>\n <ProgressShareModal isShow={this.state.isShowShareModal}\n closeShareModal={() => this.setState({isShowShareModal: false})}\n data={this.state.shareData}\n />\n\n </div>\n );\n }\n}\n\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(Video);","import React from 'react';\nimport './index.scss'\n\nconst VList = (props) => {\n return (\n <li className='v-list-base-item' onClick={props.handleClick.bind(this, props.id)}>\n <div className=\"content\">\n <div className=\"cover\">\n {props.status}\n <img src={props.img} alt=\"\"/>\n </div>\n {props.info}\n </div>\n {props.tab}\n </li>\n );\n};\n\nexport default VList;","import React, { Component } from 'react'\nimport './index.scss'\nimport { getParam, http, browser } from \"@/utils\";\nimport { Toast } from 'antd-mobile';\nimport { Link, withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { differenceInHours, differenceInMinutes, differenceInSeconds } from \"date-fns\";\n\n\nclass Single extends Component {\n constructor(props) {\n super(props)\n this.state = {\n // status: 1,\n orderId: '',\n nowPrice: '',\n laterPrice: '',\n hour: '',\n min: '',\n sec: '',\n endTime: '',\n groupOrderId: '',\n payType: '0', // 1支付宝 0微信\n // singleBox: false,\n showSingleBox: false,\n }\n }\n\n componentDidMount() {\n // if (getParam('is_class') === 1 || getParam('weixinpay')) {\n // console.log(0);\n // this.payCallback()\n // }\n // if (browser.isWeixin) {\n // this.isweixinPay()\n // }\n }\n\n componentWillReceiveProps(nextProps, nextContext) {\n // console.log(nextProps);\n // this.setState({\n // singleBox: nextProps.singleBox\n // })\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n http.get(`${API.home}/sys/createClassOrder/${this.props.data.video_id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n orderId: res.data.data.order_id\n })\n this.state.payType === '1' ? this.alipayPay(res.data.data.order_id) : this.weixinPay(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (browser.isWeixin) {\n window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" + encodeURIComponent(window.location.href + \"&aa=bb&oid=\" + orderId).toLowerCase() + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\";\n } else {\n // 微信外部-支付\n http.get(`${API['base-api']}/pay/wxpay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location.href = res.data.data.url + \"&redirect_url=\" + encodeURIComponent(window.location.href + \"&weixinpay=1&oid=\" + orderId).toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n const courseId = getParam('id');\n http.get(`${API['base-api']}/pay/alipay/wap_charge_new/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n courseId && window.localStorage.setItem('payCourse', courseId);\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 微信内部支付\n isweixinPay = () => {\n let _this = this;\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (!getParam('oid')) {\n return\n } else {\n http.get(`${API['base-api']}/pay/wxpay/pub_charge/oid/${getParam('oid')}/code/${weixin_code}`).then((res) => {\n if (res.data.errno === 0) {\n const data = res.data.data;\n\n function onBridgeReady() {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest', {\n \"appId\": data.appId, //公众号名称,由商户传入\n \"timeStamp\": data.timeStamp, //时间戳,自1970年以来的秒数\n \"nonceStr\": data.nonceStr, //随机串\n \"package\": data.package,\n \"signType\": data.signType, //微信签名方式:\n \"paySign\": data.paySign //微信签名\n },\n function (res) {\n if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n Toast.info('支付成功', 2);\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n status: 6,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n status: 4,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n status: 3,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n status: 2,\n showSingleBox: true,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n } else {\n alert('支付失败')\n }\n }\n )\n }\n\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)\n }\n } else {\n onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n }\n\n // 支付完成之后获取状态\n payCallback = () => {\n const _this = this;\n if (!getParam('oid')) {\n return;\n } else {\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n status: 6,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n status: 4,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n status: 3,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n status: 2,\n showSingleBox: true,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n }\n\n }\n\n\n // 特价购买全集\n toBuyAll = () => {\n\n }\n // 0元购买全集\n zerobuyReceive = () => {\n Toast.success('购买全集成功', 3)\n this.colse()\n }\n // 0元参团\n zerogroupBuy = () => {\n this.getOrderId()\n }\n\n // 获取订单号-0元参团\n getOrderId = () => {\n let data = {\n course_id: getParam('id')\n }\n http.post(`${API['base-api']}/pdd/sys`, data).then((res) => {\n if (res.data.errno === 0) {\n this.setState({\n groupOrderId: res.data.data.order_id\n })\n this.getOrderStatus(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取订单状态-0元参团\n getOrderStatus = (id) => {\n http.get(`${API.home}/m/pdd/order_status/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.getTime(res.data.data.pdd_order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 获取倒计时-0元参团\n getTime = (id) => {\n http.get(`${API.home}/m/pdd_order_end_time/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n endTime: res.data.data.end_time,\n status: 7\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 邀请好友参团\n toGroup = () => {\n this.props.history.push(`/togroup?id=${this.state.groupOrderId}`)\n }\n\n // 关闭弹窗\n colse = () => {\n this.props.boxHide(false);\n this.setState({\n status: 1\n })\n }\n\n render() {\n const {showSingleBox} = this.state;\n if (this.state.endTime) {\n let date = this.state.endTime * 1000\n let now = Date.now()\n setInterval(() => {\n date -= 1000\n let s = differenceInSeconds(new Date(date), now) % 60,\n m = differenceInMinutes(new Date(date), now) % 60,\n h = differenceInHours(new Date(date), now) % 24\n this.setState({\n hour: h,\n min: m,\n sec: s,\n })\n }, 1000)\n }\n const {singleType} = this.props;\n return (\n singleType === 1 &&\n <div>\n <div className='popup-box'>\n <div className='content singleset-payment'>\n <div className='price-box'>\n <span>实付款:</span>\n <p>{this.props.data.class_price}元</p>\n </div>\n <div className='course-info'>\n <p className='text-overflow-1'><span>课程:</span>\n {this.props.title}\n </p>\n <p className='text-overflow-1'><span>课时:</span>\n {this.props.data.name}\n </p>\n </div>\n <div className='payment-type'>\n <label>支付方式:</label>\n {\n !browser.isWeixin &&\n <p onClick={this.check.bind(this, '1')}>\n <i className='iconfont iconalipay'></i>\n <span>支付宝</span>\n <i className={`iconfont icondanseshixintubiao-5 redio ${this.state.payType === '1' ? 'redioed' : ''}`}></i>\n </p>\n }\n\n <p onClick={this.check.bind(this, '0')}>\n <i className='iconfont iconweixinzhifu buy'></i>\n <span>微信支付</span>\n <i className={`iconfont icondanseshixintubiao-5 redio ${this.state.payType === '0' ? 'redioed' : ''}`}></i>\n </p>\n </div>\n <div className='btn btn-18B4ED' onClick={this.toBuy}>确认购买</div>\n </div>\n <i onClick={this.colse} className={'iconfont iconiconfront-2 close'}></i>\n </div>\n\n </div>\n\n );\n }\n\n}\n\nexport default compose(\n connect(\n state => ({user: state.user}),\n null\n ),\n withRouter\n)(Single)\n","import React, { Component } from 'react'\nimport './index.scss'\nimport { getParam, http, browser } from \"@/utils\";\nimport { Toast } from 'antd-mobile';\nimport { Link, withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { differenceInHours, differenceInMinutes, differenceInSeconds } from \"date-fns\";\n\n\nclass Single extends Component {\n constructor(props) {\n super(props)\n this.state = {\n // status: 1,\n orderId: '',\n nowPrice: '',\n laterPrice: '',\n hour: '',\n min: '',\n sec: '',\n endTime: '',\n groupOrderId: '',\n payType: '0', // 1支付宝 0微信\n // singleBox: false,\n }\n }\n\n componentDidMount() {\n\n }\n\n componentWillReceiveProps(nextProps, nextContext) {\n // console.log(nextProps);\n // this.setState({\n // singleBox: nextProps.singleBox\n // })\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n http.get(`${API.home}/sys/createClassOrder/${this.props.data.video_id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n orderId: res.data.data.order_id\n })\n this.state.payType === '1' ? this.alipayPay(res.data.data.order_id) : this.weixinPay(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (browser.isWeixin) {\n window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" + encodeURIComponent(window.location.href + \"&aa=bb&oid=\" + orderId).toLowerCase() + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\";\n } else {\n // 微信外部-支付\n http.get(`${API['base-api']}/pay/wxpay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location.href = res.data.data.url + \"&redirect_url=\" + encodeURIComponent(window.location.href + \"&weixinpay=1&oid=\" + orderId).toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n const courseId = getParam('id');\n http.get(`${API['base-api']}/pay/alipay/wap_charge_new/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n courseId && window.localStorage.setItem('payCourse', courseId);\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 特价购买全集\n toBuyAll = () => {\n\n }\n // 0元购买全集\n zerobuyReceive = () => {\n Toast.success('购买全集成功', 3)\n this.colse()\n }\n // 0元参团\n zerogroupBuy = () => {\n this.getOrderId()\n }\n\n // 获取订单号-0元参团\n getOrderId = () => {\n let data = {\n course_id: getParam('id')\n }\n http.post(`${API['base-api']}/pdd/sys`, data).then((res) => {\n if (res.data.errno === 0) {\n this.setState({\n groupOrderId: res.data.data.order_id\n })\n this.getOrderStatus(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取订单状态-0元参团\n getOrderStatus = (id) => {\n http.get(`${API.home}/m/pdd/order_status/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.getTime(res.data.data.pdd_order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 获取倒计时-0元参团\n getTime = (id) => {\n http.get(`${API.home}/m/pdd_order_end_time/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n endTime: res.data.data.end_time,\n status: 7\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 邀请好友参团\n toGroup = () => {\n this.props.history.push(`/togroup?id=${this.state.groupOrderId}`)\n }\n\n // 关闭弹窗\n colse = () => {\n this.props.boxHide(false);\n this.setState({\n status: 1\n })\n }\n\n render() {\n let {singleBox} = this.state;\n if (this.state.endTime) {\n let date = this.state.endTime * 1000\n let now = Date.now()\n setInterval(() => {\n date -= 1000\n let s = differenceInSeconds(new Date(date), now) % 60,\n m = differenceInMinutes(new Date(date), now) % 60,\n h = differenceInHours(new Date(date), now) % 24\n this.setState({\n hour: h,\n min: m,\n sec: s,\n })\n }, 1000)\n }\n const { singleType } = this.props;\n console.log(this.state.singleBox);\n return (\n <div className='popup-box'>\n {\n singleType === 2 &&\n <div className='content payment-success'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 3天内购买全集,可直接抵扣该集费用,{this.props.nowPrice}元购买。</div>\n <div className=\"dec\">· 超过3天,按照未购集数/全部集数等比例计费,{this.props.laterPrice}元购买全集。</div>\n <Link to={`/play/video?id=${this.props.vcourseId}&video_id=${this.props.data.video_id}`} className='btn btn-18B4ED'>开始学习</Link>\n <div className='btn btn-FF4000' onclick={this.toBuyAll()}>¥{this.props.nowPrice}购买全集\n </div>\n </div>\n }\n {\n singleType === 3 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 恭喜您获得0元拼团购买剩余课时的机会。</div>\n <div className='btn btn-FF4000' onClick={this.zerogroupBuy}>0元参团</div>\n </div>\n }\n {\n singleType === 4 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 恭喜您获得0元购买剩余课时的机会。</div>\n <div className='btn btn-FF4000' onClick={this.zerobuyReceive}>0元购</div>\n </div>\n }\n {\n singleType === 6 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <Link to={`/play/video?id=${this.props.vcourseId}&video_id=${this.props.data.video_id}`} className='btn btn-18B4ED'>去学习</Link>\n </div>\n }\n {\n singleType === 7 &&\n <div className='content group'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>参团成功</span>\n </div>\n <div className='group-img'>\n <img src={this.props.user.data.avatar} alt=\"\"/>\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png\"\n alt=\"\"/>\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png\"\n alt=\"\"/>\n\n </div>\n <div className='btn-l btn-FF4000' onClick={this.toGroup}>\n 剩余{String(this.state.hour).padStart(2, 0)}:{String(this.state.min).padStart(2, 0)}:{String(this.state.sec).padStart(2, 0)}\n 邀请好友参团\n </div>\n </div>\n }\n <i onClick={this.colse} className={'iconfont iconiconfront-2 close'}></i>\n </div>\n\n );\n }\n\n}\n\nexport default compose(\n connect(\n state => ({user: state.user}),\n null\n ),\n withRouter\n)(Single)\n"],"sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{1177:function(e,t,a){"use strict";a.r(t);a(43);var n,c=a(14),i=a.n(c),o=a(8),s=a(9),r=a(10),d=a(7),l=a(11),u=a(154),m=(a(257),a(99)),p=a.n(m),h=a(0),f=a.n(h),v=a(162),b=(a(788),a(18)),y=a(51),g=a(4),E=a(20),_=(a(62),a(789),a(648)),S=function(e){var t=e.item;return f.a.createElement("div",{className:"bottom"},f.a.createElement("span",{className:"price"},"\xa5",t.price1),f.a.createElement("span",{className:"stale-price"},"\xa5",t.price0))},w=Object(E.b)()(n=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),s=0;s<n;s++)c[s]=arguments[s];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).state={num:10,list:[],courseId:null},a.getRecommendation=function(){g.c.get("".concat(API.home,"/m/play/recommend_course/").concat(a.props.vCourseId,"?num=").concat(a.state.num)).then(function(e){var t=e.data;200===t.code?a.setState({list:Array.isArray(t.data)?t.data:[]}):i.a.info(t.msg)})},a.toCourseDetail=function(e){var t=a.props;t.dispatch;t.history.push("/detail?id=".concat(e))},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){this.getRecommendation()}},{key:"render",value:function(){var e=this;return this.state.list.length?f.a.createElement("div",{className:"recommendation"},f.a.createElement("div",{className:"title"},"\u76f8\u5173\u63a8\u8350"),f.a.createElement("ul",null,this.state.list.map(function(t){var a=f.a.createElement("div",{className:"info"},f.a.createElement("p",{className:"title text-overflow-1"},t.course_title),f.a.createElement("p",{className:"des text-overflow-2"},t.simpledescription),f.a.createElement(S,{item:t}));return f.a.createElement(_.a,{key:t.course_id,img:t.image_name,handleClick:e.toCourseDetail,info:a,id:t.course_id})}))):null}}]),t}(h.PureComponent))||n,I=(a(790),a(15)),N=a.n(I),P=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),i=0;i<n;i++)c[i]=arguments[i];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).handleClick=function(e){a.props.selectVideo(e)},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this;return f.a.createElement("div",{className:"video-catalog"},f.a.createElement("ul",null,this.props.videoCatalog.map(function(t,a){return f.a.createElement("li",{key:t.id,className:N()({active:e.props.activeIndex===a})},f.a.createElement("div",{className:"video-title",onClick:e.handleClick.bind(e,a)},f.a.createElement("span",{className:"title"},t.name),f.a.createElement("span",{className:"duration"},t.duration),f.a.createElement("i",{className:N()("iconfont",[0===t.video_auth?"iconiconfront-74":"iconplay_hovericon"])})),t.practice&&t.practice.qid?f.a.createElement(b.b,{to:{pathname:"/campTest",search:"?keshi_id=".concat(t.id,"&qid=").concat(t.practice.qid)}},f.a.createElement("div",{className:"exercise"},"\u8bfe\u540e\u7ec3\u4e60\uff1a",t.practice.title,f.a.createElement("i",{className:N()("iconfont",t.video_auth?t.practice.is_tested?"iconiconfront-3":"":"iconiconfront-74")}))):null)})))}}]),t}(h.Component),O=(a(791),a(793)),j=a.n(O),x=(a(794),function(e){function t(){return Object(o.a)(this,t),Object(r.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this.props.datum;return f.a.createElement("div",{className:"datum-catalog"},f.a.createElement("p",{className:"prompt"},"\u8bfe\u7a0b\u8d44\u6599\u8bf7\u5230PC\u7aef\u64ad\u653e\u9875\u4e0b\u8f7d"),f.a.createElement(j.a,null,e&&e.length&&e.map(function(e,t){return f.a.createElement(j.a.Panel,{header:e.dir_name,key:t},e.files.map(function(e){return f.a.createElement("div",{key:e.file_id,className:"file-name"},e.file_name)}))})))}}]),t}(h.Component));x.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var k=x,C=a(779),T=(a(840),a(30)),A=a(41),B=a.n(A),R=a(841),D=a.n(R),L=a(661),W=a(662),M=a(1158),z=C.a.getComponent("Component"),J=C.a.getComponent("Button"),V=function(e){function t(){return Object(o.a)(this,t),Object(r.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(s.a)(t,[{key:"createEl",value:function(){return Object(M.a)(Object(d.a)(t.prototype),"createEl",this).call(this,"div",{className:"vjs-custom-play-button-cover"})}},{key:"dispose",value:function(){this.el_&&(this.el_=null)}}]),t}(z),q=function(e){function t(e,a){var n;return Object(o.a)(this,t),(n=Object(r.a)(this,Object(d.a)(t).call(this,e,a))).on("tap",n.tap),n}return Object(l.a)(t,e),Object(s.a)(t,[{key:"createEl",value:function(){return Object(M.a)(Object(d.a)(t.prototype),"createEl",this).call(this,"button",{className:"vjs-custom-play-button"},{type:"button"})}},{key:"tap",value:function(){this.player_.play()}},{key:"dispose",value:function(){this.el_&&(this.off("tap",this.tap),this.el_=null)}}]),t}(J);z.registerComponent("CustomPlayButton",q),V.prototype.options_={children:["CustomPlayButton"]},z.registerComponent("CustomPlayButtonCover",V);var H=p.a.alert;function U(e){return e.isShow&&f.a.createElement("div",{className:"progress-share-modal-wrapper"},f.a.createElement("div",{className:"progress-share-modal"},f.a.createElement("div",{className:"title"},"\u6bcf\u65e5\u6253\u5361"),f.a.createElement("ul",{className:"progress-container"},f.a.createElement("li",null,f.a.createElement("div",{className:"title"},"\u7d2f\u8ba1\u5b66\u4e60"),f.a.createElement("div",{className:"number"},f.a.createElement("span",{className:"num"},e.data.learn_day_count),"\u5929")),f.a.createElement("li",null,f.a.createElement("div",{className:"title"},"\u884c\u52a8\u529b\u8d85\u8fc7"),f.a.createElement("div",{className:"number"},f.a.createElement("span",{className:"num"},parseFloat(e.data.action_power)),"%"))),f.a.createElement("div",{className:"share-container"},f.a.createElement("div",{className:"title"},"\u5206\u4eab\u5230"),f.a.createElement("ul",null,f.a.createElement("li",{className:"share-icon"},f.a.createElement("a",{style:{display:"block"},href:e.data.url},f.a.createElement("div",{className:"icon"},f.a.createElement("i",{className:"iconfont iconweixinzhifu"})),f.a.createElement("div",{className:"text"},"\u5fae\u4fe1\u597d\u53cb"))),f.a.createElement("li",{className:"share-icon"},f.a.createElement("a",{style:{display:"block"},href:e.data.url},f.a.createElement("div",{className:"icon"},f.a.createElement("i",{className:"iconfont iconpengyouquaniconx"})),f.a.createElement("div",{className:"text"},"\u670b\u53cb\u5708"))))),f.a.createElement("i",{className:"iconfont iconiconfront-2 close",onClick:e.closeShareModal})))}var F=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),s=0;s<n;s++)c[s]=arguments[s];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).previousPlaybackRate=1,a.currentPlaybackRate=1,a.reconnect=!0,a.state={title:"",courseId:null,videoList:[],datum:[],currentVideoSrc:"",activeIndex:0,isAuth:!0,course:null,salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:"",singleType:1,nowPrice:0,laterPrice:0},a.tobuy=function(){g.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(Object(g.b)("id"),"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(Object(g.b)("id")),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){a.setState({singleBox:!0,singMess:e})},a.boxHide=function(e){a.setState({singleBox:e})},a.payCallback=function(){var e=Object(u.a)(Object(u.a)(a));Object(g.b)("oid")&&(e.intervalPayStatus=setInterval(function(){g.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(g.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,g.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(g.b)("oid"))).then(function(t){200===Number(t.data.data.errno)?e.setState({singleType:6}):201===Number(t.data.data.errno)?e.setState({singleType:4}):202===Number(t.data.data.errno)?e.setState({singleType:3}):203===Number(t.data.data.errno)?e.setState({nowPrice:t.data.data.data.now_price,laterPrice:t.data.data.data.three_day_later_price,singleType:2}):i.a.info(t.data.data.msg,2)}))})},1e3))},a.isweixinPay=function(){var e=Object(u.a)(Object(u.a)(a)),t=Object(g.b)("code");if(t){if(!Object(g.b)("oid"))return;g.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(g.b)("oid"),"/code/").concat(t)).then(function(t){if(0===t.data.errno){var a=function(){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:n.appId,timeStamp:n.timeStamp,nonceStr:n.nonceStr,package:n.package,signType:n.signType,paySign:n.paySign},function(t){"get_brand_wcpay_request:ok"==t.err_msg?(i.a.info("\u652f\u4ed8\u6210\u529f",2),e.intervalPayStatus=setInterval(function(){g.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(g.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,g.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(g.b)("oid"))).then(function(t){200===Number(t.data.data.errno)?e.setState({singleType:6}):201===Number(t.data.data.errno)?e.setState({singleType:4}):202===Number(t.data.data.errno)?e.setState({singleType:3}):203===Number(t.data.data.errno)?e.setState({nowPrice:t.data.data.data.now_price,laterPrice:t.data.data.data.three_day_later_price,singleType:2}):i.a.info(t.data.data.msg,2)}))})},1e3)):H("\u652f\u4ed8\u5931\u8d25")})},n=t.data.data;"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a),document.attachEvent("onWeixinJSBridgeReady",a)):a()}else i.a.info(t.data.msg,2)})}},a.check=function(e){g.c.get("".concat(API["base-api"],"/class_order_status/").concat(e)).then(function(e){200===Number(e.data.data.errno)?a.setState({singleType:6}):201===Number(e.data.data.errno)?a.setState({singleType:4}):202===Number(e.data.data.errno)?a.setState({singleType:3}):203===Number(e.data.data.errno)?a.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,singleType:2}):i.a.info(e.data.data.msg,2)})},a.setupRecord=function(){a.recordSocket=D()(API.record,{transports:["websocket"],forceNew:!0}),a.recordSocket.on("seek",function(e){a.player.currentTime(e)}),a.recordTimer=setInterval(function(){a.sendRecord()},5e3)},a.sendRecord=function(){a.recordSocket&&a.player&&a.recordSocket.emit("addRecord",a.recordUserInfo())},a.recordUserInfo=function(){return{uid:a.props.user.data.uid,course_id:a.courseID,video_id:a.state.videoList[a.state.activeIndex].id,video_time:parseInt(a.player.currentTime()),plat:5}},a.setupWS=function(){a.ws=new WebSocket(API["process-api"]),a.ws.addEventListener("error",function(){a.ws=null}),a.ws.addEventListener("close",function(){a.reconnect&&(a.ws=null,setTimeout(function(){a.setupWS()},1e3)),clearInterval(a.timer)}),a.ws.addEventListener("message",function(e){4040==JSON.parse(e.data).code&&(a.reconnect=!1)})},a.sendMessage=function(e){a.ws&&a.ws.send(JSON.stringify(e))},a.getShareProgressInfo=function(){g.c.get("".concat(API["base-api"],"/m/aist/share_data/").concat(a.courseID,"/").concat(a.state.videoList[a.state.activeIndex].id)).then(function(e){var t=e.data;200==t.errno&&a.setState({shareData:t.data,isShowShareModal:!0})})},a.countSchedule=function(){a.sendMessage({mtype:"count_schedule",uid:a.props.user.data.uid,token:a.token,platform:5})},a.sendWatchTime=function(e,t){var n=a.state,c=n.videoList,i=n.activeIndex,o=n.vCourseId;a.sendMessage({mtype:"watch_time",rate:t,time:e,video_id:c[i].id,course_id:a.courseID,v_course_id:o,uid:a.props.user.data.uid,token:a.token,platform:0})},a.setupTimer=function(){a.count=0,a.watchSec=0,clearInterval(a.timer),a.timer=setInterval(function(){a.player&&a.player.player()&&(5===a.count?(a.sendWatchTime(a.watchSec,a.currentPlaybackRate),a.count=a.watchSec=0):(!a.player.paused()&&a.watchSec++,a.count++))},1e3)},a.initializePlayer=function(){window.HELP_IMPROVE_VIDEOJS=!1,a.player=Object(C.a)(a.video,{controls:!0,preload:"auto",bigPlayButton:!1,textTrackDisplay:!1,posterImage:!1,errorDisplay:!1,playbackRates:["0.75","1","1.5","2"],controlBar:{pictureInPictureToggle:!1}}),a.player.addChild("CustomPlayButtonCover"),a.player.on("ready",function(){a.recordSocket.emit("load",a.recordUserInfo())}),a.player.on("ratechange",function(){a.currentPlaybackRate=a.player.playbackRate(),a.sendWatchTime(a.watchSec,a.previousPlaybackRate),a.count=a.watchSec=0,a.previousPlaybackRate=a.currentPlaybackRate}),a.player.on("ended",function(){a.sendWatchTime(a.watchSec,a.currentPlaybackRate),a.getShareProgressInfo(),clearInterval(a.timer)}),a.player.on("seeked",function(){a.sendRecord()})},a.sendLastRecord=function(){g.c.post("".concat(API.home,"/m/course/record_last_video"),{v_course_id:a.state.course.v_course_id,video_id:a.state.videoList[a.state.activeIndex].id})},a.selectVideo=function(e){e!==a.state.activeIndex&&(a.countSchedule(),a.setState({activeIndex:e},function(){a.hasAuth(a.state.activeIndex)&&(a.setPlayerSrc(a.state.videoList[e].play_url),a.sendLastRecord(),a.playVideo())}))},a.getLastVideoIndex=function(e){return a.state.videoList.findIndex(function(t){return t.id==e})},a.getVideoList=function(){var e="";e=Object(g.b)("video_id")?"".concat(API.home,"/m/course/play/").concat(a.courseID+"?video_id="+Object(g.b)("video_id")):"".concat(API.home,"/m/course/play/").concat(a.courseID),g.c.get(e).then(function(e){var t=e.data;200===t.code?a.setState(function(e){return{videoList:t.data.lessons,currentVideoSrc:t.data.lessons[e.activeIndex].play_url,course:t.data.course,courseId:t.data.course.course_id,vCourseId:t.data.course.v_course_id,title:t.data.course.course_title,isLoading:!1}},a.playSetup):i.a.info(t.msg)})},a.playSetup=function(){a.state.course.is_aist&&(a.setupWS(),a.setupTimer());var e=a.getLastVideoIndex(a.state.course.last_video_id);e=e>=0?e:0,a.setState({activeIndex:e},function(){a.lessonAvailable(e)?a.hasAuth(e)?Promise.resolve().then(function(){a.initializePlayer(),a.playWithAuth()}):a.getCoursePrice():H("\u6682\u65e0\u89c6\u9891","",[{text:"OK",onPress:function(){a.props.history.push("/")}}])})},a.setPlayerSrc=function(e){a.player||a.initializePlayer(),a.player.src({src:e,type:"application/x-mpegURL"})},a.playVideo=function(){a.player.play()},a.lessonAvailable=function(e){return 0!==a.state.videoList[e].video_size},a.getCoursePrice=function(){g.c.get("".concat(API.home,"/sys/course/price/").concat(Object(g.b)("id"))).then(function(e){var t=e.data;200===t.code&&a.setState({salePrice:t.data.sale_price})})},a.playWithAuth=function(){var e=a.state,t=e.videoList,n=e.activeIndex;a.hasAuth(n)&&a.setPlayerSrc(t[n].play_url)},a.hasAuth=function(e){return a.state.videoList[e].video_auth?(a.setState({isAuth:!0}),!0):(a.setState({isAuth:!1}),!1)},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){var e=window.location;if("https:"!==e.protocol)if(this.courseID=Object(g.b)("id"),this.courseID){this.setState({courseId:this.courseID});var t=this.props.location.state,a=void 0===t?{}:t;a.oid&&this.check(a.oid),(1===Object(g.b)("is_class")||Object(g.b)("weixinpay"))&&this.payCallback(),g.a.isWeixin&&this.isweixinPay(),this.token=B.a.get("token"),this.getVideoList(),this.getDatumCatalog(),this.setupRecord()}else this.props.history.replace("/");else e.replace("http"+e.href.slice(5))}},{key:"componentWillUnmount",value:function(){this.player&&this.player.dispose(),clearInterval(this.timer),this.ws&&this.ws.close(),this.ws=null,clearInterval(this.recordTimer),this.recordSocket&&this.recordSocket.close(),this.recordSocket=null}},{key:"getDatumCatalog",value:function(){var e=this;g.c.get("".concat(API.home,"/m/course/data/").concat(this.courseID)).then(function(t){var a=t.data;200===a.code?e.setState({datum:a.data}):i.a.info(a.msg)})}},{key:"render",value:function(){var e=this,t=this.props,a=t.match,n=t.location,c=this.state,i=c.videoList,o=c.activeIndex,s=c.isAuth,r=c.salePrice,d=c.course,l=c.singleBox,u=c.singleType;return f.a.createElement("div",{className:"play"},f.a.createElement(v.a,{title:this.state.title,arrow:!0}),f.a.createElement(T.f,{isLoading:this.state.isLoading},f.a.createElement("div",{className:"video"},f.a.createElement("video",{className:"video-js",ref:function(t){return e.video=t}},f.a.createElement("source",{src:"/",type:"application/x-mpegURL"})),!s&&!!i[o].is_class&&f.a.createElement("div",{className:"purchase-box"},f.a.createElement("div",{className:"hint"},"\u60a8\u5c1a\u672a\u8d2d\u4e70\u8be5\u8bfe\u65f6\uff0c\u8bf7\u8d2d\u4e70\u540e\u5b66\u4e60\u3002"),f.a.createElement("div",{className:"btns"},f.a.createElement("button",{type:"button",onClick:this.tobuy,className:"purchase-class"},"\xa5",r," \u8d2d\u4e70\u8bfe\u7a0b"),f.a.createElement("button",{type:"button",onClick:this.toSingleset.bind(this,i[o]),className:"purchase-episode"},"\xa5",i.length&&i[o].class_price," \u8d2d\u4e70\u5355\u96c6"))),!s&&!!d.is_aist&&f.a.createElement("div",{className:"is-aist-box"},f.a.createElement("i",{className:"iconfont iconiconfront-21"}),f.a.createElement("p",{className:"time"},i[o].aist_start_time),f.a.createElement("p",{className:"time"},"\u8bf7\u8010\u5fc3\u7b49\u5f85..."))),f.a.createElement("div",{className:"tab"},f.a.createElement("div",null,f.a.createElement(b.c,{to:{pathname:"".concat(a.url,"/video"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u89c6\u9891")),f.a.createElement("div",null,f.a.createElement(b.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),l&&f.a.createElement(L.a,{singleBox:this.state.singleBox,boxHide:this.boxHide,data:this.state.singMess,singleType:this.state.singleType,vcourseId:d.v_course_id,videoId:this.state.singMess.video_id,check:this.check,title:this.state.singMess.course_tile}),1!==u&&f.a.createElement(W.a,{boxHide:this.boxHide,data:this.state.singMess,singleType:u,videoId:this.state.singMess.video_id,nowPrice:this.state.nowPrice,laterPrice:this.state.laterPrice})),f.a.createElement(y.d,null,f.a.createElement(y.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),f.a.createElement(y.b,{path:"".concat(a.path,"/video"),render:function(t){return f.a.createElement(P,Object.assign({activeIndex:e.state.activeIndex,selectVideo:e.selectVideo,videoCatalog:i},t))}}),f.a.createElement(y.b,{path:"".concat(a.path,"/datum"),render:function(t){return f.a.createElement(k,Object.assign({},t,{datum:e.state.datum}))}})),f.a.createElement(y.b,{render:function(t){return e.state.vCourseId?f.a.createElement(w,Object.assign({},t,{vCourseId:e.state.vCourseId})):null}}),f.a.createElement(U,{isShow:this.state.isShowShareModal,closeShareModal:function(){return e.setState({isShowShareModal:!1})},data:this.state.shareData}))}}]),t}(h.Component);t.default=Object(E.b)(function(e){return{user:e.user}},null)(F)},617:function(e,t,a){},648:function(e,t,a){"use strict";var n=a(0),c=a.n(n);a(649);t.a=function(e){return c.a.createElement("li",{className:"v-list-base-item",onClick:e.handleClick.bind(void 0,e.id)},c.a.createElement("div",{className:"content"},c.a.createElement("div",{className:"cover"},e.status,c.a.createElement("img",{src:e.img,alt:""})),e.info),e.tab)}},649:function(e,t,a){},661:function(e,t,a){"use strict";a(43);var n=a(14),c=a.n(n),i=a(8),o=a(9),s=a(10),r=a(7),d=a(11),l=a(154),u=a(0),m=a.n(u),p=(a(617),a(4)),h=a(51),f=a(17),v=a(20),b=a(157),y=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(s.a)(this,Object(r.a)(t).call(this,e))).check=function(e){a.setState({payType:e})},a.toBuy=function(){p.c.get("".concat(API.home,"/sys/createClassOrder/").concat(a.props.data.video_id)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(e.data.data.order_id):a.weixinPay(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){p.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb&oid="+e).toLowerCase()+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect":p.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(t){0===t.data.errno?window.location.href=t.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():c.a.info(t.data.msg,2)})},a.alipayPay=function(e){var t=Object(p.b)("id");p.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge_new/oid/").concat(e)).then(function(e){0===e.data.errno?(window.location=e.data.data.url,t&&window.localStorage.setItem("payCourse",t)):c.a.info(e.data.msg,2)})},a.isweixinPay=function(){var e=Object(l.a)(Object(l.a)(a)),t=Object(p.b)("code");if(t){if(!Object(p.b)("oid"))return;p.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(p.b)("oid"),"/code/").concat(t)).then(function(t){if(0===t.data.errno){var a=function(){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:n.appId,timeStamp:n.timeStamp,nonceStr:n.nonceStr,package:n.package,signType:n.signType,paySign:n.paySign},function(t){"get_brand_wcpay_request:ok"==t.err_msg?(c.a.info("\u652f\u4ed8\u6210\u529f",2),e.intervalPayStatus=setInterval(function(){var t=this;p.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(p.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,p.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(p.b)("oid"))).then(function(e){200===Number(e.data.data.errno)?t.setState({status:6,showSingleBox:!0}):201===Number(e.data.data.errno)?t.setState({status:4,showSingleBox:!0}):202===Number(e.data.data.errno)?t.setState({status:3,showSingleBox:!0}):203===Number(e.data.data.errno)?t.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2,showSingleBox:!0}):c.a.info(e.data.data.msg,2)}))})},1e3)):alert("\u652f\u4ed8\u5931\u8d25")})},n=t.data.data;"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a),document.attachEvent("onWeixinJSBridgeReady",a)):a()}else c.a.info(t.data.msg,2)})}},a.payCallback=function(){var e=Object(l.a)(Object(l.a)(a));Object(p.b)("oid")&&(e.intervalPayStatus=setInterval(function(){var t=this;p.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(p.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,p.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(p.b)("oid"))).then(function(e){200===Number(e.data.data.errno)?t.setState({status:6,showSingleBox:!0}):201===Number(e.data.data.errno)?t.setState({status:4,showSingleBox:!0}):202===Number(e.data.data.errno)?t.setState({status:3,showSingleBox:!0}):203===Number(e.data.data.errno)?t.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2,showSingleBox:!0}):c.a.info(e.data.data.msg,2)}))})},1e3))},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(p.b)("id")};p.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){p.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){p.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0",showSingleBox:!1},a}return Object(d.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){}},{key:"componentWillReceiveProps",value:function(e,t){}},{key:"render",value:function(){var e=this;this.state.showSingleBox;if(this.state.endTime){var t=1e3*this.state.endTime,a=Date.now();setInterval(function(){t-=1e3;var n=Object(b.differenceInSeconds)(new Date(t),a)%60,c=Object(b.differenceInMinutes)(new Date(t),a)%60,i=Object(b.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}return 1===this.props.singleType&&m.a.createElement("div",null,m.a.createElement("div",{className:"popup-box"},m.a.createElement("div",{className:"content singleset-payment"},m.a.createElement("div",{className:"price-box"},m.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),m.a.createElement("p",null,this.props.data.class_price,"\u5143")),m.a.createElement("div",{className:"course-info"},m.a.createElement("p",{className:"text-overflow-1"},m.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),m.a.createElement("p",{className:"text-overflow-1"},m.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),m.a.createElement("div",{className:"payment-type"},m.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!p.a.isWeixin&&m.a.createElement("p",{onClick:this.check.bind(this,"1")},m.a.createElement("i",{className:"iconfont iconalipay"}),m.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),m.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),m.a.createElement("p",{onClick:this.check.bind(this,"0")},m.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),m.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),m.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),m.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),m.a.createElement("i",{onClick:this.colse,className:"iconfont iconiconfront-2 close"})))}}]),t}(u.Component);t.a=Object(f.d)(Object(v.b)(function(e){return{user:e.user}},null),h.g)(y)},662:function(e,t,a){"use strict";a(43);var n=a(14),c=a.n(n),i=a(8),o=a(9),s=a(10),r=a(7),d=a(11),l=a(0),u=a.n(l),m=(a(617),a(4)),p=a(18),h=a(51),f=a(17),v=a(20),b=a(157),y=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(s.a)(this,Object(r.a)(t).call(this,e))).check=function(e){a.setState({payType:e})},a.toBuy=function(){m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(a.props.data.video_id)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(e.data.data.order_id):a.weixinPay(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){m.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb&oid="+e).toLowerCase()+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect":m.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(t){0===t.data.errno?window.location.href=t.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():c.a.info(t.data.msg,2)})},a.alipayPay=function(e){var t=Object(m.b)("id");m.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge_new/oid/").concat(e)).then(function(e){0===e.data.errno?(window.location=e.data.data.url,t&&window.localStorage.setItem("payCourse",t)):c.a.info(e.data.msg,2)})},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(m.b)("id")};m.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){m.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){m.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0"},a}return Object(d.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){}},{key:"componentWillReceiveProps",value:function(e,t){}},{key:"render",value:function(){var e=this;this.state.singleBox;if(this.state.endTime){var t=1e3*this.state.endTime,a=Date.now();setInterval(function(){t-=1e3;var n=Object(b.differenceInSeconds)(new Date(t),a)%60,c=Object(b.differenceInMinutes)(new Date(t),a)%60,i=Object(b.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}var n=this.props.singleType;return console.log(this.state.singleBox),u.a.createElement("div",{className:"popup-box"},2===n&&u.a.createElement("div",{className:"content payment-success"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 3\u5929\u5185\u8d2d\u4e70\u5168\u96c6\uff0c\u53ef\u76f4\u63a5\u62b5\u6263\u8be5\u96c6\u8d39\u7528\uff0c",this.props.nowPrice,"\u5143\u8d2d\u4e70\u3002"),u.a.createElement("div",{className:"dec"},"\xb7 \u8d85\u8fc73\u5929\uff0c\u6309\u7167\u672a\u8d2d\u96c6\u6570/\u5168\u90e8\u96c6\u6570\u7b49\u6bd4\u4f8b\u8ba1\u8d39\uff0c",this.props.laterPrice,"\u5143\u8d2d\u4e70\u5168\u96c6\u3002"),u.a.createElement(p.b,{to:"/play/video?id=".concat(this.props.vcourseId,"&video_id=").concat(this.props.data.video_id),className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onclick:this.toBuyAll()},"\uffe5",this.props.nowPrice,"\u8d2d\u4e70\u5168\u96c6")),3===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 \u606d\u559c\u60a8\u83b7\u5f970\u5143\u62fc\u56e2\u8d2d\u4e70\u5269\u4f59\u8bfe\u65f6\u7684\u673a\u4f1a\u3002"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:this.zerogroupBuy},"0\u5143\u53c2\u56e2")),4===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 \u606d\u559c\u60a8\u83b7\u5f970\u5143\u8d2d\u4e70\u5269\u4f59\u8bfe\u65f6\u7684\u673a\u4f1a\u3002"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:this.zerobuyReceive},"0\u5143\u8d2d")),6===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement(p.b,{to:"/play/video?id=".concat(this.props.vcourseId,"&video_id=").concat(this.props.data.video_id),className:"btn btn-18B4ED"},"\u53bb\u5b66\u4e60")),7===n&&u.a.createElement("div",{className:"content group"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u53c2\u56e2\u6210\u529f")),u.a.createElement("div",{className:"group-img"},u.a.createElement("img",{src:this.props.user.data.avatar,alt:""}),u.a.createElement("img",{src:"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png",alt:""}),u.a.createElement("img",{src:"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png",alt:""})),u.a.createElement("div",{className:"btn-l btn-FF4000",onClick:this.toGroup},"\u5269\u4f59",String(this.state.hour).padStart(2,0),"\uff1a",String(this.state.min).padStart(2,0),"\uff1a",String(this.state.sec).padStart(2,0),"\u9080\u8bf7\u597d\u53cb\u53c2\u56e2")),u.a.createElement("i",{onClick:this.colse,className:"iconfont iconiconfront-2 close"}))}}]),t}(l.Component);t.a=Object(f.d)(Object(v.b)(function(e){return{user:e.user}},null),h.g)(y)},788:function(e,t,a){},789:function(e,t,a){},790:function(e,t,a){},794:function(e,t,a){},796:function(e,t){},864:function(e,t){}}]);
//# sourceMappingURL=video.18b646ba.chunk.js.map
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{1177:function(e,t,a){"use strict";a.r(t);a(43);var n,c=a(14),i=a.n(c),o=a(8),s=a(9),r=a(10),d=a(7),l=a(11),u=a(154),m=(a(257),a(99)),p=a.n(m),h=a(0),f=a.n(h),v=a(162),b=(a(788),a(18)),y=a(51),g=a(4),E=a(20),_=(a(62),a(789),a(648)),S=function(e){var t=e.item;return f.a.createElement("div",{className:"bottom"},f.a.createElement("span",{className:"price"},"\xa5",t.price1),f.a.createElement("span",{className:"stale-price"},"\xa5",t.price0))},w=Object(E.b)()(n=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),s=0;s<n;s++)c[s]=arguments[s];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).state={num:10,list:[],courseId:null},a.getRecommendation=function(){g.c.get("".concat(API.home,"/m/play/recommend_course/").concat(a.props.vCourseId,"?num=").concat(a.state.num)).then(function(e){var t=e.data;200===t.code?a.setState({list:Array.isArray(t.data)?t.data:[]}):i.a.info(t.msg)})},a.toCourseDetail=function(e){var t=a.props;t.dispatch;t.history.push("/detail?id=".concat(e))},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){this.getRecommendation()}},{key:"render",value:function(){var e=this;return this.state.list.length?f.a.createElement("div",{className:"recommendation"},f.a.createElement("div",{className:"title"},"\u76f8\u5173\u63a8\u8350"),f.a.createElement("ul",null,this.state.list.map(function(t){var a=f.a.createElement("div",{className:"info"},f.a.createElement("p",{className:"title text-overflow-1"},t.course_title),f.a.createElement("p",{className:"des text-overflow-2"},t.simpledescription),f.a.createElement(S,{item:t}));return f.a.createElement(_.a,{key:t.course_id,img:t.image_name,handleClick:e.toCourseDetail,info:a,id:t.course_id})}))):null}}]),t}(h.PureComponent))||n,I=(a(790),a(15)),N=a.n(I),P=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),i=0;i<n;i++)c[i]=arguments[i];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).handleClick=function(e){a.props.selectVideo(e)},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this;return f.a.createElement("div",{className:"video-catalog"},f.a.createElement("ul",null,this.props.videoCatalog.map(function(t,a){return f.a.createElement("li",{key:t.id,className:N()({active:e.props.activeIndex===a})},f.a.createElement("div",{className:"video-title",onClick:e.handleClick.bind(e,a)},f.a.createElement("span",{className:"title"},t.name),f.a.createElement("span",{className:"duration"},t.duration),f.a.createElement("i",{className:N()("iconfont",[0===t.video_auth?"iconiconfront-74":"iconplay_hovericon"])})),t.practice&&t.practice.qid?f.a.createElement(b.b,{to:{pathname:"/campTest",search:"?keshi_id=".concat(t.id,"&qid=").concat(t.practice.qid)}},f.a.createElement("div",{className:"exercise"},"\u8bfe\u540e\u7ec3\u4e60\uff1a",t.practice.title,f.a.createElement("i",{className:N()("iconfont",t.video_auth?t.practice.is_tested?"iconiconfront-3":"":"iconiconfront-74")}))):null)})))}}]),t}(h.Component),O=(a(791),a(793)),j=a.n(O),x=(a(794),function(e){function t(){return Object(o.a)(this,t),Object(r.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this.props.datum;return f.a.createElement("div",{className:"datum-catalog"},f.a.createElement("p",{className:"prompt"},"\u8bfe\u7a0b\u8d44\u6599\u8bf7\u5230PC\u7aef\u64ad\u653e\u9875\u4e0b\u8f7d"),f.a.createElement(j.a,null,e&&e.length&&e.map(function(e,t){return f.a.createElement(j.a.Panel,{header:e.dir_name,key:t},e.files.map(function(e){return f.a.createElement("div",{key:e.file_id,className:"file-name"},e.file_name)}))})))}}]),t}(h.Component));x.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var k=x,C=a(779),T=(a(840),a(30)),A=a(41),B=a.n(A),R=a(841),D=a.n(R),L=a(661),W=a(662),M=a(1158),z=C.a.getComponent("Component"),J=C.a.getComponent("Button"),V=function(e){function t(){return Object(o.a)(this,t),Object(r.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(s.a)(t,[{key:"createEl",value:function(){return Object(M.a)(Object(d.a)(t.prototype),"createEl",this).call(this,"div",{className:"vjs-custom-play-button-cover"})}},{key:"dispose",value:function(){this.el_&&(this.el_=null)}}]),t}(z),q=function(e){function t(e,a){var n;return Object(o.a)(this,t),(n=Object(r.a)(this,Object(d.a)(t).call(this,e,a))).on("tap",n.tap),n}return Object(l.a)(t,e),Object(s.a)(t,[{key:"createEl",value:function(){return Object(M.a)(Object(d.a)(t.prototype),"createEl",this).call(this,"button",{className:"vjs-custom-play-button"},{type:"button"})}},{key:"tap",value:function(){this.player_.play()}},{key:"dispose",value:function(){this.el_&&(this.off("tap",this.tap),this.el_=null)}}]),t}(J);z.registerComponent("CustomPlayButton",q),V.prototype.options_={children:["CustomPlayButton"]},z.registerComponent("CustomPlayButtonCover",V);var H=p.a.alert;function U(e){return e.isShow&&f.a.createElement("div",{className:"progress-share-modal-wrapper"},f.a.createElement("div",{className:"progress-share-modal"},f.a.createElement("div",{className:"title"},"\u6bcf\u65e5\u6253\u5361"),f.a.createElement("ul",{className:"progress-container"},f.a.createElement("li",null,f.a.createElement("div",{className:"title"},"\u7d2f\u8ba1\u5b66\u4e60"),f.a.createElement("div",{className:"number"},f.a.createElement("span",{className:"num"},e.data.learn_day_count),"\u5929")),f.a.createElement("li",null,f.a.createElement("div",{className:"title"},"\u884c\u52a8\u529b\u8d85\u8fc7"),f.a.createElement("div",{className:"number"},f.a.createElement("span",{className:"num"},parseFloat(e.data.action_power)),"%"))),f.a.createElement("div",{className:"share-container"},f.a.createElement("div",{className:"title"},"\u5206\u4eab\u5230"),f.a.createElement("ul",null,f.a.createElement("li",{className:"share-icon"},f.a.createElement("a",{style:{display:"block"},href:e.data.url},f.a.createElement("div",{className:"icon"},f.a.createElement("i",{className:"iconfont iconweixinzhifu"})),f.a.createElement("div",{className:"text"},"\u5fae\u4fe1\u597d\u53cb"))),f.a.createElement("li",{className:"share-icon"},f.a.createElement("a",{style:{display:"block"},href:e.data.url},f.a.createElement("div",{className:"icon"},f.a.createElement("i",{className:"iconfont iconpengyouquaniconx"})),f.a.createElement("div",{className:"text"},"\u670b\u53cb\u5708"))))),f.a.createElement("i",{className:"iconfont iconiconfront-2 close",onClick:e.closeShareModal})))}var F=function(e){function t(){var e,a;Object(o.a)(this,t);for(var n=arguments.length,c=new Array(n),s=0;s<n;s++)c[s]=arguments[s];return(a=Object(r.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(c)))).previousPlaybackRate=1,a.currentPlaybackRate=1,a.reconnect=!0,a.state={title:"",courseId:null,videoList:[],datum:[],currentVideoSrc:"",activeIndex:0,isAuth:!0,course:null,salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:"",singleType:1,nowPrice:0,laterPrice:0},a.tobuy=function(){g.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(Object(g.b)("id"),"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(Object(g.b)("id")),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){a.setState({singleBox:!0,singMess:e})},a.boxHide=function(e){a.setState({singleBox:e})},a.payCallback=function(){var e=Object(u.a)(Object(u.a)(a));Object(g.b)("oid")&&(e.intervalPayStatus=setInterval(function(){g.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(g.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,g.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(g.b)("oid"))).then(function(t){200===Number(t.data.data.errno)?e.setState({singleType:6}):201===Number(t.data.data.errno)?e.setState({singleType:4}):202===Number(t.data.data.errno)?e.setState({singleType:3}):203===Number(t.data.data.errno)?e.setState({nowPrice:t.data.data.data.now_price,laterPrice:t.data.data.data.three_day_later_price,singleType:2}):i.a.info(t.data.data.msg,2)}))})},1e3))},a.isweixinPay=function(){var e=Object(u.a)(Object(u.a)(a)),t=Object(g.b)("code");if(t){if(!Object(g.b)("oid"))return;g.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(g.b)("oid"),"/code/").concat(t)).then(function(t){if(0===t.data.errno){var a=function(){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:n.appId,timeStamp:n.timeStamp,nonceStr:n.nonceStr,package:n.package,signType:n.signType,paySign:n.paySign},function(t){"get_brand_wcpay_request:ok"==t.err_msg?(i.a.info("\u652f\u4ed8\u6210\u529f",2),e.intervalPayStatus=setInterval(function(){g.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(g.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,g.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(g.b)("oid"))).then(function(t){200===Number(t.data.data.errno)?e.setState({singleType:6}):201===Number(t.data.data.errno)?e.setState({singleType:4}):202===Number(t.data.data.errno)?e.setState({singleType:3}):203===Number(t.data.data.errno)?e.setState({nowPrice:t.data.data.data.now_price,laterPrice:t.data.data.data.three_day_later_price,singleType:2}):i.a.info(t.data.data.msg,2)}))})},1e3)):H("\u652f\u4ed8\u5931\u8d25")})},n=t.data.data;"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a),document.attachEvent("onWeixinJSBridgeReady",a)):a()}else i.a.info(t.data.msg,2)})}},a.check=function(e){g.c.get("".concat(API["base-api"],"/class_order_status/").concat(e)).then(function(e){200===Number(e.data.data.errno)?a.setState({singleType:6}):201===Number(e.data.data.errno)?a.setState({singleType:4}):202===Number(e.data.data.errno)?a.setState({singleType:3}):203===Number(e.data.data.errno)?a.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,singleType:2}):i.a.info(e.data.data.msg,2)})},a.setupRecord=function(){a.recordSocket=D()(API.record,{transports:["websocket"],forceNew:!0}),a.recordSocket.on("seek",function(e){a.player.currentTime(e)}),a.recordTimer=setInterval(function(){a.sendRecord()},5e3)},a.sendRecord=function(){a.recordSocket&&a.player&&a.recordSocket.emit("addRecord",a.recordUserInfo())},a.recordUserInfo=function(){return{uid:a.props.user.data.uid,course_id:a.courseID,video_id:a.state.videoList[a.state.activeIndex].id,video_time:parseInt(a.player.currentTime()),plat:5}},a.setupWS=function(){a.ws=new WebSocket(API["process-api"]),a.ws.addEventListener("error",function(){a.ws=null}),a.ws.addEventListener("close",function(){a.reconnect&&(a.ws=null,setTimeout(function(){a.setupWS()},1e3)),clearInterval(a.timer)}),a.ws.addEventListener("message",function(e){4040==JSON.parse(e.data).code&&(a.reconnect=!1)})},a.sendMessage=function(e){a.ws&&a.ws.send(JSON.stringify(e))},a.getShareProgressInfo=function(){g.c.get("".concat(API["base-api"],"/m/aist/share_data/").concat(a.courseID,"/").concat(a.state.videoList[a.state.activeIndex].id)).then(function(e){var t=e.data;200==t.errno&&a.setState({shareData:t.data,isShowShareModal:!0})})},a.countSchedule=function(){a.sendMessage({mtype:"count_schedule",uid:a.props.user.data.uid,token:a.token,platform:5})},a.sendWatchTime=function(e,t){var n=a.state,c=n.videoList,i=n.activeIndex,o=n.vCourseId;a.sendMessage({mtype:"watch_time",rate:t,time:e,video_id:c[i].id,course_id:a.courseID,v_course_id:o,uid:a.props.user.data.uid,token:a.token,platform:0})},a.setupTimer=function(){a.count=0,a.watchSec=0,clearInterval(a.timer),a.timer=setInterval(function(){a.player&&a.player.player()&&(5===a.count?(a.sendWatchTime(a.watchSec,a.currentPlaybackRate),a.count=a.watchSec=0):(!a.player.paused()&&a.watchSec++,a.count++))},1e3)},a.initializePlayer=function(){window.HELP_IMPROVE_VIDEOJS=!1,a.player=Object(C.a)(a.video,{controls:!0,preload:"auto",bigPlayButton:!1,textTrackDisplay:!1,posterImage:!1,errorDisplay:!1,playbackRates:["0.75","1","1.5","2"],controlBar:{pictureInPictureToggle:!1}}),a.player.addChild("CustomPlayButtonCover"),a.player.on("ready",function(){a.recordSocket.emit("load",a.recordUserInfo())}),a.player.on("ratechange",function(){a.currentPlaybackRate=a.player.playbackRate(),a.sendWatchTime(a.watchSec,a.previousPlaybackRate),a.count=a.watchSec=0,a.previousPlaybackRate=a.currentPlaybackRate}),a.player.on("ended",function(){a.sendWatchTime(a.watchSec,a.currentPlaybackRate),a.getShareProgressInfo(),clearInterval(a.timer)}),a.player.on("seeked",function(){a.sendRecord()})},a.sendLastRecord=function(){g.c.post("".concat(API.home,"/m/course/record_last_video"),{v_course_id:a.state.course.v_course_id,video_id:a.state.videoList[a.state.activeIndex].id})},a.selectVideo=function(e){e!==a.state.activeIndex&&(a.countSchedule(),a.setState({activeIndex:e},function(){a.hasAuth(a.state.activeIndex)&&(a.setPlayerSrc(a.state.videoList[e].play_url),a.sendLastRecord(),a.playVideo())}))},a.getLastVideoIndex=function(e){return a.state.videoList.findIndex(function(t){return t.id==e})},a.getVideoList=function(){var e="";e=Object(g.b)("video_id")?"".concat(API.home,"/m/course/play/").concat(a.courseID+"?video_id="+Object(g.b)("video_id")):"".concat(API.home,"/m/course/play/").concat(a.courseID),g.c.get(e).then(function(e){var t=e.data;200===t.code?a.setState(function(e){return{videoList:t.data.lessons,currentVideoSrc:t.data.lessons[e.activeIndex].play_url,course:t.data.course,courseId:t.data.course.course_id,vCourseId:t.data.course.v_course_id,title:t.data.course.course_title,isLoading:!1}},a.playSetup):i.a.info(t.msg)})},a.playSetup=function(){a.state.course.is_aist&&(a.setupWS(),a.setupTimer());var e=a.getLastVideoIndex(a.state.course.last_video_id);e=e>=0?e:0,a.setState({activeIndex:e},function(){a.lessonAvailable(e)?a.hasAuth(e)?Promise.resolve().then(function(){a.initializePlayer(),a.playWithAuth()}):a.getCoursePrice():H("\u6682\u65e0\u89c6\u9891","",[{text:"OK",onPress:function(){a.props.history.push("/")}}])})},a.setPlayerSrc=function(e){a.player||a.initializePlayer(),a.player.src({src:e,type:"application/x-mpegURL"})},a.playVideo=function(){a.player.play()},a.lessonAvailable=function(e){return 0!==a.state.videoList[e].video_size},a.getCoursePrice=function(){g.c.get("".concat(API.home,"/sys/course/price/").concat(Object(g.b)("id"))).then(function(e){var t=e.data;200===t.code&&a.setState({salePrice:t.data.sale_price})})},a.playWithAuth=function(){var e=a.state,t=e.videoList,n=e.activeIndex;a.hasAuth(n)&&a.setPlayerSrc(t[n].play_url)},a.hasAuth=function(e){return a.state.videoList[e].video_auth?(a.setState({isAuth:!0}),!0):(a.setState({isAuth:!1}),!1)},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){var e=window.location;if("https:"!==e.protocol)if(this.courseID=Object(g.b)("id"),this.courseID){this.setState({courseId:this.courseID});var t=this.props.location.state,a=void 0===t?{}:t;a.oid&&this.check(a.oid),(1===Object(g.b)("is_class")||Object(g.b)("weixinpay"))&&this.payCallback(),g.a.isWeixin&&this.isweixinPay(),this.token=B.a.get("token"),this.getVideoList(),this.getDatumCatalog(),this.setupRecord()}else this.props.history.replace("/");else e.replace("http"+e.href.slice(5))}},{key:"componentWillUnmount",value:function(){this.player&&this.player.dispose(),clearInterval(this.timer),this.ws&&this.ws.close(),this.ws=null,clearInterval(this.recordTimer),this.recordSocket&&this.recordSocket.close(),this.recordSocket=null}},{key:"getDatumCatalog",value:function(){var e=this;g.c.get("".concat(API.home,"/m/course/data/").concat(this.courseID)).then(function(t){var a=t.data;200===a.code?e.setState({datum:a.data}):i.a.info(a.msg)})}},{key:"render",value:function(){var e=this,t=this.props,a=t.match,n=t.location,c=this.state,i=c.videoList,o=c.activeIndex,s=c.isAuth,r=c.salePrice,d=c.course,l=c.singleBox,u=c.singleType;return f.a.createElement("div",{className:"play"},f.a.createElement(v.a,{title:this.state.title,arrow:!0}),f.a.createElement(T.f,{isLoading:this.state.isLoading},f.a.createElement("div",{className:"video"},f.a.createElement("video",{className:"video-js",ref:function(t){return e.video=t}},f.a.createElement("source",{src:"/",type:"application/x-mpegURL"})),!s&&!!i[o].is_class&&f.a.createElement("div",{className:"purchase-box"},f.a.createElement("div",{className:"hint"},"\u60a8\u5c1a\u672a\u8d2d\u4e70\u8be5\u8bfe\u65f6\uff0c\u8bf7\u8d2d\u4e70\u540e\u5b66\u4e60\u3002"),f.a.createElement("div",{className:"btns"},f.a.createElement("button",{type:"button",onClick:this.tobuy,className:"purchase-class"},"\xa5",r," \u8d2d\u4e70\u8bfe\u7a0b"),f.a.createElement("button",{type:"button",onClick:this.toSingleset.bind(this,i[o]),className:"purchase-episode"},"\xa5",i.length&&i[o].class_price," \u8d2d\u4e70\u5355\u96c6"))),!s&&!!d.is_aist&&f.a.createElement("div",{className:"is-aist-box"},f.a.createElement("i",{className:"iconfont iconiconfront-21"}),f.a.createElement("p",{className:"time"},i[o].aist_start_time),f.a.createElement("p",{className:"time"},"\u8bf7\u8010\u5fc3\u7b49\u5f85..."))),f.a.createElement("div",{className:"tab"},f.a.createElement("div",null,f.a.createElement(b.c,{to:{pathname:"".concat(a.url,"/video"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u89c6\u9891")),f.a.createElement("div",null,f.a.createElement(b.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),l&&f.a.createElement(L.a,{singleBox:this.state.singleBox,boxHide:this.boxHide,data:this.state.singMess,singleType:this.state.singleType,vcourseId:d.v_course_id,videoId:this.state.singMess.video_id,check:this.check,title:this.state.singMess.course_tile}),1!==u&&f.a.createElement(W.a,{boxHide:this.boxHide,data:this.state.singMess,singleType:u,vcourseId:d.v_course_id,videoId:this.state.singMess.video_id,nowPrice:this.state.nowPrice,laterPrice:this.state.laterPrice})),f.a.createElement(y.d,null,f.a.createElement(y.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),f.a.createElement(y.b,{path:"".concat(a.path,"/video"),render:function(t){return f.a.createElement(P,Object.assign({activeIndex:e.state.activeIndex,selectVideo:e.selectVideo,videoCatalog:i},t))}}),f.a.createElement(y.b,{path:"".concat(a.path,"/datum"),render:function(t){return f.a.createElement(k,Object.assign({},t,{datum:e.state.datum}))}})),f.a.createElement(y.b,{render:function(t){return e.state.vCourseId?f.a.createElement(w,Object.assign({},t,{vCourseId:e.state.vCourseId})):null}}),f.a.createElement(U,{isShow:this.state.isShowShareModal,closeShareModal:function(){return e.setState({isShowShareModal:!1})},data:this.state.shareData}))}}]),t}(h.Component);t.default=Object(E.b)(function(e){return{user:e.user}},null)(F)},617:function(e,t,a){},648:function(e,t,a){"use strict";var n=a(0),c=a.n(n);a(649);t.a=function(e){return c.a.createElement("li",{className:"v-list-base-item",onClick:e.handleClick.bind(void 0,e.id)},c.a.createElement("div",{className:"content"},c.a.createElement("div",{className:"cover"},e.status,c.a.createElement("img",{src:e.img,alt:""})),e.info),e.tab)}},649:function(e,t,a){},661:function(e,t,a){"use strict";a(43);var n=a(14),c=a.n(n),i=a(8),o=a(9),s=a(10),r=a(7),d=a(11),l=a(154),u=a(0),m=a.n(u),p=(a(617),a(4)),h=a(51),f=a(17),v=a(20),b=a(157),y=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(s.a)(this,Object(r.a)(t).call(this,e))).check=function(e){a.setState({payType:e})},a.toBuy=function(){var e=a.props.data.video_id||a.props.data.id;p.c.get("".concat(API.home,"/sys/createClassOrder/").concat(e)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(e.data.data.order_id):a.weixinPay(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){p.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb&oid="+e).toLowerCase()+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect":p.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(t){0===t.data.errno?window.location.href=t.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():c.a.info(t.data.msg,2)})},a.alipayPay=function(e){var t=Object(p.b)("id");p.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge_new/oid/").concat(e)).then(function(e){0===e.data.errno?(window.location=e.data.data.url,t&&window.localStorage.setItem("payCourse",t)):c.a.info(e.data.msg,2)})},a.isweixinPay=function(){var e=Object(l.a)(Object(l.a)(a)),t=Object(p.b)("code");if(t){if(!Object(p.b)("oid"))return;p.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(p.b)("oid"),"/code/").concat(t)).then(function(t){if(0===t.data.errno){var a=function(){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:n.appId,timeStamp:n.timeStamp,nonceStr:n.nonceStr,package:n.package,signType:n.signType,paySign:n.paySign},function(t){"get_brand_wcpay_request:ok"==t.err_msg?(c.a.info("\u652f\u4ed8\u6210\u529f",2),e.intervalPayStatus=setInterval(function(){var t=this;p.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(p.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,p.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(p.b)("oid"))).then(function(e){200===Number(e.data.data.errno)?t.setState({status:6,showSingleBox:!0}):201===Number(e.data.data.errno)?t.setState({status:4,showSingleBox:!0}):202===Number(e.data.data.errno)?t.setState({status:3,showSingleBox:!0}):203===Number(e.data.data.errno)?t.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2,showSingleBox:!0}):c.a.info(e.data.data.msg,2)}))})},1e3)):alert("\u652f\u4ed8\u5931\u8d25")})},n=t.data.data;"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a),document.attachEvent("onWeixinJSBridgeReady",a)):a()}else c.a.info(t.data.msg,2)})}},a.payCallback=function(){var e=Object(l.a)(Object(l.a)(a));Object(p.b)("oid")&&(e.intervalPayStatus=setInterval(function(){var t=this;p.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(p.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,p.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(p.b)("oid"))).then(function(e){200===Number(e.data.data.errno)?t.setState({status:6,showSingleBox:!0}):201===Number(e.data.data.errno)?t.setState({status:4,showSingleBox:!0}):202===Number(e.data.data.errno)?t.setState({status:3,showSingleBox:!0}):203===Number(e.data.data.errno)?t.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2,showSingleBox:!0}):c.a.info(e.data.data.msg,2)}))})},1e3))},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(p.b)("id")};p.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){p.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){p.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0",showSingleBox:!1},a}return Object(d.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){}},{key:"componentWillReceiveProps",value:function(e,t){}},{key:"render",value:function(){var e=this;this.state.showSingleBox;if(this.state.endTime){var t=1e3*this.state.endTime,a=Date.now();setInterval(function(){t-=1e3;var n=Object(b.differenceInSeconds)(new Date(t),a)%60,c=Object(b.differenceInMinutes)(new Date(t),a)%60,i=Object(b.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}return 1===this.props.singleType&&m.a.createElement("div",null,m.a.createElement("div",{className:"popup-box"},m.a.createElement("div",{className:"content singleset-payment"},m.a.createElement("div",{className:"price-box"},m.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),m.a.createElement("p",null,this.props.data.class_price,"\u5143")),m.a.createElement("div",{className:"course-info"},m.a.createElement("p",{className:"text-overflow-1"},m.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),m.a.createElement("p",{className:"text-overflow-1"},m.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),m.a.createElement("div",{className:"payment-type"},m.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!p.a.isWeixin&&m.a.createElement("p",{onClick:this.check.bind(this,"1")},m.a.createElement("i",{className:"iconfont iconalipay"}),m.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),m.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),m.a.createElement("p",{onClick:this.check.bind(this,"0")},m.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),m.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),m.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),m.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),m.a.createElement("i",{onClick:this.colse,className:"iconfont iconiconfront-2 close"})))}}]),t}(u.Component);t.a=Object(f.d)(Object(v.b)(function(e){return{user:e.user}},null),h.g)(y)},662:function(e,t,a){"use strict";a(43);var n=a(14),c=a.n(n),i=a(8),o=a(9),s=a(10),r=a(7),d=a(11),l=a(0),u=a.n(l),m=(a(617),a(4)),p=a(18),h=a(51),f=a(17),v=a(20),b=a(157),y=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(s.a)(this,Object(r.a)(t).call(this,e))).check=function(e){a.setState({payType:e})},a.toBuy=function(){m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(a.props.data.video_id)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(e.data.data.order_id):a.weixinPay(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){m.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb&oid="+e).toLowerCase()+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect":m.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(t){0===t.data.errno?window.location.href=t.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():c.a.info(t.data.msg,2)})},a.alipayPay=function(e){var t=Object(m.b)("id");m.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge_new/oid/").concat(e)).then(function(e){0===e.data.errno?(window.location=e.data.data.url,t&&window.localStorage.setItem("payCourse",t)):c.a.info(e.data.msg,2)})},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(m.b)("id")};m.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){m.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){m.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0"},a}return Object(d.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){}},{key:"componentWillReceiveProps",value:function(e,t){}},{key:"render",value:function(){var e=this;this.state.singleBox;if(this.state.endTime){var t=1e3*this.state.endTime,a=Date.now();setInterval(function(){t-=1e3;var n=Object(b.differenceInSeconds)(new Date(t),a)%60,c=Object(b.differenceInMinutes)(new Date(t),a)%60,i=Object(b.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}var n=this.props.singleType;return console.log(this.props),u.a.createElement("div",{className:"popup-box"},2===n&&u.a.createElement("div",{className:"content payment-success"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 3\u5929\u5185\u8d2d\u4e70\u5168\u96c6\uff0c\u53ef\u76f4\u63a5\u62b5\u6263\u8be5\u96c6\u8d39\u7528\uff0c",this.props.nowPrice,"\u5143\u8d2d\u4e70\u3002"),u.a.createElement("div",{className:"dec"},"\xb7 \u8d85\u8fc73\u5929\uff0c\u6309\u7167\u672a\u8d2d\u96c6\u6570/\u5168\u90e8\u96c6\u6570\u7b49\u6bd4\u4f8b\u8ba1\u8d39\uff0c",this.props.laterPrice,"\u5143\u8d2d\u4e70\u5168\u96c6\u3002"),u.a.createElement(p.b,{to:"/play/video?id=".concat(this.props.vcourseId,"&video_id=").concat(this.props.data.video_id),className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onclick:this.toBuyAll()},"\uffe5",this.props.nowPrice,"\u8d2d\u4e70\u5168\u96c6")),3===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 \u606d\u559c\u60a8\u83b7\u5f970\u5143\u62fc\u56e2\u8d2d\u4e70\u5269\u4f59\u8bfe\u65f6\u7684\u673a\u4f1a\u3002"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:this.zerogroupBuy},"0\u5143\u53c2\u56e2")),4===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement("div",{className:"dec"},"\xb7 \u606d\u559c\u60a8\u83b7\u5f970\u5143\u8d2d\u4e70\u5269\u4f59\u8bfe\u65f6\u7684\u673a\u4f1a\u3002"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:this.zerobuyReceive},"0\u5143\u8d2d")),6===n&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement(p.b,{to:"/play/video?id=".concat(this.props.vcourseId,"&video_id=").concat(this.props.data.video_id),className:"btn btn-18B4ED"},"\u53bb\u5b66\u4e60")),7===n&&u.a.createElement("div",{className:"content group"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u53c2\u56e2\u6210\u529f")),u.a.createElement("div",{className:"group-img"},u.a.createElement("img",{src:this.props.user.data.avatar,alt:""}),u.a.createElement("img",{src:"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png",alt:""}),u.a.createElement("img",{src:"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png",alt:""})),u.a.createElement("div",{className:"btn-l btn-FF4000",onClick:this.toGroup},"\u5269\u4f59",String(this.state.hour).padStart(2,0),"\uff1a",String(this.state.min).padStart(2,0),"\uff1a",String(this.state.sec).padStart(2,0),"\u9080\u8bf7\u597d\u53cb\u53c2\u56e2")),u.a.createElement("i",{onClick:this.colse,className:"iconfont iconiconfront-2 close"}))}}]),t}(l.Component);t.a=Object(f.d)(Object(v.b)(function(e){return{user:e.user}},null),h.g)(y)},788:function(e,t,a){},789:function(e,t,a){},790:function(e,t,a){},794:function(e,t,a){},796:function(e,t){},864:function(e,t){}}]);
//# sourceMappingURL=video.ae591593.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["components/video/recommendation/index.js","components/video/video-catalog/index.js","components/video/datum-catalog/index.js","components/video/CustomPlayButton/index.js","components/video/index.js","common/v-list-base/index.js","components/detail/single/index.js","components/detail/single/singleSuccess.js"],"names":["Bottom","_ref","item","react_default","a","createElement","className","price1","price0","Recommendation","connect","state","num","list","courseId","getRecommendation","http","get","concat","API","home","_this","props","vCourseId","then","res","data","code","setState","Array","isArray","toast_default","info","msg","toCourseDetail","id","_this$props","dispatch","history","push","this","_this2","length","map","Info","course_title","simpledescription","recommendation_Bottom","v_list_base","key","course_id","img","image_name","handleClick","PureComponent","VideoCatalog","i","selectVideo","videoCatalog","index","classnames","active","activeIndex","onClick","bind","name","duration","video_auth","practice","qid","react_router_dom","to","pathname","search","title","is_tested","Component","DatumCatalog","datum","accordion_default","Panel","header","dir_name","files","file_id","file_name","defaultProps","videojs","getComponent","Button","CustomPlayButtonCover","Object","getPrototypeOf","prototype","call","el_","CustomPlayButton","player","options","classCallCheck","possibleConstructorReturn","on","tap","type","player_","play","off","registerComponent","options_","children","alert","modal_default","ProgressShareModal","isShow","learn_day_count","parseFloat","action_power","style","display","href","url","closeShareModal","Video","previousPlaybackRate","currentPlaybackRate","reconnect","videoList","currentVideoSrc","isAuth","course","salePrice","isLoading","isShowShareModal","shareData","singleBox","singMess","singleType","nowPrice","laterPrice","tobuy","getParam","errno","simple","toSingleset","boxHide","val","payCallback","assertThisInitialized","intervalPayStatus","setInterval","clearInterval","Number","now_price","three_day_later_price","isweixinPay","weixin_code","onBridgeReady","WeixinJSBridge","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","document","addEventListener","attachEvent","check","oid","setupRecord","recordSocket","io","record","transports","forceNew","time","currentTime","recordTimer","sendRecord","emit","recordUserInfo","uid","user","courseID","video_id","video_time","parseInt","plat","setupWS","ws","WebSocket","setTimeout","timer","e","JSON","parse","sendMessage","message","send","stringify","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this2$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","window","HELP_IMPROVE_VIDEOJS","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","addChild","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getLastVideoIndex","lastIndex","findIndex","getVideoList","playSetup","is_aist","last_video_id","lessonAvailable","Promise","resolve","playWithAuth","getCoursePrice","text","onPress","src","_this2$state2","location","protocol","_this$props$location$","browser","isWeixin","jsCookie","getDatumCatalog","replace","slice","dispose","close","_this3","_this4","match","_this$state","HeaderBar","arrow","common","ref","el","activeClassName","single","vcourseId","videoId","course_tile","singleSuccess","react_router","exact","from","path","render","video_video_catalog","assign","video_datum_catalog","video_recommendation","VList","react__WEBPACK_IMPORTED_MODULE_0___default","status","alt","tab","Single","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","payType","toBuy","videoID","orderId","order_id","alipayPay","weixinPay","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","encodeURIComponent","toLowerCase","localStorage","setItem","_Users_wangshuo_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__","showSingleBox","toBuyAll","zerobuyReceive","success","colse","zerogroupBuy","getOrderId","groupOrderId","getOrderStatus","getTime","pdd_order_id","endTime","end_time","toGroup","hour","min","nextProps","nextContext","_this5","date","now","Date","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","react__WEBPACK_IMPORTED_MODULE_8___default","class_price","compose","withRouter","console","log","react__WEBPACK_IMPORTED_MODULE_7___default","react_router_dom__WEBPACK_IMPORTED_MODULE_10__","onclick","avatar","String","padStart"],"mappings":"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","file":"static/js/video.ae591593.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\nimport {connect} from 'react-redux';\nimport {getCourses} from './../../detail/actions';\nimport './recommendation.scss'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport VList from '@/common/v-list-base';\n\n\nconst Bottom = ({item}) => {\n return (\n <div className='bottom'>\n <span className='price'>¥{item.price1}</span>\n <span className='stale-price'>¥{item.price0}</span>\n </div>\n )\n}\n\n@connect()\nclass Recommendation extends PureComponent {\n state = {\n num: 10,\n list: [],\n courseId: null\n }\n\n componentDidMount() {\n this.getRecommendation()\n }\n\n getRecommendation = () => {\n http.get(`${API.home}/m/play/recommend_course/${this.props.vCourseId}?num=${this.state.num}`)\n .then(res => {\n const data = res.data\n if(data.code === 200){\n\n this.setState({\n list: Array.isArray(data.data) ? data.data : []\n })\n\n }else {\n Toast.info(data.msg)\n }\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n // dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n // }));\n }\n\n render() {\n return (\n this.state.list.length\n ?\n <div className='recommendation'>\n <div className={'title'}>相关推荐</div>\n <ul>\n {\n this.state.list.map(item => {\n const Info = (\n <div className=\"info\">\n <p className='title text-overflow-1'>{item.course_title}</p>\n <p className='des text-overflow-2'>{item.simpledescription}</p>\n <Bottom\n item={item}\n />\n </div>\n )\n\n return (\n <VList\n key={item.course_id}\n img={item.image_name}\n handleClick={this.toCourseDetail}\n info={Info}\n id={item.course_id}\n />\n )\n })\n }\n </ul>\n </div>\n : null\n );\n }\n}\n\nexport default Recommendation;","import React, { Component } from 'react'\nimport './video-catalog.scss'\nimport { Link } from \"react-router-dom\";\nimport classnames from 'classnames'\n\n\nclass VideoCatalog extends Component {\n\n handleClick = (i) => {\n this.props.selectVideo(i)\n }\n\n render() {\n return (\n <div className='video-catalog'>\n <ul>\n {\n this.props.videoCatalog.map((item, index) => {\n return (\n <li key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div className=\"video-title\" onClick={this.handleClick.bind(this, index)}>\n <span className=\"title\">{item.name}</span>\n <span className='duration'>{item.duration}</span>\n <i className={classnames(`iconfont`,\n [item.video_auth === 0\n ? 'iconiconfront-74'\n : 'iconplay_hovericon'],\n )}/>\n </div>\n {\n (item.practice && item.practice.qid)\n ? <Link to={{\n pathname: '/campTest',\n search: `?keshi_id=${item.id}&qid=${item.practice.qid}`\n }}>\n <div className=\"exercise\">\n 课后练习:{item.practice.title}\n <i className={classnames('iconfont',!item.video_auth ? 'iconiconfront-74' : item.practice.is_tested ? 'iconiconfront-3' : '')}/>\n </div>\n </Link>\n : null\n }\n </li>\n )\n })\n }\n </ul>\n </div>\n );\n }\n}\n\nexport default VideoCatalog;","import React, { Component } from 'react';\nimport './datum-catalog.scss'\nimport { Accordion } from \"antd-mobile\";\n\n\nclass DatumCatalog extends Component {\n\n static defaultProps = {\n datum: [{\n dir_name: '',\n files: [{\n file_name: '',\n file_id: 0\n }]\n }]\n }\n\n render() {\n const {datum} = this.props\n return (\n <div className='datum-catalog'>\n <p className='prompt'>课程资料请到PC端播放页下载</p>\n <Accordion>\n {\n datum && datum.length && datum.map((item, index) => {\n return (\n <Accordion.Panel header={item.dir_name} key={index}>\n {\n item.files.map(item => {\n return (\n <div key={item.file_id} className='file-name'>\n {item.file_name}\n </div>\n )\n })\n }\n </Accordion.Panel>\n )\n })\n }\n </Accordion>\n </div>\n );\n }\n}\n\nexport default DatumCatalog;","import videojs from 'video.js'\n\nconst Component = videojs.getComponent('Component')\nconst Button = videojs.getComponent('Button')\n\nclass CustomPlayButtonCover extends Component {\n createEl() {\n return super.createEl('div', {\n className: 'vjs-custom-play-button-cover'\n })\n }\n\n dispose() {\n this.el_ && (this.el_ = null)\n }\n}\n\nclass CustomPlayButton extends Button {\n constructor(player, options) {\n super(player, options)\n this.on('tap', this.tap)\n }\n\n createEl() {\n return super.createEl('button', {\n className: 'vjs-custom-play-button'\n }, {\n type: 'button'\n })\n }\n\n tap() {\n this.player_.play()\n }\n\n dispose() {\n if (this.el_) {\n this.off('tap', this.tap)\n this.el_ = null\n }\n }\n}\n\n\nComponent.registerComponent('CustomPlayButton', CustomPlayButton)\n\nCustomPlayButtonCover.prototype.options_ = {\n children: [\n 'CustomPlayButton'\n ]\n}\n\nComponent.registerComponent('CustomPlayButtonCover', CustomPlayButtonCover)","import React, { Component } from 'react'\nimport HeaderBar from '@/common/HeaderBar'\nimport './video.scss'\nimport {NavLink, Route, Redirect, Switch, Link} from 'react-router-dom'\nimport {http, getParam, browser} from '@/utils'\nimport Recommendation from './recommendation'\nimport VideoCatalog from './video-catalog'\nimport DatumCatalog from './datum-catalog'\nimport { Toast } from 'antd-mobile'\nimport videojs from 'video.js'\nimport 'video.js/dist/video-js.min.css'\nimport { Modal } from \"antd-mobile\"\nimport { Loading } from '@/common'\nimport { connect } from \"react-redux\"\nimport jsCookie from 'js-cookie'\nimport io from 'socket.io-client'\nimport Single from \"@/components/detail/single\";\nimport SingleSuccess from \"../detail/single/singleSuccess\";\nimport './CustomPlayButton'\n\nlet alert = Modal.alert\n\nfunction ProgressShareModal(props) {\n return (\n props.isShow &&\n <div className='progress-share-modal-wrapper'>\n <div className=\"progress-share-modal\">\n <div className=\"title\">每日打卡</div>\n <ul className=\"progress-container\">\n <li>\n <div className=\"title\">累计学习</div>\n <div className=\"number\"><span className='num'>{props.data.learn_day_count}</span>天</div>\n </li>\n <li>\n <div className=\"title\">行动力超过</div>\n <div className=\"number\"><span className='num'>{parseFloat(props.data.action_power)}</span>%\n </div>\n </li>\n </ul>\n <div className=\"share-container\">\n <div className=\"title\">分享到</div>\n <ul>\n <li className='share-icon'>\n <a style={{display: 'block'}} href={props.data.url}>\n <div className=\"icon\"><i className='iconfont iconweixinzhifu'/></div>\n <div className='text'>微信好友</div>\n </a>\n </li>\n <li className='share-icon'>\n <a style={{display: 'block'}} href={props.data.url}>\n <div className=\"icon\"><i className='iconfont iconpengyouquaniconx'/></div>\n <div className='text'>朋友圈</div>\n </a>\n </li>\n </ul>\n </div>\n <i className=\"iconfont iconiconfront-2 close\" onClick={props.closeShareModal}/>\n </div>\n </div>\n )\n}\n\nclass Video extends Component {\n\n video //video element\n player //video player instance\n\n courseID\n\n ws //websocket instance\n timer\n token\n count\n watchSec\n previousPlaybackRate = 1\n currentPlaybackRate = 1\n reconnect = true\n\n recordSocket\n recordTimer\n\n\n state = {\n title: '',\n courseId: null,\n videoList: [],\n datum: [],\n currentVideoSrc: '',\n activeIndex: 0,\n isAuth: true,\n course: null,\n salePrice: null,\n vCourseId: null,\n isLoading: true,\n isShowShareModal: false,\n shareData: {},\n singleBox: false,\n singMess: '',\n singleType: 1,// 单集购买需要\n nowPrice: 0,// 单集购买需要\n laterPrice: 0,// 单集购买需要\n }\n\n\n componentDidMount() {\n const location = window.location;\n if (location.protocol === 'https:') {\n location.replace('http' + location.href.slice(5))\n return\n }\n\n this.courseID = getParam('id')\n if (!this.courseID) {\n this.props.history.replace('/')\n return\n }\n this.setState({\n courseId: this.courseID\n })\n const { location: { state = {} } } = this.props;\n if(state.oid) {\n this.check(state.oid);\n }\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (browser.isWeixin) {\n this.isweixinPay()\n }\n this.token = jsCookie.get('token')\n this.getVideoList()\n this.getDatumCatalog()\n this.setupRecord()\n }\n\n // 直接购买\n tobuy = () => {\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${getParam('id')}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${getParam('id')}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n this.setState({\n singleBox: true,\n singMess: item\n })\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val})\n }\n\n // 单集购买 H5支付成功后回调\n payCallback =() => {\n const _this = this;\n if(!getParam('oid')) {\n return;\n }else{\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n _this.setState({\n singleType: 6,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n _this.setState({\n singleType: 4,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n _this.setState({\n singleType: 3,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n _this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n }\n };\n // 单集购买 微信内支付成功后回调\n isweixinPay =()=> {\n let _this = this;\n let weixin_code = getParam('code');\n if (weixin_code) {\n if (!getParam('oid')) {\n return\n } else {\n // this.props.weixinPay(weixin_code)\n http.get(`${API['base-api']}/pay/wxpay/pub_charge/oid/${getParam('oid')}/code/${weixin_code}`).then((res) => {\n if (res.data.errno === 0) {\n const data = res.data.data;\n function onBridgeReady() {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest', {\n \"appId\": data.appId, //公众号名称,由商户传入\n \"timeStamp\": data.timeStamp, //时间戳,自1970年以来的秒数\n \"nonceStr\": data.nonceStr, //随机串\n \"package\": data.package,\n \"signType\": data.signType, //微信签名方式:\n \"paySign\": data.paySign //微信签名\n },\n function (res) {\n if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n Toast.info('支付成功', 2);\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n _this.setState({\n singleType: 6,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n _this.setState({\n singleType: 4,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n _this.setState({\n singleType: 3,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n _this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n } else {\n alert('支付失败')\n }\n }\n )\n }\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)\n }\n } else {\n onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n };\n // 判断支付是否成功\n check = (oid) => {\n http.get(`${API['base-api']}/class_order_status/${oid}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n singleType: 6,\n\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n singleType: 4,\n\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n singleType: 3,\n\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n singleType: 2,\n\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n\n setupRecord = () => {\n this.recordSocket = io(API.record, {\n transports: ['websocket'],\n forceNew: true\n })\n // this.recordSocket = io(API.record)\n this.recordSocket.on('seek', time => {\n this.player.currentTime(time)\n })\n\n this.recordTimer = setInterval(() => {\n this.sendRecord()\n }, 5000)\n }\n\n sendRecord = () => {\n if (this.recordSocket && this.player) {\n this.recordSocket.emit('addRecord', this.recordUserInfo())\n }\n }\n\n recordUserInfo = () => {\n let {uid} = this.props.user.data\n return {\n uid,\n course_id: this.courseID,\n video_id: this.state.videoList[this.state.activeIndex]['id'],\n video_time: parseInt(this.player.currentTime()),\n plat: 5\n }\n }\n\n setupWS = () => {\n this.ws = new WebSocket(API[\"process-api\"]);\n this.ws.addEventListener('error', () => {\n this.ws = null\n /*setTimeout(() => {\n this.setupWS();\n }, 1000)*/\n })\n this.ws.addEventListener('close', () => {\n if (this.reconnect) {\n this.ws = null\n setTimeout(() => {\n this.setupWS();\n }, 1000)\n }\n clearInterval(this.timer)\n })\n this.ws.addEventListener('message', e => {\n const data = JSON.parse(e.data);\n data.code == 4040 && (this.reconnect = false)\n })\n }\n\n sendMessage = message => {\n this.ws && this.ws.send(JSON.stringify(message))\n }\n\n //视频结束请求接口\n getShareProgressInfo = () => {\n http.get(`${API['base-api']}/m/aist/share_data/${this.courseID}/${this.state.videoList[this.state.activeIndex]['id']}`)\n .then(res => {\n const {data} = res\n if (data.errno == 200) {\n this.setState({shareData: data.data, isShowShareModal: true})\n }\n })\n }\n\n //告诉服务端切换视频\n countSchedule = () => {\n this.sendMessage({\n mtype: 'count_schedule',\n uid: this.props.user.data.uid,\n token: this.token,\n platform: 5\n })\n }\n\n sendWatchTime = (sec, rate) => {\n const {videoList, activeIndex, vCourseId} = this.state\n\n this.sendMessage({\n mtype: 'watch_time',\n rate,\n time: sec,\n video_id: videoList[activeIndex]['id'],\n course_id: this.courseID,\n v_course_id: vCourseId,\n uid: this.props.user.data.uid,\n token: this.token,\n platform: 0\n })\n }\n\n setupTimer = () => {\n this.count = 0\n this.watchSec = 0\n clearInterval(this.timer)\n this.timer = setInterval(() => {\n if (this.player && this.player.player()) {\n if (this.count === 5) {\n this.sendWatchTime(this.watchSec, this.currentPlaybackRate)\n this.count = this.watchSec = 0\n } else {\n !this.player.paused() && this.watchSec++\n this.count++\n }\n }\n }, 1000)\n\n }\n\n initializePlayer = () => {\n window.HELP_IMPROVE_VIDEOJS = false;\n this.player = videojs(this.video, {\n controls: true,\n preload: 'auto',\n bigPlayButton: false,\n textTrackDisplay: false,\n posterImage: false,\n errorDisplay: false,\n playbackRates: ['0.75', '1', '1.5', '2'],\n controlBar: {\n pictureInPictureToggle: false\n }\n })\n this.player.addChild('CustomPlayButtonCover')\n this.player.on('ready', () => {\n this.recordSocket.emit('load', this.recordUserInfo())\n })\n this.player.on('ratechange', () => {\n this.currentPlaybackRate = this.player.playbackRate()\n this.sendWatchTime(this.watchSec, this.previousPlaybackRate)\n this.count = this.watchSec = 0\n this.previousPlaybackRate = this.currentPlaybackRate\n })\n this.player.on('ended', () => {\n this.sendWatchTime(this.watchSec, this.currentPlaybackRate)\n this.getShareProgressInfo()\n clearInterval(this.timer)\n })\n this.player.on('seeked', () => {\n this.sendRecord()\n })\n }\n\n sendLastRecord = () => {\n http.post(`${API.home}/m/course/record_last_video`, {\n v_course_id: this.state.course['v_course_id'],\n video_id: this.state.videoList[this.state.activeIndex].id\n })\n }\n\n componentWillUnmount() {\n this.player && this.player.dispose()\n\n clearInterval(this.timer)\n this.ws && this.ws.close()\n this.ws = null\n\n clearInterval(this.recordTimer)\n this.recordSocket && this.recordSocket.close()\n this.recordSocket = null\n }\n\n selectVideo = index => {\n if (index === this.state.activeIndex) {\n return\n }\n\n this.countSchedule()\n\n this.setState({\n activeIndex: index\n },\n () => {\n if (this.hasAuth(this.state.activeIndex)) {\n this.setPlayerSrc(this.state.videoList[index]['play_url'])\n this.sendLastRecord()\n this.playVideo()\n }\n\n\n }\n )\n }\n\n getLastVideoIndex = lastIndex => {\n return this.state.videoList.findIndex(item => item.id == lastIndex)\n }\n\n getVideoList = () => {\n let url = ''\n\n if (getParam('video_id')) {\n url = `${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`\n } else {\n url = `${API.home}/m/course/play/${this.courseID}`\n }\n http.get(url)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState(\n state => ({\n videoList: data.data['lessons'],\n currentVideoSrc: data.data['lessons'][state.activeIndex]['play_url'],\n course: data.data.course,\n courseId: data.data.course['course_id'],\n vCourseId: data.data.course['v_course_id'],\n title: data.data.course['course_title'],\n isLoading: false\n }),\n this.playSetup\n )\n } else {\n Toast.info(data.msg)\n }\n })\n }\n\n playSetup = () => {\n if (this.state.course.is_aist) {\n this.setupWS()\n this.setupTimer()\n }\n let index = this.getLastVideoIndex(this.state.course.last_video_id)\n index = index >= 0 ? index : 0\n this.setState({\n activeIndex: index\n }, () => {\n if (this.lessonAvailable(index)) {\n if (this.hasAuth(index)) {\n Promise.resolve().then(() => {\n this.initializePlayer()\n this.playWithAuth()\n })\n } else {\n this.getCoursePrice();\n }\n } else {\n alert('暂无视频', '', [{\n text: 'OK',\n onPress: () => {\n this.props.history.push('/')\n }\n }])\n }\n })\n\n }\n\n setPlayerSrc = src => {\n if (!this.player) {\n this.initializePlayer()\n }\n this.player.src({\n src,\n type: 'application/x-mpegURL'\n })\n }\n\n playVideo = () => {\n this.player.play()\n }\n\n\n getDatumCatalog() {\n http.get(`${API.home}/m/course/data/${this.courseID}`)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState({\n datum: data.data\n })\n\n } else {\n Toast.info(data.msg)\n }\n })\n }\n\n lessonAvailable = index => {\n return this.state.videoList[index]['video_size'] !== 0\n }\n\n getCoursePrice = () => {\n http.get(`${API.home}/sys/course/price/${getParam('id')}`)\n .then(res => {\n const {data} = res\n if (data.code === 200) {\n this.setState({\n salePrice: data.data['sale_price']\n })\n }\n })\n }\n\n playWithAuth = () => {\n const {videoList, activeIndex} = this.state\n\n if (this.hasAuth(activeIndex)) {\n this.setPlayerSrc(videoList[activeIndex]['play_url'])\n }\n }\n\n hasAuth = index => {\n const {videoList} = this.state\n\n let lesson = videoList[index]\n\n if (lesson['video_auth']) {\n this.setState({\n isAuth: true\n })\n return true\n } else {\n this.setState({\n isAuth: false\n })\n return false\n\n }\n }\n\n\n render() {\n let {match, location} = this.props\n const {videoList, activeIndex, isAuth, salePrice, course, singleBox, singleType} = this.state\n return (\n <div className='play'>\n <HeaderBar title={this.state.title} arrow={true}/>\n <Loading isLoading={this.state.isLoading}>\n <div className=\"video\">\n <video className={'video-js'} ref={el => this.video = el}>\n <source src={'/'} type='application/x-mpegURL'/>\n </video>\n {\n !isAuth && !!videoList[activeIndex]['is_class'] && (\n <div className=\"purchase-box\">\n <div className='hint'>您尚未购买该课时,请购买后学习。</div>\n <div className='btns'>\n <button type='button'\n onClick={this.tobuy}\n className='purchase-class'>¥{salePrice} 购买课程\n </button>\n <button type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'>¥{videoList.length && videoList[activeIndex]['class_price']} 购买单集\n </button>\n </div>\n </div>\n )\n }\n {\n !isAuth && !!course.is_aist && (\n <div className=\"is-aist-box\">\n <i className={'iconfont iconiconfront-21'}></i>\n <p className={'time'}>{videoList[activeIndex]['aist_start_time']}</p>\n <p className={'time'}>请耐心等待...</p>\n </div>\n )\n }\n </div>\n <div className='tab'>\n <div>\n <NavLink to={{pathname: `${match.url}/video`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >视频</NavLink>\n </div>\n <div>\n <NavLink to={{pathname: `${match.url}/datum`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >资料</NavLink>\n </div>\n </div>\n\n {/*单集购买*/}\n {\n singleBox &&\n <Single singleBox={this.state.singleBox} boxHide={this.boxHide} data={this.state.singMess}\n singleType={this.state.singleType}\n vcourseId={course.v_course_id}\n videoId={this.state.singMess.video_id}\n check={this.check}\n title={this.state.singMess.course_tile}/>\n }\n {/* 单集购买成功 */}\n {\n singleType !== 1 &&\n <SingleSuccess\n boxHide={this.boxHide}\n data={this.state.singMess}\n singleType={singleType}\n vcourseId={course.v_course_id}\n videoId={this.state.singMess.video_id}\n nowPrice={this.state.nowPrice}\n laterPrice={this.state.laterPrice}\n />\n }\n\n </Loading>\n <Switch>\n <Redirect exact from={'/play'} to={{\n pathname: '/play/video',\n search: location.search\n }}/>\n <Route path={`${match.path}/video`} render={props => {\n return <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}/>\n }}/>\n <Route path={`${match.path}/datum`} render={props => {\n return <DatumCatalog {...props} datum={this.state.datum}/>\n }}/>\n </Switch>\n <Route render={props => {\n return this.state.vCourseId ? <Recommendation {...props} vCourseId={this.state.vCourseId}/>\n : null\n }}/>\n <ProgressShareModal isShow={this.state.isShowShareModal}\n closeShareModal={() => this.setState({isShowShareModal: false})}\n data={this.state.shareData}\n />\n\n </div>\n );\n }\n}\n\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(Video);","import React from 'react';\nimport './index.scss'\n\nconst VList = (props) => {\n return (\n <li className='v-list-base-item' onClick={props.handleClick.bind(this, props.id)}>\n <div className=\"content\">\n <div className=\"cover\">\n {props.status}\n <img src={props.img} alt=\"\"/>\n </div>\n {props.info}\n </div>\n {props.tab}\n </li>\n );\n};\n\nexport default VList;","import React, { Component } from 'react'\nimport './index.scss'\nimport { getParam, http, browser } from \"@/utils\";\nimport { Toast } from 'antd-mobile';\nimport { Link, withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { differenceInHours, differenceInMinutes, differenceInSeconds } from \"date-fns\";\n\n\nclass Single extends Component {\n constructor(props) {\n super(props)\n this.state = {\n // status: 1,\n orderId: '',\n nowPrice: '',\n laterPrice: '',\n hour: '',\n min: '',\n sec: '',\n endTime: '',\n groupOrderId: '',\n payType: '0', // 1支付宝 0微信\n // singleBox: false,\n showSingleBox: false,\n }\n }\n\n componentDidMount() {\n // if (getParam('is_class') === 1 || getParam('weixinpay')) {\n // console.log(0);\n // this.payCallback()\n // }\n // if (browser.isWeixin) {\n // this.isweixinPay()\n // }\n }\n\n componentWillReceiveProps(nextProps, nextContext) {\n // console.log(nextProps);\n // this.setState({\n // singleBox: nextProps.singleBox\n // })\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n const videoID = this.props.data.video_id || this.props.data.id;\n http.get(`${API.home}/sys/createClassOrder/${videoID}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n orderId: res.data.data.order_id\n })\n this.state.payType === '1' ? this.alipayPay(res.data.data.order_id) : this.weixinPay(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (browser.isWeixin) {\n window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" + encodeURIComponent(window.location.href + \"&aa=bb&oid=\" + orderId).toLowerCase() + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\";\n } else {\n // 微信外部-支付\n http.get(`${API['base-api']}/pay/wxpay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location.href = res.data.data.url + \"&redirect_url=\" + encodeURIComponent(window.location.href + \"&weixinpay=1&oid=\" + orderId).toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n const courseId = getParam('id');\n http.get(`${API['base-api']}/pay/alipay/wap_charge_new/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n courseId && window.localStorage.setItem('payCourse', courseId);\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 微信内部支付\n isweixinPay = () => {\n let _this = this;\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (!getParam('oid')) {\n return\n } else {\n http.get(`${API['base-api']}/pay/wxpay/pub_charge/oid/${getParam('oid')}/code/${weixin_code}`).then((res) => {\n if (res.data.errno === 0) {\n const data = res.data.data;\n\n function onBridgeReady() {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest', {\n \"appId\": data.appId, //公众号名称,由商户传入\n \"timeStamp\": data.timeStamp, //时间戳,自1970年以来的秒数\n \"nonceStr\": data.nonceStr, //随机串\n \"package\": data.package,\n \"signType\": data.signType, //微信签名方式:\n \"paySign\": data.paySign //微信签名\n },\n function (res) {\n if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n Toast.info('支付成功', 2);\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n status: 6,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n status: 4,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n status: 3,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n status: 2,\n showSingleBox: true,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n } else {\n alert('支付失败')\n }\n }\n )\n }\n\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)\n }\n } else {\n onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n }\n\n // 支付完成之后获取状态\n payCallback = () => {\n const _this = this;\n if (!getParam('oid')) {\n return;\n } else {\n _this.intervalPayStatus = setInterval(function () {\n http.get(`${API['base-api']}/m/orderState/oid/${getParam('oid')}`).then(res => {\n if (res.data.errno === 401) {\n clearInterval(_this.intervalPayStatus);\n _this.intervalPayStatus = null;\n // 获取课程类型\n http.get(`${API['base-api']}/class_order_status/${getParam('oid')}`).then((res) => {\n if (Number(res.data.data.errno) === 200) {\n // 正常购买单集成功\n this.setState({\n status: 6,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 201) {\n // 0元参团\n this.setState({\n status: 4,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 202) {\n // 0元购\n this.setState({\n status: 3,\n showSingleBox: true,\n })\n } else if (Number(res.data.data.errno) === 203) {\n // 三天内特价\n this.setState({\n nowPrice: res.data.data.data.now_price,\n laterPrice: res.data.data.data.three_day_later_price,\n status: 2,\n showSingleBox: true,\n })\n } else {\n Toast.info(res.data.data.msg, 2)\n }\n })\n }\n })\n }, 1000)\n }\n\n }\n\n\n // 特价购买全集\n toBuyAll = () => {\n\n }\n // 0元购买全集\n zerobuyReceive = () => {\n Toast.success('购买全集成功', 3)\n this.colse()\n }\n // 0元参团\n zerogroupBuy = () => {\n this.getOrderId()\n }\n\n // 获取订单号-0元参团\n getOrderId = () => {\n let data = {\n course_id: getParam('id')\n }\n http.post(`${API['base-api']}/pdd/sys`, data).then((res) => {\n if (res.data.errno === 0) {\n this.setState({\n groupOrderId: res.data.data.order_id\n })\n this.getOrderStatus(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取订单状态-0元参团\n getOrderStatus = (id) => {\n http.get(`${API.home}/m/pdd/order_status/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.getTime(res.data.data.pdd_order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 获取倒计时-0元参团\n getTime = (id) => {\n http.get(`${API.home}/m/pdd_order_end_time/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n endTime: res.data.data.end_time,\n status: 7\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 邀请好友参团\n toGroup = () => {\n this.props.history.push(`/togroup?id=${this.state.groupOrderId}`)\n }\n\n // 关闭弹窗\n colse = () => {\n this.props.boxHide(false);\n this.setState({\n status: 1\n })\n }\n\n render() {\n const {showSingleBox} = this.state;\n if (this.state.endTime) {\n let date = this.state.endTime * 1000\n let now = Date.now()\n setInterval(() => {\n date -= 1000\n let s = differenceInSeconds(new Date(date), now) % 60,\n m = differenceInMinutes(new Date(date), now) % 60,\n h = differenceInHours(new Date(date), now) % 24\n this.setState({\n hour: h,\n min: m,\n sec: s,\n })\n }, 1000)\n }\n const {singleType} = this.props;\n return (\n singleType === 1 &&\n <div>\n <div className='popup-box'>\n <div className='content singleset-payment'>\n <div className='price-box'>\n <span>实付款:</span>\n <p>{this.props.data.class_price}元</p>\n </div>\n <div className='course-info'>\n <p className='text-overflow-1'><span>课程:</span>\n {this.props.title}\n </p>\n <p className='text-overflow-1'><span>课时:</span>\n {this.props.data.name}\n </p>\n </div>\n <div className='payment-type'>\n <label>支付方式:</label>\n {\n !browser.isWeixin &&\n <p onClick={this.check.bind(this, '1')}>\n <i className='iconfont iconalipay'></i>\n <span>支付宝</span>\n <i className={`iconfont icondanseshixintubiao-5 redio ${this.state.payType === '1' ? 'redioed' : ''}`}></i>\n </p>\n }\n\n <p onClick={this.check.bind(this, '0')}>\n <i className='iconfont iconweixinzhifu buy'></i>\n <span>微信支付</span>\n <i className={`iconfont icondanseshixintubiao-5 redio ${this.state.payType === '0' ? 'redioed' : ''}`}></i>\n </p>\n </div>\n <div className='btn btn-18B4ED' onClick={this.toBuy}>确认购买</div>\n </div>\n <i onClick={this.colse} className={'iconfont iconiconfront-2 close'}></i>\n </div>\n\n </div>\n\n );\n }\n\n}\n\nexport default compose(\n connect(\n state => ({user: state.user}),\n null\n ),\n withRouter\n)(Single)\n","import React, { Component } from 'react'\nimport './index.scss'\nimport { getParam, http, browser } from \"@/utils\";\nimport { Toast } from 'antd-mobile';\nimport { Link, withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { differenceInHours, differenceInMinutes, differenceInSeconds } from \"date-fns\";\n\n\nclass Single extends Component {\n constructor(props) {\n super(props)\n this.state = {\n // status: 1,\n orderId: '',\n nowPrice: '',\n laterPrice: '',\n hour: '',\n min: '',\n sec: '',\n endTime: '',\n groupOrderId: '',\n payType: '0', // 1支付宝 0微信\n // singleBox: false,\n }\n }\n\n componentDidMount() {\n\n }\n\n componentWillReceiveProps(nextProps, nextContext) {\n // console.log(nextProps);\n // this.setState({\n // singleBox: nextProps.singleBox\n // })\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n http.get(`${API.home}/sys/createClassOrder/${this.props.data.video_id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n orderId: res.data.data.order_id\n })\n this.state.payType === '1' ? this.alipayPay(res.data.data.order_id) : this.weixinPay(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (browser.isWeixin) {\n window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" + encodeURIComponent(window.location.href + \"&aa=bb&oid=\" + orderId).toLowerCase() + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\";\n } else {\n // 微信外部-支付\n http.get(`${API['base-api']}/pay/wxpay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location.href = res.data.data.url + \"&redirect_url=\" + encodeURIComponent(window.location.href + \"&weixinpay=1&oid=\" + orderId).toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n const courseId = getParam('id');\n http.get(`${API['base-api']}/pay/alipay/wap_charge_new/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n courseId && window.localStorage.setItem('payCourse', courseId);\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 特价购买全集\n toBuyAll = () => {\n\n }\n // 0元购买全集\n zerobuyReceive = () => {\n Toast.success('购买全集成功', 3)\n this.colse()\n }\n // 0元参团\n zerogroupBuy = () => {\n this.getOrderId()\n }\n\n // 获取订单号-0元参团\n getOrderId = () => {\n let data = {\n course_id: getParam('id')\n }\n http.post(`${API['base-api']}/pdd/sys`, data).then((res) => {\n if (res.data.errno === 0) {\n this.setState({\n groupOrderId: res.data.data.order_id\n })\n this.getOrderStatus(res.data.data.order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取订单状态-0元参团\n getOrderStatus = (id) => {\n http.get(`${API.home}/m/pdd/order_status/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.getTime(res.data.data.pdd_order_id)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n // 获取倒计时-0元参团\n getTime = (id) => {\n http.get(`${API.home}/m/pdd_order_end_time/${id}`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n endTime: res.data.data.end_time,\n status: 7\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 邀请好友参团\n toGroup = () => {\n this.props.history.push(`/togroup?id=${this.state.groupOrderId}`)\n }\n\n // 关闭弹窗\n colse = () => {\n this.props.boxHide(false);\n this.setState({\n status: 1\n })\n }\n\n render() {\n let {singleBox} = this.state;\n if (this.state.endTime) {\n let date = this.state.endTime * 1000\n let now = Date.now()\n setInterval(() => {\n date -= 1000\n let s = differenceInSeconds(new Date(date), now) % 60,\n m = differenceInMinutes(new Date(date), now) % 60,\n h = differenceInHours(new Date(date), now) % 24\n this.setState({\n hour: h,\n min: m,\n sec: s,\n })\n }, 1000)\n }\n const { singleType } = this.props;\n console.log(this.props);\n return (\n <div className='popup-box'>\n {\n singleType === 2 &&\n <div className='content payment-success'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 3天内购买全集,可直接抵扣该集费用,{this.props.nowPrice}元购买。</div>\n <div className=\"dec\">· 超过3天,按照未购集数/全部集数等比例计费,{this.props.laterPrice}元购买全集。</div>\n <Link to={`/play/video?id=${this.props.vcourseId}&video_id=${this.props.data.video_id}`} className='btn btn-18B4ED'>开始学习</Link>\n <div className='btn btn-FF4000' onclick={this.toBuyAll()}>¥{this.props.nowPrice}购买全集\n </div>\n </div>\n }\n {\n singleType === 3 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 恭喜您获得0元拼团购买剩余课时的机会。</div>\n <div className='btn btn-FF4000' onClick={this.zerogroupBuy}>0元参团</div>\n </div>\n }\n {\n singleType === 4 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <div className=\"dec\">· 恭喜您获得0元购买剩余课时的机会。</div>\n <div className='btn btn-FF4000' onClick={this.zerobuyReceive}>0元购</div>\n </div>\n }\n {\n singleType === 6 &&\n <div className='content zero'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>购买成功</span>\n </div>\n <Link to={`/play/video?id=${this.props.vcourseId}&video_id=${this.props.data.video_id}`} className='btn btn-18B4ED'>去学习</Link>\n </div>\n }\n {\n singleType === 7 &&\n <div className='content group'>\n <div className=\"header\">\n <i className='iconfont icondanseshixintubiao-5'></i>\n <span>参团成功</span>\n </div>\n <div className='group-img'>\n <img src={this.props.user.data.avatar} alt=\"\"/>\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png\"\n alt=\"\"/>\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png\"\n alt=\"\"/>\n\n </div>\n <div className='btn-l btn-FF4000' onClick={this.toGroup}>\n 剩余{String(this.state.hour).padStart(2, 0)}:{String(this.state.min).padStart(2, 0)}:{String(this.state.sec).padStart(2, 0)}\n 邀请好友参团\n </div>\n </div>\n }\n <i onClick={this.colse} className={'iconfont iconiconfront-2 close'}></i>\n </div>\n\n );\n }\n\n}\n\nexport default compose(\n connect(\n state => ({user: state.user}),\n null\n ),\n withRouter\n)(Single)\n"],"sourceRoot":""}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment