Commit 8baafc70 by zhanghaozhe

share-url

parent 430f3cb4
......@@ -3,8 +3,8 @@
"BargainMiddlePage.js": "/static/js/BargainMiddlePage.07f79590.chunk.js",
"BargainMiddlePage.js.map": "/static/js/BargainMiddlePage.07f79590.chunk.js.map",
"Classify.css": "/static/css/Classify.f2f19957.chunk.css",
"Classify.js": "/static/js/Classify.b36cdef4.chunk.js",
"Classify.js.map": "/static/js/Classify.b36cdef4.chunk.js.map",
"Classify.js": "/static/js/Classify.36aa2a1d.chunk.js",
"Classify.js.map": "/static/js/Classify.36aa2a1d.chunk.js.map",
"CourseList.css": "/static/css/CourseList.462fc81e.chunk.css",
"CourseList.js": "/static/js/CourseList.a16695a8.chunk.js",
"CourseList.js.map": "/static/js/CourseList.a16695a8.chunk.js.map",
......@@ -40,8 +40,8 @@
"coupons.js": "/static/js/coupons.fd4bf9a0.chunk.js",
"coupons.js.map": "/static/js/coupons.fd4bf9a0.chunk.js.map",
"detail.css": "/static/css/detail.955f7c3d.chunk.css",
"detail.js": "/static/js/detail.f8b3fe65.chunk.js",
"detail.js.map": "/static/js/detail.f8b3fe65.chunk.js.map",
"detail.js": "/static/js/detail.504a4ce2.chunk.js",
"detail.js.map": "/static/js/detail.504a4ce2.chunk.js.map",
"main.css": "/static/css/main.e42ffbbc.chunk.css",
"main.js": "/static/js/main.53fe944e.chunk.js",
"main.js.map": "/static/js/main.53fe944e.chunk.js.map",
......@@ -51,8 +51,8 @@
"purchased.css": "/static/css/purchased.1daf107b.chunk.css",
"purchased.js": "/static/js/purchased.cdbfc5e9.chunk.js",
"purchased.js.map": "/static/js/purchased.cdbfc5e9.chunk.js.map",
"runtime~main.js": "/static/js/runtime~main.8f7625ff.js",
"runtime~main.js.map": "/static/js/runtime~main.8f7625ff.js.map",
"runtime~main.js": "/static/js/runtime~main.7dd32fcb.js",
"runtime~main.js.map": "/static/js/runtime~main.7dd32fcb.js.map",
"search.css": "/static/css/search.fab97849.chunk.css",
"search.js": "/static/js/search.1cc06fea.chunk.js",
"search.js.map": "/static/js/search.1cc06fea.chunk.js.map",
......@@ -60,14 +60,14 @@
"shareposter.js": "/static/js/shareposter.69b1f9be.chunk.js",
"shareposter.js.map": "/static/js/shareposter.69b1f9be.chunk.js.map",
"study.css": "/static/css/study.5e9927d1.chunk.css",
"study.js": "/static/js/study.de511a84.chunk.js",
"study.js.map": "/static/js/study.de511a84.chunk.js.map",
"study.js": "/static/js/study.68957c67.chunk.js",
"study.js.map": "/static/js/study.68957c67.chunk.js.map",
"togroup.css": "/static/css/togroup.49988cae.chunk.css",
"togroup.js": "/static/js/togroup.6999b515.chunk.js",
"togroup.js.map": "/static/js/togroup.6999b515.chunk.js.map",
"video.css": "/static/css/video.661112b2.chunk.css",
"video.js": "/static/js/video.fa0fd7e1.chunk.js",
"video.js.map": "/static/js/video.fa0fd7e1.chunk.js.map",
"video.js": "/static/js/video.e054f591.chunk.js",
"video.js.map": "/static/js/video.e054f591.chunk.js.map",
"static/css/24.5b7eccdb.chunk.css": "/static/css/24.5b7eccdb.chunk.css",
"static/js/24.163e8ea4.chunk.js": "/static/js/24.163e8ea4.chunk.js",
"static/js/24.163e8ea4.chunk.js.map": "/static/js/24.163e8ea4.chunk.js.map",
......@@ -91,7 +91,7 @@
"static/js/31.e78ea090.chunk.js": "/static/js/31.e78ea090.chunk.js",
"static/js/31.e78ea090.chunk.js.map": "/static/js/31.e78ea090.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.691a1636b2413455ff35fc2a649a2353.js": "/precache-manifest.691a1636b2413455ff35fc2a649a2353.js",
"precache-manifest.b3a1007315f328b957533cd3261caf3e.js": "/precache-manifest.b3a1007315f328b957533cd3261caf3e.js",
"service-worker.js": "/service-worker.js",
"static/css/24.5b7eccdb.chunk.css.map": "/static/css/24.5b7eccdb.chunk.css.map",
"static/css/26.4c706a4e.chunk.css.map": "/static/css/26.4c706a4e.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.5b7eccdb.chunk.css" rel="stylesheet"><link href="/static/css/main.e42ffbbc.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(i){function e(e){for(var r,t,a=e[0],n=e[1],o=e[2],c=0,d=[];c<a.length;c++)t=a[c],l[t]&&d.push(l[t][0]),l[t]=0;for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[r]=n[r]);for(h&&h(e);d.length;)d.shift()();return u.push.apply(u,o||[]),f()}function f(){for(var e,r=0;r<u.length;r++){for(var t=u[r],a=!0,n=1;n<t.length;n++){var o=t[n];0!==l[o]&&(a=!1)}a&&(u.splice(r--,1),e=p(p.s=t[0]))}return e}var t={},s={18:0},l={18:0},u=[];function p(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return i[e].call(r.exports,r,r.exports,p),r.l=!0,r.exports}p.e=function(u){var e=[];s[u]?e.push(s[u]):0!==s[u]&&{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}[u]&&e.push(s[u]=new Promise(function(e,a){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"}[u]||u)+"."+{0:"718dff83",1:"f2f19957",2:"462fc81e",3:"2e7d81ca",4:"f2cc3163",5:"31d6cfe0",6:"8bb031ea",7:"31d6cfe0",8:"e5315535",9:"7456653e",10:"1ad68937",11:"3a4dbb7a",12:"bef8c404",13:"9ece7350",14:"955f7c3d",16:"3ae12dec",17:"1daf107b",19:"fab97849",20:"f09a5959",21:"5e9927d1",22:"49988cae",23:"661112b2",25:"31d6cfe0",26:"4c706a4e",27:"31d6cfe0",28:"694b4628",29:"5ed15c7e",30:"ecbb6f9a",31:"bc06dce4"}[u]+".chunk.css",n=p.p+r,t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var c=(i=t[o]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(c===r||c===n))return e()}var d=document.getElementsByTagName("style");for(o=0;o<d.length;o++){var i;if((c=(i=d[o]).getAttribute("data-href"))===r||c===n)return e()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=e,f.onerror=function(e){var r=e&&e.target&&e.target.src||n,t=new Error("Loading CSS chunk "+u+" failed.\n("+r+")");t.request=r,delete s[u],f.parentNode.removeChild(f),a(t)},f.href=n,document.getElementsByTagName("head")[0].appendChild(f)}).then(function(){s[u]=0}));var t=l[u];if(0!==t)if(t)e.push(t[2]);else{var r=new Promise(function(e,r){t=l[u]=[e,r]});e.push(t[2]=r);var a,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"}[u]||u)+"."+{0:"07f79590",1:"b36cdef4",2:"a16695a8",3:"546a558b",4:"9a22829a",5:"a624b8a5",6:"e7234e9c",7:"de77a53f",8:"3d522bdd",9:"cd2438ec",10:"3c7cdece",11:"913ceb56",12:"3a73b01d",13:"fd4bf9a0",14:"f8b3fe65",16:"1a11adf4",17:"cdbfc5e9",19:"1cc06fea",20:"69b1f9be",21:"de511a84",22:"6999b515",23:"fa0fd7e1",25:"4f3038ca",26:"d62d8caf",27:"a6ce341d",28:"c8df493b",29:"09cc6ed3",30:"afd78c65",31:"e78ea090"}[u]+".chunk.js",a=function(e){o.onerror=o.onload=null,clearTimeout(c);var r=l[u];if(0!==r){if(r){var t=e&&("load"===e.type?"missing":e.type),a=e&&e.target&&e.target.src,n=new Error("Loading chunk "+u+" failed.\n("+t+": "+a+")");n.type=t,n.request=a,r[1](n)}l[u]=void 0}};var c=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,document.head.appendChild(o)}return Promise.all(e)},p.m=i,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 a in r)p.d(t,a,function(e){return r[e]}.bind(null,a));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||[],a=r.push.bind(r);r.push=e,r=r.slice();for(var n=0;n<r.length;n++)e(r[n]);var h=a;f()}([])</script><script src="/static/js/24.163e8ea4.chunk.js"></script><script src="/static/js/main.53fe944e.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.5b7eccdb.chunk.css" rel="stylesheet"><link href="/static/css/main.e42ffbbc.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(i){function e(e){for(var r,t,a=e[0],n=e[1],o=e[2],c=0,d=[];c<a.length;c++)t=a[c],l[t]&&d.push(l[t][0]),l[t]=0;for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[r]=n[r]);for(h&&h(e);d.length;)d.shift()();return f.push.apply(f,o||[]),u()}function u(){for(var e,r=0;r<f.length;r++){for(var t=f[r],a=!0,n=1;n<t.length;n++){var o=t[n];0!==l[o]&&(a=!1)}a&&(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 i[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,a){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:"718dff83",1:"f2f19957",2:"462fc81e",3:"2e7d81ca",4:"f2cc3163",5:"31d6cfe0",6:"8bb031ea",7:"31d6cfe0",8:"e5315535",9:"7456653e",10:"1ad68937",11:"3a4dbb7a",12:"bef8c404",13:"9ece7350",14:"955f7c3d",16:"3ae12dec",17:"1daf107b",19:"fab97849",20:"f09a5959",21:"5e9927d1",22:"49988cae",23:"661112b2",25:"31d6cfe0",26:"4c706a4e",27:"31d6cfe0",28:"694b4628",29:"5ed15c7e",30:"ecbb6f9a",31:"bc06dce4"}[f]+".chunk.css",n=p.p+r,t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var c=(i=t[o]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(c===r||c===n))return e()}var d=document.getElementsByTagName("style");for(o=0;o<d.length;o++){var i;if((c=(i=d[o]).getAttribute("data-href"))===r||c===n)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||n,t=new Error("Loading CSS chunk "+f+" failed.\n("+r+")");t.request=r,delete s[f],u.parentNode.removeChild(u),a(t)},u.href=n,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 a,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:"07f79590",1:"36aa2a1d",2:"a16695a8",3:"546a558b",4:"9a22829a",5:"a624b8a5",6:"e7234e9c",7:"de77a53f",8:"3d522bdd",9:"cd2438ec",10:"3c7cdece",11:"913ceb56",12:"3a73b01d",13:"fd4bf9a0",14:"504a4ce2",16:"1a11adf4",17:"cdbfc5e9",19:"1cc06fea",20:"69b1f9be",21:"68957c67",22:"6999b515",23:"e054f591",25:"4f3038ca",26:"d62d8caf",27:"a6ce341d",28:"c8df493b",29:"09cc6ed3",30:"afd78c65",31:"e78ea090"}[f]+".chunk.js",a=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),a=e&&e.target&&e.target.src,n=new Error("Loading chunk "+f+" failed.\n("+t+": "+a+")");n.type=t,n.request=a,r[1](n)}l[f]=void 0}};var c=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,document.head.appendChild(o)}return Promise.all(e)},p.m=i,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 a in r)p.d(t,a,function(e){return r[e]}.bind(null,a));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||[],a=r.push.bind(r);r.push=e,r=r.slice();for(var n=0;n<r.length;n++)e(r[n]);var h=a;u()}([])</script><script src="/static/js/24.163e8ea4.chunk.js"></script><script src="/static/js/main.53fe944e.chunk.js"></script></body></html>
\ No newline at end of file
......@@ -8,12 +8,12 @@ self.__precacheManifest = [
"url": "/static/css/BargainMiddlePage.718dff83.chunk.css"
},
{
"revision": "8a661d979bf28f5eaa19",
"revision": "364fb4b34ba80847b008",
"url": "/static/css/Classify.f2f19957.chunk.css"
},
{
"revision": "8a661d979bf28f5eaa19",
"url": "/static/js/Classify.b36cdef4.chunk.js"
"revision": "364fb4b34ba80847b008",
"url": "/static/js/Classify.36aa2a1d.chunk.js"
},
{
"revision": "13f0f70ea08e4fa427a2",
......@@ -104,12 +104,12 @@ self.__precacheManifest = [
"url": "/static/js/coupons.fd4bf9a0.chunk.js"
},
{
"revision": "93e5463cbb72ad2e665a",
"revision": "65d7a61ad0da4734bf18",
"url": "/static/css/detail.955f7c3d.chunk.css"
},
{
"revision": "93e5463cbb72ad2e665a",
"url": "/static/js/detail.f8b3fe65.chunk.js"
"revision": "65d7a61ad0da4734bf18",
"url": "/static/js/detail.504a4ce2.chunk.js"
},
{
"revision": "7fe1b62eec345deecd03",
......@@ -136,8 +136,8 @@ self.__precacheManifest = [
"url": "/static/js/BargainMiddlePage.07f79590.chunk.js"
},
{
"revision": "089cfbcd5e010e0ef2c7",
"url": "/static/js/runtime~main.8f7625ff.js"
"revision": "5ea1951ddb698e166f3e",
"url": "/static/js/runtime~main.7dd32fcb.js"
},
{
"revision": "a9a02f3ef78db5cb2271",
......@@ -156,12 +156,12 @@ self.__precacheManifest = [
"url": "/static/js/shareposter.69b1f9be.chunk.js"
},
{
"revision": "0de2ff2ee24454b16b5f",
"revision": "7671365cec55757f2f31",
"url": "/static/css/study.5e9927d1.chunk.css"
},
{
"revision": "0de2ff2ee24454b16b5f",
"url": "/static/js/study.de511a84.chunk.js"
"revision": "7671365cec55757f2f31",
"url": "/static/js/study.68957c67.chunk.js"
},
{
"revision": "7f1980f6135a23a01fea",
......@@ -172,12 +172,12 @@ self.__precacheManifest = [
"url": "/static/js/togroup.6999b515.chunk.js"
},
{
"revision": "d4f265f6a200479d4a47",
"revision": "f82678a6f3c80fafd56e",
"url": "/static/css/video.661112b2.chunk.css"
},
{
"revision": "d4f265f6a200479d4a47",
"url": "/static/js/video.fa0fd7e1.chunk.js"
"revision": "f82678a6f3c80fafd56e",
"url": "/static/js/video.e054f591.chunk.js"
},
{
"revision": "80011994e30adf599e5f47fcc81bc06d",
......@@ -212,16 +212,16 @@ self.__precacheManifest = [
"url": "/static/js/28.c8df493b.chunk.js"
},
{
"revision": "145742789ab409c81f28938b15b5dee7",
"url": "/static/media/iconfont.14574278.ttf"
"revision": "cd1c41437a2e35a283e4b16b620a8c9e",
"url": "/static/media/iconfont.cd1c4143.eot"
},
{
"revision": "74feb9e2c2c0e409860f",
"url": "/static/js/29.09cc6ed3.chunk.js"
},
{
"revision": "cd1c41437a2e35a283e4b16b620a8c9e",
"url": "/static/media/iconfont.cd1c4143.eot"
"revision": "145742789ab409c81f28938b15b5dee7",
"url": "/static/media/iconfont.14574278.ttf"
},
{
"revision": "3916021b453d4e1eb877",
......@@ -260,7 +260,7 @@ self.__precacheManifest = [
"url": "/static/css/24.5b7eccdb.chunk.css"
},
{
"revision": "a65f48584cfcfb4591388b995c9c41b4",
"revision": "9e261fb78e9333e114def4a5866bfa05",
"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.691a1636b2413455ff35fc2a649a2353.js"
"/precache-manifest.b3a1007315f328b957533cd3261caf3e.js"
);
workbox.clientsClaim();
......
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{1153:function(e,t,a){},1154:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAMAAADNlS1EAAAA+VBMVEUAAADeP03XQVEDmP38MjMGl/rSQ1Uhi+QJlfj9MjIsh9sGl/o6gtD/MTEYj+zoOkTxNzw6gtAIlvn8MjNQeL+wUXGAZZgnieCAZJg3g9LJSF0rh9x5aJ6HYpPfPktDfsm8TGhec7ShV3wNk/PxNjxdc7ShV3y7TGdDfskgi+XePkt4Z52GYpM2g9PIR10Ok/PxNjyUXYdrbajoOkQXkOwXkOzoO0M3g9LJR13UQ1TePksXkO0Nk/Qhi+QshtzePkzxNjz5MzbnO0RqbamUXIivUXI2g9NDfslQeL9dc7R4aJ6GYpKiV328TGfJR13UQlPoOkNQeb7pOkQ6pR5tAAAAO3RSTlMABo85Of3w7JGRjO7u7u3t7ZGDg09PMBUV+vrz7+/q397X18/Pv7+1tKSjmZh9fHd2cnFmZTQ0KCgbEL1XwbEAAADqSURBVBjTXZHlssIwFAZpqVDc4bq7+wXa4nUB3v9h+HKAYZL9k52dZJI5yfBk61m2SEapZEi7pqoqq8YYNLbxyjTNN6zVEahu2vcA/EAqE1Ch1tEty3pgJg+BTDFv2/ZRhy6SNU2mi/4OHMd5yfDcu657JrSm5y29phAvfN+/EdrnFLT51j0OguBJ2PgchuFJl2/tGfgQNt5GUXQp8a01By2+SedxHN8Jh1+TJDn8J60VizWSnpam6W4mIM/sEXM67VPULaBDfieLxeoLAsoDUIa8Y/TX2+fkTFCHKPgkhRWqhUKORGlQ27MGJhAis32Nv3oAAAAASUVORK5CYII="},1172:function(e,t,a){"use strict";a.r(t);a(43);var n,s=a(14),i=a.n(s),c=a(8),r=a(9),o=a(11),l=a(7),m=a(10),u=a(0),d=a.n(u),p=a(71),h=(a(1153),a(4)),f=a(17),E=a(30),v=a(64),g=a(20),x=Object(g.b)()(n=function(e){function t(e){var a;return Object(c.a)(this,t),(a=Object(o.a)(this,Object(l.a)(t).call(this,e))).toCourseDetail=function(e){var t=a.props;t.dispatch;return t.history.push("/detail?id=".concat(e)),!1},a.state={camp:[],employment:[],basics:[],advanced:[],special:[],isLoading:!0},a}return Object(m.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){var e=this;h.c.get("".concat(API.home,"/m/course/classify/").concat(1)).then(function(t){200===t.data.code?(e.setState({isLoading:!1}),t.data.data.common.length>0&&e.setState({basics:t.data.data.common[0],advanced:t.data.data.common[1]||[]}),t.data.data.special.length>0&&e.setState({camp:t.data.data.special[0],employment:t.data.data.special[1]||[],special:t.data.data.special[2]||[]})):i.a.info(t.data.msg,2)})}},{key:"render",value:function(){var e=this;return d.a.createElement("div",{className:"class-box"},d.a.createElement(E.e,{title:"\u5206\u7c7b",arrow:!1,cart:!1}),d.a.createElement(v.a,{isLoading:this.state.isLoading},d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.camp.list,title:this.state.camp.name,type:1}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.employment.list,title:this.state.employment.name,type:1}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.basics.list,title:this.state.basics.name,type:2}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.advanced.list,title:this.state.advanced.name,type:2}),d.a.createElement("div",{className:"vip"},this.state.special.list&&this.state.special.list.length>0&&this.state.special.list.map(function(t,a){return d.a.createElement("a",{onClick:function(){return e.toCourseDetail(t.course_id)},key:a},d.a.createElement("img",{src:t.course_img,alt:""}))}))))}}]),t}(u.Component))||n;function b(e){var t=e.data,a=e.toDetail;return d.a.createElement("div",{className:"items-box"},t&&t.length>0&&t.map(function(e,t){return d.a.createElement("a",{onClick:function(){return a(e.course_id)},key:t,className:"item-banner"},d.a.createElement("img",{src:e.course_img,alt:""}),e.is_aist&&d.a.createElement("span",{className:"return_cash"}))}))}function N(e){return d.a.createElement("div",{className:"items-box"},e.data&&e.data.length>0&&e.data.map(function(e,t){return d.a.createElement(f.b,{to:"/courselist?id=".concat(e.c_id,"&name=").concat(e.c_name),key:t,className:"item-label"},e.c_name)}))}function w(e){return d.a.createElement("div",{className:"class-course"},d.a.createElement("p",{className:"course-items-title"},e.title&&d.a.createElement("img",{src:a(1154),alt:""}),e.title),1===e.type&&d.a.createElement(b,{data:e.data,toDetail:e.toDetail}),2===e.type&&d.a.createElement(N,{data:e.data}))}t.default=Object(p.b)(x)},1173:function(e,t,a){"use strict";a.r(t);a(43);var n=a(14),s=a.n(n),i=a(8),c=a(9),r=a(11),o=a(7),l=a(10),m=a(0),u=a.n(m),d=a(4),p=(a(777),a(20)),h=a(778),f=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(r.a)(this,Object(o.a)(t).call(this,e))).close=function(){a.state.showCard?(a.setState({showCard:!1}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="static"):a.props.history.push("".concat(a.props.location.state.from),{href:"/classify"})},a.checkOption=function(e){var t=a.state.numberList;a.answerList.map(function(t){return Number(t.questionId)===Number(e.ques_id)&&(t.answerId=e.opt_id),t}),t.push(e.ques_id),a.setState({currentQuestionOption:e.opt_id,numberList:t})},a.preQuestion=function(){var e=a.state.questionIndex;1!==e&&a.setState({questionIndex:e-1,currentExam:a.state.examList[e-2],currentQuestionOption:a.answerList[e-2].answerId})},a.nextQuestion=function(){var e=a.state.questionIndex;e!==a.state.examList.length?a.setState({questionIndex:e+1,currentExam:a.state.examList[e],currentQuestionOption:a.answerList[e].answerId}):a.setState({showCard:!0})},a.jumpItem=function(e,t){a.setState({showCard:!1,questionIndex:t+1,currentExam:a.state.examList[t],currentQuestionOption:a.answerList[t].answerId})},a.commit=function(){var e={};e.video_id=a.keshi_id,e.qid=a.qid,e.cost_time=a.time,e.uid=a.props.user.data.uid,e.answer_record=a.answerList,d.c.post("".concat(API.home,"/m/aist/submit"),e).then(function(e){200===e.data.code?a.props.history.push("/campResolve?keshi_id=".concat(a.keshi_id,"&qid=").concat(a.qid)):s.a.info(e.data.msg,2)})},a.showCard=function(){a.setState({showCard:!0}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="fixed"},a.getUseTime=function(e){var t,n,s;if(t="".concat(parseInt(e/3600)).padStart(2,0),n="".concat(parseInt((e-3600*t)/60)).padStart(2,0),s="".concat(parseInt(e-3600*t-60*n)).padStart(2,0),86400!==e)return e<3600?"".concat(n,":").concat(s):"".concat(t,":").concat(n,":").concat(s);clearInterval(a.useTimeInterval),a.useTimeInterval=null},a.state={examList:[],currentExam:{},currentQuestionOption:{},questionIndex:1,numberList:[],qtitle:"",useTime:"00:00",showCard:!1},a}return Object(l.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.keshi_id=Object(d.b)("keshi_id"),this.qidP=Object(d.b)("qid");var t=this;d.c.get("".concat(API.home,"/m/aist/get_questions/").concat(this.keshi_id,"/").concat(this.qidP)).then(function(a){if(4040!==a.data.code)if(200===a.data.code){var n=a.data.data;e.qid=n.id,e.course_id=n.course_id,e.setState({examList:n.list,qtitle:n.qtitle,currentExam:n.list[0]}),t.answerList=[],n.list.map(function(e){var a={};a.questionId=e.id,a.answerId=0,t.answerList.push(a)}),t.time=0,t.useTimeInterval=setInterval(function(){t.time+=1,t.setState({useTime:t.getUseTime(t.time)})},1e3)}else s.a.info(a.data.msg,2,function(){e.props.history.push("/")});else s.a.info(a.data.msg,2,function(){e.props.history.push("/passport")})})}},{key:"render",value:function(){var e=this,t=this.state,a=t.qtitle,n=t.currentExam,s=t.currentQuestionOption,i=t.questionIndex,c=t.examList,r=t.useTime,o=t.showCard,l=t.numberList;return u.a.createElement("div",{className:"camp-test-container"},u.a.createElement("div",{className:"fixed_container"},u.a.createElement(h.c,{time:r,showCardEve:this.showCard,close:this.close,showCard:o}),u.a.createElement(h.a,{qtitle:a,questionIndex:i,examList:c})),u.a.createElement(h.e,{questionIndex:i,checkOption:this.checkOption,currentExam:n,currentQuestionOption:s}),u.a.createElement(h.b,{preQuestion:this.preQuestion,nextQuestion:this.nextQuestion,questionIndex:i}),o&&u.a.createElement("div",{className:"test-card-container"},u.a.createElement("p",null,"\u8bfe\u540e\u7ec3\u4e60\uff1a".concat(a)),u.a.createElement("ul",{className:"test-item"},c.map(function(t,a){return u.a.createElement("li",{key:t.id,onClick:function(){e.jumpItem(t,a)},className:"layout-flex-center ".concat(l.includes(t.id)?"answered":"")},a+1)})),u.a.createElement("div",{className:"bottom_commit"},u.a.createElement("div",{onClick:this.commit,className:"commit_answer layout-flex-center"},"\u63d0\u4ea4\u5e76\u67e5\u770b\u7ed3\u679c"))))}}]),t}(m.Component);t.default=Object(p.b)(function(e){return{user:e.user}},null)(f)},1174:function(e,t,a){"use strict";a.r(t);a(43);var n=a(14),s=a.n(n),i=a(8),c=a(9),r=a(11),o=a(7),l=a(10),m=a(0),u=a.n(m),d=a(4),p=(a(777),a(778)),h=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(r.a)(this,Object(o.a)(t).call(this,e))).showCard=function(){a.setState({showCard:!0}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="fixed"},a.close=function(){a.state.showCard?(a.setState({showCard:!1}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="static"):a.props.history.push("".concat(a.props.location.state.from),{href:"/purchased"})},a.checkOption=function(){},a.preQuestion=function(){var e=a.state.questionIndex;1!==e&&a.setState({questionIndex:e-1,currentExam:a.state.examList[e-2],currentQuestionOption:a.answerList[e-2].answerId})},a.nextQuestion=function(){var e=a.state.questionIndex;e!==a.state.examList.length?a.setState({questionIndex:e+1,currentExam:a.state.examList[e],currentQuestionOption:a.answerList[e].answerId}):a.setState({showCard:!0})},a.jumpItem=function(e,t){a.setState({showCard:!1,questionIndex:t+1,currentExam:a.state.examList[t],currentQuestionOption:a.answerList[t].answerId})},a.formatTime=function(e){var t=e.split(":"),a="".concat(Number(t[1]),"\u5206").concat(t[2],"\u79d2");return 0!==Number(t[0])&&(a="".concat(Number(t[0]),"\u65f6").concat(a)),a},a.state={examList:[],currentExam:{},currentQuestionOption:{},questionIndex:1,numberList:[],qtitle:"",useTime:"00:00",showCard:!1,rightRate:0},a}return Object(l.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.keshi_id=Object(d.b)("keshi_id"),this.qidP=Object(d.b)("qid");var t=this;d.c.get("".concat(API.home,"/m/aist/analysis/").concat(this.keshi_id,"/").concat(this.qidP)).then(function(a){if(console.log(a),4040!==a.data.code)if(200===a.data.code){var n=a.data.data;e.course_id=n.course_id,t.answerList=[],e.rightNumber=0,n.list.map(function(a){1===a.compare&&e.rightNumber++;var n={};n.questionId=a.id,n.answerId=0,t.answerList.push(n)}),e.setState({examList:n.list,qtitle:n.qtitle,currentExam:n.list[0],useTime:n.cost_time,rightRate:(e.rightNumber/n.list.length*100).toFixed(0)})}else s.a.info(a.data.msg,2,function(){e.props.history.push("/")});else s.a.info(a.data.msg,2,function(){e.props.history.push("/passport")})})}},{key:"render",value:function(){var e=this,t=this.state,a=t.qtitle,n=t.currentExam,s=t.currentQuestionOption,i=t.questionIndex,c=t.examList,r=t.useTime,o=t.showCard,l=t.rightRate;return u.a.createElement("div",{className:"camp-test-container"},u.a.createElement("div",{className:"fixed_container"},u.a.createElement(p.c,{time:r,showCardEve:this.showCard,close:this.close,showCard:o}),u.a.createElement(p.a,{qtitle:a,questionIndex:i,examList:c})),u.a.createElement(p.e,{questionIndex:i,checkOption:this.checkOption,currentExam:n,currentQuestionOption:s},n&&n.options&&u.a.createElement(p.d,{currentExam:n})),u.a.createElement(p.b,{preQuestion:this.preQuestion,nextQuestion:this.nextQuestion,questionIndex:i}),o&&u.a.createElement("div",{className:"test-resolve-card-container"},u.a.createElement("div",{className:"camp-test-header layout-flex-between"},u.a.createElement("div",null,u.a.createElement("i",{onClick:this.close,className:"iconfont iconiconfront-77 icon-close"})),u.a.createElement("div",{className:"layout-flex-center camp-test-time"},u.a.createElement("span",{style:{fontSize:"17px",color:"#333333"}},"\u7ec3\u4e60\u62a5\u544a")),u.a.createElement("div",{className:"icon icon-order no_height"})),u.a.createElement("div",{className:"report-body"},u.a.createElement("div",{className:"right_rate"},u.a.createElement("span",{className:"rate"},"\u6b63\u786e\u7387"),u.a.createElement("div",{className:"percentage"},u.a.createElement("span",null,l),u.a.createElement("span",null,"%"))),u.a.createElement("p",{className:"use_total_time"},"\u7d2f\u8ba1\u7528\u65f6".concat(this.formatTime(r))),u.a.createElement("ul",{className:"right_wrong_li"},c.map(function(t,a){return u.a.createElement("li",{onClick:function(){e.jumpItem(t,a)},className:"layout-flex-center ".concat(t.answer_id===t.user_answer?"right":"wrong"," ").concat(0===t.user_answer?"noSelect":""),key:t.answer_id},a+1)}))),u.a.createElement("div",{className:"camp-report-bottom"},u.a.createElement("div",{className:"bottom_commit layout-flex-center"},u.a.createElement("div",{onClick:this.close,className:"commit_answer layout-flex-center"},"\u9898\u76ee\u89e3\u6790")))))}}]),t}(m.Component);t.default=h},777:function(e,t,a){},778:function(e,t,a){"use strict";a.d(t,"c",function(){return c}),a.d(t,"a",function(){return r}),a.d(t,"e",function(){return o}),a.d(t,"b",function(){return l}),a.d(t,"d",function(){return m});var n=a(0),s=a.n(n);function i(e){return e&&(e.includes("<img")&&(e=e.replace(/<img/g,"<img style='width: 100%'")),e=(e=(e=(e=(e=e.replace(/&lt;/g,"<")).replace(/&gt;/g,">")).replace(/&amp;gt;/g,"")).replace(/&quot;/g,'"')).replace(/&amp;nbsp;/g,"")),e}function c(e){return s.a.createElement("div",{className:"camp-test-header layout-flex-between"},s.a.createElement("div",null,s.a.createElement("i",{onClick:e.close,className:"iconfont iconiconfront-77 icon-close"})),s.a.createElement("div",{className:"layout-flex-center camp-test-time"},s.a.createElement("i",{className:"icon icon-clock"}),s.a.createElement("span",null,e.time)),s.a.createElement("div",{onClick:e.showCardEve,className:"icon icon-order ".concat(e.showCard?"no_height":"")}))}function r(e){return s.a.createElement("div",{className:"layout-flex-between camp-test-title"},s.a.createElement("div",{className:"qtitle"},"\u8bfe\u540e\u7ec3\u4e60\uff1a".concat(e.qtitle)),s.a.createElement("div",{className:"qnumber"},"".concat(e.questionIndex,"/").concat(e.examList.length)))}function o(e){var t=e.questionIndex,a=e.currentExam,n=e.currentQuestionOption;return s.a.createElement("div",{className:"test-item-container"},s.a.createElement("div",{className:"ques item-title",dangerouslySetInnerHTML:{__html:"".concat(t,".").concat(i(a.ques))}}),s.a.createElement("ul",null,a.options&&a.options.map(function(t,c){return s.a.createElement("li",{key:c,onClick:function(){return e.checkOption(t)},className:"\n ".concat(n===t.opt_id?"option_checked":"","\n ").concat(0!==a.user_answer&&!a.user_answer||a.user_answer!==t.opt_id?"":"user_check","\n ").concat(0!==a.user_answer&&!a.user_answer||a.answer_id!==t.opt_id?"":"right_check","\n ")},s.a.createElement("span",{className:"letter"},String.fromCharCode(Number(c)+65)),s.a.createElement("span",{className:"des",dangerouslySetInnerHTML:{__html:i(t.des)}}))})),e.children)}function l(e){return s.a.createElement("div",{className:"layout-flex-around change_question_container"},s.a.createElement("div",{onClick:e.preQuestion,className:"change_button pre_question ".concat(1===e.questionIndex?"first_question":"")},"\u4e0a\u4e00\u9898"),s.a.createElement("div",{onClick:e.nextQuestion,className:"change_button next_question"},"\u4e0b\u4e00\u9898"))}function m(e){var t,a,n=e.currentExam,c=0===n.compare?"\u9519\u8bef":"\u6b63\u786e";return n.options.map(function(e,i){n.answer_id===e.opt_id&&(a=i),0!==n.user_answer&&n.user_answer===e.opt_id&&(t=s.a.createElement("span",null,"\u60a8\u7684\u7b54\u6848\u662f".concat(String.fromCharCode(Number(i)+65),"\uff0c")))}),0===n.user_answer&&(t=s.a.createElement("span",null,"\u60a8\u7684\u7b54\u6848\u662f\u7a7a\uff0c")),s.a.createElement("div",{className:"test-resolve"},s.a.createElement("div",{className:"isRight"},s.a.createElement("span",null,"\u6b63\u786e\u7b54\u6848\u662f".concat(String.fromCharCode(Number(a)+65),"\uff0c")),t,s.a.createElement("span",null,"\u56de\u7b54".concat(c,"\u3002"))),s.a.createElement("p",null,"\u89e3\u6790"),s.a.createElement("div",{className:"resolve-content",dangerouslySetInnerHTML:{__html:"".concat(i(n.analysis))}}))}}}]);
//# sourceMappingURL=Classify.36aa2a1d.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["components/classify/image/tips.png","components/classify/index.js","components/video/camp/campTest.js","components/video/camp/campResolve.js","components/video/camp/common/common.js"],"names":["module","exports","Classify","connect","props","_this","Object","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","toCourseDetail","id","_this$props","dispatch","history","push","concat","state","camp","employment","basics","advanced","special","isLoading","_this2","http","get","API","home","then","res","data","code","setState","common","length","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","a","info","msg","_this3","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","className","_common__WEBPACK_IMPORTED_MODULE_12__","title","arrow","cart","_common_Loading__WEBPACK_IMPORTED_MODULE_13__","ClassCourseBox","toDetail","list","name","type","map","item","index","onClick","course_id","key","src","course_img","alt","Component","ClassCourseA","_ref","is_aist","ClassCourseB","react_router_dom__WEBPACK_IMPORTED_MODULE_11__","to","c_id","c_name","require","WithTab","CampTest","close","showCard","body","document","getElementsByTagName","style","position","location","from","href","checkOption","checkItem","numberList","answerList","Number","questionId","ques_id","answerId","opt_id","currentQuestionOption","preQuestion","questionIndex","currentExam","examList","nextQuestion","jumpItem","commit","video_id","keshi_id","qid","cost_time","time","uid","user","answer_record","post","getUseTime","date","hours","minutes","seconds","parseInt","padStart","clearInterval","useTimeInterval","qtitle","useTime","getParam","qidP","obj","setInterval","_this$state","_common_common__WEBPACK_IMPORTED_MODULE_11__","showCardEve","includes","CampResolve","formatTime","ary","split","str","rightRate","console","log","rightNumber","compare","toFixed","_common_common__WEBPACK_IMPORTED_MODULE_10__","options","fontSize","color","answer_id","user_answer","__webpack_require__","d","__webpack_exports__","Header","CampTitle","TestItem","ChangeQuestion","Resolve","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","format","content","replace","dangerouslySetInnerHTML","__html","ques","String","fromCharCode","des","children","UserIndex","rightIndex","Test","analysis"],"mappings":"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","file":"static/js/Classify.36aa2a1d.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAMAAADNlS1EAAAA+VBMVEUAAADeP03XQVEDmP38MjMGl/rSQ1Uhi+QJlfj9MjIsh9sGl/o6gtD/MTEYj+zoOkTxNzw6gtAIlvn8MjNQeL+wUXGAZZgnieCAZJg3g9LJSF0rh9x5aJ6HYpPfPktDfsm8TGhec7ShV3wNk/PxNjxdc7ShV3y7TGdDfskgi+XePkt4Z52GYpM2g9PIR10Ok/PxNjyUXYdrbajoOkQXkOwXkOzoO0M3g9LJR13UQ1TePksXkO0Nk/Qhi+QshtzePkzxNjz5MzbnO0RqbamUXIivUXI2g9NDfslQeL9dc7R4aJ6GYpKiV328TGfJR13UQlPoOkNQeb7pOkQ6pR5tAAAAO3RSTlMABo85Of3w7JGRjO7u7u3t7ZGDg09PMBUV+vrz7+/q397X18/Pv7+1tKSjmZh9fHd2cnFmZTQ0KCgbEL1XwbEAAADqSURBVBjTXZHlssIwFAZpqVDc4bq7+wXa4nUB3v9h+HKAYZL9k52dZJI5yfBk61m2SEapZEi7pqoqq8YYNLbxyjTNN6zVEahu2vcA/EAqE1Ch1tEty3pgJg+BTDFv2/ZRhy6SNU2mi/4OHMd5yfDcu657JrSm5y29phAvfN+/EdrnFLT51j0OguBJ2PgchuFJl2/tGfgQNt5GUXQp8a01By2+SedxHN8Jh1+TJDn8J60VizWSnpam6W4mIM/sEXM67VPULaBDfieLxeoLAsoDUIa8Y/TX2+fkTFCHKPgkhRWqhUKORGlQ27MGJhAis32Nv3oAAAAASUVORK5CYII=\"","import React, {Component} from 'react';\nimport {WithTab} from '@/HOCs'\nimport './index.scss';\nimport {http} from \"@/utils\";\nimport {Link} from 'react-router-dom'\nimport {Toast} from 'antd-mobile'\nimport {HeaderBar} from \"@/common\"\nimport Loading from '@/common/Loading'\nimport {connect} from 'react-redux';\n\n@connect()\nclass Classify extends Component {\n constructor(props) {\n super(props)\n this.state = {\n camp: [],\n employment: [],\n basics: [],\n advanced: [],\n special: [],\n isLoading: true\n }\n }\n\n componentDidMount() {\n let data = 1\n http.get(`${API.home}/m/course/classify/${data}`,).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n isLoading: false\n })\n\n if (res.data.data.common.length > 0) {\n this.setState({\n basics: res.data.data.common[0],\n advanced: res.data.data.common[1] || [],\n })\n }\n if (res.data.data.special.length > 0) {\n this.setState({\n camp: res.data.data.special[0],\n employment: res.data.data.special[1] || [],\n special: res.data.data.special[2] || [],\n })\n\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n history.push(`/detail?id=${id}`);\n return false;\n }\n\n render() {\n return (\n <div className='class-box'>\n <HeaderBar title='分类' arrow={false} cart={false}></HeaderBar>\n <Loading isLoading={this.state.isLoading}>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.camp.list} title={this.state.camp.name} type={1}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.employment.list} title={this.state.employment.name} type={1}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.basics.list} title={this.state.basics.name} type={2}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.advanced.list} title={this.state.advanced.name} type={2}/>\n <div className=\"vip\">\n {this.state.special.list && this.state.special.list.length > 0 && this.state.special.list.map((item, index) => {\n return (\n <a onClick={() => this.toCourseDetail(item.course_id)} key={index}>\n <img src={item.course_img} alt=\"\"/>\n </a>\n )\n })\n }\n </div>\n </Loading>\n </div>\n )\n }\n}\n\n// 课程图片形式展示 点击图片直接跳转课程详情页面\nfunction ClassCourseA({data, toDetail}) {\n return (\n <div className='items-box'>\n {\n data && data.length > 0 && data.map((item, index) => {\n return (\n <a onClick={() => toDetail(item.course_id)} key={index} className='item-banner'>\n <img src={item.course_img} alt=\"\"/>\n {\n (item.is_aist &&\n <span className='return_cash'></span>)\n }\n </a>\n )\n })\n }\n </div>\n )\n}\n\n// 课程标签的形式展示 点击标签跳转分类详情页面\nfunction ClassCourseB(props) {\n return (\n <div className='items-box'>\n {\n props.data && props.data.length > 0 && props.data.map((item, index) => {\n return (\n <Link to={`/courselist?id=${item.c_id}&name=${item.c_name}`} key={index} className='item-label'>\n {item.c_name}\n </Link>\n )\n })\n }\n </div>\n )\n}\n\nfunction ClassCourseBox(props) {\n return (\n <div className=\"class-course\">\n <p className='course-items-title'>\n {\n props.title &&\n <img src={require('./image/tips.png')} alt=\"\"/>\n }\n {props.title}\n </p>\n {props.type === 1 &&\n <ClassCourseA data={props.data} toDetail={props.toDetail} />\n }\n {props.type === 2 &&\n <ClassCourseB data={props.data}/>\n }\n </div>\n )\n}\n\nexport default WithTab(Classify);\n","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {connect} from \"react-redux\";\nimport {Header, CampTitle, TestItem, ChangeQuestion} from './common/common';\nimport { Toast } from 'antd-mobile';\n\nclass CampTest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n examList: [], // 问题列表\n currentExam: {}, // 当前要展示的问题\n currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n questionIndex: 1, // 第几个问题\n numberList: [],// 答题的题号\n qtitle: \"\",\n useTime: '00:00',\n showCard: false,\n }\n }\n componentDidMount() {\n this.keshi_id = getParam('keshi_id');\n this.qidP = getParam('qid');\n let _this = this;\n // 获取问题列表\n http.get(`${API.home}/m/aist/get_questions/${this.keshi_id}/${this.qidP}`).then(res => {\n if(res.data.code === 4040) {\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/passport');\n });\n return;\n }else if(res.data.code !== 200){\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/');\n });\n return;\n }\n let data = res.data.data;\n this.qid = data.id;\n this.course_id = data.course_id;\n this.setState({\n examList: data.list,\n qtitle: data.qtitle,\n currentExam: data.list[0],\n });\n _this.answerList = [];\n data.list.map(item => {\n let obj = {};\n obj.questionId = item.id;\n obj.answerId = 0;\n _this.answerList.push(obj);\n });\n _this.time = 0;\n _this.useTimeInterval = setInterval(function () {\n _this.time += 1;\n // _this.useTime = _this.getUseTime(_this.time);\n _this.setState({\n useTime: _this.getUseTime(_this.time)\n })\n }, 1000);\n });\n };\n // 关闭按钮\n close = () => {\n let isShow = this.state.showCard;\n if(isShow) {\n this.setState({\n showCard: false\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'static';\n } else {\n this.props.history.push(`${this.props.location.state.from}`,{href: '/classify'})\n }\n };\n // 选择答案\n checkOption = (checkItem) => {\n let list = this.state.numberList;\n this.answerList.map(function (item) {\n if (Number(item.questionId) === Number(checkItem.ques_id)) {\n item.answerId = checkItem.opt_id;\n }\n return item;\n });\n list.push(checkItem.ques_id);\n this.setState({\n currentQuestionOption: checkItem.opt_id,\n numberList: list\n });\n };\n // 上一题\n preQuestion = () => {\n let index = this.state.questionIndex;\n if(index === 1) {\n return;\n }\n this.setState({\n questionIndex: index - 1,\n currentExam: this.state.examList[index - 2],\n currentQuestionOption: this.answerList[index - 2].answerId,\n });\n };\n // 下一题\n nextQuestion = () => {\n let index = this.state.questionIndex;\n if(index === this.state.examList.length) {\n this.setState({\n showCard: true\n });\n return;\n }\n this.setState({\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n });\n };\n // 通过答题卡的卡号跳转到对应的题目\n jumpItem = (item, index) => {\n this.setState({\n showCard: false,\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n })\n };\n // 提交\n commit = () => {\n let data = {};\n data.video_id = this.keshi_id;\n data.qid = this.qid;\n data.cost_time = this.time;\n data.uid = this.props.user.data.uid;\n data.answer_record = this.answerList;\n http.post(`${API.home}/m/aist/submit`, data).then((res) => {\n if(res.data.code === 200) {\n this.props.history.push(`/campResolve?keshi_id=${this.keshi_id}&qid=${this.qid}`)\n }else{\n Toast.info(res.data.msg, 2);\n }\n });\n };\n // 显示答题卡\n showCard = () => {\n this.setState({\n showCard: true\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'fixed';\n };\n // 答题用时的格式化\n getUseTime = (date) => {\n let hours = 0,\n minutes = 0,\n seconds = 0;\n hours = `${parseInt(date / (60 * 60))}`.padStart(2, 0);\n minutes = `${parseInt((date - hours * 3600) / 60)}`.padStart(2, 0);\n seconds = `${parseInt((date - hours * 3600 - minutes * 60))}`.padStart(2, 0);\n if (date === 3600 * 24) {\n clearInterval(this.useTimeInterval);\n this.useTimeInterval = null;\n } else {\n if (date < 3600) {\n return `${minutes}:${seconds}`\n } else {\n return `${hours}:${minutes}:${seconds}`\n }\n }\n };\n\n\n render() {\n let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, numberList} = this.state;\n return (\n <div className='camp-test-container'>\n <div className={'fixed_container'}>\n {/*关闭按钮 时间 答题卡*/}\n <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n\n {/*课后练习题 当前题目 题目总数*/}\n <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n </div>\n\n {/*题目*/}\n <TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} />\n {/*切换题目*/}\n <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n {/* 答题卡 */}\n {\n showCard && (\n <div className='test-card-container' >\n <p>{`课后练习:${qtitle}`}</p>\n <ul className={'test-item'}>\n {\n examList.map((item, index) => {\n return <li key={item.id} onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${numberList.includes(item.id) ? 'answered' : ''}`}>{index + 1}</li>\n })\n }\n </ul>\n <div className={'bottom_commit'}>\n <div onClick={this.commit} className={'commit_answer layout-flex-center'}>提交并查看结果</div>\n </div>\n </div>\n )\n }\n\n </div>\n );\n }\n}\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(CampTest)","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {CampTitle, Header, TestItem, ChangeQuestion, Resolve} from './common/common';\nimport {Toast} from \"antd-mobile\";\n\nclass CampResolve extends Component {\n constructor(props) {\n super(props);\n this.state = {\n examList: [], // 问题列表\n currentExam: {}, // 当前要展示的问题\n currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n questionIndex: 1, // 第几个问题\n numberList: [],// 答题的题号\n qtitle: \"\",\n useTime: '00:00',\n showCard: false,\n rightRate: 0,\n }\n }\n showCard = () => {\n this.setState({\n showCard: true\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'fixed';\n };\n close = () => {\n let isShow = this.state.showCard;\n if(isShow) {\n this.setState({\n showCard: false\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'static';\n } else {\n this.props.history.push(`${this.props.location.state.from}`,{href: '/purchased'})\n }\n };\n componentDidMount() {\n this.keshi_id = getParam('keshi_id');\n this.qidP = getParam('qid');\n let _this = this;\n // 获取问题列表\n http.get(`${API.home}/m/aist/analysis/${this.keshi_id}/${this.qidP}`).then(res => {\n console.log(res);\n if(res.data.code === 4040) {\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/passport');\n });\n return;\n }else if(res.data.code !== 200){\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/');\n });\n return;\n }\n let data = res.data.data;\n this.course_id = data.course_id;\n _this.answerList = [];\n this.rightNumber = 0;\n data.list.map(item => {\n if(item.compare === 1) {\n this.rightNumber++;\n }\n let obj = {};\n obj.questionId = item.id;\n obj.answerId = 0;\n _this.answerList.push(obj);\n });\n this.setState({\n examList: data.list,\n qtitle: data.qtitle,\n currentExam: data.list[0],\n useTime: data.cost_time,\n rightRate: (this.rightNumber/data.list.length * 100).toFixed(0)\n });\n });\n };\n checkOption = () => {};\n preQuestion = () => {\n let index = this.state.questionIndex;\n if(index === 1) {\n return;\n }\n this.setState({\n questionIndex: index - 1,\n currentExam: this.state.examList[index - 2],\n currentQuestionOption: this.answerList[index - 2].answerId,\n });\n };\n nextQuestion = () => {\n let index = this.state.questionIndex;\n if(index === this.state.examList.length) {\n this.setState({\n showCard: true\n });\n return;\n }\n this.setState({\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n });\n };\n // 通过答题卡的卡号跳转到对应的题目\n jumpItem = (item, index) => {\n this.setState({\n showCard: false,\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n })\n };\n formatTime = (time) => {\n let ary = time.split(':');\n let str = `${Number(ary[1])}分${ary[2]}秒`;\n if(Number(ary[0]) !== 0) {\n str = `${Number(ary[0])}时${str}`\n }\n return str;\n };\n render() {\n let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, rightRate} = this.state;\n return (\n <div className='camp-test-container'>\n <div className={'fixed_container'}>\n <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n </div>\n <TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} >\n {\n currentExam && currentExam.options && <Resolve currentExam={currentExam}/>\n }\n </TestItem>\n <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n {\n showCard && (\n <div className='test-resolve-card-container' >\n <div className={'camp-test-header layout-flex-between'}>\n <div><i onClick={this.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n <div className='layout-flex-center camp-test-time'>\n <span style={{fontSize: '17px', color: '#333333'}}>{'练习报告'}</span>\n </div>\n <div className={`icon icon-order no_height`} />\n </div>\n\n <div className={'report-body'}>\n <div className={'right_rate'}>\n <span className={'rate'}>正确率</span>\n <div className={'percentage'}>\n <span>{rightRate}</span>\n <span>%</span>\n </div>\n </div>\n\n <p className={'use_total_time'}>{`累计用时${this.formatTime(useTime)}`}</p>\n\n <ul className={'right_wrong_li'}>\n {\n examList.map((item, index) => {\n return <li onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${item.answer_id === item.user_answer ? 'right' : 'wrong'} ${item.user_answer === 0 ? 'noSelect' : ''}`} key={item.answer_id}>{index + 1}</li>\n })\n }\n </ul>\n </div>\n\n <div className={'camp-report-bottom'}>\n <div className={'bottom_commit layout-flex-center'}>\n <div onClick={this.close} className={'commit_answer layout-flex-center'}>题目解析</div>\n </div>\n </div>\n </div>\n )\n }\n </div>\n );\n }\n}\n\nexport default CampResolve;","import React from 'react';\nfunction format(content) {\n if(content) {\n if(content.includes(\"<img\")) {\n content = content.replace(/<img/g, \"<img style='width: 100%'\");\n }\n content = content.replace(/&lt;/g , '<');\n content = content.replace(/&gt;/g , '>');\n content = content.replace(/&amp;gt;/g , '');\n content = content.replace(/&quot;/g , '\"');\n content = content.replace(/&amp;nbsp;/g , '');\n }\n return content;\n}\n\nfunction Header(props) {\n return (\n <div className='camp-test-header layout-flex-between'>\n <div><i onClick={props.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n <div className='layout-flex-center camp-test-time'>\n <i className='icon icon-clock' />\n <span>{props.time}</span>\n </div>\n <div onClick={props.showCardEve} className={`icon icon-order ${props.showCard ? 'no_height' : ''}`} />\n </div>\n );\n}\n\nfunction CampTitle(props) {\n return (\n <div className='layout-flex-between camp-test-title'>\n <div className='qtitle'>{`课后练习:${props.qtitle}`}</div>\n <div className='qnumber'>{`${props.questionIndex}/${props.examList.length}`}</div>\n </div>\n );\n}\n\nfunction TestItem(props) {\n let {questionIndex, currentExam, currentQuestionOption} = props;\n return (\n <div className='test-item-container'>\n <div className='ques item-title' dangerouslySetInnerHTML={{__html: `${questionIndex}.${format(currentExam.ques)}`}} />\n <ul>\n {\n currentExam.options && currentExam.options.map((item,index)=>{\n return (<li key={index}\n onClick={()=>props.checkOption(item)}\n className={`\n ${currentQuestionOption === item.opt_id ? 'option_checked' : ''}\n ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.user_answer === item.opt_id) ? 'user_check' : ''}\n ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.answer_id === item.opt_id) ? 'right_check' : ''}\n `}\n >\n <span className='letter'>{String.fromCharCode(Number(index) + 65)}</span>\n <span className='des' dangerouslySetInnerHTML={{__html: format(item.des)}} />\n </li>)\n })\n }\n </ul>\n {\n props.children\n }\n </div>\n );\n}\n\nfunction ChangeQuestion(props) {\n return (\n <div className={'layout-flex-around change_question_container'}>\n <div onClick={props.preQuestion} className={`change_button pre_question ${props.questionIndex === 1 ? 'first_question' : ''}`}>上一题</div>\n <div onClick={props.nextQuestion} className={`change_button next_question`}>下一题</div>\n </div>\n )\n}\n\nfunction Resolve(props) {\n let {currentExam} = props;\n let Test = currentExam.compare === 0 ? '错误' : '正确';\n let UserIndex, rightIndex;\n currentExam.options.map((item, index)=>{\n if(currentExam.answer_id === item.opt_id) {\n rightIndex = index;\n }\n if(currentExam.user_answer !== 0 && currentExam.user_answer === item.opt_id) {\n UserIndex = <span>{`您的答案是${String.fromCharCode(Number(index) + 65)},`}</span>;\n }\n });\n if(currentExam.user_answer === 0) {\n UserIndex = <span>{`您的答案是空,`}</span>;\n }\n return (\n <div className={'test-resolve'}>\n <div className={'isRight'}>\n <span>{`正确答案是${String.fromCharCode(Number(rightIndex) + 65)},`}</span>\n {UserIndex}\n <span>{`回答${Test}。`}</span>\n </div>\n <p>解析</p>\n <div className={'resolve-content'} dangerouslySetInnerHTML={{__html: `${format(currentExam.analysis)}`}} />\n </div>\n )\n}\n\nexport {\n Header,\n CampTitle,\n TestItem,\n ChangeQuestion,\n Resolve,\n};"],"sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{1153:function(e,t,a){},1154:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAMAAADNlS1EAAAA+VBMVEUAAADeP03XQVEDmP38MjMGl/rSQ1Uhi+QJlfj9MjIsh9sGl/o6gtD/MTEYj+zoOkTxNzw6gtAIlvn8MjNQeL+wUXGAZZgnieCAZJg3g9LJSF0rh9x5aJ6HYpPfPktDfsm8TGhec7ShV3wNk/PxNjxdc7ShV3y7TGdDfskgi+XePkt4Z52GYpM2g9PIR10Ok/PxNjyUXYdrbajoOkQXkOwXkOzoO0M3g9LJR13UQ1TePksXkO0Nk/Qhi+QshtzePkzxNjz5MzbnO0RqbamUXIivUXI2g9NDfslQeL9dc7R4aJ6GYpKiV328TGfJR13UQlPoOkNQeb7pOkQ6pR5tAAAAO3RSTlMABo85Of3w7JGRjO7u7u3t7ZGDg09PMBUV+vrz7+/q397X18/Pv7+1tKSjmZh9fHd2cnFmZTQ0KCgbEL1XwbEAAADqSURBVBjTXZHlssIwFAZpqVDc4bq7+wXa4nUB3v9h+HKAYZL9k52dZJI5yfBk61m2SEapZEi7pqoqq8YYNLbxyjTNN6zVEahu2vcA/EAqE1Ch1tEty3pgJg+BTDFv2/ZRhy6SNU2mi/4OHMd5yfDcu657JrSm5y29phAvfN+/EdrnFLT51j0OguBJ2PgchuFJl2/tGfgQNt5GUXQp8a01By2+SedxHN8Jh1+TJDn8J60VizWSnpam6W4mIM/sEXM67VPULaBDfieLxeoLAsoDUIa8Y/TX2+fkTFCHKPgkhRWqhUKORGlQ27MGJhAis32Nv3oAAAAASUVORK5CYII="},1172:function(e,t,a){"use strict";a.r(t);a(43);var n,s=a(14),i=a.n(s),c=a(8),r=a(9),o=a(11),l=a(7),m=a(10),u=a(0),d=a.n(u),p=a(71),h=(a(1153),a(4)),f=a(17),E=a(30),v=a(64),g=a(20),x=Object(g.b)()(n=function(e){function t(e){var a;return Object(c.a)(this,t),(a=Object(o.a)(this,Object(l.a)(t).call(this,e))).toCourseDetail=function(e){var t=a.props;t.dispatch;return t.history.push("/detail?id=".concat(e)),!1},a.state={camp:[],employment:[],basics:[],advanced:[],special:[],isLoading:!0},a}return Object(m.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){var e=this;h.c.get("".concat(API.home,"/m/course/classify/").concat(1)).then(function(t){200===t.data.code?(e.setState({isLoading:!1}),t.data.data.common.length>0&&e.setState({basics:t.data.data.common[0],advanced:t.data.data.common[1]||[]}),t.data.data.special.length>0&&e.setState({camp:t.data.data.special[0],employment:t.data.data.special[1]||[],special:t.data.data.special[2]||[]})):i.a.info(t.data.msg,2)})}},{key:"render",value:function(){var e=this;return d.a.createElement("div",{className:"class-box"},d.a.createElement(E.e,{title:"\u5206\u7c7b",arrow:!1,cart:!1}),d.a.createElement(v.a,{isLoading:this.state.isLoading},d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.camp.list,title:this.state.camp.name,type:1}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.employment.list,title:this.state.employment.name,type:1}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.basics.list,title:this.state.basics.name,type:2}),d.a.createElement(w,{toDetail:this.toCourseDetail,data:this.state.advanced.list,title:this.state.advanced.name,type:2}),d.a.createElement("div",{className:"vip"},this.state.special.list&&this.state.special.list.length>0&&this.state.special.list.map(function(t,a){return d.a.createElement("a",{onClick:function(){return e.toCourseDetail(t.course_id)},key:a},d.a.createElement("img",{src:t.course_img,alt:""}))}))))}}]),t}(u.Component))||n;function b(e){var t=e.data,a=e.toDetail;return d.a.createElement("div",{className:"items-box"},t&&t.length>0&&t.map(function(e,t){return d.a.createElement("a",{onClick:function(){return a(e.course_id)},key:t,className:"item-banner"},d.a.createElement("img",{src:e.course_img,alt:""}),e.is_aist&&d.a.createElement("span",{className:"return_cash"}))}))}function N(e){return d.a.createElement("div",{className:"items-box"},e.data&&e.data.length>0&&e.data.map(function(e,t){return d.a.createElement(f.b,{to:"/courselist?id=".concat(e.c_id,"&name=").concat(e.c_name),key:t,className:"item-label"},e.c_name)}))}function w(e){return d.a.createElement("div",{className:"class-course"},d.a.createElement("p",{className:"course-items-title"},e.title&&d.a.createElement("img",{src:a(1154),alt:""}),e.title),1===e.type&&d.a.createElement(b,{data:e.data,toDetail:e.toDetail}),2===e.type&&d.a.createElement(N,{data:e.data}))}t.default=Object(p.b)(x)},1173:function(e,t,a){"use strict";a.r(t);a(43);var n=a(14),s=a.n(n),i=a(8),c=a(9),r=a(11),o=a(7),l=a(10),m=a(0),u=a.n(m),d=a(4),p=(a(777),a(20)),h=a(778),f=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(r.a)(this,Object(o.a)(t).call(this,e))).close=function(){a.state.showCard?(a.setState({showCard:!1}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="static"):a.props.history.push("/detail?id=".concat(a.course_id),{href:"/classify"})},a.checkOption=function(e){var t=a.state.numberList;a.answerList.map(function(t){return Number(t.questionId)===Number(e.ques_id)&&(t.answerId=e.opt_id),t}),t.push(e.ques_id),a.setState({currentQuestionOption:e.opt_id,numberList:t})},a.preQuestion=function(){var e=a.state.questionIndex;1!==e&&a.setState({questionIndex:e-1,currentExam:a.state.examList[e-2],currentQuestionOption:a.answerList[e-2].answerId})},a.nextQuestion=function(){var e=a.state.questionIndex;e!==a.state.examList.length?a.setState({questionIndex:e+1,currentExam:a.state.examList[e],currentQuestionOption:a.answerList[e].answerId}):a.setState({showCard:!0})},a.jumpItem=function(e,t){a.setState({showCard:!1,questionIndex:t+1,currentExam:a.state.examList[t],currentQuestionOption:a.answerList[t].answerId})},a.commit=function(){var e={};e.video_id=a.keshi_id,e.qid=a.qid,e.cost_time=a.time,e.uid=a.props.user.data.uid,e.answer_record=a.answerList,d.c.post("".concat(API.home,"/m/aist/submit"),e).then(function(e){200===e.data.code?a.props.history.push("/campResolve?keshi_id=".concat(a.keshi_id,"&qid=").concat(a.qid)):s.a.info(e.data.msg,2)})},a.showCard=function(){a.setState({showCard:!0}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="fixed"},a.getUseTime=function(e){var t,n,s;if(t="".concat(parseInt(e/3600)).padStart(2,0),n="".concat(parseInt((e-3600*t)/60)).padStart(2,0),s="".concat(parseInt(e-3600*t-60*n)).padStart(2,0),86400!==e)return e<3600?"".concat(n,":").concat(s):"".concat(t,":").concat(n,":").concat(s);clearInterval(a.useTimeInterval),a.useTimeInterval=null},a.state={examList:[],currentExam:{},currentQuestionOption:{},questionIndex:1,numberList:[],qtitle:"",useTime:"00:00",showCard:!1},a}return Object(l.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.keshi_id=Object(d.b)("keshi_id"),this.qidP=Object(d.b)("qid");var t=this;d.c.get("".concat(API.home,"/m/aist/get_questions/").concat(this.keshi_id,"/").concat(this.qidP)).then(function(a){if(4040!==a.data.code)if(200===a.data.code){var n=a.data.data;e.qid=n.id,e.course_id=n.course_id,e.setState({examList:n.list,qtitle:n.qtitle,currentExam:n.list[0]}),t.answerList=[],n.list.map(function(e){var a={};a.questionId=e.id,a.answerId=0,t.answerList.push(a)}),t.time=0,t.useTimeInterval=setInterval(function(){t.time+=1,t.setState({useTime:t.getUseTime(t.time)})},1e3)}else s.a.info(a.data.msg,2,function(){e.props.history.push("/")});else s.a.info(a.data.msg,2,function(){e.props.history.push("/passport")})})}},{key:"render",value:function(){var e=this,t=this.state,a=t.qtitle,n=t.currentExam,s=t.currentQuestionOption,i=t.questionIndex,c=t.examList,r=t.useTime,o=t.showCard,l=t.numberList;return u.a.createElement("div",{className:"camp-test-container"},u.a.createElement("div",{className:"fixed_container"},u.a.createElement(h.c,{time:r,showCardEve:this.showCard,close:this.close,showCard:o}),u.a.createElement(h.a,{qtitle:a,questionIndex:i,examList:c})),u.a.createElement(h.e,{questionIndex:i,checkOption:this.checkOption,currentExam:n,currentQuestionOption:s}),u.a.createElement(h.b,{preQuestion:this.preQuestion,nextQuestion:this.nextQuestion,questionIndex:i}),o&&u.a.createElement("div",{className:"test-card-container"},u.a.createElement("p",null,"\u8bfe\u540e\u7ec3\u4e60\uff1a".concat(a)),u.a.createElement("ul",{className:"test-item"},c.map(function(t,a){return u.a.createElement("li",{key:t.id,onClick:function(){e.jumpItem(t,a)},className:"layout-flex-center ".concat(l.includes(t.id)?"answered":"")},a+1)})),u.a.createElement("div",{className:"bottom_commit"},u.a.createElement("div",{onClick:this.commit,className:"commit_answer layout-flex-center"},"\u63d0\u4ea4\u5e76\u67e5\u770b\u7ed3\u679c"))))}}]),t}(m.Component);t.default=Object(p.b)(function(e){return{user:e.user}},null)(f)},1174:function(e,t,a){"use strict";a.r(t);a(43);var n=a(14),s=a.n(n),i=a(8),c=a(9),r=a(11),o=a(7),l=a(10),m=a(0),u=a.n(m),d=a(4),p=(a(777),a(778)),h=function(e){function t(e){var a;return Object(i.a)(this,t),(a=Object(r.a)(this,Object(o.a)(t).call(this,e))).showCard=function(){a.setState({showCard:!0}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="fixed"},a.close=function(){a.state.showCard?(a.setState({showCard:!1}),a.body=document.getElementsByTagName("body")[0],a.body.style.position="static"):a.props.history.push("/detail?id=".concat(a.course_id),{href:"/purchased"})},a.checkOption=function(){},a.preQuestion=function(){var e=a.state.questionIndex;1!==e&&a.setState({questionIndex:e-1,currentExam:a.state.examList[e-2],currentQuestionOption:a.answerList[e-2].answerId})},a.nextQuestion=function(){var e=a.state.questionIndex;e!==a.state.examList.length?a.setState({questionIndex:e+1,currentExam:a.state.examList[e],currentQuestionOption:a.answerList[e].answerId}):a.setState({showCard:!0})},a.jumpItem=function(e,t){a.setState({showCard:!1,questionIndex:t+1,currentExam:a.state.examList[t],currentQuestionOption:a.answerList[t].answerId})},a.formatTime=function(e){var t=e.split(":"),a="".concat(Number(t[1]),"\u5206").concat(t[2],"\u79d2");return 0!==Number(t[0])&&(a="".concat(Number(t[0]),"\u65f6").concat(a)),a},a.state={examList:[],currentExam:{},currentQuestionOption:{},questionIndex:1,numberList:[],qtitle:"",useTime:"00:00",showCard:!1,rightRate:0},a}return Object(l.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.keshi_id=Object(d.b)("keshi_id"),this.qidP=Object(d.b)("qid");var t=this;d.c.get("".concat(API.home,"/m/aist/analysis/").concat(this.keshi_id,"/").concat(this.qidP)).then(function(a){if(console.log(a),4040!==a.data.code)if(200===a.data.code){var n=a.data.data;e.course_id=n.course_id,t.answerList=[],e.rightNumber=0,n.list.map(function(a){1===a.compare&&e.rightNumber++;var n={};n.questionId=a.id,n.answerId=0,t.answerList.push(n)}),e.setState({examList:n.list,qtitle:n.qtitle,currentExam:n.list[0],useTime:n.cost_time,rightRate:(e.rightNumber/n.list.length*100).toFixed(0)})}else s.a.info(a.data.msg,2,function(){e.props.history.push("/")});else s.a.info(a.data.msg,2,function(){e.props.history.push("/passport")})})}},{key:"render",value:function(){var e=this,t=this.state,a=t.qtitle,n=t.currentExam,s=t.currentQuestionOption,i=t.questionIndex,c=t.examList,r=t.useTime,o=t.showCard,l=t.rightRate;return u.a.createElement("div",{className:"camp-test-container"},u.a.createElement("div",{className:"fixed_container"},u.a.createElement(p.c,{time:r,showCardEve:this.showCard,close:this.close,showCard:o}),u.a.createElement(p.a,{qtitle:a,questionIndex:i,examList:c})),u.a.createElement(p.e,{questionIndex:i,checkOption:this.checkOption,currentExam:n,currentQuestionOption:s},n&&n.options&&u.a.createElement(p.d,{currentExam:n})),u.a.createElement(p.b,{preQuestion:this.preQuestion,nextQuestion:this.nextQuestion,questionIndex:i}),o&&u.a.createElement("div",{className:"test-resolve-card-container"},u.a.createElement("div",{className:"camp-test-header layout-flex-between"},u.a.createElement("div",null,u.a.createElement("i",{onClick:this.close,className:"iconfont iconiconfront-77 icon-close"})),u.a.createElement("div",{className:"layout-flex-center camp-test-time"},u.a.createElement("span",{style:{fontSize:"17px",color:"#333333"}},"\u7ec3\u4e60\u62a5\u544a")),u.a.createElement("div",{className:"icon icon-order no_height"})),u.a.createElement("div",{className:"report-body"},u.a.createElement("div",{className:"right_rate"},u.a.createElement("span",{className:"rate"},"\u6b63\u786e\u7387"),u.a.createElement("div",{className:"percentage"},u.a.createElement("span",null,l),u.a.createElement("span",null,"%"))),u.a.createElement("p",{className:"use_total_time"},"\u7d2f\u8ba1\u7528\u65f6".concat(this.formatTime(r))),u.a.createElement("ul",{className:"right_wrong_li"},c.map(function(t,a){return u.a.createElement("li",{onClick:function(){e.jumpItem(t,a)},className:"layout-flex-center ".concat(t.answer_id===t.user_answer?"right":"wrong"," ").concat(0===t.user_answer?"noSelect":""),key:t.answer_id},a+1)}))),u.a.createElement("div",{className:"camp-report-bottom"},u.a.createElement("div",{className:"bottom_commit layout-flex-center"},u.a.createElement("div",{onClick:this.close,className:"commit_answer layout-flex-center"},"\u9898\u76ee\u89e3\u6790")))))}}]),t}(m.Component);t.default=h},777:function(e,t,a){},778:function(e,t,a){"use strict";a.d(t,"c",function(){return c}),a.d(t,"a",function(){return r}),a.d(t,"e",function(){return o}),a.d(t,"b",function(){return l}),a.d(t,"d",function(){return m});var n=a(0),s=a.n(n);function i(e){return e&&(e.includes("<img")&&(e=e.replace(/<img/g,"<img style='width: 100%'")),e=(e=(e=(e=(e=e.replace(/&lt;/g,"<")).replace(/&gt;/g,">")).replace(/&amp;gt;/g,"")).replace(/&quot;/g,'"')).replace(/&amp;nbsp;/g,"")),e}function c(e){return s.a.createElement("div",{className:"camp-test-header layout-flex-between"},s.a.createElement("div",null,s.a.createElement("i",{onClick:e.close,className:"iconfont iconiconfront-77 icon-close"})),s.a.createElement("div",{className:"layout-flex-center camp-test-time"},s.a.createElement("i",{className:"icon icon-clock"}),s.a.createElement("span",null,e.time)),s.a.createElement("div",{onClick:e.showCardEve,className:"icon icon-order ".concat(e.showCard?"no_height":"")}))}function r(e){return s.a.createElement("div",{className:"layout-flex-between camp-test-title"},s.a.createElement("div",{className:"qtitle"},"\u8bfe\u540e\u7ec3\u4e60\uff1a".concat(e.qtitle)),s.a.createElement("div",{className:"qnumber"},"".concat(e.questionIndex,"/").concat(e.examList.length)))}function o(e){var t=e.questionIndex,a=e.currentExam,n=e.currentQuestionOption;return s.a.createElement("div",{className:"test-item-container"},s.a.createElement("div",{className:"ques item-title",dangerouslySetInnerHTML:{__html:"".concat(t,".").concat(i(a.ques))}}),s.a.createElement("ul",null,a.options&&a.options.map(function(t,c){return s.a.createElement("li",{key:c,onClick:function(){return e.checkOption(t)},className:"\n ".concat(n===t.opt_id?"option_checked":"","\n ").concat(0!==a.user_answer&&!a.user_answer||a.user_answer!==t.opt_id?"":"user_check","\n ").concat(0!==a.user_answer&&!a.user_answer||a.answer_id!==t.opt_id?"":"right_check","\n ")},s.a.createElement("span",{className:"letter"},String.fromCharCode(Number(c)+65)),s.a.createElement("span",{className:"des",dangerouslySetInnerHTML:{__html:i(t.des)}}))})),e.children)}function l(e){return s.a.createElement("div",{className:"layout-flex-around change_question_container"},s.a.createElement("div",{onClick:e.preQuestion,className:"change_button pre_question ".concat(1===e.questionIndex?"first_question":"")},"\u4e0a\u4e00\u9898"),s.a.createElement("div",{onClick:e.nextQuestion,className:"change_button next_question"},"\u4e0b\u4e00\u9898"))}function m(e){var t,a,n=e.currentExam,c=0===n.compare?"\u9519\u8bef":"\u6b63\u786e";return n.options.map(function(e,i){n.answer_id===e.opt_id&&(a=i),0!==n.user_answer&&n.user_answer===e.opt_id&&(t=s.a.createElement("span",null,"\u60a8\u7684\u7b54\u6848\u662f".concat(String.fromCharCode(Number(i)+65),"\uff0c")))}),0===n.user_answer&&(t=s.a.createElement("span",null,"\u60a8\u7684\u7b54\u6848\u662f\u7a7a\uff0c")),s.a.createElement("div",{className:"test-resolve"},s.a.createElement("div",{className:"isRight"},s.a.createElement("span",null,"\u6b63\u786e\u7b54\u6848\u662f".concat(String.fromCharCode(Number(a)+65),"\uff0c")),t,s.a.createElement("span",null,"\u56de\u7b54".concat(c,"\u3002"))),s.a.createElement("p",null,"\u89e3\u6790"),s.a.createElement("div",{className:"resolve-content",dangerouslySetInnerHTML:{__html:"".concat(i(n.analysis))}}))}}}]);
//# sourceMappingURL=Classify.b36cdef4.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["components/classify/image/tips.png","components/classify/index.js","components/video/camp/campTest.js","components/video/camp/campResolve.js","components/video/camp/common/common.js"],"names":["module","exports","Classify","connect","props","_this","Object","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","toCourseDetail","id","_this$props","dispatch","history","push","concat","state","camp","employment","basics","advanced","special","isLoading","_this2","http","get","API","home","then","res","data","code","setState","common","length","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","a","info","msg","_this3","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","className","_common__WEBPACK_IMPORTED_MODULE_12__","title","arrow","cart","_common_Loading__WEBPACK_IMPORTED_MODULE_13__","ClassCourseBox","toDetail","list","name","type","map","item","index","onClick","course_id","key","src","course_img","alt","Component","ClassCourseA","_ref","is_aist","ClassCourseB","react_router_dom__WEBPACK_IMPORTED_MODULE_11__","to","c_id","c_name","require","WithTab","CampTest","close","showCard","body","document","getElementsByTagName","style","position","href","checkOption","checkItem","numberList","answerList","Number","questionId","ques_id","answerId","opt_id","currentQuestionOption","preQuestion","questionIndex","currentExam","examList","nextQuestion","jumpItem","commit","video_id","keshi_id","qid","cost_time","time","uid","user","answer_record","post","getUseTime","date","hours","minutes","seconds","parseInt","padStart","clearInterval","useTimeInterval","qtitle","useTime","getParam","qidP","obj","setInterval","_this$state","_common_common__WEBPACK_IMPORTED_MODULE_11__","showCardEve","includes","CampResolve","formatTime","ary","split","str","rightRate","console","log","rightNumber","compare","toFixed","_common_common__WEBPACK_IMPORTED_MODULE_10__","options","fontSize","color","answer_id","user_answer","__webpack_require__","d","__webpack_exports__","Header","CampTitle","TestItem","ChangeQuestion","Resolve","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","format","content","replace","dangerouslySetInnerHTML","__html","ques","String","fromCharCode","des","children","UserIndex","rightIndex","Test","analysis"],"mappings":"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","file":"static/js/Classify.b36cdef4.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAMAAADNlS1EAAAA+VBMVEUAAADeP03XQVEDmP38MjMGl/rSQ1Uhi+QJlfj9MjIsh9sGl/o6gtD/MTEYj+zoOkTxNzw6gtAIlvn8MjNQeL+wUXGAZZgnieCAZJg3g9LJSF0rh9x5aJ6HYpPfPktDfsm8TGhec7ShV3wNk/PxNjxdc7ShV3y7TGdDfskgi+XePkt4Z52GYpM2g9PIR10Ok/PxNjyUXYdrbajoOkQXkOwXkOzoO0M3g9LJR13UQ1TePksXkO0Nk/Qhi+QshtzePkzxNjz5MzbnO0RqbamUXIivUXI2g9NDfslQeL9dc7R4aJ6GYpKiV328TGfJR13UQlPoOkNQeb7pOkQ6pR5tAAAAO3RSTlMABo85Of3w7JGRjO7u7u3t7ZGDg09PMBUV+vrz7+/q397X18/Pv7+1tKSjmZh9fHd2cnFmZTQ0KCgbEL1XwbEAAADqSURBVBjTXZHlssIwFAZpqVDc4bq7+wXa4nUB3v9h+HKAYZL9k52dZJI5yfBk61m2SEapZEi7pqoqq8YYNLbxyjTNN6zVEahu2vcA/EAqE1Ch1tEty3pgJg+BTDFv2/ZRhy6SNU2mi/4OHMd5yfDcu657JrSm5y29phAvfN+/EdrnFLT51j0OguBJ2PgchuFJl2/tGfgQNt5GUXQp8a01By2+SedxHN8Jh1+TJDn8J60VizWSnpam6W4mIM/sEXM67VPULaBDfieLxeoLAsoDUIa8Y/TX2+fkTFCHKPgkhRWqhUKORGlQ27MGJhAis32Nv3oAAAAASUVORK5CYII=\"","import React, {Component} from 'react';\nimport {WithTab} from '@/HOCs'\nimport './index.scss';\nimport {http} from \"@/utils\";\nimport {Link} from 'react-router-dom'\nimport {Toast} from 'antd-mobile'\nimport {HeaderBar} from \"@/common\"\nimport Loading from '@/common/Loading'\nimport {connect} from 'react-redux';\n\n@connect()\nclass Classify extends Component {\n constructor(props) {\n super(props)\n this.state = {\n camp: [],\n employment: [],\n basics: [],\n advanced: [],\n special: [],\n isLoading: true\n }\n }\n\n componentDidMount() {\n let data = 1\n http.get(`${API.home}/m/course/classify/${data}`,).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n isLoading: false\n })\n\n if (res.data.data.common.length > 0) {\n this.setState({\n basics: res.data.data.common[0],\n advanced: res.data.data.common[1] || [],\n })\n }\n if (res.data.data.special.length > 0) {\n this.setState({\n camp: res.data.data.special[0],\n employment: res.data.data.special[1] || [],\n special: res.data.data.special[2] || [],\n })\n\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n history.push(`/detail?id=${id}`);\n return false;\n }\n\n render() {\n return (\n <div className='class-box'>\n <HeaderBar title='分类' arrow={false} cart={false}></HeaderBar>\n <Loading isLoading={this.state.isLoading}>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.camp.list} title={this.state.camp.name} type={1}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.employment.list} title={this.state.employment.name} type={1}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.basics.list} title={this.state.basics.name} type={2}/>\n <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.advanced.list} title={this.state.advanced.name} type={2}/>\n <div className=\"vip\">\n {this.state.special.list && this.state.special.list.length > 0 && this.state.special.list.map((item, index) => {\n return (\n <a onClick={() => this.toCourseDetail(item.course_id)} key={index}>\n <img src={item.course_img} alt=\"\"/>\n </a>\n )\n })\n }\n </div>\n </Loading>\n </div>\n )\n }\n}\n\n// 课程图片形式展示 点击图片直接跳转课程详情页面\nfunction ClassCourseA({data, toDetail}) {\n return (\n <div className='items-box'>\n {\n data && data.length > 0 && data.map((item, index) => {\n return (\n <a onClick={() => toDetail(item.course_id)} key={index} className='item-banner'>\n <img src={item.course_img} alt=\"\"/>\n {\n (item.is_aist &&\n <span className='return_cash'></span>)\n }\n </a>\n )\n })\n }\n </div>\n )\n}\n\n// 课程标签的形式展示 点击标签跳转分类详情页面\nfunction ClassCourseB(props) {\n return (\n <div className='items-box'>\n {\n props.data && props.data.length > 0 && props.data.map((item, index) => {\n return (\n <Link to={`/courselist?id=${item.c_id}&name=${item.c_name}`} key={index} className='item-label'>\n {item.c_name}\n </Link>\n )\n })\n }\n </div>\n )\n}\n\nfunction ClassCourseBox(props) {\n return (\n <div className=\"class-course\">\n <p className='course-items-title'>\n {\n props.title &&\n <img src={require('./image/tips.png')} alt=\"\"/>\n }\n {props.title}\n </p>\n {props.type === 1 &&\n <ClassCourseA data={props.data} toDetail={props.toDetail} />\n }\n {props.type === 2 &&\n <ClassCourseB data={props.data}/>\n }\n </div>\n )\n}\n\nexport default WithTab(Classify);\n","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {connect} from \"react-redux\";\nimport {Header, CampTitle, TestItem, ChangeQuestion} from './common/common';\nimport { Toast } from 'antd-mobile';\n\nclass CampTest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n examList: [], // 问题列表\n currentExam: {}, // 当前要展示的问题\n currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n questionIndex: 1, // 第几个问题\n numberList: [],// 答题的题号\n qtitle: \"\",\n useTime: '00:00',\n showCard: false,\n }\n }\n componentDidMount() {\n this.keshi_id = getParam('keshi_id');\n this.qidP = getParam('qid');\n let _this = this;\n // 获取问题列表\n http.get(`${API.home}/m/aist/get_questions/${this.keshi_id}/${this.qidP}`).then(res => {\n if(res.data.code === 4040) {\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/passport');\n });\n return;\n }else if(res.data.code !== 200){\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/');\n });\n return;\n }\n let data = res.data.data;\n this.qid = data.id;\n this.course_id = data.course_id;\n this.setState({\n examList: data.list,\n qtitle: data.qtitle,\n currentExam: data.list[0],\n });\n _this.answerList = [];\n data.list.map(item => {\n let obj = {};\n obj.questionId = item.id;\n obj.answerId = 0;\n _this.answerList.push(obj);\n });\n _this.time = 0;\n _this.useTimeInterval = setInterval(function () {\n _this.time += 1;\n // _this.useTime = _this.getUseTime(_this.time);\n _this.setState({\n useTime: _this.getUseTime(_this.time)\n })\n }, 1000);\n });\n };\n // 关闭按钮\n close = () => {\n let isShow = this.state.showCard;\n if(isShow) {\n this.setState({\n showCard: false\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'static';\n } else {\n this.props.history.push(`/detail?id=${this.course_id}`,{href: '/classify'})\n }\n };\n // 选择答案\n checkOption = (checkItem) => {\n let list = this.state.numberList;\n this.answerList.map(function (item) {\n if (Number(item.questionId) === Number(checkItem.ques_id)) {\n item.answerId = checkItem.opt_id;\n }\n return item;\n });\n list.push(checkItem.ques_id);\n this.setState({\n currentQuestionOption: checkItem.opt_id,\n numberList: list\n });\n };\n // 上一题\n preQuestion = () => {\n let index = this.state.questionIndex;\n if(index === 1) {\n return;\n }\n this.setState({\n questionIndex: index - 1,\n currentExam: this.state.examList[index - 2],\n currentQuestionOption: this.answerList[index - 2].answerId,\n });\n };\n // 下一题\n nextQuestion = () => {\n let index = this.state.questionIndex;\n if(index === this.state.examList.length) {\n this.setState({\n showCard: true\n });\n return;\n }\n this.setState({\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n });\n };\n // 通过答题卡的卡号跳转到对应的题目\n jumpItem = (item, index) => {\n this.setState({\n showCard: false,\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n })\n };\n // 提交\n commit = () => {\n let data = {};\n data.video_id = this.keshi_id;\n data.qid = this.qid;\n data.cost_time = this.time;\n data.uid = this.props.user.data.uid;\n data.answer_record = this.answerList;\n http.post(`${API.home}/m/aist/submit`, data).then((res) => {\n if(res.data.code === 200) {\n this.props.history.push(`/campResolve?keshi_id=${this.keshi_id}&qid=${this.qid}`)\n }else{\n Toast.info(res.data.msg, 2);\n }\n });\n };\n // 显示答题卡\n showCard = () => {\n this.setState({\n showCard: true\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'fixed';\n };\n // 答题用时的格式化\n getUseTime = (date) => {\n let hours = 0,\n minutes = 0,\n seconds = 0;\n hours = `${parseInt(date / (60 * 60))}`.padStart(2, 0);\n minutes = `${parseInt((date - hours * 3600) / 60)}`.padStart(2, 0);\n seconds = `${parseInt((date - hours * 3600 - minutes * 60))}`.padStart(2, 0);\n if (date === 3600 * 24) {\n clearInterval(this.useTimeInterval);\n this.useTimeInterval = null;\n } else {\n if (date < 3600) {\n return `${minutes}:${seconds}`\n } else {\n return `${hours}:${minutes}:${seconds}`\n }\n }\n };\n\n\n render() {\n let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, numberList} = this.state;\n return (\n <div className='camp-test-container'>\n <div className={'fixed_container'}>\n {/*关闭按钮 时间 答题卡*/}\n <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n\n {/*课后练习题 当前题目 题目总数*/}\n <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n </div>\n\n {/*题目*/}\n <TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} />\n {/*切换题目*/}\n <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n {/* 答题卡 */}\n {\n showCard && (\n <div className='test-card-container' >\n <p>{`课后练习:${qtitle}`}</p>\n <ul className={'test-item'}>\n {\n examList.map((item, index) => {\n return <li key={item.id} onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${numberList.includes(item.id) ? 'answered' : ''}`}>{index + 1}</li>\n })\n }\n </ul>\n <div className={'bottom_commit'}>\n <div onClick={this.commit} className={'commit_answer layout-flex-center'}>提交并查看结果</div>\n </div>\n </div>\n )\n }\n\n </div>\n );\n }\n}\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(CampTest)","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {CampTitle, Header, TestItem, ChangeQuestion, Resolve} from './common/common';\nimport {Toast} from \"antd-mobile\";\n\nclass CampResolve extends Component {\n constructor(props) {\n super(props);\n this.state = {\n examList: [], // 问题列表\n currentExam: {}, // 当前要展示的问题\n currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n questionIndex: 1, // 第几个问题\n numberList: [],// 答题的题号\n qtitle: \"\",\n useTime: '00:00',\n showCard: false,\n rightRate: 0,\n }\n }\n showCard = () => {\n this.setState({\n showCard: true\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'fixed';\n };\n close = () => {\n let isShow = this.state.showCard;\n if(isShow) {\n this.setState({\n showCard: false\n });\n this.body = document.getElementsByTagName('body')[0];\n this.body.style.position = 'static';\n } else {\n this.props.history.push(`/detail?id=${this.course_id}`,{href: '/purchased'})\n }\n };\n componentDidMount() {\n this.keshi_id = getParam('keshi_id');\n this.qidP = getParam('qid');\n let _this = this;\n // 获取问题列表\n http.get(`${API.home}/m/aist/analysis/${this.keshi_id}/${this.qidP}`).then(res => {\n console.log(res);\n if(res.data.code === 4040) {\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/passport');\n });\n return;\n }else if(res.data.code !== 200){\n Toast.info(res.data.msg, 2, () => {\n this.props.history.push('/');\n });\n return;\n }\n let data = res.data.data;\n this.course_id = data.course_id;\n _this.answerList = [];\n this.rightNumber = 0;\n data.list.map(item => {\n if(item.compare === 1) {\n this.rightNumber++;\n }\n let obj = {};\n obj.questionId = item.id;\n obj.answerId = 0;\n _this.answerList.push(obj);\n });\n this.setState({\n examList: data.list,\n qtitle: data.qtitle,\n currentExam: data.list[0],\n useTime: data.cost_time,\n rightRate: (this.rightNumber/data.list.length * 100).toFixed(0)\n });\n });\n };\n checkOption = () => {};\n preQuestion = () => {\n let index = this.state.questionIndex;\n if(index === 1) {\n return;\n }\n this.setState({\n questionIndex: index - 1,\n currentExam: this.state.examList[index - 2],\n currentQuestionOption: this.answerList[index - 2].answerId,\n });\n };\n nextQuestion = () => {\n let index = this.state.questionIndex;\n if(index === this.state.examList.length) {\n this.setState({\n showCard: true\n });\n return;\n }\n this.setState({\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n });\n };\n // 通过答题卡的卡号跳转到对应的题目\n jumpItem = (item, index) => {\n this.setState({\n showCard: false,\n questionIndex: index + 1,\n currentExam: this.state.examList[index],\n currentQuestionOption: this.answerList[index].answerId,\n })\n };\n formatTime = (time) => {\n let ary = time.split(':');\n let str = `${Number(ary[1])}分${ary[2]}秒`;\n if(Number(ary[0]) !== 0) {\n str = `${Number(ary[0])}时${str}`\n }\n return str;\n };\n render() {\n let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, rightRate} = this.state;\n return (\n <div className='camp-test-container'>\n <div className={'fixed_container'}>\n <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n </div>\n <TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} >\n {\n currentExam && currentExam.options && <Resolve currentExam={currentExam}/>\n }\n </TestItem>\n <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n {\n showCard && (\n <div className='test-resolve-card-container' >\n <div className={'camp-test-header layout-flex-between'}>\n <div><i onClick={this.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n <div className='layout-flex-center camp-test-time'>\n <span style={{fontSize: '17px', color: '#333333'}}>{'练习报告'}</span>\n </div>\n <div className={`icon icon-order no_height`} />\n </div>\n\n <div className={'report-body'}>\n <div className={'right_rate'}>\n <span className={'rate'}>正确率</span>\n <div className={'percentage'}>\n <span>{rightRate}</span>\n <span>%</span>\n </div>\n </div>\n\n <p className={'use_total_time'}>{`累计用时${this.formatTime(useTime)}`}</p>\n\n <ul className={'right_wrong_li'}>\n {\n examList.map((item, index) => {\n return <li onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${item.answer_id === item.user_answer ? 'right' : 'wrong'} ${item.user_answer === 0 ? 'noSelect' : ''}`} key={item.answer_id}>{index + 1}</li>\n })\n }\n </ul>\n </div>\n\n <div className={'camp-report-bottom'}>\n <div className={'bottom_commit layout-flex-center'}>\n <div onClick={this.close} className={'commit_answer layout-flex-center'}>题目解析</div>\n </div>\n </div>\n </div>\n )\n }\n </div>\n );\n }\n}\n\nexport default CampResolve;","import React from 'react';\nfunction format(content) {\n if(content) {\n if(content.includes(\"<img\")) {\n content = content.replace(/<img/g, \"<img style='width: 100%'\");\n }\n content = content.replace(/&lt;/g , '<');\n content = content.replace(/&gt;/g , '>');\n content = content.replace(/&amp;gt;/g , '');\n content = content.replace(/&quot;/g , '\"');\n content = content.replace(/&amp;nbsp;/g , '');\n }\n return content;\n}\n\nfunction Header(props) {\n return (\n <div className='camp-test-header layout-flex-between'>\n <div><i onClick={props.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n <div className='layout-flex-center camp-test-time'>\n <i className='icon icon-clock' />\n <span>{props.time}</span>\n </div>\n <div onClick={props.showCardEve} className={`icon icon-order ${props.showCard ? 'no_height' : ''}`} />\n </div>\n );\n}\n\nfunction CampTitle(props) {\n return (\n <div className='layout-flex-between camp-test-title'>\n <div className='qtitle'>{`课后练习:${props.qtitle}`}</div>\n <div className='qnumber'>{`${props.questionIndex}/${props.examList.length}`}</div>\n </div>\n );\n}\n\nfunction TestItem(props) {\n let {questionIndex, currentExam, currentQuestionOption} = props;\n return (\n <div className='test-item-container'>\n <div className='ques item-title' dangerouslySetInnerHTML={{__html: `${questionIndex}.${format(currentExam.ques)}`}} />\n <ul>\n {\n currentExam.options && currentExam.options.map((item,index)=>{\n return (<li key={index}\n onClick={()=>props.checkOption(item)}\n className={`\n ${currentQuestionOption === item.opt_id ? 'option_checked' : ''}\n ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.user_answer === item.opt_id) ? 'user_check' : ''}\n ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.answer_id === item.opt_id) ? 'right_check' : ''}\n `}\n >\n <span className='letter'>{String.fromCharCode(Number(index) + 65)}</span>\n <span className='des' dangerouslySetInnerHTML={{__html: format(item.des)}} />\n </li>)\n })\n }\n </ul>\n {\n props.children\n }\n </div>\n );\n}\n\nfunction ChangeQuestion(props) {\n return (\n <div className={'layout-flex-around change_question_container'}>\n <div onClick={props.preQuestion} className={`change_button pre_question ${props.questionIndex === 1 ? 'first_question' : ''}`}>上一题</div>\n <div onClick={props.nextQuestion} className={`change_button next_question`}>下一题</div>\n </div>\n )\n}\n\nfunction Resolve(props) {\n let {currentExam} = props;\n let Test = currentExam.compare === 0 ? '错误' : '正确';\n let UserIndex, rightIndex;\n currentExam.options.map((item, index)=>{\n if(currentExam.answer_id === item.opt_id) {\n rightIndex = index;\n }\n if(currentExam.user_answer !== 0 && currentExam.user_answer === item.opt_id) {\n UserIndex = <span>{`您的答案是${String.fromCharCode(Number(index) + 65)},`}</span>;\n }\n });\n if(currentExam.user_answer === 0) {\n UserIndex = <span>{`您的答案是空,`}</span>;\n }\n return (\n <div className={'test-resolve'}>\n <div className={'isRight'}>\n <span>{`正确答案是${String.fromCharCode(Number(rightIndex) + 65)},`}</span>\n {UserIndex}\n <span>{`回答${Test}。`}</span>\n </div>\n <p>解析</p>\n <div className={'resolve-content'} dangerouslySetInnerHTML={{__html: `${format(currentExam.analysis)}`}} />\n </div>\n )\n}\n\nexport {\n Header,\n CampTitle,\n TestItem,\n ChangeQuestion,\n Resolve,\n};"],"sourceRoot":""}
\ No newline at end of file
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 a,n,i=r[0],d=r[1],u=r[2],f=0,l=[];f<i.length;f++)n=i[f],o[n]&&l.push(o[n][0]),o[n]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(s&&s(r);l.length;)l.shift()();return c.push.apply(c,u||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,n=1;n<t.length;n++){var d=t[n];0!==o[d]&&(a=!1)}a&&(c.splice(r--,1),e=i(i.s=t[0]))}return e}var a={},n={18:0},o={18:0},c=[];function i(r){if(a[r])return a[r].exports;var t=a[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=[];n[e]?r.push(n[e]):0!==n[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(n[e]=new Promise(function(r,t){for(var a="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:"718dff83",1:"f2f19957",2:"462fc81e",3:"2e7d81ca",4:"f2cc3163",5:"31d6cfe0",6:"8bb031ea",7:"31d6cfe0",8:"e5315535",9:"7456653e",10:"1ad68937",11:"3a4dbb7a",12:"bef8c404",13:"9ece7350",14:"955f7c3d",16:"3ae12dec",17:"1daf107b",19:"fab97849",20:"f09a5959",21:"5e9927d1",22:"49988cae",23:"661112b2",25:"31d6cfe0",26:"4c706a4e",27:"31d6cfe0",28:"694b4628",29:"5ed15c7e",30:"ecbb6f9a",31:"bc06dce4"}[e]+".chunk.css",o=i.p+a,c=document.getElementsByTagName("link"),d=0;d<c.length;d++){var u=(s=c[d]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(u===a||u===o))return r()}var f=document.getElementsByTagName("style");for(d=0;d<f.length;d++){var s;if((u=(s=f[d]).getAttribute("data-href"))===a||u===o)return r()}var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.onload=r,l.onerror=function(r){var a=r&&r.target&&r.target.src||o,c=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");c.request=a,delete n[e],l.parentNode.removeChild(l),t(c)},l.href=o,document.getElementsByTagName("head")[0].appendChild(l)}).then(function(){n[e]=0}));var t=o[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=o[e]=[r,a]});r.push(t[2]=a);var c,d=document.createElement("script");d.charset="utf-8",d.timeout=120,i.nc&&d.setAttribute("nonce",i.nc),d.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:"07f79590",1:"36aa2a1d",2:"a16695a8",3:"546a558b",4:"9a22829a",5:"a624b8a5",6:"e7234e9c",7:"de77a53f",8:"3d522bdd",9:"cd2438ec",10:"3c7cdece",11:"913ceb56",12:"3a73b01d",13:"fd4bf9a0",14:"504a4ce2",16:"1a11adf4",17:"cdbfc5e9",19:"1cc06fea",20:"69b1f9be",21:"68957c67",22:"6999b515",23:"e054f591",25:"4f3038ca",26:"d62d8caf",27:"a6ce341d",28:"c8df493b",29:"09cc6ed3",30:"afd78c65",31:"e78ea090"}[e]+".chunk.js"}(e),c=function(r){d.onerror=d.onload=null,clearTimeout(u);var t=o[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src,c=new Error("Loading chunk "+e+" failed.\n("+a+": "+n+")");c.type=a,c.request=n,t[1](c)}o[e]=void 0}};var u=setTimeout(function(){c({type:"timeout",target:d})},12e4);d.onerror=d.onload=c,document.head.appendChild(d)}return Promise.all(r)},i.m=e,i.c=a,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 a in e)i.d(t,a,function(r){return e[r]}.bind(null,a));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 d=window.webpackJsonp=window.webpackJsonp||[],u=d.push.bind(d);d.push=r,d=d.slice();for(var f=0;f<d.length;f++)r(d[f]);var s=u;t()}([]);
//# sourceMappingURL=runtime~main.7dd32fcb.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.8f7625ff.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\":\"07f79590\",\"1\":\"b36cdef4\",\"2\":\"a16695a8\",\"3\":\"546a558b\",\"4\":\"9a22829a\",\"5\":\"a624b8a5\",\"6\":\"e7234e9c\",\"7\":\"de77a53f\",\"8\":\"3d522bdd\",\"9\":\"cd2438ec\",\"10\":\"3c7cdece\",\"11\":\"913ceb56\",\"12\":\"3a73b01d\",\"13\":\"fd4bf9a0\",\"14\":\"f8b3fe65\",\"16\":\"1a11adf4\",\"17\":\"cdbfc5e9\",\"19\":\"1cc06fea\",\"20\":\"69b1f9be\",\"21\":\"de511a84\",\"22\":\"6999b515\",\"23\":\"fa0fd7e1\",\"25\":\"4f3038ca\",\"26\":\"d62d8caf\",\"27\":\"a6ce341d\",\"28\":\"c8df493b\",\"29\":\"09cc6ed3\",\"30\":\"afd78c65\",\"31\":\"e78ea090\"}[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\":\"718dff83\",\"1\":\"f2f19957\",\"2\":\"462fc81e\",\"3\":\"2e7d81ca\",\"4\":\"f2cc3163\",\"5\":\"31d6cfe0\",\"6\":\"8bb031ea\",\"7\":\"31d6cfe0\",\"8\":\"e5315535\",\"9\":\"7456653e\",\"10\":\"1ad68937\",\"11\":\"3a4dbb7a\",\"12\":\"bef8c404\",\"13\":\"9ece7350\",\"14\":\"955f7c3d\",\"16\":\"3ae12dec\",\"17\":\"1daf107b\",\"19\":\"fab97849\",\"20\":\"f09a5959\",\"21\":\"5e9927d1\",\"22\":\"49988cae\",\"23\":\"661112b2\",\"25\":\"31d6cfe0\",\"26\":\"4c706a4e\",\"27\":\"31d6cfe0\",\"28\":\"694b4628\",\"29\":\"5ed15c7e\",\"30\":\"ecbb6f9a\",\"31\":\"bc06dce4\"}[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.7dd32fcb.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\":\"07f79590\",\"1\":\"36aa2a1d\",\"2\":\"a16695a8\",\"3\":\"546a558b\",\"4\":\"9a22829a\",\"5\":\"a624b8a5\",\"6\":\"e7234e9c\",\"7\":\"de77a53f\",\"8\":\"3d522bdd\",\"9\":\"cd2438ec\",\"10\":\"3c7cdece\",\"11\":\"913ceb56\",\"12\":\"3a73b01d\",\"13\":\"fd4bf9a0\",\"14\":\"504a4ce2\",\"16\":\"1a11adf4\",\"17\":\"cdbfc5e9\",\"19\":\"1cc06fea\",\"20\":\"69b1f9be\",\"21\":\"68957c67\",\"22\":\"6999b515\",\"23\":\"e054f591\",\"25\":\"4f3038ca\",\"26\":\"d62d8caf\",\"27\":\"a6ce341d\",\"28\":\"c8df493b\",\"29\":\"09cc6ed3\",\"30\":\"afd78c65\",\"31\":\"e78ea090\"}[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\":\"718dff83\",\"1\":\"f2f19957\",\"2\":\"462fc81e\",\"3\":\"2e7d81ca\",\"4\":\"f2cc3163\",\"5\":\"31d6cfe0\",\"6\":\"8bb031ea\",\"7\":\"31d6cfe0\",\"8\":\"e5315535\",\"9\":\"7456653e\",\"10\":\"1ad68937\",\"11\":\"3a4dbb7a\",\"12\":\"bef8c404\",\"13\":\"9ece7350\",\"14\":\"955f7c3d\",\"16\":\"3ae12dec\",\"17\":\"1daf107b\",\"19\":\"fab97849\",\"20\":\"f09a5959\",\"21\":\"5e9927d1\",\"22\":\"49988cae\",\"23\":\"661112b2\",\"25\":\"31d6cfe0\",\"26\":\"4c706a4e\",\"27\":\"31d6cfe0\",\"28\":\"694b4628\",\"29\":\"5ed15c7e\",\"30\":\"ecbb6f9a\",\"31\":\"bc06dce4\"}[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
!function(e){function r(r){for(var a,n,d=r[0],i=r[1],f=r[2],u=0,l=[];u<d.length;u++)n=d[u],o[n]&&l.push(o[n][0]),o[n]=0;for(a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a]);for(s&&s(r);l.length;)l.shift()();return c.push.apply(c,f||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,n=1;n<t.length;n++){var i=t[n];0!==o[i]&&(a=!1)}a&&(c.splice(r--,1),e=d(d.s=t[0]))}return e}var a={},n={18:0},o={18:0},c=[];function d(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,d),t.l=!0,t.exports}d.e=function(e){var r=[];n[e]?r.push(n[e]):0!==n[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(n[e]=new Promise(function(r,t){for(var a="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:"718dff83",1:"f2f19957",2:"462fc81e",3:"2e7d81ca",4:"f2cc3163",5:"31d6cfe0",6:"8bb031ea",7:"31d6cfe0",8:"e5315535",9:"7456653e",10:"1ad68937",11:"3a4dbb7a",12:"bef8c404",13:"9ece7350",14:"955f7c3d",16:"3ae12dec",17:"1daf107b",19:"fab97849",20:"f09a5959",21:"5e9927d1",22:"49988cae",23:"661112b2",25:"31d6cfe0",26:"4c706a4e",27:"31d6cfe0",28:"694b4628",29:"5ed15c7e",30:"ecbb6f9a",31:"bc06dce4"}[e]+".chunk.css",o=d.p+a,c=document.getElementsByTagName("link"),i=0;i<c.length;i++){var f=(s=c[i]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(f===a||f===o))return r()}var u=document.getElementsByTagName("style");for(i=0;i<u.length;i++){var s;if((f=(s=u[i]).getAttribute("data-href"))===a||f===o)return r()}var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.onload=r,l.onerror=function(r){var a=r&&r.target&&r.target.src||o,c=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");c.request=a,delete n[e],l.parentNode.removeChild(l),t(c)},l.href=o,document.getElementsByTagName("head")[0].appendChild(l)}).then(function(){n[e]=0}));var t=o[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=o[e]=[r,a]});r.push(t[2]=a);var c,i=document.createElement("script");i.charset="utf-8",i.timeout=120,d.nc&&i.setAttribute("nonce",d.nc),i.src=function(e){return d.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:"07f79590",1:"b36cdef4",2:"a16695a8",3:"546a558b",4:"9a22829a",5:"a624b8a5",6:"e7234e9c",7:"de77a53f",8:"3d522bdd",9:"cd2438ec",10:"3c7cdece",11:"913ceb56",12:"3a73b01d",13:"fd4bf9a0",14:"f8b3fe65",16:"1a11adf4",17:"cdbfc5e9",19:"1cc06fea",20:"69b1f9be",21:"de511a84",22:"6999b515",23:"fa0fd7e1",25:"4f3038ca",26:"d62d8caf",27:"a6ce341d",28:"c8df493b",29:"09cc6ed3",30:"afd78c65",31:"e78ea090"}[e]+".chunk.js"}(e),c=function(r){i.onerror=i.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src,c=new Error("Loading chunk "+e+" failed.\n("+a+": "+n+")");c.type=a,c.request=n,t[1](c)}o[e]=void 0}};var f=setTimeout(function(){c({type:"timeout",target:i})},12e4);i.onerror=i.onload=c,document.head.appendChild(i)}return Promise.all(r)},d.m=e,d.c=a,d.d=function(e,r,t){d.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},d.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.t=function(e,r){if(1&r&&(e=d(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(d.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)d.d(t,a,function(r){return e[r]}.bind(null,a));return t},d.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(r,"a",r),r},d.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},d.p="/",d.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],f=i.push.bind(i);i.push=r,i=i.slice();for(var u=0;u<i.length;u++)r(i[u]);var s=f;t()}([]);
//# sourceMappingURL=runtime~main.8f7625ff.js.map
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1179:function(e,t,a){"use strict";a.r(t);var n=a(8),s=a(9),o=a(11),r=a(7),i=a(10),l=a(0),c=a.n(l),u=(a(784),a(17)),p=a(47),d=a(648),m=(a(785),a(157)),h=a(20),f=a(84),v=a(650),b=a.n(v),y=a(38),E=a(30);var g=c.a.memo(function(e){var t=e.addCourseClick;return c.a.createElement("div",{className:"add-course"},c.a.createElement("button",{className:"add",onClick:t},"\u6dfb\u52a0\u8bfe\u7a0b+"))});function L(e){var t=e.record,a=t.seconds,n=t.lesson_name,s="";if(n){var o=/\u7b2c[\s\S]+?\u8bfe/.exec(n);s+=o&&o[0]?o[0]:""}if(a){var r=function(e){return{hour:Math.floor(e/3600),min:Math.floor(e/60)%60,sec:e%60}}(a);s+=(r.hour?String(r.hour).padStart(2,"0")+":":"")+(r.min?String(r.min).padStart(2,"0")+":":"")+(r.sec?String(r.sec).padStart(2,"0"):"")}return c.a.createElement("span",{className:"record"},s.length?"\u5b66\u4e60\u5230".concat(s):null)}var w=c.a.memo(function(e){var t=e.item;if(t.ago||t.seconds){var a=new Date(1e3*t.ago),n=Object(m.isToday)(a)?Object(m.format)(a,"HH\u65f6mm\u5206"):Object(m.format)(a,"MM\u6708DD\u65e5");return c.a.createElement("div",{className:"des"},c.a.createElement("span",{className:"time"},n),c.a.createElement(L,{record:t}))}return c.a.createElement("button",{className:"start-learn"},"\u5f00\u59cb\u5b66\u4e60")}),C=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(o.a)(this,(e=Object(r.a)(t)).call.apply(e,[this].concat(i)))).state={isLoading:!0},a.handleClick=function(e){a.props.history.push("/play/video?id=".concat(e))},a.addCourseClick=function(){a.props.history.push("/classify")},a.loadFunc=Object(y.debounce)(function(){a.props.courseList.length%10===0&&a.props.fetchCoursesListIfNeeded()},200),a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){this.props.switchTab(!1),this.props.fetchCoursesListIfNeeded()}},{key:"componentWillUnmount",value:function(){this.props.switchTab(!0)}},{key:"render",value:function(){var e=this,t=this.props,a=t.courseList,n=t.user;return c.a.createElement(E.f,{isLoading:this.props.isLoading},a&&0!==a.length?c.a.createElement(c.a.Fragment,null,c.a.createElement("div",{className:"my-course-uid"},"\u52a0\u7fa4\u8bf7\u5907\u6ce8\u60a8\u7684\u5b66\u53f7\uff1a".concat(!n.hasError&&this.props.user.data.uid)),c.a.createElement(b.a,{pageStart:0,hasMore:!0,loadMore:this.loadFunc,useWindow:!1},c.a.createElement("ul",{ref:function(t){return e.list=t}},a.map(function(t,a){var n=c.a.createElement("div",{className:"info"},c.a.createElement("div",{className:"title"},t.course_title),t.is_aist?c.a.createElement("div",{className:"contact"},"\u52a9\u6559\u5fae\u4fe1\uff1a",t.assist_weixin):c.a.createElement("div",{className:"contact"},"QQ\u7fa4\uff1a",t.course_qq),t.is_aist&&t.aist_schedule&&c.a.createElement("div",{className:"process-status"},c.a.createElement("div",{className:"process-wrapper"},c.a.createElement("div",{className:"process-bar",style:{width:"".concat(parseFloat(t.aist_schedule),"%")}})),c.a.createElement("div",{className:"process-text"},t.aist_schedule)),c.a.createElement(w,{item:t})),s=t.is_aist&&c.a.createElement("span",{className:"status"},"\u8fd4\u73b0");return c.a.createElement(d.a,Object.assign({img:t.image_name,handleClick:e.handleClick},t,{key:a,info:n,status:s,id:t.v_course_id}))}))),a.length%10!==0?c.a.createElement(g,{addCourseClick:this.addCourseClick}):null):c.a.createElement("div",{className:"empty"},c.a.createElement("p",null,c.a.createElement("i",{className:"iconfont iconfish"})),c.a.createElement("p",{className:"empty-prompt"},"\u8fd8\u662f\u54b8\u9c7c\u4e00\u6761\uff0c\u5feb\u53bb\u7ffb\u8eab~"),c.a.createElement("p",null,c.a.createElement(u.b,{className:"select-course",to:"/classify"},"\u53bb\u9009\u8bfe"))))}}]),t}(l.Component),N=Object(h.b)(function(e){return{courseList:e.myCourses.courseList,user:e.user,isLoading:e.myCourses.isLoading}},{fetchCoursesListIfNeeded:f.e,switchTab:f.f})(C),k=(a(43),a(14)),O=a.n(k),_=(a(786),function(e){return c.a.createElement("li",{className:"course-base-item ".concat(e.className),onClick:e.handleClick.bind(void 0,e.id)},e.top,c.a.createElement("img",{src:e.img,alt:""}),c.a.createElement("p",{className:"course-title"},e.title),e.bottom)}),S=a(4),j=a(15),P=a.n(j),M=(a(787),function(e){return c.a.createElement("div",{className:"bottom"},c.a.createElement(E.h,{className:e.className},e.text),c.a.createElement("span",null,e.audience,"\u4eba\u89c2\u770b"))}),T=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(o.a)(this,(e=Object(r.a)(t)).call.apply(e,[this].concat(i)))).state={courses:[],live:[],page:1,num:10},a.handleClick=function(e){a.props.history.push("/play/video?id=".concat(e))},a.getFreeCourses=function(){return S.c.get("".concat(API.home,"/m/free_course/").concat(a.state.page,"/").concat(a.state.num))},a.getFreeLive=function(){return S.c.get("".concat(API.home,"/m/live/free_list"))},a.toLive=function(e){var t=e.room_id;e.live_status?window.location.assign("http://www-test.julyedu.com/live/m_room/".concat(t)):O.a.info("\u76f4\u64ad\u5373\u5c06\u5f00\u59cb\uff0c\u656c\u8bf7\u671f\u5f85",2,null,!1)},a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.getFreeCourses().then(function(t){var a=t.data;200==a.code?e.setState({courses:a.data}):O.a.info(a.msg)}),this.getFreeLive().then(function(t){var a=t.data;200==a.code?e.setState({live:Object(y.isEmpty)(a.data)?[]:a.data}):O.a.info(a.msg,2,null,!1)})}},{key:"render",value:function(){var e=this;return c.a.createElement("ul",{className:"free-courses"},this.state.live.map(function(t,a){var n=c.a.createElement("div",{className:"bottom"},c.a.createElement("div",{className:"animation-box"},new Array(4).fill("a").map(function(e,t){return c.a.createElement("i",{key:t,className:P()("column","column-".concat(t+1))})})),c.a.createElement("div",{className:"time"},"".concat(t.live_start_time))),s=0==t.live_status?c.a.createElement(E.h,{className:"tag-soon top"},"\u5373\u5c06\u5f00\u59cb"):c.a.createElement(E.h,{className:"tag-playing top"},"\u6b63\u5728\u76f4\u64ad");return c.a.createElement(_,{img:t.live_cover,title:t.live_title,top:s,bottom:n,key:t.live_id,className:"live",handleClick:e.toLive.bind(e,t),id:a})}),this.state.courses.map(function(t,a){return c.a.createElement(_,{img:t.logo,title:t.video_course_name,handleClick:e.handleClick,bottom:c.a.createElement(M,{audience:t.play_times,className:"tag-category",text:t.category}),id:t.v_course_id,key:a,className:"course-item"})}))}}]),t}(l.PureComponent),x=a(163),W=a(159),H=a(18),R=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(o.a)(this,(e=Object(r.a)(t)).call.apply(e,[this].concat(i)))).state={position:{}},a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this.props.match;return c.a.createElement("section",{id:"study"},c.a.createElement("div",{className:"tab"},c.a.createElement("div",null,c.a.createElement(u.c,{to:"".concat(e.url,"/my-course"),replace:!0,activeClassName:"active"},"\u6211\u7684\u8bfe\u7a0b")),c.a.createElement("div",null,c.a.createElement(u.c,{to:"".concat(e.url,"/free-course"),replace:!0,activeClassName:"active"},"\u514d\u8d39\u8bfe\u7a0b"))),c.a.createElement("div",{className:"study-container"},c.a.createElement(p.d,null,c.a.createElement(p.a,{exact:!0,from:"/study",to:"study/my-course"}),c.a.createElement(p.b,{path:"".concat(this.props.match.path,"/my-course"),component:N}),c.a.createElement(p.b,{path:"".concat(this.props.match.path,"/free-course"),component:T}))))}}]),t}(l.Component);t.default=Object(H.d)(W.a,x.a)(R)},648:function(e,t,a){"use strict";var n=a(0),s=a.n(n);a(649);t.a=function(e){return s.a.createElement("li",{className:"v-list-base-item",onClick:e.handleClick.bind(void 0,e.id)},s.a.createElement("div",{className:"content"},s.a.createElement("div",{className:"cover"},e.status,s.a.createElement("img",{src:e.img,alt:""})),e.info),e.tab)}},649:function(e,t,a){},650:function(e,t,a){e.exports=a(651)},651:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),s=a(0),o=i(s),r=i(a(2));function i(e){return e&&e.__esModule?e:{default:e}}var l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.scrollListener=a.scrollListener.bind(a),a.eventListenerOptions=a.eventListenerOptions.bind(a),a.mousewheelListener=a.mousewheelListener.bind(a),a}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s.Component),n(t,[{key:"componentDidMount",value:function(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}},{key:"componentDidUpdate",value:function(){if(this.props.isReverse&&this.loadMore){var e=this.getParentElement(this.scrollComponent);e.scrollTop=e.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}},{key:"componentWillUnmount",value:function(){this.detachScrollListener(),this.detachMousewheelListener()}},{key:"isPassiveSupported",value:function(){var e=!1,t={get passive(){e=!0}};try{document.addEventListener("test",null,t),document.removeEventListener("test",null,t)}catch(a){}return e}},{key:"eventListenerOptions",value:function(){var e=this.props.useCapture;return this.isPassiveSupported()&&(e={useCapture:this.props.useCapture,passive:!0}),e}},{key:"setDefaultLoader",value:function(e){this.defaultLoader=e}},{key:"detachMousewheelListener",value:function(){var e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}},{key:"detachScrollListener",value:function(){var e=window;!1===this.props.useWindow&&(e=this.getParentElement(this.scrollComponent)),e.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),e.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}},{key:"getParentElement",value:function(e){var t=this.props.getScrollParent&&this.props.getScrollParent();return null!=t?t:e&&e.parentNode}},{key:"filterProps",value:function(e){return e}},{key:"attachScrollListener",value:function(){var e=this.getParentElement(this.scrollComponent);if(this.props.hasMore&&e){var t=window;!1===this.props.useWindow&&(t=e),t.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),t.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),t.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}}},{key:"mousewheelListener",value:function(e){1!==e.deltaY||this.isPassiveSupported()||e.preventDefault()}},{key:"scrollListener",value:function(){var e=this.scrollComponent,t=window,a=this.getParentElement(e),n=void 0;if(this.props.useWindow){var s=document.documentElement||document.body.parentNode||document.body,o=void 0!==t.pageYOffset?t.pageYOffset:s.scrollTop;n=this.props.isReverse?o:this.calculateOffset(e,o)}else n=this.props.isReverse?a.scrollTop:e.scrollHeight-a.scrollTop-a.clientHeight;n<Number(this.props.threshold)&&e&&null!==e.offsetParent&&(this.detachScrollListener(),this.beforeScrollHeight=a.scrollHeight,this.beforeScrollTop=a.scrollTop,"function"===typeof this.props.loadMore&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}},{key:"calculateOffset",value:function(e,t){return e?this.calculateTopPosition(e)+(e.offsetHeight-t-window.innerHeight):0}},{key:"calculateTopPosition",value:function(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}},{key:"render",value:function(){var e=this,t=this.filterProps(this.props),a=t.children,n=t.element,s=t.hasMore,r=(t.initialLoad,t.isReverse),i=t.loader,l=(t.loadMore,t.pageStart,t.ref),c=(t.threshold,t.useCapture,t.useWindow,t.getScrollParent,function(e,t){var a={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n]);return a}(t,["children","element","hasMore","initialLoad","isReverse","loader","loadMore","pageStart","ref","threshold","useCapture","useWindow","getScrollParent"]));c.ref=function(t){e.scrollComponent=t,l&&l(t)};var u=[a];return s&&(i?r?u.unshift(i):u.push(i):this.defaultLoader&&(r?u.unshift(this.defaultLoader):u.push(this.defaultLoader))),o.default.createElement(n,c,u)}}]),t}();l.propTypes={children:r.default.node.isRequired,element:r.default.node,hasMore:r.default.bool,initialLoad:r.default.bool,isReverse:r.default.bool,loader:r.default.node,loadMore:r.default.func.isRequired,pageStart:r.default.number,ref:r.default.func,getScrollParent:r.default.func,threshold:r.default.number,useCapture:r.default.bool,useWindow:r.default.bool},l.defaultProps={element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null},t.default=l,e.exports=t.default},784:function(e,t,a){},785:function(e,t,a){},786:function(e,t,a){},787:function(e,t,a){}}]);
//# sourceMappingURL=study.68957c67.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["components/study/myCourses/index.js","common/course-base/index.js","components/study/freeCourses/index.js","components/study/index.js","common/v-list-base/index.js","../node_modules/react-infinite-scroller/index.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js"],"names":["AddCourse","React","memo","_ref","addCourseClick","react_default","a","createElement","className","onClick","Record","_ref2","_ref2$record","record","seconds","lesson_name","result","matchResult","exec","studyTime","hour","Math","floor","min","sec","getStudyTime","String","padStart","length","concat","Bottom","_ref3","item","ago","date","Date","time","isToday","format","MyCourses","state","isLoading","handleClick","id","_this","props","history","push","loadFunc","debounce","courseList","fetchCoursesListIfNeeded","this","switchTab","_this2","_this$props","user","common","Fragment","hasError","data","uid","react_infinite_scroller_default","pageStart","hasMore","loadMore","useWindow","ref","el","list","map","index","Info","course_title","is_aist","assist_weixin","course_qq","aist_schedule","style","width","parseFloat","myCourses_Bottom","status","v_list_base","Object","assign","img","image_name","key","info","react_router_dom","to","Component","connect","myCourses","Course","bind","top","src","alt","title","bottom","text","audience","FreeCourse","courses","live","page","num","getFreeCourses","http","get","API","home","getFreeLive","toLive","room_id","live_status","window","location","toast_default","then","res","code","setState","msg","isEmpty","_this3","Array","fill","classnames","LiveStatus","common_course_base","logo","freeCourses_Bottom","category","PureComponent","Study","position","match","url","replace","activeClassName","react_router","exact","from","path","component","FreeCourses","compose","WithFullSize","WithTab","VList","react__WEBPACK_IMPORTED_MODULE_0___default","tab","module","exports","__webpack_require__","defineProperty","value","_createClass","defineProperties","target","i","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","prototype","_react","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","scrollListener","eventListenerOptions","mousewheelListener","subClass","superClass","create","constructor","setPrototypeOf","_inherits","pageLoaded","options","attachScrollListener","isReverse","parentElement","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","document","addEventListener","removeEventListener","e","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","parentNode","scrollParent","getScrollParent","initialLoad","deltaY","preventDefault","offset","doc","documentElement","body","undefined","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","renderProps","filterProps","children","element","keys","indexOf","hasOwnProperty","_objectWithoutProperties","node","childrenArray","unshift","propTypes","isRequired","bool","func","number","defaultProps"],"mappings":"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","file":"static/js/study.68957c67.chunk.js","sourcesContent":["import React, { Component } from \"react\"\nimport VList from '@/common/v-list-base'\nimport './my-courses.scss'\nimport { isToday, format } from \"date-fns\"\nimport { connect } from \"react-redux\"\nimport { fetchCoursesListIfNeeded, switchTab } from \"./actions\"\nimport InfiniteScroll from 'react-infinite-scroller'\nimport { debounce } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport { Loading } from \"@/common\";\n\n\nfunction getStudyTime(seconds) {\n return {\n hour: Math.floor(seconds / (60 * 60)),\n min: Math.floor(seconds / 60) % 60,\n sec: seconds % 60\n }\n}\n\nconst AddCourse = React.memo(({addCourseClick}) => (\n <div className='add-course'>\n <button className='add' onClick={addCourseClick}>添加课程+</button>\n </div>\n))\n\nfunction Record({record: {seconds, lesson_name}}) {\n let re = /第[\\s\\S]+?课/,\n result = ''\n\n if (lesson_name) {\n let matchResult = re.exec(lesson_name)\n result += (matchResult && matchResult[0]) ? matchResult[0] : ''\n }\n\n if (seconds) {\n let studyTime = getStudyTime(seconds)\n let hour = studyTime.hour ? String(studyTime.hour).padStart(2, '0') + ':' : '',\n min = studyTime.min ? String(studyTime.min).padStart(2, '0') + ':' : '',\n sec = studyTime.sec ? String(studyTime.sec).padStart(2, '0') : ''\n\n result += hour + min + sec\n }\n\n return (\n <span className={'record'}>\n {\n result.length ? `学习到${result}` : null\n }\n </span>\n )\n}\n\n\nconst Bottom = React.memo(({item}) => {\n if (item.ago || item.seconds) {\n let date = new Date(item.ago * 1000)\n let time = isToday(date) ? format(date, 'HH时mm分') : format(date, 'MM月DD日')\n return (\n <div className=\"des\">\n <span className='time'>{time}</span>\n <Record record={item}/>\n </div>\n )\n }\n return (\n <button className='start-learn'>开始学习</button>\n )\n})\n\nclass MyCourses extends Component {\n\n list\n\n state = {\n isLoading: true\n }\n\n handleClick = id => {\n this.props.history.push(`/play/video?id=${id}`)\n }\n addCourseClick = () => {\n this.props.history.push('/classify')\n }\n\n componentDidMount() {\n this.props.switchTab(false)\n this.props.fetchCoursesListIfNeeded()\n }\n\n componentWillUnmount() {\n this.props.switchTab(true);\n }\n\n loadFunc = debounce(() => {\n if (this.props.courseList.length % 10 === 0) {\n this.props.fetchCoursesListIfNeeded()\n }\n }, 200)\n\n render() {\n let {courseList, user} = this.props\n\n return <Loading isLoading={this.props.isLoading}>\n {\n courseList && courseList.length !== 0\n ?\n <>\n <div className=\"my-course-uid\">\n {`加群请备注您的学号:${!user.hasError && this.props.user.data.uid}`}\n </div>\n <InfiniteScroll\n pageStart={0}\n hasMore={true}\n loadMore={this.loadFunc}\n useWindow={false}\n >\n <ul ref={el => this.list = el}>\n {\n courseList.map((item, index) => {\n\n const Info = (\n <div className=\"info\">\n <div className='title'>{item.course_title}</div>\n {\n item.is_aist\n ? <div className='contact'>助教微信:{item.assist_weixin}</div>\n : <div className='contact'>QQ群:{item.course_qq}</div>\n }\n {\n item.is_aist && item.aist_schedule &&\n <div className=\"process-status\">\n <div className=\"process-wrapper\">\n <div className=\"process-bar\"\n style={{width: `${parseFloat(item.aist_schedule)}%`}}/>\n </div>\n <div className=\"process-text\">{item.aist_schedule}</div>\n </div>\n }\n <Bottom item={item}/>\n </div>\n )\n\n const status = (\n item.is_aist && <span className='status'>返现</span>\n )\n return (\n <VList img={item.image_name}\n handleClick={this.handleClick}\n {...item}\n key={index}\n info={Info}\n status={status}\n id={item['v_course_id']}\n />\n )\n })\n }\n </ul>\n </InfiniteScroll>\n {\n courseList.length % 10 !== 0 ?\n <AddCourse addCourseClick={this.addCourseClick}/>\n : null\n }\n </>\n :\n <div className=\"empty\">\n <p><i className='iconfont iconfish'/></p>\n <p className='empty-prompt'>还是咸鱼一条,快去翻身~</p>\n <p>\n <Link className='select-course' to='/classify'>去选课</Link>\n </p>\n </div>\n }\n </Loading>\n\n }\n}\n\nexport default connect(\n state => ({\n courseList: state.myCourses.courseList,\n user: state.user,\n isLoading: state.myCourses.isLoading\n }),\n {\n fetchCoursesListIfNeeded,\n switchTab\n })(MyCourses)","import React from 'react'\nimport './course-base.scss'\n\nconst Course = (props) => {\n return (\n <li className={`course-base-item ${props.className}`} onClick={props.handleClick.bind(this, props.id)}>\n {props.top}\n <img src={props.img} alt=\"\"/>\n <p className=\"course-title\">{props.title}</p>\n {props.bottom}\n </li>\n );\n};\n\nexport default Course;\n\n","import React, { PureComponent } from 'react'\nimport { Tag } from '../../../common'\nimport Course from '@/common/course-base'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport classnames from 'classnames'\nimport { isEmpty } from 'lodash'\n\n\nimport './free-courses.scss'\n\nconst Bottom = (props) => (\n <div className='bottom'>\n <Tag className={props.className}>{props.text}</Tag>\n <span>{props.audience}人观看</span>\n </div>\n)\n\nclass FreeCourse extends PureComponent {\n state = {\n courses: [],\n live: [],\n page: 1,\n num: 10\n }\n\n componentDidMount() {\n this.getFreeCourses()\n .then(res => {\n let data = res.data\n if (data.code == 200) {\n this.setState({\n courses: data.data,\n })\n } else {\n Toast.info(data.msg)\n }\n })\n this.getFreeLive()\n .then(res => {\n let data = res.data\n if (data.code == 200) {\n this.setState({\n live: isEmpty(data.data) ? [] : data.data\n })\n } else {\n Toast.info(data.msg, 2, null, false)\n }\n })\n }\n\n handleClick = id => {\n this.props.history.push(`/play/video?id=${id}`)\n }\n\n getFreeCourses = () => {\n return http.get(`${API.home}/m/free_course/${this.state.page}/${this.state.num}`)\n }\n\n getFreeLive = () => {\n return http.get(`${API.home}/m/live/free_list`)\n }\n\n toLive = live => {\n const {room_id, live_status} = live\n if (live_status) {\n window.location.assign(`http://www-test.julyedu.com/live/m_room/${room_id}`)\n } else {\n Toast.info('直播即将开始,敬请期待', 2, null, false)\n }\n }\n\n render() {\n return (\n <ul className='free-courses'>\n {\n this.state.live.map((item, index) => {\n const Bottom = (\n <div className=\"bottom\">\n <div className=\"animation-box\">\n {new Array(4).fill('a').map((item, index) => {\n return <i key={index} className={classnames('column', `column-${index + 1}`)}/>\n })}\n </div>\n <div className=\"time\">{`${item['live_start_time']}`}</div>\n </div>\n )\n\n const LiveStatus = (\n item['live_status'] == 0 ? <Tag className={'tag-soon top'}>即将开始</Tag> :\n <Tag className={'tag-playing top'}>正在直播</Tag>\n )\n return (\n <Course\n img={item['live_cover']}\n title={item['live_title']}\n top={LiveStatus}\n bottom={Bottom}\n key={item['live_id']}\n className={'live'}\n handleClick={this.toLive.bind(this, item)}\n id={index}\n />\n )\n })\n }\n {\n this.state.courses.map((item, index) => (\n <Course\n img={item.logo}\n title={item['video_course_name']}\n handleClick={this.handleClick}\n bottom={\n <Bottom audience={item['play_times']} className={'tag-category'} text={item.category}/>\n }\n id={item['v_course_id']}\n key={index}\n className={'course-item'}\n />\n ))\n }\n </ul>\n )\n }\n}\n\n\nexport default FreeCourse","import React, { Component } from 'react'\nimport './study.scss'\n\nimport { NavLink, Route, Switch, Redirect } from \"react-router-dom\"\nimport MyCourses from \"./myCourses\"\nimport FreeCourses from './freeCourses'\nimport WithTab from '@/HOCs/WithTab'\nimport WithFullSize from '@/HOCs/WithFullSize'\nimport { compose } from 'redux'\n\n\nclass Study extends Component {\n\n state = {\n position: {}\n }\n\n render() {\n const {match} = this.props;\n return (\n <section id='study'>\n <div className='tab'>\n <div>\n <NavLink to={`${match.url}/my-course`}\n replace\n activeClassName='active'\n >我的课程</NavLink>\n </div>\n <div>\n <NavLink to={`${match.url}/free-course`}\n replace\n activeClassName='active'\n >免费课程</NavLink>\n </div>\n </div>\n <div className=\"study-container\">\n <Switch>\n <Redirect exact from='/study' to='study/my-course'/>\n <Route path={`${this.props.match.path}/my-course`} component={MyCourses}/>\n <Route path={`${this.props.match.path}/free-course`} component={FreeCourses}/>\n </Switch>\n </div>\n </section>\n )\n }\n\n}\n\nexport default compose(\n WithFullSize,\n WithTab\n)(Study)","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;","module.exports = require('./dist/InfiniteScroll');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];"],"sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1179:function(e,t,a){"use strict";a.r(t);var n=a(8),s=a(9),r=a(11),o=a(7),i=a(10),l=a(0),c=a.n(l),u=(a(784),a(17)),p=a(47),d=a(648),m=(a(785),a(157)),h=a(20),f=a(84),v=a(650),b=a.n(v),y=a(38),E=a(30);var g=c.a.memo(function(e){var t=e.addCourseClick;return c.a.createElement("div",{className:"add-course"},c.a.createElement("button",{className:"add",onClick:t},"\u6dfb\u52a0\u8bfe\u7a0b+"))});function L(e){var t=e.record,a=t.seconds,n=t.lesson_name,s="";if(n){var r=/\u7b2c[\s\S]+?\u8bfe/.exec(n);s+=r&&r[0]?r[0]:""}if(a){var o=function(e){return{hour:Math.floor(e/3600),min:Math.floor(e/60)%60,sec:e%60}}(a);s+=(o.hour?String(o.hour).padStart(2,"0")+":":"")+(o.min?String(o.min).padStart(2,"0")+":":"")+(o.sec?String(o.sec).padStart(2,"0"):"")}return c.a.createElement("span",{className:"record"},s.length?"\u5b66\u4e60\u5230".concat(s):null)}var w=c.a.memo(function(e){var t=e.item;if(t.ago||t.seconds){var a=new Date(1e3*t.ago),n=Object(m.isToday)(a)?Object(m.format)(a,"HH\u65f6mm\u5206"):Object(m.format)(a,"MM\u6708DD\u65e5");return c.a.createElement("div",{className:"des"},c.a.createElement("span",{className:"time"},n),c.a.createElement(L,{record:t}))}return c.a.createElement("button",{className:"start-learn"},"\u5f00\u59cb\u5b66\u4e60")}),C=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(r.a)(this,(e=Object(o.a)(t)).call.apply(e,[this].concat(i)))).state={isLoading:!0},a.handleClick=function(e){a.props.history.push("/play/video?id=".concat(e))},a.addCourseClick=function(){a.props.history.push("/classify")},a.loadFunc=Object(y.debounce)(function(){a.props.courseList.length%10===0&&a.props.fetchCoursesListIfNeeded()},200),a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){this.props.switchTab(!1),this.props.fetchCoursesListIfNeeded()}},{key:"componentWillUnmount",value:function(){this.props.switchTab(!0)}},{key:"render",value:function(){var e=this,t=this.props,a=t.courseList,n=t.user;return c.a.createElement(E.f,{isLoading:this.props.isLoading},a&&0!==a.length?c.a.createElement(c.a.Fragment,null,c.a.createElement("div",{className:"my-course-uid"},"\u52a0\u7fa4\u8bf7\u5907\u6ce8\u60a8\u7684\u5b66\u53f7\uff1a".concat(!n.hasError&&this.props.user.data.uid)),c.a.createElement(b.a,{pageStart:0,hasMore:!0,loadMore:this.loadFunc,useWindow:!1},c.a.createElement("ul",{ref:function(t){return e.list=t}},a.map(function(t,a){var n=c.a.createElement("div",{className:"info"},c.a.createElement("div",{className:"title"},t.course_title),t.is_aist?c.a.createElement("div",{className:"contact"},"\u52a9\u6559\u5fae\u4fe1\uff1a",t.assist_weixin):c.a.createElement("div",{className:"contact"},"QQ\u7fa4\uff1a",t.course_qq),t.is_aist&&t.aist_schedule&&c.a.createElement("div",{className:"process-status"},c.a.createElement("div",{className:"process-wrapper"},c.a.createElement("div",{className:"process-bar",style:{width:"".concat(parseFloat(t.aist_schedule),"%")}})),c.a.createElement("div",{className:"process-text"},t.aist_schedule)),c.a.createElement(w,{item:t})),s=t.is_aist&&c.a.createElement("span",{className:"status"},"\u8fd4\u73b0");return c.a.createElement(d.a,Object.assign({img:t.image_name,handleClick:e.handleClick},t,{key:a,info:n,status:s,id:t.v_course_id}))}))),a.length%10!==0?c.a.createElement(g,{addCourseClick:this.addCourseClick}):null):c.a.createElement("div",{className:"empty"},c.a.createElement("p",null,c.a.createElement("i",{className:"iconfont iconfish"})),c.a.createElement("p",{className:"empty-prompt"},"\u8fd8\u662f\u54b8\u9c7c\u4e00\u6761\uff0c\u5feb\u53bb\u7ffb\u8eab~"),c.a.createElement("p",null,c.a.createElement(u.b,{className:"select-course",to:"/classify"},"\u53bb\u9009\u8bfe"))))}}]),t}(l.PureComponent),N=Object(h.b)(function(e){return{courseList:e.myCourses.courseList,user:e.user,isLoading:e.myCourses.isLoading}},{fetchCoursesListIfNeeded:f.e,switchTab:f.f})(C),k=(a(43),a(14)),O=a.n(k),_=(a(786),function(e){return c.a.createElement("li",{className:"course-base-item ".concat(e.className),onClick:e.handleClick.bind(void 0,e.id)},e.top,c.a.createElement("img",{src:e.img,alt:""}),c.a.createElement("p",{className:"course-title"},e.title),e.bottom)}),S=a(4),j=a(15),P=a.n(j),M=(a(787),function(e){return c.a.createElement("div",{className:"bottom"},c.a.createElement(E.h,{className:e.className},e.text),c.a.createElement("span",null,e.audience,"\u4eba\u89c2\u770b"))}),T=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(r.a)(this,(e=Object(o.a)(t)).call.apply(e,[this].concat(i)))).state={courses:[],live:[],page:1,num:10},a.handleClick=function(e){a.props.history.push("/play/video?id=".concat(e))},a.getFreeCourses=function(){return S.c.get("".concat(API.home,"/m/free_course/").concat(a.state.page,"/").concat(a.state.num))},a.getFreeLive=function(){return S.c.get("".concat(API.home,"/m/live/free_list"))},a.toLive=function(e){var t=e.room_id;e.live_status?window.location.assign("http://www-test.julyedu.com/live/m_room/".concat(t)):O.a.info("\u76f4\u64ad\u5373\u5c06\u5f00\u59cb\uff0c\u656c\u8bf7\u671f\u5f85",2,null,!1)},a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.getFreeCourses().then(function(t){var a=t.data;200==a.code?e.setState({courses:a.data}):O.a.info(a.msg)}),this.getFreeLive().then(function(t){var a=t.data;200==a.code?e.setState({live:Object(y.isEmpty)(a.data)?[]:a.data}):O.a.info(a.msg,2,null,!1)})}},{key:"render",value:function(){var e=this;return c.a.createElement("ul",{className:"free-courses"},this.state.live.map(function(t,a){var n=c.a.createElement("div",{className:"bottom"},c.a.createElement("div",{className:"animation-box"},new Array(4).fill("a").map(function(e,t){return c.a.createElement("i",{key:t,className:P()("column","column-".concat(t+1))})})),c.a.createElement("div",{className:"time"},"".concat(t.live_start_time))),s=0==t.live_status?c.a.createElement(E.h,{className:"tag-soon top"},"\u5373\u5c06\u5f00\u59cb"):c.a.createElement(E.h,{className:"tag-playing top"},"\u6b63\u5728\u76f4\u64ad");return c.a.createElement(_,{img:t.live_cover,title:t.live_title,top:s,bottom:n,key:t.live_id,className:"live",handleClick:e.toLive.bind(e,t),id:a})}),this.state.courses.map(function(t,a){return c.a.createElement(_,{img:t.logo,title:t.video_course_name,handleClick:e.handleClick,bottom:c.a.createElement(M,{audience:t.play_times,className:"tag-category",text:t.category}),id:t.v_course_id,key:a,className:"course-item"})}))}}]),t}(l.PureComponent),x=a(163),W=a(159),H=a(18),R=function(e){function t(){var e,a;Object(n.a)(this,t);for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l];return(a=Object(r.a)(this,(e=Object(o.a)(t)).call.apply(e,[this].concat(i)))).state={position:{}},a}return Object(i.a)(t,e),Object(s.a)(t,[{key:"render",value:function(){var e=this.props.match;return c.a.createElement("section",{id:"study"},c.a.createElement("div",{className:"tab"},c.a.createElement("div",null,c.a.createElement(u.c,{to:"".concat(e.url,"/my-course"),replace:!0,activeClassName:"active"},"\u6211\u7684\u8bfe\u7a0b")),c.a.createElement("div",null,c.a.createElement(u.c,{to:"".concat(e.url,"/free-course"),replace:!0,activeClassName:"active"},"\u514d\u8d39\u8bfe\u7a0b"))),c.a.createElement("div",{className:"study-container"},c.a.createElement(p.d,null,c.a.createElement(p.a,{exact:!0,from:"/study",to:"study/my-course"}),c.a.createElement(p.b,{path:"".concat(this.props.match.path,"/my-course"),component:N}),c.a.createElement(p.b,{path:"".concat(this.props.match.path,"/free-course"),component:T}))))}}]),t}(l.Component);t.default=Object(H.d)(W.a,x.a)(R)},648:function(e,t,a){"use strict";var n=a(0),s=a.n(n);a(649);t.a=function(e){return s.a.createElement("li",{className:"v-list-base-item",onClick:e.handleClick.bind(void 0,e.id)},s.a.createElement("div",{className:"content"},s.a.createElement("div",{className:"cover"},e.status,s.a.createElement("img",{src:e.img,alt:""})),e.info),e.tab)}},649:function(e,t,a){},650:function(e,t,a){e.exports=a(651)},651:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),s=a(0),r=i(s),o=i(a(2));function i(e){return e&&e.__esModule?e:{default:e}}var l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.scrollListener=a.scrollListener.bind(a),a.eventListenerOptions=a.eventListenerOptions.bind(a),a.mousewheelListener=a.mousewheelListener.bind(a),a}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s.Component),n(t,[{key:"componentDidMount",value:function(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}},{key:"componentDidUpdate",value:function(){if(this.props.isReverse&&this.loadMore){var e=this.getParentElement(this.scrollComponent);e.scrollTop=e.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}},{key:"componentWillUnmount",value:function(){this.detachScrollListener(),this.detachMousewheelListener()}},{key:"isPassiveSupported",value:function(){var e=!1,t={get passive(){e=!0}};try{document.addEventListener("test",null,t),document.removeEventListener("test",null,t)}catch(a){}return e}},{key:"eventListenerOptions",value:function(){var e=this.props.useCapture;return this.isPassiveSupported()&&(e={useCapture:this.props.useCapture,passive:!0}),e}},{key:"setDefaultLoader",value:function(e){this.defaultLoader=e}},{key:"detachMousewheelListener",value:function(){var e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}},{key:"detachScrollListener",value:function(){var e=window;!1===this.props.useWindow&&(e=this.getParentElement(this.scrollComponent)),e.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),e.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}},{key:"getParentElement",value:function(e){var t=this.props.getScrollParent&&this.props.getScrollParent();return null!=t?t:e&&e.parentNode}},{key:"filterProps",value:function(e){return e}},{key:"attachScrollListener",value:function(){var e=this.getParentElement(this.scrollComponent);if(this.props.hasMore&&e){var t=window;!1===this.props.useWindow&&(t=e),t.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),t.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),t.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}}},{key:"mousewheelListener",value:function(e){1!==e.deltaY||this.isPassiveSupported()||e.preventDefault()}},{key:"scrollListener",value:function(){var e=this.scrollComponent,t=window,a=this.getParentElement(e),n=void 0;if(this.props.useWindow){var s=document.documentElement||document.body.parentNode||document.body,r=void 0!==t.pageYOffset?t.pageYOffset:s.scrollTop;n=this.props.isReverse?r:this.calculateOffset(e,r)}else n=this.props.isReverse?a.scrollTop:e.scrollHeight-a.scrollTop-a.clientHeight;n<Number(this.props.threshold)&&e&&null!==e.offsetParent&&(this.detachScrollListener(),this.beforeScrollHeight=a.scrollHeight,this.beforeScrollTop=a.scrollTop,"function"===typeof this.props.loadMore&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}},{key:"calculateOffset",value:function(e,t){return e?this.calculateTopPosition(e)+(e.offsetHeight-t-window.innerHeight):0}},{key:"calculateTopPosition",value:function(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}},{key:"render",value:function(){var e=this,t=this.filterProps(this.props),a=t.children,n=t.element,s=t.hasMore,o=(t.initialLoad,t.isReverse),i=t.loader,l=(t.loadMore,t.pageStart,t.ref),c=(t.threshold,t.useCapture,t.useWindow,t.getScrollParent,function(e,t){var a={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n]);return a}(t,["children","element","hasMore","initialLoad","isReverse","loader","loadMore","pageStart","ref","threshold","useCapture","useWindow","getScrollParent"]));c.ref=function(t){e.scrollComponent=t,l&&l(t)};var u=[a];return s&&(i?o?u.unshift(i):u.push(i):this.defaultLoader&&(o?u.unshift(this.defaultLoader):u.push(this.defaultLoader))),r.default.createElement(n,c,u)}}]),t}();l.propTypes={children:o.default.node.isRequired,element:o.default.node,hasMore:o.default.bool,initialLoad:o.default.bool,isReverse:o.default.bool,loader:o.default.node,loadMore:o.default.func.isRequired,pageStart:o.default.number,ref:o.default.func,getScrollParent:o.default.func,threshold:o.default.number,useCapture:o.default.bool,useWindow:o.default.bool},l.defaultProps={element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null},t.default=l,e.exports=t.default},784:function(e,t,a){},785:function(e,t,a){},786:function(e,t,a){},787:function(e,t,a){}}]);
//# sourceMappingURL=study.de511a84.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["components/study/myCourses/index.js","common/course-base/index.js","components/study/freeCourses/index.js","components/study/index.js","common/v-list-base/index.js","../node_modules/react-infinite-scroller/index.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js"],"names":["AddCourse","React","memo","_ref","addCourseClick","react_default","a","createElement","className","onClick","Record","_ref2","_ref2$record","record","seconds","lesson_name","result","matchResult","exec","studyTime","hour","Math","floor","min","sec","getStudyTime","String","padStart","length","concat","Bottom","_ref3","item","ago","date","Date","time","isToday","format","MyCourses","state","isLoading","handleClick","id","_this","props","history","push","loadFunc","debounce","courseList","fetchCoursesListIfNeeded","this","switchTab","_this2","_this$props","user","common","Fragment","hasError","data","uid","react_infinite_scroller_default","pageStart","hasMore","loadMore","useWindow","ref","el","list","map","index","Info","course_title","is_aist","assist_weixin","course_qq","aist_schedule","style","width","parseFloat","myCourses_Bottom","status","v_list_base","Object","assign","img","image_name","key","info","react_router_dom","to","PureComponent","connect","myCourses","Course","bind","top","src","alt","title","bottom","text","audience","FreeCourse","courses","live","page","num","getFreeCourses","http","get","API","home","getFreeLive","toLive","room_id","live_status","window","location","toast_default","then","res","code","setState","msg","isEmpty","_this3","Array","fill","classnames","LiveStatus","common_course_base","logo","freeCourses_Bottom","category","Study","position","match","url","replace","activeClassName","react_router","exact","from","path","component","FreeCourses","Component","compose","WithFullSize","WithTab","VList","react__WEBPACK_IMPORTED_MODULE_0___default","tab","module","exports","__webpack_require__","defineProperty","value","_createClass","defineProperties","target","i","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","prototype","_react","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","scrollListener","eventListenerOptions","mousewheelListener","subClass","superClass","create","constructor","setPrototypeOf","_inherits","pageLoaded","options","attachScrollListener","isReverse","parentElement","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","document","addEventListener","removeEventListener","e","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","parentNode","scrollParent","getScrollParent","initialLoad","deltaY","preventDefault","offset","doc","documentElement","body","undefined","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","renderProps","filterProps","children","element","keys","indexOf","hasOwnProperty","_objectWithoutProperties","node","childrenArray","unshift","propTypes","isRequired","bool","func","number","defaultProps"],"mappings":"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","file":"static/js/study.de511a84.chunk.js","sourcesContent":["import React, { PureComponent } from \"react\"\nimport VList from '@/common/v-list-base'\nimport './my-courses.scss'\nimport { isToday, format } from \"date-fns\"\nimport { connect } from \"react-redux\"\nimport { fetchCoursesListIfNeeded, switchTab } from \"./actions\"\nimport InfiniteScroll from 'react-infinite-scroller'\nimport { debounce } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport { Loading } from \"@/common\";\n\n\nfunction getStudyTime(seconds) {\n return {\n hour: Math.floor(seconds / (60 * 60)),\n min: Math.floor(seconds / 60) % 60,\n sec: seconds % 60\n }\n}\n\nconst AddCourse = React.memo(({addCourseClick}) => (\n <div className='add-course'>\n <button className='add' onClick={addCourseClick}>添加课程+</button>\n </div>\n))\n\nfunction Record({record: {seconds, lesson_name}}) {\n let re = /第[\\s\\S]+?课/,\n result = ''\n\n if (lesson_name) {\n let matchResult = re.exec(lesson_name)\n result += (matchResult && matchResult[0]) ? matchResult[0] : ''\n }\n\n if (seconds) {\n let studyTime = getStudyTime(seconds)\n let hour = studyTime.hour ? String(studyTime.hour).padStart(2, '0') + ':' : '',\n min = studyTime.min ? String(studyTime.min).padStart(2, '0') + ':' : '',\n sec = studyTime.sec ? String(studyTime.sec).padStart(2, '0') : ''\n\n result += hour + min + sec\n }\n\n return (\n <span className={'record'}>\n {\n result.length ? `学习到${result}` : null\n }\n </span>\n )\n}\n\n\nconst Bottom = React.memo(({item}) => {\n if (item.ago || item.seconds) {\n let date = new Date(item.ago * 1000)\n let time = isToday(date) ? format(date, 'HH时mm分') : format(date, 'MM月DD日')\n return (\n <div className=\"des\">\n <span className='time'>{time}</span>\n <Record record={item}/>\n </div>\n )\n }\n return (\n <button className='start-learn'>开始学习</button>\n )\n})\n\nclass MyCourses extends PureComponent {\n\n list\n\n state = {\n isLoading: true\n }\n\n handleClick = id => {\n this.props.history.push(`/play/video?id=${id}`)\n }\n addCourseClick = () => {\n this.props.history.push('/classify')\n }\n\n componentDidMount() {\n this.props.switchTab(false)\n this.props.fetchCoursesListIfNeeded()\n }\n\n componentWillUnmount() {\n this.props.switchTab(true);\n }\n\n loadFunc = debounce(() => {\n if (this.props.courseList.length % 10 === 0) {\n this.props.fetchCoursesListIfNeeded()\n }\n }, 200)\n\n render() {\n let {courseList, user} = this.props\n\n return <Loading isLoading={this.props.isLoading}>\n {\n courseList && courseList.length !== 0\n ?\n <>\n <div className=\"my-course-uid\">\n {`加群请备注您的学号:${!user.hasError && this.props.user.data.uid}`}\n </div>\n <InfiniteScroll\n pageStart={0}\n hasMore={true}\n loadMore={this.loadFunc}\n useWindow={false}\n >\n <ul ref={el => this.list = el}>\n {\n courseList.map((item, index) => {\n\n const Info = (\n <div className=\"info\">\n <div className='title'>{item.course_title}</div>\n {\n item.is_aist\n ? <div className='contact'>助教微信:{item.assist_weixin}</div>\n : <div className='contact'>QQ群:{item.course_qq}</div>\n }\n {\n item.is_aist && item.aist_schedule &&\n <div className=\"process-status\">\n <div className=\"process-wrapper\">\n <div className=\"process-bar\"\n style={{width: `${parseFloat(item.aist_schedule)}%`}}/>\n </div>\n <div className=\"process-text\">{item.aist_schedule}</div>\n </div>\n }\n <Bottom item={item}/>\n </div>\n )\n\n const status = (\n item.is_aist && <span className='status'>返现</span>\n )\n return (\n <VList img={item.image_name}\n handleClick={this.handleClick}\n {...item}\n key={index}\n info={Info}\n status={status}\n id={item['v_course_id']}\n />\n )\n })\n }\n </ul>\n </InfiniteScroll>\n {\n courseList.length % 10 !== 0 ?\n <AddCourse addCourseClick={this.addCourseClick}/>\n : null\n }\n </>\n :\n <div className=\"empty\">\n <p><i className='iconfont iconfish'/></p>\n <p className='empty-prompt'>还是咸鱼一条,快去翻身~</p>\n <p>\n <Link className='select-course' to='/classify'>去选课</Link>\n </p>\n </div>\n }\n </Loading>\n\n }\n}\n\nexport default connect(\n state => ({\n courseList: state.myCourses.courseList,\n user: state.user,\n isLoading: state.myCourses.isLoading\n }),\n {\n fetchCoursesListIfNeeded,\n switchTab\n })(MyCourses)","import React from 'react'\nimport './course-base.scss'\n\nconst Course = (props) => {\n return (\n <li className={`course-base-item ${props.className}`} onClick={props.handleClick.bind(this, props.id)}>\n {props.top}\n <img src={props.img} alt=\"\"/>\n <p className=\"course-title\">{props.title}</p>\n {props.bottom}\n </li>\n );\n};\n\nexport default Course;\n\n","import React, { PureComponent } from 'react'\nimport { Tag } from '../../../common'\nimport Course from '@/common/course-base'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport classnames from 'classnames'\nimport { isEmpty } from 'lodash'\n\n\nimport './free-courses.scss'\n\nconst Bottom = (props) => (\n <div className='bottom'>\n <Tag className={props.className}>{props.text}</Tag>\n <span>{props.audience}人观看</span>\n </div>\n)\n\nclass FreeCourse extends PureComponent {\n state = {\n courses: [],\n live: [],\n page: 1,\n num: 10\n }\n\n componentDidMount() {\n this.getFreeCourses()\n .then(res => {\n let data = res.data\n if (data.code == 200) {\n this.setState({\n courses: data.data,\n })\n } else {\n Toast.info(data.msg)\n }\n })\n this.getFreeLive()\n .then(res => {\n let data = res.data\n if (data.code == 200) {\n this.setState({\n live: isEmpty(data.data) ? [] : data.data\n })\n } else {\n Toast.info(data.msg, 2, null, false)\n }\n })\n }\n\n handleClick = id => {\n this.props.history.push(`/play/video?id=${id}`)\n }\n\n getFreeCourses = () => {\n return http.get(`${API.home}/m/free_course/${this.state.page}/${this.state.num}`)\n }\n\n getFreeLive = () => {\n return http.get(`${API.home}/m/live/free_list`)\n }\n\n toLive = live => {\n const {room_id, live_status} = live\n if (live_status) {\n window.location.assign(`http://www-test.julyedu.com/live/m_room/${room_id}`)\n } else {\n Toast.info('直播即将开始,敬请期待', 2, null, false)\n }\n }\n\n render() {\n return (\n <ul className='free-courses'>\n {\n this.state.live.map((item, index) => {\n const Bottom = (\n <div className=\"bottom\">\n <div className=\"animation-box\">\n {new Array(4).fill('a').map((item, index) => {\n return <i key={index} className={classnames('column', `column-${index + 1}`)}/>\n })}\n </div>\n <div className=\"time\">{`${item['live_start_time']}`}</div>\n </div>\n )\n\n const LiveStatus = (\n item['live_status'] == 0 ? <Tag className={'tag-soon top'}>即将开始</Tag> :\n <Tag className={'tag-playing top'}>正在直播</Tag>\n )\n return (\n <Course\n img={item['live_cover']}\n title={item['live_title']}\n top={LiveStatus}\n bottom={Bottom}\n key={item['live_id']}\n className={'live'}\n handleClick={this.toLive.bind(this, item)}\n id={index}\n />\n )\n })\n }\n {\n this.state.courses.map((item, index) => (\n <Course\n img={item.logo}\n title={item['video_course_name']}\n handleClick={this.handleClick}\n bottom={\n <Bottom audience={item['play_times']} className={'tag-category'} text={item.category}/>\n }\n id={item['v_course_id']}\n key={index}\n className={'course-item'}\n />\n ))\n }\n </ul>\n )\n }\n}\n\n\nexport default FreeCourse","import React, { Component } from 'react'\nimport './study.scss'\n\nimport { NavLink, Route, Switch, Redirect } from \"react-router-dom\"\nimport MyCourses from \"./myCourses\"\nimport FreeCourses from './freeCourses'\nimport WithTab from '@/HOCs/WithTab'\nimport WithFullSize from '@/HOCs/WithFullSize'\nimport { compose } from 'redux'\n\n\nclass Study extends Component {\n\n state = {\n position: {}\n }\n\n render() {\n const {match} = this.props;\n return (\n <section id='study'>\n <div className='tab'>\n <div>\n <NavLink to={`${match.url}/my-course`}\n replace\n activeClassName='active'\n >我的课程</NavLink>\n </div>\n <div>\n <NavLink to={`${match.url}/free-course`}\n replace\n activeClassName='active'\n >免费课程</NavLink>\n </div>\n </div>\n <div className=\"study-container\">\n <Switch>\n <Redirect exact from='/study' to='study/my-course'/>\n <Route path={`${this.props.match.path}/my-course`} component={MyCourses}/>\n <Route path={`${this.props.match.path}/free-course`} component={FreeCourses}/>\n </Switch>\n </div>\n </section>\n )\n }\n\n}\n\nexport default compose(\n WithFullSize,\n WithTab\n)(Study)","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;","module.exports = require('./dist/InfiniteScroll');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];"],"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(11),d=a(7),l=a(10),u=a(154),p=(a(257),a(99)),m=a.n(p),h=a(0),f=a.n(h),v=a(162),y=(a(788),a(17)),b=a(47),g=a(4),E=a(20),S=(a(63),a(789),a(648)),_=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(_,{item:t}));return f.a.createElement(S.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(y.b,{to:{pathname:t.practice.is_tested?"/campResolve":"/campTest",search:"?keshi_id=".concat(t.id,"&qid=").concat(t.practice.qid),state:{from:"/play/video".concat(window.location.search)}}},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)),x=a.n(O),j=(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(x.a,null,e&&e.length&&e.map(function(e,t){return f.a.createElement(x.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));j.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var k=j,C=a(779),T=(a(840),a(30)),A=a(41),B=a.n(A),R=a(841),L=a.n(R),D=a(661),M=a(662),W=a(1158),J=C.a.getComponent("Component"),z=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(W.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}(J),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(W.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}(z);J.registerComponent("CustomPlayButton",q),V.prototype.options_={children:["CustomPlayButton"]},J.registerComponent("CustomPlayButtonCover",V);var H=m.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:{},salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:"",singleType:1,nowPrice:0,laterPrice:0},a.tobuy=function(){var e=a.state.course,t=void 0===e?{}:e;g.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(t.course_id,"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(t.course_id),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){console.log(e),a.setState({singleBox:!0,singleType:1,singMess:e}),window.localStorage.setItem("singMess",JSON.stringify(e))},a.boxHide=function(e){a.setState({singleBox:e,singleType:1})},a.payCallback=function(){var e=Object(u.a)(Object(u.a)(a));Object(g.b)("oid")&&(a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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;a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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){a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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=L()(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.getCoursePrice()}))},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,n=t.data,c=void 0===n?{}:n;200===t.code?a.setState(function(e){return{videoList:c.lessons,currentVideoSrc:c.lessons[e.activeIndex].play_url,course:c.course,courseId:c.course.course_id,vCourseId:c.course.v_course_id,title:c.course.course_title,isLoading:!1}},a.playSetup):i.a.info(c.msg)})},a.playSetup=function(){var e=a.state.course,t=void 0===e?{}:e;t.is_aist&&(a.setupWS(),a.setupTimer());var n=a.getLastVideoIndex(t.last_video_id);n=n>=0?n:0,a.setState({activeIndex:n},function(){a.lessonAvailable(n)?a.hasAuth(n)?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(){var e=a.state.course,t=void 0===e?{}:e;g.c.get("".concat(API.home,"/sys/course/price/").concat(t.course_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(y.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(y.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),l&&f.a.createElement(D.a,{courseId:d.course_id,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(M.a,{courseId:d.course_id,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(b.d,null,f.a.createElement(b.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),f.a.createElement(b.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(b.b,{path:"".concat(a.path,"/datum"),render:function(t){return f.a.createElement(k,Object.assign({},t,{datum:e.state.datum}))}})),f.a.createElement(b.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(11),r=a(7),d=a(10),l=a(154),u=a(0),p=a.n(u),m=(a(617),a(4)),h=a(47),f=a(18),v=a(20),y=a(157),b=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.courseId,t=a.props.data.video_id||a.props.data.id;m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(t)).then(function(t){200===t.data.code?(a.setState({orderId:t.data.data.order_id}),"1"===a.state.payType?a.alipayPay(t.data.data.order_id,e):a.weixinPay(t.data.data.order_id)):c.a.info(t.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,t){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.isweixinPay=function(){var e=Object(l.a)(Object(l.a)(a)),t=Object(m.b)("code");if(t){if(!Object(m.b)("oid"))return;m.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(m.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;m.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(m.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,m.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(m.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(m.b)("oid")&&(e.intervalPayStatus=setInterval(function(){var t=this;m.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(m.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,m.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(m.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(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",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(y.differenceInSeconds)(new Date(t),a)%60,c=Object(y.differenceInMinutes)(new Date(t),a)%60,i=Object(y.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}return 1===this.props.singleType&&p.a.createElement("div",null,p.a.createElement("div",{className:"popup-box"},p.a.createElement("div",{className:"content singleset-payment"},p.a.createElement("div",{className:"price-box"},p.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),p.a.createElement("p",null,this.props.data.class_price,"\u5143")),p.a.createElement("div",{className:"course-info"},p.a.createElement("p",{className:"text-overflow-1"},p.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),p.a.createElement("p",{className:"text-overflow-1"},p.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),p.a.createElement("div",{className:"payment-type"},p.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!m.a.isWeixin&&p.a.createElement("p",{onClick:this.check.bind(this,"1")},p.a.createElement("i",{className:"iconfont iconalipay"}),p.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),p.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),p.a.createElement("p",{onClick:this.check.bind(this,"0")},p.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),p.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),p.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),p.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),p.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)(b)},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(11),r=a(7),d=a(10),l=a(0),u=a.n(l),p=(a(617),a(4)),m=a(47),h=a(18),f=a(20),v=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.toBuyAll=function(e){if(1===Number(a.props.isPdd))a.props.history.push("/order?id=".concat(a.props.courseId),{group:1});else{var t=JSON.stringify([Number(e)]);p.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/").concat(t)).then(function(e){0===e.data.errno?a.props.history.push("/order?id="+e.data.data[0],{simple:1}):c.a.info(e.data.msg,2)})}},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.toLearn=function(e,t){a.props.boxHide(!1),a.props.history.push("/play/video?id=".concat(e,"&video_id=").concat(t))},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(v.differenceInSeconds)(new Date(t),a)%60,c=Object(v.differenceInMinutes)(new Date(t),a)%60,i=Object(v.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}var n=this.props.singleType;console.log(this.props);var c=this.props.data.video_id||this.props.data.id;return 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("span",{onClick:function(){return e.toLearn(e.props.vcourseId,c)},className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:function(){e.toBuyAll(e.props.courseId)}},"\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("span",{onClick:function(){return e.toLearn(e.props.vcourseId,c)},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(h.d)(Object(f.b)(function(e){return{user:e.user}},null),m.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.e054f591.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","is_tested","search","from","window","location","title","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","_this2$state$course","errno","simple","toSingleset","console","log","localStorage","setItem","JSON","stringify","boxHide","val","payCallback","assertThisInitialized","getParam","parse","getItem","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","sendMessage","message","send","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this2$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","HELP_IMPROVE_VIDEOJS","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","addChild","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getCoursePrice","getLastVideoIndex","lastIndex","findIndex","getVideoList","_res$data","_res$data$data","playSetup","_this2$state$course2","is_aist","last_video_id","lessonAvailable","Promise","resolve","playWithAuth","text","onPress","src","_this2$state$course3","_this2$state2","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","path","render","video_video_catalog","assign","video_datum_catalog","video_recommendation","VList","react__WEBPACK_IMPORTED_MODULE_0___default","status","alt","tab","Single","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_mr_julyedu_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","_Users_zhanghaozhe_server_mr_julyedu_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","isPdd","group","cidArr","toLearn","react__WEBPACK_IMPORTED_MODULE_7___default","avatar","String","padStart"],"mappings":"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","file":"static/js/video.e054f591.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 \n key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div \n className=\"video-title\" \n onClick={this.handleClick.bind(this, index)}\n >\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: item.practice.is_tested ? '/campResolve' : '/campTest',\n search: `?keshi_id=${item.id}&qid=${item.practice.qid}`,\n state: {from: `/play/video${window.location.search}`}\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: {},\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 // 详情页单集购买到该页面,url中的id不是课程id\n const { course={} } = this.state;\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${course.course_id}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${course.course_id}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n console.log(item);\n this.setState({\n singleBox: true,\n singleType: 1,\n singMess: item\n })\n window.localStorage.setItem('singMess', JSON.stringify(item))\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val, singleType: 1})\n }\n\n // 单集购买 H5支付成功后回调\n payCallback =() => {\n const _this = this;\n if(!getParam('oid')) {\n return;\n }else{\n this.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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 this.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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 {\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 }else {\n this.getCoursePrice();\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 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).then(res => {\n const { data={}, code } = res.data;\n if (code === 200) {\n this.setState(\n state => ({\n videoList: data['lessons'],\n currentVideoSrc: data['lessons'][state.activeIndex]['play_url'],\n course: data.course,\n courseId: data.course['course_id'],\n vCourseId: data.course['v_course_id'],\n title: data.course['course_title'],\n isLoading: false\n }),\n this.playSetup\n )\n } else {\n Toast.info(data.msg)\n }\n }\n )\n }\n\n playSetup = () => {\n // is_aist,是否AI特训营\n const { course={} } = this.state;\n if (course.is_aist) {\n this.setupWS();\n this.setupTimer();\n }\n let index = this.getLastVideoIndex(course.last_video_id);\n index = index >= 0 ? index : 0;\n this.setState(\n {\n activeIndex: index\n }, \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\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 const { course = {} } = this.state;\n http.get(`${API.home}/sys/course/price/${course.course_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 \n type='button'\n onClick={this.tobuy}\n className='purchase-class'\n >\n ¥{salePrice} 购买课程\n </button>\n <button \n type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'\n >\n ¥{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 \n courseId={course.course_id}\n singleBox={this.state.singleBox} \n boxHide={this.boxHide} \n 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 courseId={course.course_id}\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 \n path={`${match.path}/video`} \n render={props => {\n return (\n <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}\n />\n );\n }}\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 { courseId } = this.props;\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, courseId) : 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, courseId) => {\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 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 toBuyAll = (vcourseId) => {\n if(Number(this.props.isPdd) === 1) {\n this.props.history.push(`/order?id=${this.props.courseId}`, {group: 1})\n }else{\n let cidArr = JSON.stringify([Number(vcourseId)]);\n http.get(`${API['base-api']}/m/cart/addtopreorder/${cidArr}`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(\"/order?id=\" + res.data.data[0], {simple: 1});\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\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 toLearn = (vcourseId, videoID) => {\n this.props.boxHide(false);\n this.props.history.push(`/play/video?id=${vcourseId}&video_id=${videoID}`);\n }\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 const videoID = this.props.data.video_id || this.props.data.id;\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 <span onClick={()=>this.toLearn(this.props.vcourseId,videoID)} className='btn btn-18B4ED'>开始学习</span>\n <div className='btn btn-FF4000' onClick={()=>{this.toBuyAll(this.props.courseId)}}>¥{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=${videoID}`} className='btn btn-18B4ED'>去学习</Link>*/}\n <span onClick={()=>this.toLearn(this.props.vcourseId,videoID)} className='btn btn-18B4ED'>去学习</span>\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(11),d=a(7),l=a(10),u=a(154),p=(a(257),a(99)),m=a.n(p),h=a(0),f=a.n(h),v=a(162),y=(a(788),a(17)),b=a(47),g=a(4),E=a(20),S=(a(63),a(789),a(648)),_=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(_,{item:t}));return f.a.createElement(S.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(y.b,{to:{pathname:t.practice.is_tested?"/campResolve":"/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)),x=a.n(O),j=(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(x.a,null,e&&e.length&&e.map(function(e,t){return f.a.createElement(x.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));j.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var k=j,C=a(779),T=(a(840),a(30)),A=a(41),B=a.n(A),R=a(841),L=a.n(R),D=a(661),M=a(662),W=a(1158),J=C.a.getComponent("Component"),z=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(W.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}(J),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(W.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}(z);J.registerComponent("CustomPlayButton",q),V.prototype.options_={children:["CustomPlayButton"]},J.registerComponent("CustomPlayButtonCover",V);var H=m.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:{},salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:"",singleType:1,nowPrice:0,laterPrice:0},a.tobuy=function(){var e=a.state.course,t=void 0===e?{}:e;g.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(t.course_id,"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(t.course_id),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){console.log(e),a.setState({singleBox:!0,singleType:1,singMess:e}),window.localStorage.setItem("singMess",JSON.stringify(e))},a.boxHide=function(e){a.setState({singleBox:e,singleType:1})},a.payCallback=function(){var e=Object(u.a)(Object(u.a)(a));Object(g.b)("oid")&&(a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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;a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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){a.setState({singMess:JSON.parse(window.localStorage.getItem("singMess"))}),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=L()(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.getCoursePrice()}))},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,n=t.data,c=void 0===n?{}:n;200===t.code?a.setState(function(e){return{videoList:c.lessons,currentVideoSrc:c.lessons[e.activeIndex].play_url,course:c.course,courseId:c.course.course_id,vCourseId:c.course.v_course_id,title:c.course.course_title,isLoading:!1}},a.playSetup):i.a.info(c.msg)})},a.playSetup=function(){var e=a.state.course,t=void 0===e?{}:e;t.is_aist&&(a.setupWS(),a.setupTimer());var n=a.getLastVideoIndex(t.last_video_id);n=n>=0?n:0,a.setState({activeIndex:n},function(){a.lessonAvailable(n)?a.hasAuth(n)?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(){var e=a.state.course,t=void 0===e?{}:e;g.c.get("".concat(API.home,"/sys/course/price/").concat(t.course_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(y.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(y.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),l&&f.a.createElement(D.a,{courseId:d.course_id,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(M.a,{courseId:d.course_id,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(b.d,null,f.a.createElement(b.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),f.a.createElement(b.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(b.b,{path:"".concat(a.path,"/datum"),render:function(t){return f.a.createElement(k,Object.assign({},t,{datum:e.state.datum}))}})),f.a.createElement(b.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(11),r=a(7),d=a(10),l=a(154),u=a(0),p=a.n(u),m=(a(617),a(4)),h=a(47),f=a(18),v=a(20),y=a(157),b=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.courseId,t=a.props.data.video_id||a.props.data.id;m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(t)).then(function(t){200===t.data.code?(a.setState({orderId:t.data.data.order_id}),"1"===a.state.payType?a.alipayPay(t.data.data.order_id,e):a.weixinPay(t.data.data.order_id)):c.a.info(t.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,t){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.isweixinPay=function(){var e=Object(l.a)(Object(l.a)(a)),t=Object(m.b)("code");if(t){if(!Object(m.b)("oid"))return;m.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(m.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;m.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(m.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,m.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(m.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(m.b)("oid")&&(e.intervalPayStatus=setInterval(function(){var t=this;m.c.get("".concat(API["base-api"],"/m/orderState/oid/").concat(Object(m.b)("oid"))).then(function(a){401===a.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,m.c.get("".concat(API["base-api"],"/class_order_status/").concat(Object(m.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(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",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(y.differenceInSeconds)(new Date(t),a)%60,c=Object(y.differenceInMinutes)(new Date(t),a)%60,i=Object(y.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}return 1===this.props.singleType&&p.a.createElement("div",null,p.a.createElement("div",{className:"popup-box"},p.a.createElement("div",{className:"content singleset-payment"},p.a.createElement("div",{className:"price-box"},p.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),p.a.createElement("p",null,this.props.data.class_price,"\u5143")),p.a.createElement("div",{className:"course-info"},p.a.createElement("p",{className:"text-overflow-1"},p.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),p.a.createElement("p",{className:"text-overflow-1"},p.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),p.a.createElement("div",{className:"payment-type"},p.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!m.a.isWeixin&&p.a.createElement("p",{onClick:this.check.bind(this,"1")},p.a.createElement("i",{className:"iconfont iconalipay"}),p.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),p.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),p.a.createElement("p",{onClick:this.check.bind(this,"0")},p.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),p.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),p.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),p.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),p.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)(b)},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(11),r=a(7),d=a(10),l=a(0),u=a.n(l),p=(a(617),a(4)),m=a(47),h=a(18),f=a(20),v=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.toBuyAll=function(e){if(1===Number(a.props.isPdd))a.props.history.push("/order?id=".concat(a.props.courseId),{group:1});else{var t=JSON.stringify([Number(e)]);p.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/").concat(t)).then(function(e){0===e.data.errno?a.props.history.push("/order?id="+e.data.data[0],{simple:1}):c.a.info(e.data.msg,2)})}},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.toLearn=function(e,t){a.props.boxHide(!1),a.props.history.push("/play/video?id=".concat(e,"&video_id=").concat(t))},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(v.differenceInSeconds)(new Date(t),a)%60,c=Object(v.differenceInMinutes)(new Date(t),a)%60,i=Object(v.differenceInHours)(new Date(t),a)%24;e.setState({hour:i,min:c,sec:n})},1e3)}var n=this.props.singleType;console.log(this.props);var c=this.props.data.video_id||this.props.data.id;return 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("span",{onClick:function(){return e.toLearn(e.props.vcourseId,c)},className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onClick:function(){e.toBuyAll(e.props.courseId)}},"\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("span",{onClick:function(){return e.toLearn(e.props.vcourseId,c)},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(h.d)(Object(f.b)(function(e){return{user:e.user}},null),m.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.fa0fd7e1.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","is_tested","search","title","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","_this2$state$course","errno","simple","toSingleset","console","log","window","localStorage","setItem","JSON","stringify","boxHide","val","payCallback","assertThisInitialized","getParam","parse","getItem","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","sendMessage","message","send","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this2$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","HELP_IMPROVE_VIDEOJS","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","addChild","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getCoursePrice","getLastVideoIndex","lastIndex","findIndex","getVideoList","_res$data","_res$data$data","playSetup","_this2$state$course2","is_aist","last_video_id","lessonAvailable","Promise","resolve","playWithAuth","text","onPress","src","_this2$state$course3","_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_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_mr_julyedu_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","_Users_zhanghaozhe_server_mr_julyedu_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","isPdd","group","cidArr","toLearn","react__WEBPACK_IMPORTED_MODULE_7___default","avatar","String","padStart"],"mappings":"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","file":"static/js/video.fa0fd7e1.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 \n key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div \n className=\"video-title\" \n onClick={this.handleClick.bind(this, index)}\n >\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: item.practice.is_tested ? '/campResolve' : '/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: {},\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 // 详情页单集购买到该页面,url中的id不是课程id\n const { course={} } = this.state;\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${course.course_id}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${course.course_id}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n console.log(item);\n this.setState({\n singleBox: true,\n singleType: 1,\n singMess: item\n })\n window.localStorage.setItem('singMess', JSON.stringify(item))\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val, singleType: 1})\n }\n\n // 单集购买 H5支付成功后回调\n payCallback =() => {\n const _this = this;\n if(!getParam('oid')) {\n return;\n }else{\n this.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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 this.setState({\n singMess: JSON.parse(window.localStorage.getItem('singMess'))\n })\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 {\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 }else {\n this.getCoursePrice();\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 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).then(res => {\n const { data={}, code } = res.data;\n if (code === 200) {\n this.setState(\n state => ({\n videoList: data['lessons'],\n currentVideoSrc: data['lessons'][state.activeIndex]['play_url'],\n course: data.course,\n courseId: data.course['course_id'],\n vCourseId: data.course['v_course_id'],\n title: data.course['course_title'],\n isLoading: false\n }),\n this.playSetup\n )\n } else {\n Toast.info(data.msg)\n }\n }\n )\n }\n\n playSetup = () => {\n // is_aist,是否AI特训营\n const { course={} } = this.state;\n if (course.is_aist) {\n this.setupWS();\n this.setupTimer();\n }\n let index = this.getLastVideoIndex(course.last_video_id);\n index = index >= 0 ? index : 0;\n this.setState(\n {\n activeIndex: index\n }, \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\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 const { course = {} } = this.state;\n http.get(`${API.home}/sys/course/price/${course.course_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 \n type='button'\n onClick={this.tobuy}\n className='purchase-class'\n >\n ¥{salePrice} 购买课程\n </button>\n <button \n type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'\n >\n ¥{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 \n courseId={course.course_id}\n singleBox={this.state.singleBox} \n boxHide={this.boxHide} \n 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 courseId={course.course_id}\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 \n path={`${match.path}/video`} \n render={props => {\n return (\n <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}\n />\n );\n }}\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 { courseId } = this.props;\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, courseId) : 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, courseId) => {\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 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 toBuyAll = (vcourseId) => {\n if(Number(this.props.isPdd) === 1) {\n this.props.history.push(`/order?id=${this.props.courseId}`, {group: 1})\n }else{\n let cidArr = JSON.stringify([Number(vcourseId)]);\n http.get(`${API['base-api']}/m/cart/addtopreorder/${cidArr}`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(\"/order?id=\" + res.data.data[0], {simple: 1});\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\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 toLearn = (vcourseId, videoID) => {\n this.props.boxHide(false);\n this.props.history.push(`/play/video?id=${vcourseId}&video_id=${videoID}`);\n }\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 const videoID = this.props.data.video_id || this.props.data.id;\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 <span onClick={()=>this.toLearn(this.props.vcourseId,videoID)} className='btn btn-18B4ED'>开始学习</span>\n <div className='btn btn-FF4000' onClick={()=>{this.toBuyAll(this.props.courseId)}}>¥{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=${videoID}`} className='btn btn-18B4ED'>去学习</Link>*/}\n <span onClick={()=>this.toLearn(this.props.vcourseId,videoID)} className='btn btn-18B4ED'>去学习</span>\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